亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
單片機(jī)匯編語(yǔ)言智能十字路口交通燈控制器Proteus仿真設(shè)計(jì) 注釋很詳細(xì)
[打印本頁(yè)]
作者:
tyut1568
時(shí)間:
2021-7-19 22:13
標(biāo)題:
單片機(jī)匯編語(yǔ)言智能十字路口交通燈控制器Proteus仿真設(shè)計(jì) 注釋很詳細(xì)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(129.63 KB, 下載次數(shù): 77)
下載附件
2021-7-20 04:13 上傳
1. 設(shè)計(jì)一個(gè)智能十字路口交通燈控制器。
2.用單片機(jī)控制控制LED紅、黃、綠指示燈,模擬指示十字路口通行狀態(tài)。
3.控制東西、南北方向的十字路口交通信號(hào)燈。
4.東西向通行時(shí)間為80s,南北向通行時(shí)間為60s,緩沖時(shí)間為3s。
5.東西方向紅燈時(shí)間=南北方向綠燈時(shí)間+黃燈緩沖時(shí)間,反之亦然。
6.鼓勵(lì)新創(chuàng)意,增加新功能。
第二章 系統(tǒng)設(shè)計(jì)方案2.1設(shè)計(jì)思路
1.采用AT89S52單片機(jī)作為主控芯片及外圍控制芯片,設(shè)計(jì)十字路口交通燈控制器的硬件電路。
2.采用AT89S52單片機(jī)匯編語(yǔ)言,完成十字路口交通燈控制器的軟件編程。
3.采用LED顯示和中斷定時(shí)電路,利用定時(shí)器T0產(chǎn)生每10ms一次的中斷,每100次中斷為1s。對(duì)兩個(gè)方向分別顯示紅、綠、黃燈,以及相應(yīng)的剩余時(shí)間(倒計(jì)時(shí))。
4.用獨(dú)立式按鍵實(shí)現(xiàn)特殊車輛(消防車、救護(hù)車、警車)通行的控制功能。
5.設(shè)置闖紅燈報(bào)警功能
2.2方案設(shè)計(jì)
利用AT89S52單片機(jī)完成交通信號(hào)燈控制器的設(shè)計(jì),該交通信號(hào)燈控制器由一條主干道和一條支干道匯合成十字路口,在每個(gè)入口處設(shè)置紅、綠、黃三色信號(hào)燈,數(shù)碼管顯示剩余時(shí)間
。紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時(shí)間停在禁行線外。用紅、綠、黃發(fā)光二極管作信號(hào)燈,8個(gè)共陰極數(shù)碼管顯示剩余時(shí)間,
單片機(jī)源程序如下:
;***********************************************
;***********************************************
;*********內(nèi)存、IO口分配************************
SHANSHUO EQU 20H ;閃爍標(biāo)志
JISHU1 EQU 30H ;計(jì)數(shù)變量
JISHU2 EQU 31H
TIME_0 EQU 32H ;中斷變量
TIME_1 EQU 33H ;
SHUCHU EQU P0 ;數(shù)碼管段輸出
G_1 BIT P1.0 ;定義LED
Y_1 BIT P1.1
R_1 BIT P1.2
G_2 BIT P1.3
Y_2 BIT P1.4
R_2 BIT P1.5
WEI1 BIT P2.0 ;數(shù)碼管片選
WEI2 BIT P2.1
WEI3 BIT P2.2
WEI4 BIT P2.3
K1 BIT P3.0 ;緊急按鍵
;********************************************
ORG 0000H
SJMP START
ORG 000BH ;定時(shí)器0中斷入口
LJMP T0_0
ORG 0030H
START:
MOV P1,#0 ;LED高電平有效,清零
MOV P2,#0 ;數(shù)碼管片選高電平有效,清零
CLR SHANSHUO ;閃爍標(biāo)志清零
CLR JISHU1 ;計(jì)數(shù)變量清零
CLR JISHU2 ;
CLR TIME_0 ;中斷變量清零
CLR TIME_1 ;
MOV TMOD,#01H ;定時(shí)器0方式1
MOV TH0,#3CH ;裝初值,50MS
MOV TL0,#0B0H ;
SETB EA ;開(kāi)總中斷
SETB ET0 ;開(kāi)定時(shí)器中斷
SETB TR0 ;啟動(dòng)定時(shí)器
;***************狀態(tài)1*************************
ZT1:
MOV P1,#0 ;LED清零
MOV JISHU1,#83 ;計(jì)數(shù)裝初值
MOV JISHU2,#80 ;
MOV R6,JISHU1 ;
MOV R7,JISHU2 ;
SETB G_1 ;東西綠燈亮
SETB R_2 ;南北紅燈亮
AA: CALL DISPLAY ;顯示
MOV A,R7 ;
CJNE A,#0,AA ;判斷時(shí)間是否已到
;*************狀態(tài)2***************************
ZT2:
MOV P1,#0 ;LED清零
MOV JISHU1,#3 ;計(jì)數(shù)器重裝初值
MOV JISHU2,#3 ;
MOV R6,JISHU1 ;
MOV R7,JISHU2 ;
SETB Y_1 ;東西黃燈點(diǎn)亮
SETB R_2 ;南北紅燈繼續(xù)亮
BB: JNB SHANSHUO,CC ;判斷閃爍標(biāo)志位
SETB Y_1 ;是一則點(diǎn)亮黃燈
AJMP QW ;跳到顯示
CC: CLR Y_1 ;是零則熄滅黃燈,達(dá)到閃爍的效果
QW: CALL DISPLAY ;顯示
MOV A,R6 ;
CJNE A,#0,BB ;判斷是否到了三秒
CLR SHANSHUO ;清閃爍
;*************狀態(tài)3***************************
ZT3:
MOV P1,#0 ;LED清零
MOV JISHU1,#60 ;計(jì)數(shù)器重新裝初值
MOV JISHU2,#63 ;
MOV R6,JISHU1 ;
MOV R7,JISHU2 ;
SETB R_1 ;東西紅燈點(diǎn)亮
SETB G_2 ;南北綠燈點(diǎn)亮
EE: CALL DISPLAY ;顯示
MOV A,R6 ;
CJNE A,#0,EE ;判斷時(shí)間是否到了
;*************狀態(tài)4***************************
ZT4:
MOV P1,#0 ;LED清零
MOV JISHU1,#3 ;計(jì)數(shù)器重新裝初值
MOV JISHU2,#3 ;
MOV R6,JISHU1 ;
MOV R7,JISHU2 ;
SETB R_1 ;東西紅燈點(diǎn)亮
SETB Y_2 ;南北黃燈點(diǎn)亮
FF: JNB SHANSHUO,QR ;判斷閃爍位是1/0
SETB Y_2 ;1則點(diǎn)亮黃燈
SJMP QE ;顯示
QR: CLR Y_2 ;0則熄滅黃燈
QE: CALL DISPLAY ;顯示
MOV A,R6 ;
CJNE A,#0,FF ;判斷時(shí)間到?jīng)]
CLR SHANSHUO ;閃爍清零
LJMP START ;跳 循環(huán)
;**************中斷子程序*********************
T0_0:
CLR EA ;關(guān)總中斷
MOV TH0,#3CH ;重新裝初值
MOV TL0,#0B0H ;
INC TIME_0 ;定時(shí)器變量加1
INC TIME_1 ;
MOV A,TIME_0 ;
CJNE A,#0AH,NEXT ;判斷是否到了500MS
MOV TIME_0,#0 ;到則清變量
CPL SHANSHUO ;給閃爍位取反
JB K1,NEXT ; 按鍵K1處理,緊急處理
MOV A,P1 ;讀取當(dāng)前LED顯示
MOV P1,#0 ;LED清零
MOV P0,#0 ;P0口輸出0
MOV P2,#0 ;P2口輸出0,不顯示
SETB R_1 ;點(diǎn)亮紅色指示燈
SETB R_2 ;點(diǎn)亮紅色指示燈
JNB K1,$ ;等待按鍵松開(kāi)
MOV P1,A ;P1口LED還原
NEXT: MOV A,TIME_1 ;
CJNE A,#20,QUIT ;判斷是否到了1S,沒(méi)到則退出
MOV TIME_1,#0 ;到則清變量
DEC R7 ;寄存器自減一
DEC R6 ;寄存器自減一
QUIT: SETB EA ;開(kāi)總中斷
RETI ;中斷返回
;**************顯示子程序*********************
DISPLAY:
PUSH ACC ;進(jìn)堆棧
MOV A,R7 ;裝載東西方向顯示緩存值到寄存器A
MOV B,#0AH ;寄存器B裝載10
DIV AB ;進(jìn)制轉(zhuǎn)換
MOV DPTR,#TAB ;十位
MOVC A,@A+DPTR ;查表,獲得東西方向10位上的顯示段碼
MOV SHUCHU,A ; 顯示段碼輸出到顯示端口
SETB WEI1 ; 10位的數(shù)碼管位選信號(hào)設(shè)置為1,點(diǎn)亮數(shù)碼管
CALL DELAY1MS ; 延時(shí)1ms
CLR WEI1 ; 10位的數(shù)碼管位選信號(hào)設(shè)置為0,熄滅數(shù)碼管
MOV A,B ;個(gè)位
MOV DPTR,#TAB ;查表,獲得東西方向個(gè)位上的顯示段碼
MOVC A,@A+DPTR ;
MOV SHUCHU,A ;顯示段碼輸出到顯示端口
SETB WEI2 ;個(gè)位的數(shù)碼管位選信號(hào)設(shè)置為1,點(diǎn)亮數(shù)碼管
CALL DELAY1MS ;延時(shí)1ms
CLR WEI2 ;個(gè)位的數(shù)碼管位選信號(hào)設(shè)置為0,熄滅數(shù)碼管
MOV A,R6 ;裝載東西方向顯示緩存值到寄存器A
MOV B,#0AH ;寄存器B裝載10
DIV AB ;進(jìn)制轉(zhuǎn)換
MOV DPTR,#TAB ;十位
MOVC A,@A+DPTR ;查表,獲得南北方向10位上的顯示段碼
MOV SHUCHU,A ;顯示段碼輸出到顯示端口
SETB WEI3 ;10位的數(shù)碼管位選信號(hào)設(shè)置為1,點(diǎn)亮數(shù)碼管
CALL DELAY1MS ;延時(shí)1ms
CLR WEI3 ;10位的數(shù)碼管位選信號(hào)設(shè)置為0,熄滅數(shù)碼管
MOV A,B ;個(gè)位
MOV DPTR,#TAB ;查表,獲得東西方向個(gè)位上的顯示段碼
MOVC A,@A+DPTR ;
MOV SHUCHU,A ;顯示段碼輸出到顯示端口
SETB WEI4 ;個(gè)位的數(shù)碼管位選信號(hào)設(shè)置為1,點(diǎn)亮數(shù)碼管
CALL DELAY1MS ;延時(shí)1ms
CLR WEI4 ;個(gè)位的數(shù)碼管位選信號(hào)設(shè)置為0,熄滅數(shù)碼管
POP ACC ;退出堆棧
RET ;返回
;**************** 延時(shí) ***********************
DELAY1MS: ;延時(shí)1ms子函數(shù)
MOV R1,#01H
MOV R2,#0FFH
DD: DJNZ R2,DD
DJNZ R1,DD
RET
;****************共陽(yáng)數(shù)碼管字符表******************************
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
復(fù)制代碼
所有資料51hei附件下載:
Keil和Proteus源程序.zip
(139.59 KB, 下載次數(shù): 96)
2021-7-19 22:12 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
十字路口交通燈.docx
(609.41 KB, 下載次數(shù): 67)
2021-7-19 22:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
lanxichang
時(shí)間:
2021-7-21 15:15
下載下來(lái)沒(méi)有工程仿真文件
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1