📅  最后修改于: 2023-12-03 15:39:50.331000             🧑  作者: Mango
接口8254 PIT(Programmable Interval Timer)是一种芯片,主要用于计时和产生时钟信号,可以与多种微处理器进行连接。本文主要介绍该芯片与8085微处理器的接口方式和示例程序。
8254芯片接口方式主要包括三个信号线:输出时钟信号OUT、读取状态寄存器信号RD、写数据信号WR。以及四个数据线:输入计数器的初始值、读取状态寄存器的数据、写入数据到计数器、选择哪个计数器的计数方式。8085微处理器通过将相应的地址线和控制线输出到8254芯片,从而读取或者写入芯片中的数据。
; 将8254芯片初始值设置为5000,然后开始计时,每计时1s,输出一个'.',以此循环。
Org 100h
MVI A, 0B6H ; CWB:选择计数器2,将读者写入LSB/MSB,方式为rate gen
OUT 43H ; 将CW写入8254的PORT A
MVI A, 14H ; 设置计数器2的初始值:5000
OUT 42H ; 将LSB写入8254的PORT B
MVI A, 4EH ; 设置计数器2的初始值:5000
OUT 42H ; 将MSB写入8254的PORT B
MVI A, 240 ; 初始化一个变量,用来计时
LXI H, 1000H; 存储循环计数目的变量到1000H地址
start:
LXI D, delayTable ; 将延迟时间表指针存储在DE中
LDAX D ; 将延迟时间读取到累加器中
MOV B, A ; 将延迟时间存储到B寄存器中
delay:
DCR B ; 延迟计数
JNZ delay ; 延迟循环直到倒数到0
MOV A, 2EH ; 输出字符'.'
OUT 01H ; 输出字符到终端
INR M ; 更新计时器
MVI A, 0C4H ; 使8254芯片开始一个新的计数周期
OUT 43H ; 将命令写入到PORT A
MVI A, 14H ; 8254如上设置
OUT 42H
MVI A, 4EH
OUT 42H
LDAX H ; 读取计时器到累加器
ANI 0FH ; 将计时器的低4位存储到累加器中,并作为DECREMNT数量
DCR A ; 更新计时目的变量
JNZ start ; 循环直到计时器等于0
HLT ; 停机
delayTable:
DB 178D, 02H ; 延迟500毫秒
DB 178D, 02H ; 延迟500毫秒
DB 178D, 02H ; 延迟500毫秒
DB 178D, 02H ; 延迟500毫秒
RET
本文介绍了接口8254 PIT和8085微处理器的接口方式和示例代码。通过对这些知识点的了解,程序员可以更好地理解如何使用8254芯片来计时和产生时钟信号。