|
谢谢大家,现在我在网东拼西凑了一个程序,由于现在手头上没有设备,大家先帮我看看有什么问题:
ORG 0000H
LJMP START
START:
MOV TMOD,#20H
MOV TH1,#0FFH
MOV TL1,#0FFH ;11.0592MHz晶振下,串口波特率为57600bps
SETB TR1
MOV SCON,#50H ;串行口工作于方式1
MOV PCON,#80H
MOV A,#00H
RX_ACK:
JBC RI,IF_RSV ;单片机等待接收串口数据
SJMP RX_ACK
IF_RSV:
MOV A,SBUF
;加-开始
MOV B,0
JZ KEY0
MOV B,1
JZ KEY1
MOV B,2
JZ KEY2
MOV B,3
JZ KEY3
MOV B,4
JZ KEY4
MOV B,5
JZ KEY5
MOV B,6
JZ KEY6
MOV B,7
JZ KEY7
MOV B,8
JZ KEY8
MOV B,9
JZ KEY9
MOV B,10
JZ KEY10
MOV B,11
JZ KEY11
MOV B,12
JZ KEY12
;加-结束
acall DELAY
LJMP RX_ACK;断续等待接收数据
KEY0:
MOV P1,#01111111B;p1.0->键0
ret
KEY1:
MOV P1,#10111111B;p1.1->键1
ret
KEY2:
MOV P1,#11011111B;p1.2->键2
ret
KEY3:
MOV P1,#11101111B;p1.3->键3
ret
KEY4:
MOV P1,#11110111B;p1.4->键4
ret
KEY5:
MOV P1,#11111011B;p1.5->键5
ret
KEY6:
MOV P1,#11111101B;p1.6->键6
ret
KEY7:
MOV P1,#11111110B;p1.7->键7
ret
KEY9:
MOV P3,#01111111B;p3.0->键8
ret
KEY10:
MOV P3,#10111111B;p3.1->键9
ret
KEY11:
MOV P3,#11011111B;p3.2->键11
ret
KEY12:
MOV P3,#11101111B;p3.3->键12
ret
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOV R4,#2
L3:
MOV R2 ,#250
L1:
MOV R3 ,#250
L2:
DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END |
|