1 緒論1.1設(shè)計目的單片機具有性價比高、集成度高、可靠性好、抗干擾性強等特點,廣泛運用于各種智能儀器中;谛滦鸵(guī)則的可編程交通控制系統(tǒng),可以實現(xiàn)對車輛、行人的控制,使的交通便于管理。所以,采用單片機自動控制交通燈有現(xiàn)實的社會意義。
通過本次設(shè)計,使學(xué)生不僅更加深刻領(lǐng)會微型計算機從硬件組成到軟件編程的基本原理和知識,而且更要學(xué)會應(yīng)用,務(wù)必做到理論和實踐相結(jié)合,掌握硬件分析、軟件設(shè)計的基本思想和方法,提高分析問題、解決問題和工程實踐的能力。
1.2設(shè)計內(nèi)容1)設(shè)計一個十字路口交通燈控制器。用單片機控制LED燈模擬指示。模擬東西方向的十字路口交通信號控制情況。南北方向主干道計時時間為60s,東西方向次干道計時時間為45s。
2)紅綠燈不變期間,在七段數(shù)碼管上顯示每秒倒計時。
3)計時到最后5秒時,兩個方向的黃燈同時閃爍直至計時到0。
2 系統(tǒng)設(shè)計方案
2.1設(shè)計思路模擬交通燈控制器就是使用單片機來控制一些LED燈和數(shù)碼管,模擬真實交通燈的功能。當(dāng)南北主干道通車時綠燈亮,而東西次干道干道紅燈亮;當(dāng)55s通車時間到后,主干道綠燈熄滅,黃燈亮,黃燈亮5s后由主干道切換到次干道通車。此時主干道黃燈熄滅,紅燈亮,而次干道紅燈熄滅,綠燈亮,次干道開始通車; 40s通車時間到后,次干道綠燈熄滅,黃燈亮,黃燈亮5s后由次干道切換到主干道通車。此時次干道黃燈熄滅,紅燈亮;而主干道紅燈熄滅,綠燈亮,如此不斷循環(huán)。紅、黃、綠交替閃亮,利用數(shù)碼管倒計數(shù)顯示間隔等,用于管理十字路口的車輛及行人交通。
2.2方案設(shè)計利用AT89C52單片機完成交通信號燈控制器的設(shè)計,該交通信號燈控制器由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、黃三色信號燈,數(shù)碼管顯示剩余時間。紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外。用紅、綠、黃發(fā)光二極管作信號燈,8個共陰極數(shù)碼管顯示剩余時間,
根據(jù)設(shè)計功能及要求,我們可得系統(tǒng)的原理框圖如圖2-1所示。
圖2-1 系統(tǒng)原理圖(見51hei附件)
3 系統(tǒng)硬件電路設(shè)計
3.1 AT89C52單片機AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應(yīng)用。
AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2 個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash存儲器可有效地降低開發(fā)成本。
如下圖3-1所示:
圖3-1 AT89C52單片機
3.1.1晶振電路設(shè)計時鐘電路用于產(chǎn)生MCS-52單片機工作時所必須的時鐘控制信號。其內(nèi)部電路在時鐘信號控制下,嚴(yán)格地按時序執(zhí)行指令進行工作。在執(zhí)行指令時,CPU首先要到程序存儲器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時序電路產(chǎn)生一系列控制信號去完成指令所規(guī)定操作。
本設(shè)計采用12MHz晶振和兩個27Pf瓷片電容,他們構(gòu)成一個穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為單片機提供標(biāo)準(zhǔn)時鐘。其中兩個瓷片電容起微調(diào)作用。 如圖3-2所示:
圖3-2 晶振電路
3.1.2復(fù)位電路設(shè)計復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。
復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。
該設(shè)計采用加電直接復(fù)位,復(fù)位電容采用10uF,電阻10000歐。加電瞬間,RES管腳為高電平。通過電阻回路放電,使電壓逐漸降為零,從而實現(xiàn)了復(fù)位功能。
其連接圖如下圖3-3所示:
圖3-3 復(fù)位電路
3.2顯示部分電路設(shè)計3.2.1數(shù)碼管選擇此處采用的數(shù)碼管時共陰極數(shù)碼管,G、F、E、D、C、B、A七個端口是輸入端口,對其各位進行賦值,置位則亮,復(fù)位則滅,用此來顯示出相應(yīng)的數(shù)字;1、2兩端口用來控制高位和低位的選通顯示,只要對端口置位,便可以選擇該端口,并對其所代表的位進行賦值,顯示。數(shù)碼管如下圖3-5所示。
圖3-5 數(shù)碼管
3.2.2十字路口交通燈設(shè)計一條主干道和一條次干道匯合成十字路口,南北方向道路為主干道,東西方向干道為次干道。每個路口都采用了三個LED燈來顯示,分別代表了紅黃綠三種燈,來模擬路口交通燈的變換。LED信號燈如下圖3-6所示。
圖3-6 LED信號燈設(shè)計
3.3系統(tǒng)硬件總電路圖根據(jù)設(shè)計要求和所需電路,得到系統(tǒng)硬件總電路圖如圖3-7所示。
圖3-7 系統(tǒng)硬件總電路圖
4 系統(tǒng)軟件程序設(shè)計4.1主程序設(shè)計4.1.1總體流程圖
4.2其他子程序設(shè)計4.2.1循環(huán)流程控制思路








5 調(diào)試與仿真5.1 Proteus軟件系統(tǒng)仿真打開Proteus軟件,按照硬件系統(tǒng)圖3-7所示接線,連線完畢后,通過keil把編好的c語言程序轉(zhuǎn)換為.hex文件,并將其放入單片機內(nèi)。
設(shè)置好仿真器后,編譯程序無誤后調(diào)試執(zhí)行程序,結(jié)果顯示符合要求。
5.2仿真結(jié)果根據(jù)功能要求分別仿真各種情況下的亮燈情況,具體如下:
1.如下圖5-1仿真圖所示,南北方向主干道亮綠燈,東西次干道方向亮紅燈。
圖5-1 南北綠燈東西紅燈
2.如下圖5-2所示,南北方向倒計時5s后變?yōu)辄S燈,東西為綠燈。
圖5-2南北黃燈東西紅燈
3.如下圖5-3所示,東西方向變?yōu)榫G燈,南北方向變?yōu)榧t燈。
圖5-3南北紅燈燈東西綠燈
4.如下圖5-4所示,東西方向在變?yōu)辄S燈