單片機(jī)課程設(shè)計(jì)----模擬交通燈控制器_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  緒論</b></p><p>  隨著我國社會(huì)經(jīng)濟(jì)的發(fā)展,城市化、城鎮(zhèn)化進(jìn)程的加快,道路交通堵塞問題日趨嚴(yán)重,如何對交通進(jìn)行合理的管理和調(diào)度而盡可能減少堵車現(xiàn)象成為目前我國很多地方尤其是特大城市急需解決的問題,顯然交通燈在其中起著不可或缺的作用。本文就控制交通燈的方法進(jìn)行了討論,分析了各種方案的性價(jià)比,并用軟、硬件加以實(shí)現(xiàn)。而后,對“十字交叉路口交通燈控制”進(jìn)行

2、了分析。最后,還對城市交通燈網(wǎng)的控制進(jìn)行了展望。希望能給有關(guān)政府部門一些參考,更好地改善我們的城市交通。現(xiàn)今的交通發(fā)展迅速,車輛極具增加,馬路不斷擴(kuò)寬,人行橫道相對較少。特別是像北京這樣的大都市,經(jīng)濟(jì)飛速發(fā)展,車輛繁多,人口密集。緩解交通已成為當(dāng)務(wù)之急.例如在常州工學(xué)院南門就是這種情況,每天進(jìn)出校門的學(xué)生特別多,大多還需要穿過這條繁忙的高速公路,這為學(xué)校師生帶來大大的不便.該系統(tǒng)主要應(yīng)用于交通領(lǐng)域,具有較高的實(shí)用價(jià)值。該系統(tǒng)利用紅燈,黃

3、燈,綠燈來指揮車輛和行人,以達(dá)到車輛停止,行人通行的目的,減少了交通擁擠現(xiàn)象,為行人節(jié)省了時(shí)間,即保證行人過馬路時(shí)的安全,也減輕了交管部門的負(fù)擔(dān)。本產(chǎn)品面對公共交通設(shè)施,并不注重經(jīng)濟(jì)收益,而是注重以后潛在的發(fā)展,從而帶動(dòng)相關(guān)產(chǎn)業(yè)。</p><p><b>  一.設(shè)計(jì)目的</b></p><p><b>  1.1課題簡介</b></p&g

4、t;<p>  模擬交通燈控制器就是使用單片機(jī)來控制一些LED 和數(shù)碼管,模擬真實(shí)交通燈的功能。紅、黃、綠交替閃亮,利用數(shù)碼管倒計(jì)數(shù)顯示間隔等,用于管理十字路口的車輛交通,計(jì)時(shí)牌顯示路口通行轉(zhuǎn)換剩余時(shí)間等。</p><p><b>  1.2性能指標(biāo)要求</b></p><p>  利用單片機(jī)完成交通信號(hào)燈控制器的設(shè)計(jì),該交通信號(hào)燈控制器由一條車道A和一

5、條車道B匯合成十字路口,在每個(gè)入口處設(shè)置紅、綠、黃三色信號(hào)燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時(shí)間停在禁行線外。用紅、綠、黃發(fā)光二極管作信號(hào)燈。設(shè)東西向?yàn)锳道,南北為B道。</p><p><b>  1.3設(shè)計(jì)方案</b></p><p>  在設(shè)計(jì)中采用20個(gè)發(fā)光二極管來模擬南北方向和東西方向的紅黃綠燈,用2個(gè)數(shù)碼管來顯示通行或禁止剩余的時(shí)

6、間。交通燈的亮滅規(guī)律為:南北路口的綠燈亮,東西路口的紅燈亮,南北方向通車,延時(shí)35秒后,南北路口綠燈滅,黃燈亮,與此同時(shí),東西路口紅燈亮,右轉(zhuǎn)燈亮,延時(shí)5秒之后,南北路口右轉(zhuǎn)燈亮,東西路口左右轉(zhuǎn)彎燈亮,延時(shí)20秒后,東西路口綠燈亮,南北紅燈亮,東西方向通車,延時(shí)35秒后,東西路口綠燈滅,黃燈亮,與此同時(shí),南北路口紅燈亮,右轉(zhuǎn)燈亮,延時(shí)5秒后,東西路口右轉(zhuǎn)燈亮,南北路口左右轉(zhuǎn)彎燈亮,延時(shí)20秒,重復(fù)上述過程。 根據(jù)性能指標(biāo)要求的介紹,

