我们做的是秒表
下面是我们的代码:
LWLC.ASM
<span style="font-size:18px">DATA SEGMENT
;8255各个端口地址
IO8255A EQU 1460H
IO8255B EQU 1461H
IO8255C EQU 1462H
IO8255K EQU 1463H
;8254各个端口地址
IO82540 EQU 1440H
IO82541 EQU 1441H
IO82542 EQU 1442H
IO8254K EQU 1443H
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码0---9
COUNT DW ? ;交替显示次数
COUNTIN DW ? ;延迟函数内循环循环次数
NUMA DB ? ;十位数
NUMB DB ? ;个位数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
;初始化DS
MOV AX,DATA
MOV DS,AX
;初始化8255
;8255写入控制字98H---->10011000B
;PB,PC0--PC3口均输出,A口,PC4----PC7为输入
MOV AL,98H ;10011000B
MOV DX,IO8255K
OUT DX,AL
MOV NUMA,00H
MOV NUMB,00H
DISPLY:
MOV COUNT, 500
MOV BX, OFFSET LED
MOV BP,COUNT
;交替显示十位(A)和个位(B)
SHOW:
;显示十位数
MOV AL, NUMA
XLAT ;查表
MOV DX, IO8255B
OUT DX, AL ;将该数的LED数码管字形代码送到B口
MOV DX, IO8255C ;接通8段代码管的第一位,在LED上显示十位数
MOV AL, 11111011B
OUT DX, AL
CALL

这篇博客介绍了如何利用8255芯片制作秒表,提供了LWLC.ASM的代码,并展示了一个电路图。尽管电路图中有些元件未在代码中使用,作者鼓励读者根据自己的理解进行扩展。需要注意的是,8254定时功能和开关功能需要额外添加,同时指出了端口地址需要根据实际调整。为了辅助理解,还列举了一些参考资料,包括DOS和BIOS功能调用、8255A和8254的应用,以及实验软件和硬件模拟环境。
最低0.47元/天 解锁文章
8251

被折叠的 条评论
为什么被折叠?



