微机原理 接口部分编程题复习

某系统中8253芯片端口地址为FFF0H~FFF3H。计数器0工作在方式2,CLK0=2MHz,要求OUT0输出1kHz的脉冲;计数器l工作在方式0,对外部事件计数,每计满100个向CPU发出中断请求。试写出8253的初始化程序。

对于计数器0 ,二进制方式计数
MOV  DX,0FFF3H  ;写控制端口
MOV  AL, 00110100B ;写控制字
OUT  DX, AL 
MOV  AX, 2000 ;计数初值
MOV   DX,0FFF0H ;计数器0端口
OUT   DX,  AL  ;先写低8位
MOV  AL, AH 
OUT  DX, AL;写高8位

计数器1,BCD码计数
MOV   DX,0FFF3H
MOV  AL, 01010001B ;写控制字
OUT  DX, AL
MOV   DX,0FFF1H
MOV  AL, 100
OUT DX, AL

8255A作打印机接口,工作于查询方式。A端口作为传送字符的通道,工作于方式0,输出方式;B端口不用;端口C工作于方式0,PC2作为BUSY信号输入端,PC3~PC0为输入方式;PC6作为选通信号输出端, PC7~PC4为输出方式。 设CPU为8086,8255A的端口地址为:A端口:00D0H C端口: 00D4H 端口:00D2H 控制口:00D6H,试写出初始化程序片段。
在这里插入图片描述

LEA  SI, BUFF
MOV  AL, 10000001B ;A口方式0输出,C口高四位输出,低四位输入,B口不工作
OUT   0D6H, AL ;送控制端口
MOV   AL,00001101B 置位/复位控制字
OUT    0D6H, AL 
WAIT:    IN  AL, 0D4H ;读C端口,检测打印机是否为忙
TEST   AL, 00000100B  ;检测PC2状态,1为忙
JNZ  WAIT 
MOV  AL, [SI]
OUT  0D0H, AL
MOV   AL,00001100B
OUT  0D6H, AL
MOV   AL,00001101B 
OUT  0D6H, AL

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值