📜  接口8254 PIT与8085微处理器(1)

📅  最后修改于: 2023-12-03 15:39:50.331000             🧑  作者: Mango

接口8254 PIT与8085微处理器

简介

接口8254 PIT(Programmable Interval Timer)是一种芯片,主要用于计时和产生时钟信号,可以与多种微处理器进行连接。本文主要介绍该芯片与8085微处理器的接口方式和示例程序。

接口方式

8254芯片接口方式主要包括三个信号线:输出时钟信号OUT、读取状态寄存器信号RD、写数据信号WR。以及四个数据线:输入计数器的初始值、读取状态寄存器的数据、写入数据到计数器、选择哪个计数器的计数方式。8085微处理器通过将相应的地址线和控制线输出到8254芯片,从而读取或者写入芯片中的数据。

示意图

8254 PIT与8085微处理器接口示意图

程序示例
; 将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芯片来计时和产生时钟信号。