找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6473|回復: 4
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的交通燈匯編設計與proteus仿真

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:413469 發(fā)表于 2018-12-7 20:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
最近學校在教匯編,正巧單片機實驗,用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)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:466316 發(fā)表于 2019-1-11 13:40 來自觸屏版 | 只看該作者
感謝大佬分享
回復

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
地板
ID:711220 發(fā)表于 2020-3-18 22:32 | 只看該作者
感謝大佬分享
回復

使用道具 舉報

5#
ID:716942 發(fā)表于 2020-4-6 16:15 | 只看該作者
感謝大佬分享
回復

使用道具 舉報

6#
ID:862725 發(fā)表于 2020-12-22 19:57 | 只看該作者
請問怎么改時間
回復

使用道具 舉報

7#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表