標題: 基于51單片機的交通燈匯編設計與proteus仿真 [打印本頁]

作者: 愛向心飛揚    時間: 2018-12-7 20:50
標題: 基于51單片機的交通燈匯編設計與proteus仿真
最近學校在教匯編,正巧單片機實驗,用51單片機做一個交通燈,用來過單片機實驗考試,效果還不錯,這個其實i功能比較簡單,用C語言的畫應該分分鐘搞定,但是匯編著實是難,proteus畫圖加敲代碼弄了整整一晚上,都要吐血了,效果圖如下:(由于proteus軟件比較卡,為了能快速看到效果程序里定時時間不是1秒,如果你用到記得更改會正常的1s間隔倒計時)

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. ;位選引腳
  2. RED_H   BIT P1.0
  3. RED_L   BIT P1.1
  4. GRE_H   BIT P1.2
  5. GRE_L   BIT P1.3
  6. YEL_H   BIT P1.4
  7. YEL_L   BIT P1.5
  8. ;燈
  9. RED1    BIT P2.0
  10. GREED1  BIT P2.1
  11. YELLOW1 BIT P2.2
  12. RED2    BIT P2.3
  13. GREED2  BIT P2.4
  14. YELLOW2 BIT P2.5

  15. ORG  0000H
  16. AJMP  MAIN
  17. ORG  000BH
  18. AJMP  TIME
  19. ORG  0050H           
  20. ;****************** ******************
  21. MAIN:
  22.          MOV P0,#0FFH
  23.          MOV P1,#0FFH
  24.          MOV P2,#0FFH

  25.          MOV R0,#0            ; 0垂直紅,1垂直黃,2垂直綠

  26.      MOV R1,#10      ;定時器計數(shù)10次 1S

  27.          MOV R2,#60                 ; 紅60s
  28.          MOV R3,#5                 ; 黃燈5s
  29.          MOV R5,#60                 ; 綠燈

  30.          MOV R4,#0               



  31.                    MOV A, #0
  32.      MOV DPTR,#TABLE

  33.      ANL  TMOD,#00FH
  34.          ORL  TMOD,#010H
  35.          MOV TH0,#038H
  36.          MOV TL0,#000H
  37.          SETB EA
  38.          SETB ET0
  39.          SETB TR0
  40. LOOP:
  41.            CJNE R0,#1,OTHER
  42.                  MOV P2,#0X00;
  43.                 SETB YELLOW2
  44.                 SETB YELLOW1
  45.                 MOV P1,#0X00          ; 黃燈5s

  46.                 SETB YEL_H
  47.                 MOV B,#10
  48.                 MOV A,R3
  49.                 DIV AB
  50.                MOVC  A,@A+DPTR
  51.         MOV P0,A
  52.                 ACALL DELAY

  53.                 CPL  YEL_H
  54.                 SETB YEL_L
  55.                 MOV A,B
  56.                MOVC  A,@A+DPTR
  57.         MOV P0,A
  58.                 ACALL DELAY
  59.                  AJMP LOOP
  60. OTHER:JC OTHER2
  61.                 MOV P2,#0X00;
  62.                 SETB GREED1
  63.                 SETB RED2
  64.                    MOV P1,#0X00;          ; 綠燈60s
  65.                 SETB GRE_H
  66.                 MOV B,#10
  67.                 MOV A,R5
  68.                 DIV AB
  69.                MOVC  A,@A+DPTR
  70.         MOV P0,A
  71.                 ACALL DELAY

  72.                 CPL GRE_H
  73.                 SETB GRE_L
  74.                 MOV A,B
  75.                MOVC  A,@A+DPTR
  76.         MOV P0,A
  77.                 ACALL DELAY       
  78.                  AJMP LOOP
  79. OTHER2:

  80.                 MOV P1,#0X00;          ; 紅燈60s
  81.                 MOV P2,#0X00;
  82.                 SETB RED1
  83.                 SETB GREED2

  84.                 SETB RED_H
  85.                 MOV B,#10
  86.                 MOV A,R2
  87.                 DIV AB
  88.                MOVC  A,@A+DPTR
  89.         MOV P0,A
  90.                 ACALL DELAY
  91.                
  92.                 CPL RED_H
  93.                 SETB RED_L
  94.                 MOV A,B
  95.                MOVC  A,@A+DPTR
  96.         MOV P0,A
  97.                 ACALL DELAY          

  98.      AJMP LOOP

  99. TIME:
  100.            DJNZ R1,NEXT         
  101.        MOV R1,#5

  102.            CJNE R0,#1,THER1          
  103.            DJNZ        R3,NEXT           ; 黃燈
  104.            MOV R3,#5
  105.            INC R0
  106.        CJNE R0,#3,NEXT
  107.            MOV R0,#0
  108.            AJMP NEXT

  109. THER1: JC THER2
  110.            DJNZ        R5,NEXT
  111.            MOV R5,#60
  112.            INC R0
  113.        CJNE R0,#3,NEXT
  114.            MOV R0,#0
  115.           AJMP NEXT

  116. THER2: DJNZ        R2,NEXT
  117.            MOV R2,#60
  118.            INC R0
  119.        CJNE R0,#3,NEXT
  120.            MOV R0,#0


  121.          NEXT:
  122.                  MOV TH0,#038H
  123.                  MOV TL0,#000H

  124. ……………………

  125. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
交通燈.rar (65.74 KB, 下載次數(shù): 158)




作者: Juno-Z    時間: 2019-1-11 13:40
感謝大佬分享
作者: sgx66    時間: 2020-3-18 22:32
感謝大佬分享
作者: jzl66785    時間: 2020-4-6 16:15
感謝大佬分享

作者: 無情的單片機    時間: 2020-12-22 19:57
請問怎么改時間





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