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








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