当前位置:文档之家› 8253习题参考答案

8253习题参考答案

计数器0的所存控制字为:00H 或 00000000B
计数器1的所存控制字为:40H 或 01000000B
计数器2的所存控制字为:80H 或 10000000B
题5-13 可编程计数器8253的级联是什么意思?什么时候会 用到级联。
答:8253的通道间,一个通道的输出OUT作为其它通道的输 入CLK,这种情况就称为级联。
8253习题参考答案
题5-12 可编程计数/定时器8253的控制字可以设定一种“数 值锁存操作”,这种操作有何必要。
答:计数时数值锁存寄存器的值随着减1计数器的值的变化而 变化,当执行锁存命令后,数值锁存器所存当前减1计数器的 值,直到读出数值锁存器的内容后,它继续跟着减1计数器的 值的变化而变化。若果没有锁存功能,因为8253是16位定时 器计数器,计数值需要分两次读出,读出结果可能会出错。 例如某时刻计数值为1000H,读出低位00H后,这是正赶上来 一脉冲计数器减1,计数值变成了0FFFH,这时再读高8位读出 的就是0FH了,这样分两次读出的16位数据变成了0F00H,而 非希望的1000H。所以读出前必须锁存,才可以正确读出。
011
Y3
1 1 1 1 33FH
110
0 0 0 0 340H
100
Y4
1 1 1 1 34FH
0 0 0 0 350H
101
Y5
1 1 1 1 35FH
0 0 0 0 370H
111
Y7
1 1 1 1 37FH
连接芯片 8259 8253 8255 8251 0809 0832
OUT DX, AL
MOV AL, AH
OUT DX, AL
补充4:设计一个用8253实现定时中断的接口电路,要求每隔 10分钟产生一个定时中断信号。设CPU为8088最小模式, 系统提供0.5M的时钟,8253的口地址为48H~4FH。
分析:1/1.5M=2*10-6S 10*60=600S 600/2*10-6=3*108>65536 需要级联 选择0通道,方式3,初值30000; 选择1通道,方式3,初值10000; 选择口地址 48H~4BH
补充2:试按如下要求分别编写8253的初始化程序,已知8253的 计数器0~2和控制字I/O地址依次为04~07H。
①使计数器1工作在方式0,仅用8位二进制计数,初值为150
②使计数器0工作在方式1,按BCD计数,初值为3000
③使计数器2工作在方式2,计数初值为02F0
计数器0的初值:5000 MOV AL,34H MOV DX,0FFF3H OUT DX,AL MOV AX,5000 MOV DX,0FFF0H OUT DX,AL MOV AL,AH OUT DX,AL
开放IRQ4中断片段: IN AL,21H AND AL,0EFH OUT 21H,AL
GATE0
GATE1
GATE2 8253
CLK0 OUT0 CLK1
INT 21H
OUT1
IRQ4
或者:
MOV AX,0
MOV DS,AX
MOV SI,0CH*4;或者:MOV SI,30H
MOV AX,OFFSEF INTRP4
MOV [SI],AX
MOV AX,SEG INTRP4
MOV [SI+2],AX
;0#计数器初始化
;1#计数器初始化
MOV AL, 00110110B; 36H MOV AL, 01110110B; 76H
OUT 4BH, AL
OUT 4BH, AL
MOV AX, 30000
MOV AX, 10000
OUT 48H, AL
OUT 49H, AL
MOV AL, AH
MOV AL, AH
选择3A0~3A3H这组地址: 用计数器0,工作方式3 计数初值为:1MHZ/1KHZ=1000
8253初始化程序片段如下:
MOV AL,36H ;0011 0110B MOV DX,3A3H OUT DX,AL MOV AX,1000 MOV DX,3A0H OUT DX,AL MOV AL,AH OUT DX,AL
当定时或计数初值大于一个通道的最大计数初值时,需 要通道级联来扩大计数范围。
题5-14、8253的片选信号如图所示:
①列出8253内各计数器及控制字寄存器的一组地址。
②现有1MHz方波,利用这片8253产生1KHz方波,说明如 何实现(利用的计数器、工作方式及计数初值),写出对 8253编程的有关内容。
补充3:下图为秒信号发生器硬件电路,试设计程序实现其功能。
解:分析:1M→1HZ需要106分频,106>65536,两片级联 选择0通道,方式3,初值1000;选择1通道,方式3,初值 1000;端口地址未知,设控制口PORTCTL、0#计数器 PORT0、1#计数器PORT1、2#计数器PORT2
补充1:某系统中8253芯片的通道0~通道2和控制字端口地 址分别为FFF0~FFF3H。定义通道0工作在方式2, CLK0=5MHZ,要求输出OUT0=1KHZ频率波。定义通道 1工作在方式4,用OUT0作计数脉冲,计数值为1000,计 数到0,向CPU发中断请求信号,接于IRQ4。编写8253两 个通道的初始化程序及中断向量、中断屏蔽位设置的程序, 并画出两计数通道的连接图。
计数器1初值:1000 MOV AL,78H MOV DX,0FFF3H OUT DX,AL MOV AX,1000 MOV DX,0FFF1H
OUT DX,AL
MOV AL,AH
OUT DX,AL
设置中断矢量表程序片段:
MOV AH,25H
硬件连接图
MOV AL,0CH
+5V
MOV DX,SEG INTRP4 MOV DS,DX MOV DX,OFFSET INTRP4
OUT 07H,AL

MOV AL,150 OUT 05H,AL
MOV AL,33H ;0011 0011B OUT 07H,AL MOV AX,3000H OUT 04H,AL MOV AL,AH OUT 04H,AL
③使计数器2工作在方式2,计数初值为02F0H
MOV AL,0B4H ;1011 0100B OUT 07H,AL MOV AX,02F0H OUT 06H,AL MOV AL,AH OUT 06H,AL
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 00 01
111X100X 10 11
由于A6和A2不受约束,所以共有四组可选地址 (A6=0): 3A0H~3A3H (A2=0) 3A4H~3A7H (A2=1) (A6=1): 3E0H~3E3H (A2=0) 3E4H~3E7H(A2=1)
OUT 48H, AL
OUT 49H, AL
例题:外设接口译码电路如图所示。分析各接口芯片的地址
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 地址 译码输出
0 0 0 0 300H
000
Y0
1 1 1 1 30FH
0 0 0 0 310H
001
Y1
1 1 1 1 31FH
0 0 0 0 330H
;0#计数器初始化
MOV DX, PORTCTL
MOV AL, 00110110B; 36H
OUT DX, AL
MOV AX, 1000 MOV DX, PORT0 OUT DX, AL MOV AL, AH OUT DX, AL
;1#计数器初始化 MOV DX, PORTCTL MOV AL, 01110110B; 76H OUT DX, AL MOV AX, 1000 MOV DX, PORT1
相关主题