久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機匯編語言實現交通燈 代碼有詳細注釋
[打印本頁]
作者:
ASIC
時間:
2021-4-12 20:54
標題:
51單片機匯編語言實現交通燈 代碼有詳細注釋
用51單片機實現一個交通燈的控制
交通燈的變化模式為:初始化狀態為東西紅燈都亮→延遲 3s 變為東西方向綠燈,南北方向紅燈→過 20S 后,東西方向變黃燈,南北方向依然是紅燈→過 3S,東西方向變紅燈,南北方向變綠燈→過 30S 后,東西方向依然為紅燈,南北方向變黃燈→過 3S 后變為東西綠燈, 南北紅燈,依次循環。
交通燈模塊電路板如圖
其中, J0 和 J0’是電源插座, POWER 為電源開關, P0 為 P0.0~P0.7 插座,對就數碼管段碼(a~f), P1 為 P1.0~P1.7 插。
P1.0 連接東西紅燈, P1.1 連接南北紅燈, P1.2 連接東西綠燈, P1.3 連接南北綠燈, P1.4連接東西黃燈, P1.5 連接南北黃燈, P1.6 連接東西車 , P1.7 連接南北車; P2.0 為 LED1和 LED3 的位選, P2.1 為 LED2 和 LED4 的位選, P2.2 為 LED5 和 LED7 的位選, P2.3 為LED6 和 LED8 的位選; P3.2 東西緊急按鈕, P3.3 南北緊急按鈕
當按下緊急按鈕,對應的通路會變為常綠,同時本方向表示車的LED亮起,用以表示有救護車通過等緊急情況
通過匯編語言基于KEILC51實現
通過實際觀察發現 由于按鍵是中斷實現,故沒有添加去抖,導致按下緊急按鈕后可能沒有進入中斷狀態,這個可以通過數碼管的顯示來判斷,當數碼管顯示暫停,說明進入緊急中斷;當再次按下時,數碼管繼續跑數字,則退出了中斷。還有一點做的不太好,沒有做好現場保存,當退出緊急中斷的時候,紅綠燈無法立刻恢復到原狀態,當此狀態時間跑過,LED會直接顯示下一個狀態。
初學單片機的新手歡迎各位大佬指正
代碼放入了附件部分 備有詳細的注釋
Snipaste_2021-04-12_20-55-02.jpg
(68.82 KB, 下載次數: 84)
下載附件
2021-4-12 20:55 上傳
單片機源程序如下:
ORG 0000H;程序起始地址
LJMP START;初始化標號
ORG 0003H;外部中斷地址--東西緊急按鈕觸發
LJMP DXJJ;東西緊急標號
ORG 0013H;外部中斷地址--南北緊急按鈕觸發
LJMP NBJJ;南北緊急標號
ORG 000BH;定時器T0中斷地址
LJMP OT ;定時器T0標號
ORG 0100H;程序起始位置
START: SETB EA ;中斷允許
SETB ET0 ;允許定時器T0中斷
CLR IT0 ;設置外部中斷為電平觸發
CLR IT1 ;同上
SETB EX0 ;允許外部中斷
SETB EX1 ;同上
SETB PX0 ;設置外部中斷優先級高于定時器中斷
SETB PX1 ;
CLR PT0 ;
MOV TMOD,#01H;設置定時器模式1
MOV TH0,#3CH ;
MOV TL0,#0B0H;設置定時器初值--50ms
SETB TR0 ;開啟定時器
MAIN: MOV R0,#20;設置R0 記錄20個50ms 產生1s
MOV R1,#56;設置主時間判斷時間軸 表示循環周期
MOV R2,#3 ;
MOV R3,#3 ;東西南北初始紅燈時間為3S
MOV R4,#0FCH;初始全紅 1111 1100
MOV 70H,#0;判斷是否按下了緊急按鈕的標志位 0 第一次按(進入緊急狀態) 1 第二次按(退出緊急狀態)
MOV R7,#00H ;判斷是要執行緊急程序還是正常交通燈顯示 00H正常交通燈 01H 東西緊急 02H南北緊急
XS: LCALL DISPLAY;調用顯示程序
LJMP XS ;循環進行顯示
SJMP [ DISCUZ_CODE_3 ]nbsp; ;死循環 保護程序執行? 可能沒用
OT: CJNE R7,#00H,PD ;R7不等于0跳轉判斷是哪個緊急,R7=0 說明未中斷正常跑程序
ZCP: DJNZ R0,OVER2; ;R0 不為零說明沒有記夠20個50ms即沒有產生1s,跳出中斷等待下一次50ms產生中斷信號
MOV TH0,#3CH ;
MOV TL0,#0B0H;記完一次50ms 重新裝載定時器初值
DEC R1 ;進入此部分說明已經經過了1s 那么總時間-1
DEC R2 ;顯示時間-1
DEC R3 ;顯示時間-1
KK1: CJNE R1,#53,KK2 ;判斷是否經過了3s 到達了第一個狀態(初始狀態全紅為第狀態)
MOV R2,#20 ;
MOV R3,#23 ;賦值顯示
MOV R4,#0F9H;DX綠,NB紅 1111 1001
LJMP OVER2
KK2: CJNE R1,#33,KK3 ;判斷是否又經過了20s 到達了第二個狀態
MOV R2,#3 ;賦值顯示
MOV R4,#0EDH;DX黃,NB紅 1110 1101
LJMP OVER2
KK3: CJNE R1,#30,KK4 ;判斷是否又經過了3s 到達了第三個狀態
MOV R2,#33 ;
MOV R3,#30 ;賦值顯示
MOV R4,#0F6H;DX紅,NB綠 1111 0110
LJMP OVER2
KK4: CJNE R1,#0,OVER1 ;判斷是否又經過了30s 到達了第四個狀態 此時為了跳出中斷 還不能重新賦值記錄50ms的個數 采用了OVER1和OVER2
MOV R3,#3 ;賦值顯示
MOV R4,#0DEH;DX紅,NB黃 1101 1110
MOV R1,#56 ;重新賦值總時間
OVER1: MOV R0,#20 ;重新賦值20 以產生1s
OVER2: RETI ;跳出中斷 如果用ERT是跳出子程序調用 兩者有區別!
PD: CJNE R7,#01H,NB;判斷是哪種緊急 01H 是DX緊急 02H是NB緊急
DX: MOV R4,#0B9H;DXJJ將東西車和綠燈打開,將南北燈變紅 1011 1001
MOV P2,#0FFH;關掉數碼管選通 達到暫停數碼管效果
RETI
NB: MOV R4,#76H;NBJJ將南北車和南北綠燈打開,將東西燈變紅 0111 0110
MOV P2,#0FFH;關掉數碼管選通 達到暫停數碼管效果
RETI
DXJJ: JB 70H,OFF1;判斷是否第一次按下緊急按鈕
ON1: CPL 70H ;按下一次后就翻轉 下次就能檢測出是第二次
MOV R7,#01H;第一次按下說明開啟中斷 那么進入緊急狀態 緊急狀態標志變為#01H表示產生東西中斷
LJMP OUT1
OFF1: CPL 70H ;如果要關掉中斷那么也要對標志位取反 下次就能檢測出是要開啟
MOV R7,#00H;第二次按下說明是關閉中斷 緊急標志變為#00H進入正常交通燈顯示
OUT1: RETI
NBJJ: JB 70H,OFF2;道理同上
ON2: CPL 70H
MOV R7,#02H
LJMP OUT2
OFF2: CPL 70H
MOV R7,#00H
OUT2: RETI
DISPLAY:MOV DPTR,#TAB;東西的數碼管十位顯示
MOV A,R2;
MOV B,#10
DIV AB
MOVC A,@A+DPTR;
MOV P2,#11111101B;
MOV P0,A
LCALL YS
MOV DPTR,#TAB;東西的數碼管個位顯示
MOV A,B;
MOVC A,@A+DPTR;
MOV P2,#11111110B
MOV P0,A;
LCALL YS
MOV DPTR,#TAB;南北的數碼管十位顯示
MOV A,R3;
MOV B,#10
DIV AB
MOVC A,@A+DPTR;
MOV P2,#11110111B;
MOV P0,A
LCALL YS
MOV DPTR,#TAB;南北的數碼管個位顯示
MOV A,B;
MOVC A,@A+DPTR;
MOV P2,#11111011B
MOV P0,A;
LCALL YS
MOV P1,R4;紅綠燈的顯示
LCALL YS
RET
YS: MOV R5,#150 ;延時函數
JY: DJNZ R5,JY ;減一操作
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;數碼管共陰極
END
復制代碼
hex下載:
TraficLight.zip
(14.31 KB, 下載次數: 21)
2021-4-12 20:52 上傳
點擊文件名下載附件
工程文件帶有詳細注釋
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产99页
|
日韩精品国产精品
|
国产免费久久
|
国产精品无遮挡
|
免费观看一区二区
|
成人福利在线观看
|
国产美女网站
|
黄网免费观看
|
免费a在线
|
欧美精品一区在线
|
亚洲另类自拍
|
国产成人a亚洲精品
|
午夜免费剧场
|
亚洲亚洲人成综合网络
|
亚洲精品日韩精品
|
a在线视频
|
日韩精品久久久
|
黄色网址av
|
日韩久久久久
|
99久久久国产精品免费蜜臀
|
亚洲成人免费在线观看
|
草逼视频免费看
|
一级毛片免费播放
|
黄色成人在线视频
|
午夜免费在线
|
亚洲精品久
|
99九九久久
|
大乳女喂男人吃奶
|
视频在线一区二区
|
在线亚洲一区
|
日韩免费在线播放
|
999久久久国产精品 亚洲黄色三级
|
日韩一区二区三区在线
|
在线播放亚洲
|
日韩久久综合
|
三级黄色片免费看
|
伊人色综合网
|
黄色片网站在线观看
|
国产一级二级三级
|
手机av在线播放
|
久久久精品一区
|