新闻  |   论坛  |   博客  |   在线研讨会
51单片机系列之十:交通灯控制系统
十年砍柴 | 2010-07-12 20:19:34    阅读:1174   发布文章

51单片机系列之十:交通灯控制系统

一、     设计任务

1、如图,单片机的P2口接上一个数码管(显示十位),P3口接上一个数码管(显示个位);P1.3—P1.0分别接上南北方向的红、黄、绿、左拐灯,P1.4—P1.7分别接上东西方向的红、黄、绿、左拐灯。用单片机实现:开始时,8个灯和数码管全亮3s(用以检测灯和数码管的好坏)。接着,南北方向的红灯和东西方向的绿灯亮,30s后,绿灯灭,黄灯亮5s,接着黄灯闪烁5s;接着黄灯灭,左拐灯亮,15s后,

黄灯闪烁5s,接着都灭了,东西方向的交通也完成。接着,南北方向绿灯和东西方向的红灯亮,重复上面的过程,直到南北方向交通完成。重复整个系统。

二、     电路原理图

      图1——1:开机时,全亮,确定灯和数码管是好的

       图1——2:东西方向通车,绿灯亮,30s

       图1——3:东西方向通人行,黄灯10s

            图1—4:黄灯闪烁,告诉行人快过,时间快到了

         图1—5:左拐灯亮,东南方向通车

 

           图1—6:南北方向通车,东西禁止

            图1—7:南北方向通行人

          图1—8:东北方向通车

三、     设计程序

//交通灯控制系统

        ORG 00H

        MOV P1,#00H

        MOV P2,#00H

        MOV P3,#00H

        MOV P1,#0FFH

        MOV P2,#0FFH

        MOV P3,#0FFH

        LCALL DELAY

        LCALL DELAY

        LCALL DELAY

START:  MOV R0,#30 

        MOV P1,#01001000B

        MOV DPTR,#TABLE

        MOV P2,#00H

        MOV P3,#00H

  S1:   MOV R1,#10

        MOV A,R0

        MOV B,R1

        DIV AB

        MOVC A,@A+DPTR

        MOV P2,A

        MOV A,B

        MOVC A,@A+DPTR

        MOV P3,A

        LCALL DELAY

        DJNZ R0,S1

       

        MOV R0,#5

        MOV P1,#00101000B

        LCALL LI

        LCALL XIAN

 

        MOV R0,#15

        MOV P1,#10001000B

        LCALL LI

       

     

        MOV R0,#30

        MOV P1,#00010010B

        LCALL LI

      

        MOV R0,#5

        MOV P1,#00010100B

        LCALL LI

        LCALL JI

       

        MOV R0,#15

        MOV P1,#00010001B

        LCALL LI

       

       

        LJMP START

      

 XIAN:  MOV P2,#3FH

        MOV P3,#6DH

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#66H

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#4FH

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#5BH

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#06H

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#3FH

        MOV P1,#00101000B

        LCALL DELAYH

        MOV P1,#00001000B

        LCALL DELAYH

        RET

       

 LI:   MOV DPTR,#TABLE

        MOV P2,#00H

        MOV P3,#00H

  S2:   MOV R1,#10

        MOV A,R0

        MOV B,R1

        DIV AB

        MOVC A,@A+DPTR

        MOV P2,A

        MOV A,B

        MOVC A,@A+DPTR

        MOV P3,A

        LCALL DELAY

        DJNZ R0,S2

        RET

 

  JI:   MOV P2,#3FH

        MOV P3,#6DH

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#66H

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#4FH

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#5BH

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#06H

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        MOV P2,#3FH

        MOV P3,#3FH

        MOV P1,#00010100B

        LCALL DELAYH

        MOV P1,#00010000B

        LCALL DELAYH

        RET

       

       

TABLE:  DB 3FH,06H,5BH,4FH,66H

        DB 6DH,7DH,07H,7FH,6FH

        

DELAY:MOV R5,#100

   D1:MOV R6,#20

   D2:MOV R4,#248

      DJNZ R4,$

      DJNZ R6,D2

      DJNZ R5,D1

      RET

DELAYH:MOV R5,#50

      D3:MOV R6,#20

      D4:MOV R4,#248

         DJNZ R4,$

         DJNZ R6,D4

         DJNZ R5,D3

         RET

         END

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客