該交通燈能夠實現對復雜路口交通燈的控制,每個方向都包括直行、左轉、右轉方向以及人行橫道紅、黃、綠三色指示燈,每個方向均設有兩位數數碼管顯示倒計時的功能。通過中斷設置有四個按鍵,分別行使時間加、時間減、東西方向強制通行、南北方向強制通行的功能。
交通燈截圖2.PNG (153.5 KB, 下載次數: 54)
下載附件
電路仿真截圖1
2019-1-6 17:21 上傳
交通燈截圖.PNG (146 KB, 下載次數: 66)
下載附件
電路仿真截圖2
2019-1-6 17:20 上傳
部分單片機源程序:- /***************************************************
- 項目:復雜路口交通燈
- 功能:本程序能夠實現對復雜路口交通燈的控制,每個方向
- 都包括直行、左轉、右轉方向以及人行橫道紅、黃、
- 綠三色指示燈,每個方向均設有兩位數數碼管顯示倒
- 計時的功能。通過中斷設置有四個按鍵,分別行使時
- 間加、時間減、東西方向強制通行、南北方向強制通
- 行的功能。
- 姓名:醉清風
- 注意:各端口意義詳見注釋!
- ***************************************************/
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- /*****定義控制位**********************/
- sbit EW_LED2=P2^3; //EW_LED2控制位
- sbit EW_LED1=P2^2; //EW_LED1控制位
- sbit SN_LED2=P2^1; //SN_LED2控制位
- sbit SN_LED1=P2^0; //SN_LED1控制位
- sbit SNstraight_Green=P1^3; //南北直行綠燈
- sbit EWstraight_Green=P1^0; //東西直行綠燈
- sbit SNstraight_Yellow=P1^4; //南北直行黃燈
- sbit EWstraight_Yellow=P1^1; //東西直行黃燈
- sbit SNstraight_Red=P1^5; //南北直行紅燈
- sbit EWstraight_Red=P1^2; //東西直行紅燈
- sbit SNright_Green=P2^7; //南北右拐綠燈
- sbit EWright_Green=P1^6; //東西右拐綠燈
- sbit SNright_Red=P3^4; //南北右拐紅燈
- sbit EWright_Red=P2^4; //東西右拐紅燈
- sbit SNleft_Green=P3^5; //南北左拐綠燈
- sbit EWleft_Green=P2^5; //東西左拐綠燈
- sbit SNleft_Red=P3^7; //南北左拐紅燈
- sbit EWleft_Red=P2^6; //東西左拐紅燈
- sbit SNturn_Yellow=P3^6; //南北轉向黃燈
- sbit EWturn_Yellow=P1^7; //東西轉向黃燈
-
- sbit Time_Button=P3^0; //時間加減按鈕判斷輸入端
- sbit QZ_Button=P3^1; //強制通行方向判斷輸入端
- bit Flag_SNstraight_Yellow; //SN直行黃燈標志位
- bit Flag_EWstraight_Yellow; //EW直行黃燈標志位
- bit Flag_SNturn_Yellow; //SN轉向黃燈標志位
- bit Flag_EWturn_Yellow; //EW轉向黃燈標志位
- bit QZ_EW; //EW強制通行標志
- bit QZ_SN; //SN強制通行標志
- bit QZ_flag; //數碼管強制標志
- char Time_EW; //東西方向倒計時單元
- char Time_SN; //南北方向倒計時單元
- uchar EW=30,SN=30,EWL=60,SNL=60; //倒計時時長</div><div>uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//0~~~~9段選碼
- /*********************延時函數**********************/
- void Delay(uchar a)
- {
- while(a--);
- }
- /*******************顯示函數,顯示倒計時的值**********************/
- void Display(void)
- {
- char h,l;
- h=Time_EW/10; //EW方向計時的十位數
- l=Time_EW%10; //EW方向計時的個位數
- P0=table[l]; //顯示EW計時時間的低位
- EW_LED2=1;
- Delay(2);
- EW_LED2=0;
- P0=table[h]; //顯示EW計時時間的高位
- EW_LED1=1;
- Delay(2);
- EW_LED1=0;</div><div> h=Time_SN/10; //SN方向計時的十位數
- l=Time_SN%10; //SN方向計時的個位數
- P0=table[l]; //顯示SN計時時間的低位
- SN_LED2=1;
- Delay(2);
- SN_LED2=0;
- P0=table[h]; //顯示SN計時時間的高位
- SN_LED1=1;
- Delay(2);
- SN_LED1=0;
-
- }
- /*******************顯示函數,強制通行的值**********************/
- void Display1(void)
- {
- P0=table[8];
- if(QZ_flag==1)
- {
- EW_LED2=1;
- EW_LED1=1;
- SN_LED2=1;
- SN_LED1=1;
-
- }
- else
- {
- EW_LED2=0;
- EW_LED1=0;
- SN_LED2=0;
- SN_LED1=0;
- }
-
-
復制代碼
0.png (36.53 KB, 下載次數: 86)
下載附件
2019-1-6 19:58 上傳
全部資料51hei下載地址:
復雜路口交通燈設計.zip
(100.61 KB, 下載次數: 141)
2019-1-6 17:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|