
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
程序和仿真图如下,程笑塌序和仿真文件见附件。有问题请追问。
RD_8255 EQU P2.0 8255读引脚 低电平有效
WR_8255 EQU P2.1 8255写引脚 低电平山桥有效
A0_8255 EQU P2.2
A1_8255 EQU P2.3
A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A1=0, A0=0时,PA口被选择;
当A1=0, A0=1时,PB口被选择;
当A1=1, A0=0时,PC口被选择;
当A1=1. A0=1时,控制寄存器被选择。碰唯圆
RESET_8255 EQU P2.48255复位引脚 高电平复位
CS_8255 EQU P2.5 8255 片选 低电平有效
-----------------------------------
-----------------------------------
ORG 0000H
JMP MAIN
-----------------------------------
MAIN:
MOV SP,#60H
CLR CS_8255 低电平有效
CLR RESET_8255 高电平复位
MOV P0, #80H PA输出 10000000
CLR WR_8255 写入控制寄存器
SETB WR_8255
MOV R3,#01H
-----------------------------------
LOOP:
MOV P0, R3 输出
CLR A1_8255 选定PA
CLR A0_8255
CLR WR_8255
NOP
NOP
SETB WR_8255
CALL DELAY500MS
MOV A,R3
RLC A
MOV R3,A
SJMP LOOP
-----------------------------------
DELAY500MS: 误差 0us
MOV R7,#0CDH
DL1:
MOV R6,#74H
DL0:
MOV R5,#09H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
END
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)