版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 物理與信息工程學(xué)院單片機課程設(shè)計 題 目:基于51單片機的交通燈 學(xué) 院:物理與信息工程學(xué)院 專 業(yè):自動化 目錄1、 概述-32、 系統(tǒng)各部分硬件的設(shè)計-4(1) 總的硬件設(shè)計流程-4(2) 各硬件部分的電路設(shè)計-53、 軟件的分塊流程圖及程序編寫-74、 軟件仿真圖-155、心得體會-161、概述背景:交通的發(fā)達(dá),標(biāo)志著城市的發(fā)達(dá),相對交通的管理則顯得越來越重要。對于復(fù)雜的城市交通系統(tǒng),為了確保安全,保證正常的交通秩序,十字路口的信號控制必需按照一定的規(guī)律變化,以便于車輛行人能順利地通過十字路口。正常情況下,十字路口的紅綠燈應(yīng)交替變換,考慮緊急情況下,如有救護(hù)車或警車到來時,應(yīng)優(yōu)先讓其通
2、過。 交通燈在安全行車過程中起著十分重要的作用, 現(xiàn)在交通燈一般設(shè)在十字路口, 在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個倒計時的顯示計時器來控制行車, 對于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實際行車過程中出現(xiàn)的情況, 主要有如下幾個缺點: 1兩車道讓車輪流放行時間相同且固定, 在十字路口, 經(jīng)常一個車道為主干道,車輛較多, 放行時間應(yīng)該長些; 另一車道為副干道, 車輛較少,放行時間短些。2 沒有考慮緊急車通過時, 兩車道應(yīng)采取的措施, 譬如, 有消防車通過執(zhí)行緊急任務(wù)時, 兩車道的車都應(yīng)停止, 讓緊急車通過。根據(jù)行車過程中出現(xiàn)的實際情況, 如何全面有效地利用交通燈指示
3、交通情況, 本人嘗試用單片機來控制交通燈, 在軟、硬件方面采取一些改進(jìn)措施, 使交通燈在控制中靈活而有效。實現(xiàn)的任務(wù): 單片機來實現(xiàn),根據(jù)設(shè)計要求,交通信號燈控制器的外部輸出信號為主、副車道紅、黃、綠燈共12個驅(qū)動信號;編程使相應(yīng)位復(fù)/置位來實現(xiàn)信號燈的亮/滅控制,使得十字路口的紅、綠燈交替點亮;在燈色交換時,黃燈閃爍提醒。設(shè)計要求有緊急車輛通過時,十字路口均顯示紅燈??梢酝ㄟ^軟件中斷來完成緊急任務(wù),定義T0為計數(shù)中斷并為下降沿觸發(fā),編寫對應(yīng)中斷向量子程序和中斷服務(wù)程序,完成中斷處理。設(shè)計還對定時控制有所要求。對于精確定時,應(yīng)該用計數(shù)器加以控制,硬件實現(xiàn)復(fù)雜度增加??紤]到該設(shè)計對時間精度要求不
4、高,所以采用軟件定時可以大大簡化電路。先計算出程序單部執(zhí)行的時間,設(shè)置循環(huán)參數(shù),利用if語句按設(shè)計要求完成定時控制。(4)當(dāng)南北方向車輛較多,東西方向車倆較少時,通過開關(guān)來改變各方向的燈來調(diào)節(jié)。 2、 系統(tǒng)硬件的設(shè)計與流程 晶振電路輸入控制輸出顯示外圍功能器件單片機晶振和復(fù)位電路:單片機系統(tǒng)的必要組成部分,控制單片機的機器周期和功能復(fù)位通用的晶振電路單片機的晶振電路是一種典型電路,分為內(nèi)部時鐘方式和外部時鐘方式兩種。輸入控制:是指在一定要求下,采取何種形式的控制方式來實現(xiàn)單片機不同功能的轉(zhuǎn)換,以及控制指令以何種方式傳送到單片機輸出顯示:是指單片機將需要顯示的數(shù)據(jù)發(fā)送到LED、液晶等顯示模塊,并
5、控制LED等顯示模塊按照一定的格式顯示的功能。外圍功能器件:單片機只是控制器件,對應(yīng)與一定的設(shè)計要求,需要加入特定功能的器件。單片機的最簡單系統(tǒng)是指單片機能正常工作所必須的外圍元件,主要由單片機、晶振電路和復(fù)位電路構(gòu)成。而輸入/輸出部分則通過單片機的I/O口實現(xiàn)。開關(guān)用來實現(xiàn)特殊的功能,當(dāng)有救護(hù)車等出現(xiàn)時,按下開關(guān),所有燈變成紅燈,讓救護(hù)車通行。3、 軟件的分塊流程與程序編寫1、 編寫延時程序void delay0(uint z)uint i,j;for(i=0;i<z;i+)/z為1是1msfor(j=0;j<110;j+);/* 500ms延時函數(shù) 晶振:11.0592MHz*
6、/void delay(uchar y) uchar k; uint i; for(;y>0;y-) for(i=1250;i>0;i-) for(k=180;k>0;k-); 2、定時1ms的程序代碼 當(dāng)單片機的晶振為12MHz時,計數(shù)值1代表的時間就是1us。計數(shù)器的容量是16位,也就是最大的計數(shù)值達(dá)到65536,因此計數(shù)計到65536就會產(chǎn)生溢出。 Void t0(void)interrupt 1 using 0 TH0=(65536-1000)/256; /設(shè)置定時器高8位初值 TL0=(65536-1000)%256; /設(shè)置定時器低8位初值3、 外部中斷 void
7、 xint0() interrupt 0 /外部中斷INT0 GREEN_ZHU_ON(); void xint1() interrupt 2 /外部中斷INT1 GREEN_ZHI_ON(); void GREEN_ZHU_ON()/外部中斷INT0顯示子程序 P1=0xdb; P3_0=0; P3_1=1; P3_4=1; P3_7=0; delay0(10000); void GREEN_ZHI_ON()/外部中斷INT1顯示子程序 P1_2=0; P3_0=0;P1_5=1;P3_7=1;P1_0=1;P1_6=1;P1_3=0;P3_1=0;P1_1=1;P1_4=1;P3_4=1;
8、 P0=0xff;P2=0X00;delay0(1000);return; 開 始計數(shù)單元清零TH0,TL0裝入初值各狀態(tài)的定義初始狀態(tài)東西綠燈,南北紅燈延時30s顯示數(shù)據(jù)處理東西黃燈亮,南北紅燈閃爍延時5s東西紅燈亮,南北綠燈亮東西紅燈閃爍,南北黃燈亮顯示數(shù)據(jù)處理延時20s顯示數(shù)據(jù)處理延時5s顯示數(shù)據(jù)處理四、總的程序 #include<reg51.h>#include<intrins.h>/做移位的一個頭文件頭文件#define uchar unsigned char/宏定義#define uint unsigned int/宏定義sbit P1_0=P10;sbit
9、 P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;sbit P3_0=P30;sbit P3_1=P31;sbit P3_4=P34;sbit P3_7=P37;uint aa,a,b,c=10; /*數(shù)碼管顯示0-9*/uint code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /*子函數(shù)聲明*/void delay0(uint z);void display(uint a,uint
10、 b);void flag1();void flag2();void flag3();void flag4();void xint0(); void xint1();void xtimer0();void GREEN_ZHU_ON();void GREEN_ZHI_ON(); /*/void main()EA=1;/開中斷EX0=1;/允許外部中斷INT0中斷IT0=0;/定義INT0觸發(fā)方式PX0=1;/中斷優(yōu)先級高EX1=1;/允許外部中斷INT1中斷IT1=0;/定義INT1觸發(fā)方式PX1=1;/中斷優(yōu)先級高 while(1) flag1(); /東西方向綠燈亮,南北方向紅燈亮 flag
11、2(); /東西方向黃燈亮,南北方向紅燈亮 flag3(); /東西方向紅燈亮,南北方向綠燈亮 flag4(); /東西方向紅燈閃爍,南北方向黃燈亮 void flag1()/東西方向綠燈亮,南北方向紅燈亮30s int time; time=11;/變量賦初值TMOD=0x01;/定時器T0工作于方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;/定時50msEA=1;/開中斷ET0=1;/開定時中斷TR0=1;/開定時器T0 while(1) P1=0x9e; /東西方向綠燈亮,南北方向紅燈亮30ms P3_0=1; P3_1=1; P3_4=1
12、; P3_7=0; if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0time-;/變量自減if(time=5)break; /跳出整個循環(huán)b=time%100/10;/顯示十位a=time%10;/顯示個位 display(a,b);void flag2() int time;time=6;/變量賦初值TMOD=0x01;/定時器T0工作于方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;/定時50msEA=1;/開中斷ET0=1;/開定時中斷TR0=1;/開定時器T0while(1) /東西方向黃燈閃爍,南北方向紅燈閃爍
13、P1_0=1; P1_1=0; P1_2=1; P1_3=1; P1_4=1; P1_6=1; P1_7=0; P3_0=1; P3_1=1; P3_4=1; if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0time-;/變量自減P1_1=P1_1;P1_7=P1_7;if(time<0)break;b=time%100/10;/顯示十位a=time%10;/顯示個位 display(a,b); void flag3() /東西方向紅燈亮,南北方向綠燈亮 20ms int time;time=21;/變量賦初值TMOD=0x01;/定時器T0工作于方式1TH0=
14、(65536-50000)/256;TL0=(65536-50000)%256;/定時50msEA=1;/開中斷ET0=1;/開定時中斷TR0=1;/開定時器T0while(1) P1=0xf3; P3_0=0; P3_1=0; P3_4=1; P3_7=1;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0time-;/變量自減if(time=6)break;b=time%100/10;/顯示十位a=time%10;/顯示個位 display(a,b);void flag4()/東西方向紅燈閃爍,南北方向黃燈亮int time;time=6;/變量賦初值TMOD=0x
15、01;/定時器T0工作于方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;/定時50msEA=1;/開中斷ET0=1;/開定時中斷TR0=1;/開定時器T0while(1) P1_0=1; P1_1=1; P1_3=1; P1_4=0; P1_5=1; P1_6=1; P1_7=1; P3_1=1; P3_4=0; P3_7=1;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0time-;/變量自減P1_4=P1_4;P3_4=P3_4;if(time<0)break;b=time%100/10;/顯示十位a=time
16、%10;/顯示個位 display(a,b);/*顯示子函數(shù)*/void display(uint a,uint b)P0=0xfe;P2=tableb;/顯示十位delay0(5);P2=0xff;/消隱P0=0xfd;P2=tablea;/顯示個位delay0(5);P2=0xff;/消隱 void xint0() interrupt 0 /外部中斷INT0 GREEN_ZHU_ON(); void xint1() interrupt 2 /外部中斷INT1 GREEN_ZHI_ON(); void GREEN_ZHU_ON()/外部中斷INT0顯示子程序 P1=0xdb; P3_0=0;
17、 P3_1=1; P3_4=1; P3_7=0; delay0(10000); void GREEN_ZHI_ON()/外部中斷INT1顯示子程序 P1_2=0; P3_0=0;P1_5=1;P3_7=1;P1_0=1;P1_6=1;P1_3=0;P3_1=0;P1_1=1;P1_4=1;P3_4=1; P0=0xff;P2=0X00;delay0(1000);return; /*定時中斷子函數(shù)*/void xtimer0() interrupt 1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;/定時50msaa+;/*延時子函數(shù)*/void del
18、ay0(uint z)uint i,j;for(i=0;i<z;i+)/z為1是1msfor(j=0;j<110;j+);/* 500ms延時函數(shù) 晶振:11.0592MHz*/void delay(uchar y) uchar k; uint i; for(;y>0;y-) for(i=1250;i>0;i-) for(k=180;k>0;k-); 軟件仿真圖5心得體會 通過做這次課程設(shè)計報告,我自己收獲了很多知識,也有很多的感受和體會。首先,我感觸最深的是,理論的學(xué)習(xí)必須與實際的動手操作相結(jié)合。在剛剛學(xué)習(xí)單片機時,我們對于知識的學(xué)習(xí)主要來自于書本以及老師的講解,平時的上機實驗也主要是以熟悉軟件為目的,學(xué)習(xí)怎么應(yīng)用軟件。我們自己很少動手設(shè)計程序及用仿真進(jìn)行驗證。在做實驗設(shè)計的過程中,我了解到只會書本的知識對于我們自行設(shè)計并沒有很大的用處,并且學(xué)習(xí)是不容許有參假的成分,如果你讀不懂程序,不會應(yīng)用軟件,那么你很難完成自己的設(shè)計報告。其次,通過這次的報告的設(shè)計,增強了我自主學(xué)習(xí)的能力,以前的學(xué)習(xí)主要來自于課本,我很少會通過其他途徑進(jìn)行學(xué)習(xí)。由于在完成這次的報告的過程中,我們會遇到很多我們以前沒有見過的問題,那么,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動態(tài)心電圖目前最需要解決的問題教學(xué)課件
- 【大學(xué)課件】國際新興服務(wù)貿(mào)易產(chǎn)業(yè)
- 【物理課件】運動快慢的描述 速度課件
- DB32T-長江河道疏浚采砂項目施工質(zhì)量驗收規(guī)范編制說明
- 信息與通信射頻電路與天線課件
- 《電梯安全經(jīng)驗分享》課件
- 現(xiàn)在完成時復(fù)習(xí)課件
- 單位人力資源管理制度集粹選集十篇
- 固收定期報告:資金面均衡偏松年末票據(jù)利率上行
- 單位管理制度品讀選集【人力資源管理】
- 初三語文總復(fù)習(xí)全程計劃表
- 電子技術(shù)基礎(chǔ)與技能-機工教案第九章教案555集成定時器介紹
- 污水處理運行質(zhì)量保證措施
- 國家食源性疾病監(jiān)測工作標(biāo)準(zhǔn)手冊
- 食材供貨及質(zhì)量保障措施方案
- 混凝土攪拌車課件
- 基于單片機的智能充電器設(shè)計
- 關(guān)于新中國史簡介 新中國史簡介 最好
- 營養(yǎng)學(xué)概論演示
- 統(tǒng)編版語文四年級上冊期末總復(fù)習(xí)課件
- 2023年四川省鄉(xiāng)村醫(yī)生招聘筆試題庫及答案解析
評論
0/150
提交評論