求80c51单片机设计。要使用汇编语言的,要有电路图,如果有程序流程图和程序注释就更好了。请百度HI

2025-01-20 01:42:40
推荐回答(4个)
回答1:

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

回答2:

就是说你自己不会编程,你说的那几个简单的要死,最基础的东西。

回答3:

百度知道ers 应该帮助求助者,不应该施舍伸手党!

回答4:

你厉害