交通燈實驗報告-單片機C語言_第1頁
交通燈實驗報告-單片機C語言_第2頁
交通燈實驗報告-單片機C語言_第3頁
交通燈實驗報告-單片機C語言_第4頁
交通燈實驗報告-單片機C語言_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

二、用51單片機設計交通燈、彩燈控制器可實現(xiàn)功能:1)通過51單片機,在面包板上模擬交通紅綠燈。分為主干道和支干道,每條道上安裝紅、綠、黃三種顏色的燈,并用兩位八段數(shù)碼管顯示主干道三種燈亮的時間,由程序控制自動循環(huán),紅燈40秒,綠燈35秒,黃燈5秒;2)用單片機的外部中斷0的產生來控制六路彩燈,此處只設計了四種花型。二、電路原理圖:源程序如下:#include"reg51.h"#include<intrins.h>voiddisplay(unsignedintdigital);voiddelay(unsignedinttime);voidcolour();unsignedshu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};Unsignedled[41]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff,0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff,0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};sbita=P2^6;sbitb=P2^7;sbitG=P2^0;sbitY=P2^1;sbitR=P2^2;sbitg=P2^3;sbity=P2^4;sbitr=P2^5;intflag=0;//全局變量,當它為1時顯示彩燈,當它為0時,顯示交通燈#definestate_1G=0;Y=1;R=1;g=1;y=1;r=0//主干道綠,支干道紅#definestate_2G=1;Y=0;R=1;g=1;y=1;r=0//主干道黃,支干道紅#definestate_3G=1;Y=1;R=0;g=0;y=1;r=1//主干道紅,支干道綠#definestate_4G=1;Y=1;R=0;g=1;y=0;r=1//主干道紅,支干道紅voidmain(void){unsignedinti;EA=1;//首先開啟總中斷EX0=1;//開啟外部中斷0IT0=1;//設置觸發(fā)方式為下降沿觸發(fā)while(1){while(flag==0){state_1;for(i=35;i>0;i--)delay(1);state_2;for(i=5;i>0;i--){delay(i);y1=~y1;}state_3;for(i=20;i>0;i--)delay(i);state_4;for(i=5;i>0;i--){delay(i);y2=~y2;}}while(flag==1)colour();}}//顯示子程序,實現(xiàn)用兩位數(shù)碼管顯示燈亮的時間voiddisplay(unsignedintdigital){unsignedintk;unsignedintge=digital%10,shi=digital/10;//將十位與個位分離for(k=0;k<30000;k++){a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}//實現(xiàn)彩燈控制voidcolour(){P1=0xff;P3=0x00;P2=0xff;while(1){unsignedintj;for(j=0;j<41;j++)//循環(huán)程序演示四種花型{P2=led[j];delay(1);}delay(5);}}//中斷函數(shù)voidkey_scan()interrupt0//關鍵字"interrupt",這是C語言的中斷函數(shù)表示法,,單片機有6個中斷口,外部中斷0的優(yōu)先級最高,在程序里我們只用外部中斷0{flag++;if(flag==2)flag=0;}//延時程序voiddelay(unsignedinttime)//參數(shù)time大小決定延時時間長短{unsignedintj,k;time=time*5;for(j=0;j<time;j++)for(k=0;k<10000;k++);}源程序分析1、在電路設計時我用了共陰極八段數(shù)碼管來顯示時間:unsignedshu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};數(shù)組中十個數(shù)分別表示0到9十個數(shù);2、在設計彩燈時,我直接利用交通燈的主干道和支干道的六個燈設計彩燈:unsignedled[48]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff,0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff,0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};數(shù)組中的48個數(shù)共演示了四種花型花型狀態(tài)編碼表如下:序號花型(一)花型(二)花型(三)花型(四)1011111011111110011011011210111100111110000110110131101110001110000001101104111011000011100001101101511110100000111001101101161111100000001111111111117111101000001011110000000811101100001100110011111191101110001110000000000001010111100111100110011111111011111011111011110000000121111111111111111111111111其中輸出為零的位為燈亮。3、voiddisplay(unsignedintdigital){unsignedintk;unsignedintge=digital%10,shi=digital/10;//將十位與個位分離for(k=0;k<30000;k++){a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}顯示子程序中將時間的十位與個位分離,用a、b來選擇數(shù)碼管將個位與十位分時輸出。電路分析用單片機設計交通燈和彩燈時,用程序來控制,因此外圍電路比較簡單。只用一片C51芯片、一個限流電阻、兩個電容、一個晶振、發(fā)光

溫馨提示

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

評論

0/150

提交評論