7、本設(shè)計(jì)硬件由定時(shí)模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊組成。定時(shí)模塊采用硬件定時(shí)和軟件定時(shí)相結(jié)合的方法。發(fā)光二極管模塊由20個(gè)發(fā)光二極管來實(shí)現(xiàn)。數(shù)碼管顯示模塊由實(shí)驗(yàn)平臺(tái)上的LED顯示模塊實(shí)現(xiàn)。各發(fā)光二極管的陽極通過保護(hù)電阻接到+5V的電源上,陰極接到輸入端上,因此使其點(diǎn)亮使相應(yīng)使相應(yīng)輸入端為低電平。</p><p>  程序主要是由定時(shí)子程序、發(fā)光二極管顯示子程序、數(shù)碼管顯示子程序和中斷服務(wù)程序組成。</p&

8、gt;<p><b>  二.工作原理說明:</b></p><p>  此方案是通過并行接口芯片89c52和計(jì)算機(jī)的硬件連接,以及通過軟延時(shí)的方法進(jìn)行軟件編程,來實(shí)現(xiàn)十字路口交通燈的模擬控制。</p><p>  主控單片機(jī)采用一片STC89C52。根據(jù)題目要求,充分利用了單片機(jī)靈活控制的優(yōu)點(diǎn),發(fā)揮其優(yōu)勢功能,采用單片機(jī)控制信號(hào)燈和數(shù)碼管的顯示,提高了

9、系統(tǒng)的靈活性,設(shè)置方便。利用單片機(jī)產(chǎn)生的時(shí)鐘信號(hào)控制交通信號(hào)燈達(dá)到控制路口通行時(shí)間的效果。</p><p>  STC89C52提供以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,40個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量兩極中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,

10、但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。</p><p><b>  三.系統(tǒng)硬件</b></p><p><b>  3.1 硬件框圖:</b></p><p><b>  如圖所示</b><

11、;/p><p>  3.2 電源電路設(shè)計(jì)</p><p>  電源用5V直流變壓器直接供電</p><p><b>  VCC</b></p><p><b>  GND</b></p><p><b>  GND</b></p><p&

12、gt;  圖3-2 電源電路</p><p>  3.3 單片機(jī)最小系統(tǒng)介紹</p><p> ?。?)單片機(jī):本次設(shè)計(jì)使用單片機(jī)芯片AT89C51,采用雙列直插式封裝,單片機(jī)最小系統(tǒng)電路圖2-1如下:</p><p>  圖3-3 單片機(jī)最小系統(tǒng)</p><p> ?。?)晶振電路:本次設(shè)計(jì)采用的是12MHz的晶振,兩只電容在20pF~1

13、00pF之間取值,其取值在60pF~70pF時(shí)振蕩器頻率穩(wěn)定性較高,按照一般經(jīng)驗(yàn),外接晶體時(shí)兩個(gè)電容的取值為30pF,本次設(shè)計(jì)選為30pF。</p><p>  (3)復(fù)位電路:本次設(shè)計(jì)復(fù)位電路采用的是上電復(fù)位方式。上電復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,為了保證復(fù)位成功,只要RST引腳保持足夠時(shí)間(及兩個(gè)周期以上)。具體連接圖見單片機(jī)最小系統(tǒng)。</p><p>  3.4 LED

14、顯示器件工作原理</p><p>  LED顯示器件是通過發(fā)光二極管顯示字段的器件。在單片機(jī)控制系統(tǒng)中常用的是由7段LED數(shù)碼管,它的顯示塊中有8個(gè)發(fā)光二極管,7個(gè)發(fā)光二極管組成字符“8”,1個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn),因此有人稱7段LED數(shù)碼管為8段顯示器。LED數(shù)碼管的管腳配置如圖所示。</p><p>  LED數(shù)碼管管腳配置圖</p><p><b>

15、  四.系統(tǒng)軟件</b></p><p>  4.1 系統(tǒng)軟件框圖</p><p>  圖4-1系統(tǒng)軟件框圖</p><p><b>  4.2 工作情況表</b></p><p>  根據(jù)交通燈的工作過程和電路連接情況,交通燈的工作狀況見下表所示。正常工作時(shí)交通燈在前6個(gè)狀態(tài)間運(yùn)行。</p>

