

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 單片機課程設計報告</b></p><p><b> --簡易交通燈設計</b></p><p> 班級:09級通信工程二班</p><p><b> 學號: </b></p><p><b> 姓名: </b><
2、;/p><p><b> 指導老師: </b></p><p> 日期:2012年3月24日</p><p> 課題:簡易交通信號控制器</p><p><b> 課程設計目的: </b></p><p> 單片機課程設計是一門實踐課程,要求學生具有制作調(diào)試單片機最小系
3、統(tǒng)及外設的能力,能夠掌握單片機內(nèi)部資源的使用。</p><p> 單片機課程設計內(nèi)容包括硬件設計、制作及軟件編寫、調(diào)試,學生在熟練掌握焊接技術的基礎上,能熟練使用單片機軟件開發(fā)環(huán)境Keil C51編程調(diào)試,并使用STC ISP調(diào)試工具采用串口下載方式聯(lián)調(diào)制作的單片機最小系統(tǒng)。</p><p> 課程設計內(nèi)容及要求:</p><p> 自制一個單片機最小系統(tǒng),包
4、括串口下載、復位電路,采用內(nèi)部定時器定時控制南北、東西的交通信號燈(采用LED模擬),交通信號燈由紅、黃、綠燈組成,東西、南北模擬路口由12路LED組成,其中南北、東西均采用并聯(lián)方式連接,雙向均有倒計時牌。</p><p><b> 控制方案如下:</b></p><p><b> 實現(xiàn)思路:</b></p><p>
5、 使用定時器0方式一及中斷實現(xiàn)精準定時,P0口控制兩組交通燈亮滅,P1,P2口分別控制路口倒計時牌十位和各位數(shù)值顯示,實現(xiàn)倒數(shù)功能!</p><p><b> 實現(xiàn)程序如下:</b></p><p> #include<reg52.h></p><p> #define uint unsigned int</p>
6、<p> #define uchar unsigned char</p><p> uint i=0,num=0;</p><p> uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,</p><p> 0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值0~9</p>&l
7、t;p> sbit dxgreen=P1^0;</p><p> sbit dxyellow=P1^1;</p><p> sbit dxred=P1^2;</p><p> sbit nbgreen=P1^3;</p><p> sbit nbyellow=P1^4;</p><p> sbit n
8、bred=P1^5;</p><p> sbit gewei=P1^6;</p><p> sbit shiwei=P1^7;</p><p> void main()</p><p><b> {</b></p><p><b> P1=0xff;</b><
9、;/p><p> TMOD = 0x01; //使用模式1,16位定時器</p><p> TH0=(65536-50000)/256; //定時50ms,裝初值</p><p> TL0=(65536-50000)%256;</p><p> EA=1; //總中斷打開</p><p&
10、gt; ET0=1; //定時器中斷打開</p><p><b> TR0=1; </b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> if(i==20)</
11、b></p><p><b> {</b></p><p><b> i=0;</b></p><p><b> num++;</b></p><p> if(num>=1&num<=30)</p><p><b&
12、gt; {</b></p><p> if(num>=1&num<=10)</p><p><b> {</b></p><p> if(num==1)</p><p><b> {</b></p><p><b>
13、 nbred=0;</b></p><p><b> dxred=1;</b></p><p> dxgreen=0;</p><p><b> }</b></p><p><b> shiwei=1;</b></p><p> P
14、0=table[2];</p><p><b> shiwei=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[10-num];</p><p><b> gewei=0;</b></p><p&
15、gt;<b> }</b></p><p> if(num>=11&num<=20)</p><p><b> {</b></p><p><b> shiwei=1;</b></p><p> P0=table[1];</p>&l
16、t;p><b> shiwei=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[20-num];</p><p><b> gewei=0;</b></p><p><b> }</b>
17、</p><p> if(num>=21&num<=30)</p><p><b> {</b></p><p><b> shiwei=1;</b></p><p> P0=table[0];</p><p><b> shiwei
18、=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[30-num];</p><p><b> gewei=0;</b></p><p> if(num>=23&num<=27) </p>&l
19、t;p><b> {</b></p><p> dxgreen=~dxgreen;</p><p><b> }</b></p><p> if(num>=28&num<=30)</p><p><b> {</b></p>&
20、lt;p> dxgreen=1;</p><p> dxyellow=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(num>=31&
21、amp;num<=60)</p><p><b> {</b></p><p> if(num>=31&num<=40)</p><p><b> {</b></p><p> if(num==31)</p><p><b> {
22、</b></p><p> dxyellow=1;</p><p><b> dxred=0;</b></p><p><b> nbred=1;</b></p><p> nbgreen=0;</p><p><b> }</b>
23、</p><p><b> shiwei=1;</b></p><p> P0=table[2];</p><p><b> shiwei=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[4
24、0-num];</p><p><b> gewei=0;</b></p><p><b> }</b></p><p> if(num>=41&num<=50)</p><p><b> {</b></p><p><
25、b> shiwei=1;</b></p><p> P0=table[1];</p><p><b> shiwei=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[50-num];</p><p&
26、gt;<b> gewei=0;</b></p><p><b> }</b></p><p> if(num>=51&num<=60)</p><p><b> {</b></p><p><b> shiwei=1;</b&g
27、t;</p><p> P0=table[0];</p><p><b> shiwei=0;</b></p><p><b> gewei=1;</b></p><p> P2=table[60-num];</p><p><b> gewei=0;&l
28、t;/b></p><p> if(num>=53&num<57) </p><p><b> {</b></p><p> nbgreen=~nbgreen;</p><p><b> } </b></p><p> if(num>
29、=58&num<=60)</p><p><b> {</b></p><p> nbgreen=1;</p><p> nbyellow=0;</p><p><b> }</b></p><p><b> }</b><
30、/p><p><b> }</b></p><p> if(num==61) </p><p><b> {</b></p><p><b> num=0;</b></p><p> nbyellow=1;</p><
31、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void timer0() interrupt 1 </p>&l
32、t;p><b> {</b></p><p> TH0=(65536-50000)/256; //定時50ms,裝初值</p><p> TL0=(65536-50000)%256;</p><p><b> i++;</b></p><p><b> }</b
33、></p><p> Proteus仿真結果如下:</p><p><b> 課程設計心得體會:</b></p><p> 其實在之前的單片機課程學習的時候,就發(fā)現(xiàn)自己對單片機比較感興趣了,自己買了個單片機開發(fā)板學習了一些簡單控制的教程,這些都為我這次成功的單片機課程設計打下了基礎,本次單片機課程設計一共歷時5天,從拿到課程開始,發(fā)
34、現(xiàn)和數(shù)電課程設計的課題差不多,當時的想法就是做一個不一樣的東西,呵呵,所以就選擇了做交通燈的設計。話說我編程的時候遇到了很多問題,導致仿真的時候現(xiàn)象老是不正確,后來經(jīng)過積極向同學和學長詢問和請教,最終完全成功的實現(xiàn)了正確仿真,不過程序里基本上全是使用的if語句,之所以選擇使用if語句,是因為自我感覺if語句的可讀性好些,呵呵,但是后來,也看到了一些學長們同樣課題的編程,發(fā)現(xiàn)他們的代碼比我的要精簡高效些,我發(fā)現(xiàn)需要學習和提高的地方還有很多
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論