欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-30 23:22:40
...

某系统中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

相关标签: 微机原理