基于匯編的交通燈設計1.紅綠黃+數碼管顯示倒計時,其中綠燈最后三秒閃爍
2.程序框圖如下
softwareMao.png (54.26 KB, 下載次數: 74)
下載附件
程序框圖
2019-5-18 19:49 上傳
3.部分單片機匯編語言源碼- //變量定義
- REDTIME EQU 30H
- GREENTIME EQU 31H
- //程序起點
- ORG 0000H
- LJMP MAIN
- ORG 000BH
- LJMP COUNTTIME ;定時器0中斷
- ORG 0003H
- LJMP CHANMODE ;外部中斷0
- //主程序
- ORG 0100H
- MAIN:
- ;1.啟動檢查
- ;2.初始化定時器0、外部中斷
- MOV TMOD,#01H ;采用方式1
- MOV TH0,#0ECH ;定時5ms的定時常數
- MOV TL0,#76H
- SETB TR0 ;啟動定時器
- SETB ET0 ;允許定時器中斷
- SETB EX0 ;允許外部中斷
- SETB IT0 ;下降沿觸發方式
- SETB EA ;開啟CPU中斷
- ;3.定義變量初值
- MOV R0,#0
- MOV REDTIME,#25 ;紅燈起始25s
- MOV GREENTIME,#20 ;綠燈起始20s
- MOV P0,#0FFH ;數碼管全不亮
- MOV P2,#00H ;共陰數碼管每段都不亮
- MOV P1,#00H ;每個發光二極管都不亮
- MOV R1,GREENTIME ;R1儲存實時變化的南北時間
- MOV R2,REDTIME ;R2儲存實時變化的東西時間
- SETB P1.0 ;初始狀態,南北綠燈亮
- SETB P1.5 ;初始狀態,東西紅燈亮
- MOV R3,#1 ;記錄運行的階段
- MOV R4,#0 ;記錄數碼管位選信號
- MOV R5,#0 ;記錄綠燈閃爍次數
- MOV R7,#0 ;記錄工作模式0為正常運行,1為設置模式
- ;4.開始LED和SEG開始倒計時工作
- LOOP: CJNE R7,#1,WORK ;進行模式判斷
- LCALL SETMODE ;R7=1,則進入設置模式
- JMP LOOP ;進行模式判斷的循環
- WORK: CJNE R0,#200,LOOP ;工作模式
- MOV R0,#0 ;R0=200則為1s進行倒計時時間的變化
- DEC R1
- DEC R2
- LCALL TWINKGREEN ;綠燈閃爍子程序(判斷綠燈是否閃爍,是否執行閃爍)
- LCALL STAGECHAN ;運行的階段的判斷,即一個階段的倒計時完成之后,重新賦值
- JMP LOOP
復制代碼
4.Proteus仿真視頻:
https://www.bilibili.com/video/av39625094
5.Preotuse仿真與源碼
Proteus.rar
(102.54 KB, 下載次數: 45)
2019-5-18 19:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
匯編交通燈.rar
(31.75 KB, 下載次數: 34)
2019-5-18 19:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|