使用逻辑控制器的十进制计数器
我们用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