16、<p>  圖4-2工作狀況表</p><p>  4.3 數(shù)顯交通燈系統(tǒng)軟件流程圖</p><p>  圖4-3軟件流程圖</p><p>  根據(jù)設(shè)計(jì)要求,程序框圖如圖所示。軟件由C語言完成。軟件設(shè)計(jì)可以分為以下幾個(gè)功能模塊:</p><p><b>  主程序:初始化。</b></p>

17、<p>  計(jì)時(shí)程序模塊:為定時(shí)器的中斷服務(wù)子程序,完成1秒的時(shí)間定時(shí)。</p><p>  顯示程序模塊:完成20個(gè)發(fā)光二極管和2個(gè)LED數(shù)碼管的顯示驅(qū)動(dòng)。</p><p>  4.4 數(shù)顯交通燈時(shí)序圖</p><p><b>  A綠</b></p><p><b>  35s</b&g

18、t;</p><p><b>  A紅40s</b></p><p><b>  A黃5s</b></p><p><b>  A右20s</b></p><p><b>  Azy20s</b></p><p><b

19、>  B綠35s</b></p><p><b>  B紅</b></p><p><b>  35s</b></p><p><b>  B黃5s</b></p><p><b>  B右5s20s</b></p>

20、<p><b>  Bzy20s</b></p><p>  圖4-4 數(shù)顯交通燈時(shí)序圖</p><p><b>  五.調(diào)試及性能分析</b></p><p>  檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導(dǎo)線是否完全連接,對未連接的進(jìn)行修復(fù)。</p><p> 

21、 參照原理圖,檢查各個(gè)器件之間的連接是否連接正確,是否存在虛焊,經(jīng)測試,各連接不存在問題。</p><p>  另外就是利用proteus仿真軟件完成電路的搭建,運(yùn)行以發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤并及時(shí)改正。調(diào)試過程中,在Proteus中輸入編好的程序,注意保存時(shí)以.C格式保存,在仿真時(shí)發(fā)現(xiàn)數(shù)碼管顯示不正確,但編譯無誤,經(jīng)檢查發(fā)現(xiàn)編程中誤將共陽初始化定義為共陰的,經(jīng)修改后再次仿真,得出正確結(jié)果。</p><

22、;p>  在上機(jī)調(diào)試中發(fā)現(xiàn),由于此軟件延時(shí)的時(shí)間均為估算時(shí)間,不是特別準(zhǔn)確,對于交通要求特別高的地方不宜采用。如果是放到一個(gè)大的交通燈系統(tǒng)中,會(huì)影響到各個(gè)交通燈的運(yùn)行時(shí)間,可能整個(gè)系統(tǒng)對交通的指揮調(diào)度會(huì)大大偏離理論計(jì)算,不能有效地防止和消除交通堵塞現(xiàn)象;</p><p>  當(dāng)出現(xiàn)緊急情況,在特種車(如消防車、救護(hù)車)正要通過時(shí),這種軟件延時(shí)方式就不能完成;</p><p>  可以

23、看到,此方案用了12個(gè)發(fā)光LED,若是六車道以上的交通路口,就要36個(gè)燈,成本不合算不說,更是讓司機(jī)、行人眼花繚亂。</p><p><b>  六.心得體會(huì)</b></p><p>  關(guān)于交通燈系統(tǒng)設(shè)計(jì),我認(rèn)真查閱資料,學(xué)習(xí)關(guān)于這方面的知識(shí),比如說要了解89c52芯片中各個(gè)引角的功能,怎么樣去使用89c52這個(gè)可編程并行接口芯片,怎么樣用89c52這個(gè)地址鎖存器來

24、存儲(chǔ)高位地址和低位地址以及交通有哪些規(guī)則.在上學(xué)期理論學(xué)習(xí)的基礎(chǔ)上,又下了一次苦工夫,算是明白了設(shè)計(jì)一個(gè)系統(tǒng)的過程;也讓我體會(huì)到要想成功地設(shè)計(jì)某個(gè)東西,光學(xué)好專業(yè)知識(shí)是不夠的,必須要系統(tǒng)的知識(shí),無論在哪方面都要有個(gè)明白的概念,只有這樣才不至于在設(shè)計(jì)過程中摸不著頭腦,知道去哪些是需要查的資料,還有一點(diǎn),我覺得我在芯片編程方面,特別是在初始化方面是我最大的困難,或許是我的匯編語言學(xué)得不夠嗆好,我只能借助參考資料,查每一條指令的作用與功能,這

