实验三_8253定时器计数器实器.pdf
文本预览下载声明
实验三 8253 定时器/计数器实验
一、实验目的
1. 学会8253 芯片与微机接口的原理和方法。
2. 掌握8253 定时器/计数器的工作原理和编程方法。
二、实验内容
编写程序,将8253 的计数器0 设置为方式2 (频率发生器),计数器1 设
置为方式3 (方
波频率发生器),计数器0 的输出作为计数器1 的输入,计数器1 的输出接在一
个LED 上,运行后可观察到该LED 在不停地闪烁。
1.编程时用程序框图中的二个计数初值,计算OUT1 的输出频率,用表观察LED,
进行核对。
2.修改程序中的二个计数初值,使OUT1 的输出频率为1Hz,用手表观察LED,进
行核对。
3.上面计数方式选用的是 16 进制,现若改用 BCD 码,试修改程序中的二个计
数初值,使
LED 的闪亮频率仍为1Hz。
三、电路图
CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1;
GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;
四、流程图及编程指南
8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为
0-2MHz 用+5V 单电源供电。8253 的六种工作方式:
⑴ 方式0:计数结束中断 ⑷ 方式3:方波频率发生器
⑵ 方式l:可编程频率发生 ⑸ 方式4:软件触发的选通信号
⑶ 方式2:频率发生器 ⑹ 方式5:硬件触发的选通信号
8253 初始化编程
1. 8253 初始化编程
8253 的控制寄存器和 3 个计数器分别具有独立的编程地址,由控制字的内
容确定使用 的是哪个计数器以及执行什么操作。因此 8255 在初始化编程时,
并没有严格的顺序规定,但在编程时,必须遵守两条原则:
① 在对某个计数器设置初值之前,必须先写入控制字;
② 在设置计数器初始值时,要符合控制字的规定,即只写低位字节,还是只写
高位 字节,还是高、低位字节都写(分两次写,先低字节后高字节)。
2. 8253 的编程命令
8253 的编程命令有两类:一类是写入命令,包括设置控制字、设置计数器的
初始值命 令和锁存命令;另一类是读出命令,用来读取计数器的当前值。 锁存
命令是配合读出命令使用的。在读出计数器值前,必须先用锁存命令锁定当前计
数寄存器的值。否则,在读数时,减 1 计数器的值处在动态变化过程中,当前
计数输 出寄存器随之变化,就会得到一个不确定的结果。当CPU 将此锁定值读
走后,锁存功 能自动失效,当前计数输出寄存器的内容又跟随减 1 计数器变化。
在锁存和读出计数 值的过程中,减 1 计数器仍在作正常减 1 计数。这种机制
确保了即能在计数过程中读 取计数值,又不影响计数过程的进行。
五、实验程序及注释
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
START:
MOV DX,43H
MOV AL ;写入控制字,选择 计数器0
OUT DX,AL
MOV DX,40H
MOV AL,0F4H ;写入初值低8 位
OUT DX,AL
MOV AL,01H ;写入初值高8 位
OUT DX,AL
MOV DX,43H
MOV AL ;写入控制字,选择计数器1
OUT DX,AL
MOV DX,41H
MOV AL,0E8H ; 写入初值低8 位
OUT DX,AL
MOV AL,03H ; 写入初值高8 位
OUT DX,AL
JMP $
CODE ENDS
END START
六、实验内容
1.2EEH=750 3E8H=1000
输出频率=(5X10^5)/(750X1000)=0.667HZ
实
显示全部