基于單片機(jī)交通燈設(shè)計(jì)_第1頁
基于單片機(jī)交通燈設(shè)計(jì)_第2頁
基于單片機(jī)交通燈設(shè)計(jì)_第3頁
基于單片機(jī)交通燈設(shè)計(jì)_第4頁
基于單片機(jī)交通燈設(shè)計(jì)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-. z基于80C51單片機(jī)的交通燈設(shè)計(jì)班級:電信1101 :*:0703110107一、設(shè)計(jì)說明及材料清單設(shè)計(jì)說明:本交通燈的設(shè)計(jì)簡化了十字路交通燈,只將東西和南北兩個(gè)路向的交通燈情況表示出來,但也做了很多改良,設(shè)計(jì)了針對不同時(shí)間段不同的控制方案,并且采用串口通訊可將不同的控制方案下載到芯片中,外接掉電保存程序的非易失性存儲芯片和掉電仍可計(jì)時(shí)的時(shí)鐘芯片,以保證計(jì)時(shí)的正確性。材料清單:二、電路原理圖設(shè)計(jì)本設(shè)計(jì)共用到四款主要芯片,分別為單片機(jī)芯片80C51、EEPROM芯片AT24C02、時(shí)鐘芯片DS1302和轉(zhuǎn)串口芯片MA*232。下列圖為80C51單片機(jī)芯片的管腳圖,80C51有兩個(gè)16位定

2、時(shí)計(jì)數(shù)器,兩個(gè)外中斷,兩個(gè)定時(shí)計(jì)數(shù)中斷,及一個(gè)串行中斷,并有4個(gè)8位并行輸入口即I/O口。80C51部有時(shí)鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12MHz的晶振頻率。下列圖為AT24C02芯片的原理圖,該芯片是一種帶有I2C總線構(gòu)造的EEPROM芯片,通過SDA和SCL端口與總線連接,具有非易失性,掉電仍可保存程序。其管腳功能如下:管腳名稱功能說明A0、A1、A2 器件地址選擇本設(shè)計(jì)全部接地SDA 串行數(shù)據(jù)、地址與單片機(jī)的P1.6連接進(jìn)展數(shù)據(jù)、地址的傳輸SCL 串行時(shí)鐘與單片機(jī)的P1.7相連,串行時(shí)鐘信號輸入WP 寫保護(hù) WP=1,只能對其讀,寫制止,所以令WP=0VCC +1.8

3、V6.0V工作電壓電源輸入GND 地接地引腳下列圖是時(shí)鐘芯片的電路原理圖,DS1307是一款低功耗,地址和數(shù)據(jù)通過兩線雙向的串行總線的傳輸,節(jié)省單片機(jī)資源,該芯片可以提供秒,分,小時(shí)等信息,芯片有一個(gè)置的電源感應(yīng)電路,具有掉電檢測和電池切換功能,本設(shè)計(jì)中需要其停電后繼續(xù)計(jì)時(shí)。其中的7引腳是方波的輸出端,可接入單片機(jī)的可引起中斷的端口,利用引腳7產(chǎn)生的方波引起中斷,從而顯示時(shí)間的變化。下列圖是MA*232芯片的原理圖,因?yàn)樵O(shè)計(jì)要求與電腦有串口通訊,就是將交通燈不同時(shí)間段程序控制方案通過串口下載到單片機(jī)里,單片機(jī)上有一個(gè)全雙工的串行通訊口,但電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平

4、的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,所以采用了專用芯片MA*232進(jìn)展轉(zhuǎn)換,下列圖中的7、8端口分別和電腦上的RS232端口的2、3連接,芯片的9和10端口與單片機(jī)的串口相連,如下列圖所示:下列圖為交通燈的總體原理圖不包括上述芯片原理圖,根據(jù)要求選擇六只LED燈作為東西和南北方向的紅綠黃交通燈,并且每個(gè)方向上有時(shí)間計(jì)數(shù)提示,每個(gè)方向有兩位數(shù)碼管動(dòng)態(tài)顯示,最大為99,采用共陰極7段數(shù)碼管,單片機(jī)通過驅(qū)動(dòng)器SN7404的放大電流驅(qū)動(dòng)每位數(shù)碼管。P1.0至P1.5控制六只LED燈,數(shù)碼管由P0.0至P0.6控制進(jìn)展段選,P2.0至P2.3控制位選。三、程序設(shè)計(jì)系統(tǒng)框圖:主程序如下: #include

5、reg51.h #include#define EW_H 0#define EW_L 1#define SN_H 2#define SN_L 3/函數(shù)聲明void EW_NONE();void EW_RED();void EW_YELLOW();void EW_GREEN();void SN_NONE();void SN_RED();void SN_YELLOW();void SN_GREEN();void LED_INIT();void LED_WRITE(int dat,int con);/根據(jù)原理圖定義交通燈的引腳sbit EW_LED_RED = P10;sbit EW_LED_YEL

6、LOW = P11;sbit EW_LED_GREEN = P12;sbit SN_LED_RED = P13;sbit SN_LED_YELLOW = P14;sbit SN_LED_GREEN = P15;/定義P20-P23=LED數(shù)碼管控制sbit EW_wei*uan_H = P20;sbit EW_wei*uan_L = P21;sbit SN_wei*uan_H = P22;sbit SN_wei*uan_L = P23;/定義P00-P07=LED數(shù)碼管段選引腳sbit LED_DATA_A = P00;sbit LED_DATA_B = P01;sbit LED_DATA_C