25、樣一來又鞏固了我的對匯編語言的了解.</p><p>  如此,我體會(huì)到學(xué)習(xí)理論知識(shí)固然重要,但在你學(xué)完了之后,你不在實(shí)踐中運(yùn)用你所學(xué)的知識(shí),我想學(xué)是白學(xué)了,過一段時(shí)間后,你可能什么都記不起來了,或許在學(xué)心里只有一個(gè)概念,認(rèn)為這個(gè)知識(shí)我曾經(jīng)學(xué)得不錯(cuò),我現(xiàn)在怎么想不起來了,一心想依賴課本;如果我們用實(shí)踐來學(xué)習(xí)知識(shí),你會(huì)努力地去搜索你想要需要的東西,即使是過了一段時(shí)間后,你也會(huì)記得你曾經(jīng)對這點(diǎn)不明白認(rèn)真地查閱過,你不

26、會(huì)忘記!</p><p>  經(jīng)過這兩周課程設(shè)計(jì)以后,我發(fā)現(xiàn)我們在課本里學(xué)到的知識(shí)是很少的,若想學(xué)到很多的知識(shí)必須自己去查閱大量的書籍。雖然這次課程設(shè)計(jì)中我們要用到自己以前熟悉的軟件,但是時(shí)間較久,自己必須重新了解和學(xué)習(xí)軟件的用法。</p><p>  不僅讓我了解怎么去設(shè)計(jì)程序,更重要的還讓我學(xué)會(huì)了怎么樣和別人合作。課程設(shè)計(jì)雖然很難做,其實(shí)最重要的是你去不去做的問題,再難做的事情只要你努

27、力了就會(huì)有結(jié)果,開始,我沒有查找資料,對軟件也不熟悉,也沒有和同學(xué)一起討論。而是一下子就開始去設(shè)計(jì),單打獨(dú)斗。每一天自己打開軟件弄個(gè)半天,然而總是得不出想要的結(jié)果,也不知道接下來要干什么。后來,和同學(xué)一起討論,找資料。終于我自己的思路也慢慢清晰了。最后經(jīng)過不斷努力,終于完成了任務(wù),也許做得不是很完美,但我覺得經(jīng)過這兩周,我得到了很大的收獲。</p><p><b>  七、參考文獻(xiàn)</b>&

28、lt;/p><p>  (1)范力旻主編.莊志紅、陳倫瓊、劉建功、何磊副主編.單片機(jī)原理及應(yīng)用技術(shù)</p><p>  (2)俞宗泉、俞晗、李建民編著.單片機(jī)原理與應(yīng)用技術(shù). 西安電子科技大學(xué)出版社</p><p>  (3)雷小平、 李曉東 羅海天編著. 單片機(jī)原理及應(yīng)用.機(jī)械工業(yè)出版社(4) 徐新民主編.肖亦、李林功 施竟文副主編. 單片機(jī)原理與應(yīng)用.浙江大學(xué)出版

29、社</p><p> ?。?)謝振輝編著. 改進(jìn)式MCS-51單片機(jī)實(shí)驗(yàn).科學(xué)出版社</p><p><b>  附錄A</b></p><p><b>  附錄B</b></p><p><b>  系統(tǒng)設(shè)計(jì)程序</b></p><p>  #inc

30、lude<reg52.h></p><p>  sbit azb=P1^0;</p><p>  sbit alv=P1^1;</p><p>  sbit ahong=P1^2;</p><p>  sbit ahuang=P1^3;</p><p>  sbit ayb=P1^4;</p>

31、<p>  sbit bza=P3^0;</p><p>  sbit blv=P3^1;</p><p>  sbit bhong=P3^2;</p><p>  sbit bhuang=P3^3;</p><p>  sbit bya=P3^4;</p><p>  //unsigned char co

32、de duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰顯示數(shù)值表0-9</p><p>  unsigned char code duanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p>  // 共陽顯示數(shù)值表0-9&

