最近學校在教匯編,正巧單片機實驗,用51單片機做一個交通燈,用來過單片機實驗考試,效果還不錯,這個其實i功能比較簡單,用C語言的畫應該分分鐘搞定,但是匯編著實是難,proteus畫圖加敲代碼弄了整整一晚上,都要吐血了,效果圖如下:(由于proteus軟件比較卡,為了能快速看到效果程序里定時時間不是1秒,如果你用到記得更改會正常的1s間隔倒計時)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
tu.png (52.68 KB, 下載次數: 74)
下載附件
仿真截圖
2018-12-7 20:50 上傳
單片機源程序如下:
- ;位選引腳
- RED_H BIT P1.0
- RED_L BIT P1.1
- GRE_H BIT P1.2
- GRE_L BIT P1.3
- YEL_H BIT P1.4
- YEL_L BIT P1.5
- ;燈
- RED1 BIT P2.0
- GREED1 BIT P2.1
- YELLOW1 BIT P2.2
- RED2 BIT P2.3
- GREED2 BIT P2.4
- YELLOW2 BIT P2.5
- ORG 0000H
- AJMP MAIN
- ORG 000BH
- AJMP TIME
- ORG 0050H
- ;****************** ******************
- MAIN:
- MOV P0,#0FFH
- MOV P1,#0FFH
- MOV P2,#0FFH
- MOV R0,#0 ; 0垂直紅,1垂直黃,2垂直綠
- MOV R1,#10 ;定時器計數10次 1S
- MOV R2,#60 ; 紅60s
- MOV R3,#5 ; 黃燈5s
- MOV R5,#60 ; 綠燈
- MOV R4,#0
- MOV A, #0
- MOV DPTR,#TABLE
- ANL TMOD,#00FH
- ORL TMOD,#010H
- MOV TH0,#038H
- MOV TL0,#000H
- SETB EA
- SETB ET0
- SETB TR0
- LOOP:
- CJNE R0,#1,OTHER
- MOV P2,#0X00;
- SETB YELLOW2
- SETB YELLOW1
- MOV P1,#0X00 ; 黃燈5s
- SETB YEL_H
- MOV B,#10
- MOV A,R3
- DIV AB
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
- CPL YEL_H
- SETB YEL_L
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
- AJMP LOOP
- OTHER:JC OTHER2
- MOV P2,#0X00;
- SETB GREED1
- SETB RED2
- MOV P1,#0X00; ; 綠燈60s
- SETB GRE_H
- MOV B,#10
- MOV A,R5
- DIV AB
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
- CPL GRE_H
- SETB GRE_L
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
- AJMP LOOP
- OTHER2:
- MOV P1,#0X00; ; 紅燈60s
- MOV P2,#0X00;
- SETB RED1
- SETB GREED2
- SETB RED_H
- MOV B,#10
- MOV A,R2
- DIV AB
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
-
- CPL RED_H
- SETB RED_L
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DELAY
- AJMP LOOP
- TIME:
- DJNZ R1,NEXT
- MOV R1,#5
- CJNE R0,#1,THER1
- DJNZ R3,NEXT ; 黃燈
- MOV R3,#5
- INC R0
- CJNE R0,#3,NEXT
- MOV R0,#0
- AJMP NEXT
- THER1: JC THER2
- DJNZ R5,NEXT
- MOV R5,#60
- INC R0
- CJNE R0,#3,NEXT
- MOV R0,#0
- AJMP NEXT
- THER2: DJNZ R2,NEXT
- MOV R2,#60
- INC R0
- CJNE R0,#3,NEXT
- MOV R0,#0
- NEXT:
- MOV TH0,#038H
- MOV TL0,#000H
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
交通燈.rar
(65.74 KB, 下載次數: 158)
2018-12-7 20:49 上傳
點擊文件名下載附件
程序源碼及仿真文件 下載積分: 黑幣 -5
|