找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

基于51單片機(jī)的交通燈匯編設(shè)計(jì)與proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
最近學(xué)校在教匯編,正巧單片機(jī)實(shí)驗(yàn),用51單片機(jī)做一個(gè)交通燈,用來過單片機(jī)實(shí)驗(yàn)考試,效果還不錯(cuò),這個(gè)其實(shí)i功能比較簡(jiǎn)單,用C語言的畫應(yīng)該分分鐘搞定,但是匯編著實(shí)是難,proteus畫圖加敲代碼弄了整整一晚上,都要吐血了,效果圖如下:(由于proteus軟件比較卡,為了能快速看到效果程序里定時(shí)時(shí)間不是1秒,如果你用到記得更改會(huì)正常的1s間隔倒計(jì)時(shí))

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


單片機(jī)源程序如下:
  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í)器計(jì)數(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. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

板凳
ID:711220 發(fā)表于 2020-3-18 22:32 | 只看該作者
感謝大佬分享
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表