33、lt;/p><p>  static int shijian[]={700,100,400},s=0,t=0,t1=0,shi=3,ge=4,shige=34,shijian1[]={34,4,19};</p><p>  dingshiqi0()</p><p><b>  {</b></p><p>  TMOD=0x0

34、1;</p><p><b>  TH0=0x3c;</b></p><p><b>  TL0=0xb0;</b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>

35、<b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  main()</b></p><p><b>  {</b></p><p>  dingshiqi0();</p><p>&l

36、t;b>  while(1)</b></p><p><b>  {</b></p><p><b>  ayb=1;</b></p><p><b>  azb=1;</b></p><p><b>  bya=1;</b></p

37、><p><b>  alv=0;</b></p><p><b>  bhong=0;</b></p><p>  //P2=shima[shi];</p><p>  while(s!=1)</p><p><b>  {</b></p>

38、<p>  P2=duanma[shi];</p><p>  P0=duanma[ge];</p><p><b>  }</b></p><p><b>  alv=1;</b></p><p><b>  bhong=1;</b></p><

39、p><b>  ahuang=0;</b></p><p><b>  bya=0;</b></p><p>  //P2=shima[shi];</p><p>  //P0=gema[ge];</p><p>  while(s!=2)</p><p><b&

40、gt;  {</b></p><p>  P2=duanma[shi];</p><p>  P0=duanma[ge];</p><p><b>  }</b></p><p><b>  ahuang=1;</b></p><p><b>  bza

41、=1;</b></p><p><b>  ayb=0;</b></p><p><b>  bza=0;</b></p><p><b>  bya=0;</b></p><p>  //P2=shima[shi];</p><p>  /

42、/P0=gema[ge];</p><p>  while(s!=0)</p><p><b>  {</b></p><p>  P2=duanma[shi];</p><p>  P0=duanma[ge];</p><p><b>  }</b></p>

43、<p><b>  ayb=1;</b></p><p><b>  bza=1;</b></p><p><b>  bya=1;</b></p><p><b>  ahong=0;</b></p><p><b>  blv=0;

44、</b></p><p>  //P2=shima[shi];</p><p>  //P0=gema[ge];</p><p>  while(s!=1)</p><p><b>  {</b></p><p>  P2=duanma[shi];</p><p&g

45、t;  P0=duanma[ge];</p><p><b>  }</b></p><p><b>  ahong=1;</b></p><p><b>  blv=1;</b></p><p><b>  ahong=0;</b></p>

46、<p><b>  bhuang=0;</b></p><p>  //P2=shima[shi];</p><p>  //P0=gema[ge];</p><p>  while(s!=2)</p><p><b>  {</b></p><p>  P2=d

47、uanma[shi];</p><p>  P0=duanma[ge];</p><p><b>  }</b></p><p><b>  ahong=1;</b></p><p><b>  bhuang=1;</b></p><p><b&g

48、t;  azb=0;</b></p><p><b>  ayb=0;</b></p><p><b>  bya=0;</b></p><p>  //P2=shima[shi];</p><p>  //P0=gema[ge];</p><p>  while

49、(s!=0)</p><p><b>  {</b></p><p>  P2=duanma[shi];</p><p>  P0=duanma[ge];</p><p><b>  }</b></p><p><b>  }</b></p>

50、<p><b>  }</b></p><p>  zhongduan() interrupt 1</p><p><b>  {</b></p><p>  //static int s=0,t=0;</p><p><b>  TH0=0x3c;</b><

51、;/p><p><b>  TL0=0xb0;</b></p><p><b>  t++;</b></p><p><b>  t1++;</b></p><p>  if(t==shijian[s])</p><p><b>  {</b

52、></p><p><b>  s++;</b></p><p><b>  t=0;</b></p><p><b>  if(s==3)</b></p><p><b>  {</b></p><p><b> 

53、 s=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(t1==20)</p><p><b>  {</b></p><p><b>  t1=0;</b

54、></p><p><b>  shige--;</b></p><p>  if(shige==-1)</p><p><b>  {</b></p><p>  shige=shijian1[s];</p><p><b>  }</b><

55、;/p><p>  shi=shige/10;</p><p>  ge=shige%10;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  附錄C</b></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論