实现内部RAM30H开始的连续8个字符的打印,每打印1个字符点亮一支LED(从低到高依次点亮),当8支LED全部点亮的时候,LED灯处于闪烁状态(全亮1s,全灭1s交替往复) 。
- 写出8255的端口地址。
2)写出用定时器T1实现1S定时的子程序(硬件定时为40ms,fOSC=12MHz)。
3)写出实现打印功能的程序。
1)PA-63H PB-64H PC-65H 控制口-66H
2) TC=216-40ms/1us=25536=63C0H
ORG 0100H
DELAY1S :MOV TMOD,#10H
MOV TH1,#63H
MOV TL1,#0C0H
MOV R6,#25/#19H
SETB TR1
WAIT:JBC TF1, NEXT
SJMP WAIT
NEXT:DJNZ R6,CON
RET
CON: MOV TH1,#63H
MOV TL1,#0C0H
SJMP WAIT
MOV R0,#66H
MOV R1,#30H
MOV B,#01H
MOV R2,#08
MOV A,#81H
MOV @R0,A; 8255初始化
WAIT: MOV R0,#65H
MOVX A,@R0
JBC ACC.1,WAIT
MOV R0,#63H
MOV A,@R1
MOX @R0,A
MOV R0,#66H
MOV A,#0BH
MOVX @R0,A
MOV A,#0AH
MOVX @R0,A;产生下降沿
MOV R0,#64H
MOV A,B
MOVX @R0,A;点灯
SETB C
RLC A
MOV B,A
DJNZ R2,WAIT
LIGHT:MOVX @R0,A
ACALL DELAY1S
CPL A
SJMP LIGHT;闪烁