標(biāo)題: 簡(jiǎn)易單片機(jī)匯編語(yǔ)言交通燈設(shè)計(jì) [打印本頁(yè)]

作者: jlkk    時(shí)間: 2020-1-3 14:50
標(biāo)題: 簡(jiǎn)易單片機(jī)匯編語(yǔ)言交通燈設(shè)計(jì)
交通燈設(shè)計(jì),電路圖及程序文件,合集

單片機(jī)源程序如下:
  1.            ORG       0000H
  2.                    LJMP      MAIN
  3.                    ORG       0003H
  4.                    LJMP      INT_0
  5.                    ORG       000BH
  6.                    LJMP      T_0
  7.                    ORG       0013H
  8.                    LJMP      INT_1
  9.                    ORG       0900H
  10. MAIN:     
  11.            MOV       TMOD,#01H           ;定時(shí)器工作方式1
  12.            MOV       TL0,#0F0H           ;賦初值
  13.                    MOV       TH0,#0D8H
  14.                    SETB      ET0                   ;開(kāi)T0中斷
  15.                    SETB      TR0                   ;啟動(dòng)T0定時(shí)
  16.                    SETB      EX0                   ;開(kāi)外部中斷0
  17.                    SETB      EX1                   ;開(kāi)外部中斷1
  18.                    SETB      IT0                   ;外部中斷0下降沿觸發(fā)
  19.                    CLR       IT1                   ;外部中斷1低電平觸發(fā)
  20.                    SETB      PT0                   ;設(shè)置中斷優(yōu)先級(jí)
  21.                    SETB      EA                           ;CPU開(kāi)中斷
  22. dengguang: MOV       R0,#60                   ;東西方向綠燈顯示時(shí)間
  23.            MOV       R1,#65                   ;南北方向紅燈顯示時(shí)間
  24.                    MOV       R2,#25
  25. LOOP1:     SETB      P3.4
  26.            MOV       P1,#01H
  27.                    SETB      P1.7                   ;點(diǎn)亮南北方向紅燈
  28.                    SETB      P1.4                   ;點(diǎn)亮東西方向綠燈
  29.                    LCALL     DISPLAY
  30.                    DJNZ      R2,LOOP1
  31.                    MOV       R2,#25
  32.                    DEC       R1
  33.                    DJNZ      R0,LOOP1
  34.                    MOV       R0,#3        ;        東西方向黃燈顯示時(shí)間
  35. LOOP2:     MOV       P1,#01H
  36.            SETB      P1.7                   ;點(diǎn)亮南北方向紅燈
  37.                    SETB      P1.3                   ;點(diǎn)亮東西方向黃燈
  38. D1:        LCALL     DISPLAY
  39.            CPL       P1.3
  40.                    DJNZ      R2,D1
  41.                    DEC       R1
  42.                    MOV       R2,#25
  43.                    DJNZ      R0,LOOP2     
  44.                    MOV       R0,#40                   ;東西方向紅燈顯示時(shí)間
  45. LOOP3:     MOV       P1,#01H
  46.            SETB      P1.7               ;點(diǎn)亮東西方向紅燈
  47.                    SETB      P1.2                   ;點(diǎn)亮南北方向紅燈
  48.                    LCALL     DISPLAY
  49.                    DJNZ      R2,LOOP3
  50.                    MOV       R2,#25
  51.                    DEC       R0
  52.                    DJNZ      R1,LOOP3
  53.                    MOV       R1,#35        ; 南北方向綠燈顯示時(shí)間
  54. LOOP4:     MOV       P1,#01H
  55.            SETB      P1.5          ; 點(diǎn)亮南北方向綠燈
  56.                    SETB      P1.2                    ; 點(diǎn)亮東西方向紅燈
  57.                    LCALL     DISPLAY
  58.                    DJNZ      R2,LOOP4
  59.                    MOV       R2,#25
  60.                    DEC       R0
  61.                    DJNZ      R1,LOOP4
  62.                    MOV       R1,#3                  ;         南北方向黃燈顯示時(shí)間
  63. LOOP5:     MOV       P1,#01H          
  64.            SETB      P1.6                   ; 點(diǎn)亮南北方向黃燈
  65.                    SETB      P1.2                   ; 點(diǎn)亮東西方向紅燈
  66. D2:        LCALL     DISPLAY
  67.            CPL       P1.6
  68.                    DJNZ      R2,D2
  69.                    DEC       R0
  70.                    MOV       R2,#25
  71.                    DJNZ      R1,LOOP5
  72.                    LJMP      dengguang         
  73. ;顯示屏顯示數(shù)字程序
  74. DISPLAY: MOV       A,R0              ;東西方向時(shí)間顯示                                          
  75.          MOV       B,#10                                                                                 
  76.              DIV       AB                  ;把顯示的數(shù)十位存在A,個(gè)位存在B          
  77.              ADD       A,#10H          ;選通十位                                                         
  78.              MOV       P0,A              ;顯示十位                                                  
  79. B0:      JNB        P3.4,B1                                                                                 
  80.          SJMP       B0                                               
  81. B1:      SETB       P3.4                                                                               
  82.          MOV        A,B                                                                                          
  83.                  ADD        A,#20H          ;選通個(gè)位                                               
  84.              MOV        P0,A          ;顯示個(gè)位                                               
  85. B2:      JNB        P3.4,B3                                                                               
  86.          SJMP       B2                                                               
  87. B3:      SETB       P3.4
  88.          MOV        A,R1          ;南北方向時(shí)間顯示
  89.          MOV        B,#10
  90.              DIV        AB
  91.              ADD        A,#10H          ;選通十位
  92.              MOV        P2,A          ;顯示十位
  93. C0:      JNB         P3.4,C1
  94.          SJMP        C0
  95. C1:             SETB        P3.4
  96.          MOV         A,B
  97.                  ADD         A,#20H          ;選通個(gè)位
  98.                  MOV         P2,A           ;顯示個(gè)位
  99. C2:      JNB         P3.4,C3
  100.          SJMP        C2
  101. C3:      SETB        P3.4
  102.          RET
  103. ;設(shè)置系統(tǒng)中斷服務(wù)子程序
  104. INT_0:         LCALL        DISPLAY
  105.          JB           P3.6,L0
  106.                  INC              R1
  107.                  INC          R0
  108.                  CJNE         R1,#99,X0
  109.                  MOV          R1,#00H
  110. X0:      CJNE         R0,#99,X1
  111.          MOV          R0,#00H
  112. X1:      LCALL        DISPLAY
  113.          JNB           P1.0,TUICHU
  114. L0:      JB           P3.7,WAIT1
  115.          DEC          R1
  116.                  DEC          R0
  117.                  CJNE         R1,#00H,X2
  118.                  MOV          R1,#99H
  119. X2:      CJNE         R0,#00H,X3
  120.          MOV          R0,#99H
  121. X3:      LCALL        DISPLAY
  122. WAIT1:   JNB          P1.0,TUICHU
  123. WWAIT:   LJMP         INT_0
  124. TUICHU:  RETI
  125. ;定時(shí)子程序
  126. T_0:         MOV          TL0,#0F0H
  127.          MOV          TH0,#0D8H
  128.                  CLR          P3.4
  129.        
  130.                  RETI
  131. ;外部中斷1服務(wù)字程序
  132. INT_1:   MOV         P1,#85H
  133.          MOV         P0,#30H
  134.                  MOV         P2,#30H
  135.                  JNB         P3.3,INT_1
  136.                  RETI
  137.                  END
  138.                                   
復(fù)制代碼

所有資料51hei提供下載:
單片機(jī)大作業(yè).zip (54.37 KB, 下載次數(shù): 58)



作者: 答案先生    時(shí)間: 2020-6-20 09:44
有Proteus文件嗎

作者: 答案先生    時(shí)間: 2020-6-21 10:04
為什么運(yùn)行到一半就停了





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1