使用逻辑控制器实现十进制计数器


我们用汇编语言编写了 8085 程序,仅用于实现逻辑控制器界面使用的十进制计数器。起始计数的输入必须通过完整界面输入,此外,我们还可以在界面上显示计数。

我们考虑一个示例程序:

它后面的程序应该总是一个无限循环,直到用户输入包含有效两位二进制编码十进制值仅对端口 B。然后,通过发送到端口 A 来显示初始计数。每次延迟 0.5 秒时,计数的值就会以十进制方式递增 1,并且仅发送到端口 A 终端进行显示。计数值从 99 翻滚到 00 后,操作会一直重复下去。

示例程序代码如下:

; FILE NAME COUNTER.ASM
ORG C000H

PA EQU D8H
PB EQU D9H
PC EQU DAH

CTRL EQU DBH

DELAY EQU 04BEH

MVI A, 10001010B
OUT CTRL ; Configure 8255 ports in desired modes
; All the next 9 instructions will ensure that control is transferred to next portion of program
; only after Port B receives a valid 2-digit BCD input.
AGAIN: IN PB
ANI 0FH

CPI 0AH
JNC AGAIN

IN PB
ANI F0H

CPI A0H
JNC AGAIN

IN PB
REPEAT: OUT PA ; Now displaying the count value
PUSH PSW

LXI D, FFFFH
CALL DELAY ; Generating delay of 0.5 second

POP PSW
ADI 01H
DAA ; Incrementing A value in decimal
JNZ REPEAT

JMP AGAIN

更新日期:2019-07-30

251 次浏览

开启你的 职场道路

通过完成该课程获取认证

开始
广告
© . All rights reserved.