谁能帮我用汇编写一段8255A扩展的程序,要求三个口均为工作方式0输入,并将端口的信号传送至C51单片机

如题所述

这是我一片51实现16路抢答器的一个项目中的一段代码。希望对你有用。
ORG 0000H
JMP MAIN
ORG 1000H
MAIN:
MOV SP,#60H
CALL SETLEDS
mainloop:
jmp mainloop

;对16组LED置数
SETLEDS:
mov dptr,#0fffeh ;第一个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a
mov dptr,#0fffdh ;第二个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a
mov dptr,#0fffbh ;第三个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a
mov dptr,#0fff7h ;第四个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a
mov dptr,#0ffefh ;第五个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a
mov dptr,#0ffdfh ;第六个8255A控制字地址
mov a,#80h ;设置A、B、C口为方式0输出
movx @dptr,a

mov dptr,#0ff3eh ;第1组数码管地址
mov a,#0f1h ;第1组数码管显示1
movx @dptr,a
mov dptr,#0ff7eh ;第2组数码管地址
mov a,#02h ;第2组数码管显示2
movx @dptr,a
mov dptr,#0ffbeh ;第3组数码管地址
mov a,#03h ;第3组数码管显示3
movx @dptr,a
mov dptr,#0ff3dh ;第4组数码管地址
mov a,#04h ;第4组数码管显示4
movx @dptr,a
mov dptr,#0ff7dh ;第5组数码管地址
mov a,#05h ;第5组数码管显示5
movx @dptr,a
mov dptr,#0ffbdh ;第6组数码管地址
mov a,#06h ;第6组数码管显示6
movx @dptr,a
mov dptr,#0ff3bh ;第7组数码管地址
mov a,#07h ;第7组数码管显示7
movx @dptr,a
mov dptr,#0ff7bh ;第8组数码管地址
mov a,#08h ;第8组数码管显示8
movx @dptr,a
mov dptr,#0ffbbh ;第9组数码管地址
mov a,#09h ;第9组数码管显示9
movx @dptr,a
mov dptr,#0ff37h ;第10组数码管地址
mov a,#00h ;第10组数码管显示0
movx @dptr,a
mov dptr,#0ff77h ;第11组数码管地址
mov a,#01h ;第11组数码管显示1
movx @dptr,a
mov dptr,#0ffb7h ;第12组数码管地址
mov a,#02h ;第12组数码管显示2
movx @dptr,a
mov dptr,#0ff2fh ;第13组数码管地址
mov a,#03h ;第13组数码管显示3
movx @dptr,a
mov dptr,#0ff6fh ;第14组数码管地址
mov a,#04h ;第14组数码管显示4
movx @dptr,a
mov dptr,#0ffafh ;答题计时数码管地址
mov a,#05h ;答题计时数码管显示5
movx @dptr,a
mov dptr,#0ff1fh ;第15组数码管地址
mov a,#06h ;第15组数码管显示6
movx @dptr,a
mov dptr,#0ff5fh ;第16组数码管地址
mov a,#07h ;第16组数码管显示7
movx @dptr,a
mov dptr,#0ff9fh ;抢到组数码管地址
mov a,#08h ;抢到组数码管显示8
movx @dptr,a
RET
end
温馨提示:答案为网友推荐,仅供参考