求80c51单片机设计。要使用汇编语言的,要有电路图,如果有程序流程图和程序注释就更好了。请百度HI 20
ORG 0000H
LJMP START
ORG 1000H
START:MOV SP,#4FH
MAIN: MOV A,P3
CJNE A,#0FEH,A0 ;测左转向灯有没有按下,没按则跳转测下一个
ACALL ZUO
AJMP MAIN
A0: MOV A,P3
CJNE A,#0FDH,A1 ;测右转向灯有没有按下,没按则跳转测下一个
ACALL YOU
AJMP MAIN
A1: MOV A,P3
CJNE A,#0FBH,A2 ;测倒车灯有没有按下,没按则跳转测下一个
ACALL DAO
AJMP MAIN
MOV A,P3
A2: CJNE A,#0F7H, A3 ;测故障灯有没有按下,没按则跳转测下一个
ACALL GU
AJMP MAIN ;循环
A3: MOV A,P3
CJNE A,#0FAH,A4 ;测倒车灯和左灯有没有按下,没按则跳转测下一个
ACALL DAOZUO
AJMP MAIN
A4: SETB P0.0
MOV A,P3
CJNE A,#0F9H,A5 ;测倒车灯和右灯有没有按下,没按则跳转测下一个
ACALL DAOYOU
AJMP MAIN ;循环
A5: SETB P0.0
MOV A,P3
CJNE A,#0F6H,A6 ;测左车灯和故障灯有没有按下,没按则跳转测下一个
ACALL ZUOGU
AJMP MAIN
A6: SETB P0.0
MOV A,P3
CJNE A,#0F5H,A7 ;测故障车灯和右灯有没有按下,没按则跳转测下一个
ACALL YOUGU
AJMP MAIN
A7: SETB P0.0
MOV A,P3
CJNE A,#0F3H,A8 ;测故障车灯和倒灯有没有按下,没按则跳转测下一个
ACALL GUDAO
AJMP MAIN
A8: SETB P0.0 ;灭灯
MOV A,P3
CJNE A,#0F2H,A9 ;测倒车灯和故障灯及左灯有没有按下,没按则跳转测下一个
ACALL ZUOGUDAO
AJMP MAIN
A9: SETB P0.0 ;灭灯
MOV A,P3
CJNE A,#0F1H,A10 ;测倒车灯和故障灯及右灯有没有按下,没按则跳转到下一个标号
ACALL YOUGUDAO
AJMP MAIN
A10: SETB P0.0;灭灯
ACALL DELAY
AJMP MAIN ;循环从新在从第一个开始测试
ZUO: CLR P2.0 ;亮灯
ACALL DELAY
SETB P2.0 ;灭灯
ACALL DELAY
ret
YOU : CLR P2.1 ;亮灯
ACALL DELAY
SETB P2.1 ;灭灯
ACALL DELAY
ret
DAO: CLR P0.0 ;亮灯
ACALL DELAY
ret
GU: SETB P0.0
CLR P1.0 ;亮灯
ACALL DELAY
SETB P1.0 ;灭灯
ACALL DELAY
ret
DAOZUO:CLR P0.0 ;亮灯
CLR P2.0
ACALL DELAY ;灭灯
SETB P2.0
ACALL DELAY
ret
DAOYOU:CLR P0.0 ;亮灯
CLR P2.1
ACALL DELAY ;灭灯
SETB P2.1
ACALL DELAY
ret
ZUOGU: CLR P2.0 ;亮灯
CLR P1.0
ACALL DELAY ;灭灯
SETB P2.0
SETB P1.0
ACALL DELAY
ret
YOUGU: CLR P1.0 ;亮灯
CLR P2.1
ACALL DELAY ;灭灯
SETB P2.1
SETB P1.0
ACALL DELAY
ret
GUDAO:SETB P0.0
CLR P0.0
CLR P1.0 ;亮灯
ACALL DELAY ;灭灯
SETB P1.0
ACALL DELAY
ret
ZUOGUDAO:CLR P0.0 ;亮灯
CLR P2.0
CLR P1.0
ACALL DELAY
SETB P2.0 ;灭灯
SETB P1.0
ACALL DELAY
ret
YOUGUDAO:CLR P0.0 ;亮灯
CLR P2.1
CLR P1.0
ACALL DELAY ;灭灯
SETB P2.1
SETB P1.0
ACALL DELAY
ret
DELAY: ;延迟子程序
MOV R1,#0FFH
LOOP0:MOV R2,#0FFH
LOOP1:NOP
NOP
NOP
DJNZ R2,LOOP1
DJNZ R1,LOOP0
RET
END