7、 = P02;sbit LED_DATA_D = P03;sbit LED_DATA_E = P04;sbit LED_DATA_F = P05;sbit LED_DATA_G = P06;sbit SCL = P16;sbit SDA = P17;/變量聲明unsigned char counter,ew_sign,sn_sign,ew_time,sn_time,hour/定義段碼code char LED_CODE10 = 0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f;/*main函數(shù)開場*/main() counter = 3;/計(jì)數(shù)

8、器,每3600s查詢一次當(dāng)前hour ew_sign = 0;/東西標(biāo)志位,0代表紅燈,1代表綠燈,2代表黃燈 sn_sign = 0;/南北標(biāo)志位,0代表紅燈,1代表綠燈,2代表黃燈 ew_time = 3;/東西時(shí)間 sn_time = 3;/南北時(shí)間 hour = 24;/當(dāng)前hourunsigned ew_total_time24 = 1,1,1,1,1,30,30,30,30,30,30,30,60,60,60,60,30,30,30,30,30,30/東西各時(shí)間段綠燈亮總時(shí)間unsigned char sn_total_time24 = 1,1,1,1,1,30,30,60,60,

9、60,60,60,30,30,30,30,30,30,30,30,30,30/南北各時(shí)間段綠燈亮總時(shí)間LED_INTI();EW_RED();SN_RED();while(1)if(counter = 0)hour = GET_HOUR();counter = 3600;switch(hour)case 5:ew_time = 30;sn_time = 33;ew_sign = 1;sn_sign = 0;EW_GREEN();SN_RED();break;case 7:ew_time = 30;sn_time = 33;ew_sign = 1;sn_sign = 0;EW_GREEN();S

10、N_RED();break;case 12:ew_time = 60;sn_time = 63;ew_sign = 1;sn_sign = 0;EW_GREEN();SN_RED();break;case 18:ew_time = 30;sn_time = 33;ew_sign = 1;sn_sign = 0;EW_GREEN();SN_RED();break;default:break;if(ew_time = 0)switch(ew_sign)case 0:ew_sign = 1;ew_time = ew_total_timehour;EW_GREEN();break;case 1:ew_

11、sign = 2;ew_time = 3;EW_YELLOW();break;case 2:ew_sign = 0;ew_time = sn_total_timehour + 3;EW_RED();break;if(sn_time = 0)switch(sn_sign)case 0:sn_sign = 1;sn_time = sn_total_timehour;SN_GREEN();break;case 1:sn_sign = 2;sn_time = 3;SN_YELLOW();break;case 2:sn_sign = 0;sn_time = ew_total_timehour + 3;S

12、N_RED();break;LED_WRITE(ew_time/10,EW_H);LED_WRITE(ew_time%10,EW_L);LED_WRITE(sn_time/10,SN_H);LED_WRITE(sn_time%10,SN_L);/main函數(shù)到此完畢,以下是所用到函數(shù)的定義/*所用函數(shù)的定義*/ void LED_INIT()LED = 0*00;EW_wei*uan_H = 1;EW_wei*uan_L = 1;SN_wei*uan_H = 1;SN_wei*uan_L = 1;void LED_WRITE(int dat,int con)EW_wei*uan_H = 0;E

13、W_wei*uan_L = 0;SN_wei*uan_H = 0;SN_wei*uan_L = 0;if(dat 10)LED = LED_CODEdat;switch(con)case EW_H:EW_wei*uan_H = 1;break;case EW_L:EW_wei*uan_L = 1;break;case SN_H:SN_wei*uan_H = 1;break;case SN_L:SN_wei*uan_L = 1;break;void timer_int() interrupt 0EA = 0;counter-;switch(hour)case 0:case 1:case 2:ca

14、se 3:case 4:EW_YELLOW();SN_YELLOW();EW_NONE();SN_NONE();break;default:ew_time-;sn_time-;if(ew_sign = 1 & ew_time 0) EW_GREEN();EW_NONE();if(sn_sign = 1 & sn_time 0)SN_GREEN();SN_NONE();break;EA = 1;/* 延遲函數(shù)定義*/ void DELAY2()_nop_();_nop_();/延遲2usvoid DELAY4()DELAY2();DELAY2();/延遲4usvoid DELAY8()DELAY

15、4();DELAY4();/延遲8us/void IIC_WRITE( unsigned char dat)unsigned char temp;for(temp = 0; temp 8; temp+) SCL=0; if(dat temp) & 0*80) SDA=1; else SDA=0; DELAY2(); SCL=1;DELAY4(); SCL=0;DELAY4();SDA = 1;DELAY2();SCL = 1;DELAY4();SCL = 0;unsigned char GET_HOUR()/START hour = 0;unsigned char temp;SDA = 1;S

16、CL = 1;DELAY8();SDA = 0;DELAY8();/WRITEIIC_WRITE(0*D0);/HOURADDRESSIIC_WRITE(0*02);/RESTARTSDA = 1;SCL = 1;DELAY8();SDA = 0;DELAY8();/READIIC_WRITE(0*D1);/READHOUR SDA = 1;for(temp = 0; temp 8; temp+) hour = hour 1; SCL=1; DELAY2(); if(SDA = 1) hour+; SCL=0; /SENDNOACKSDA = 1;SCL = 1;DELAY4();SCL = 0;/STOPSDA = 0;SCL = 1;DELAY8();SDA = 1;DELAY4();SCL = 0;return hour;四、心得體會通過這次的實(shí)驗(yàn)設(shè)計(jì),我深入了對單片機(jī)的了解,也明白了日常生活中處處有自動(dòng)控制的例子,其中不乏有各種系列的單片機(jī),同時(shí)我也認(rèn)識到對單片機(jī)的學(xué)習(xí)應(yīng)該更加深入才能得心應(yīng)手,雖然只是一個(gè)芯片而已,但

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論