|
通過單片機模擬交通燈,東西方向黃綠紅,南北方向黃綠紅的工作方式。
時間:
東西方向綠燈26秒,
黃燈時間2秒。
南北方向綠燈時間3秒,
黃燈時間3秒
擴展功能:
1、顯示時間倒計時。數(shù)碼管顯示倒計時
2、通過按鍵控制東西方向強制綠燈,或南北方向強制綠燈(應對緊急情況)按鍵東西綠同時南北紅?
3、夜晚能夠進行所有黃燈閃爍。閃爍按鍵
4、能夠統(tǒng)計車輛通過數(shù)量,并將數(shù)據進行匯總并發(fā)送至上位機。中斷開關加一
樓主目前只實現(xiàn)了基本功能,通過控制P1口電平狀態(tài)來切換紅綠燈,在實現(xiàn)擴展功能3時寫了一個按鍵但無效,求老哥們指點,當然也不止局限于擴展3,其他幾個有好的想法也請不吝賜教
工程代碼附件以上傳
某度鏈接(永久):https://pan.baidu.com/s/1gksnEy1bnYcpb2vm4uaO0Q
提取碼:8ged
仿真圖:
- //乞丐版
- /*交通燈*/
- #include<reg51.h>
- //延時n毫秒
- void delay_ms(unsigned int n)
- {
- unsigned int i=0,j=0;
- for(i=0;i<n;i++)
- for(j=0;j<123;j++);
- }
- void main()//主函數(shù)
- {
- while(1)//死循環(huán)
- { //輪流送值給P1口
- P1=0xc9;//
- delay_ms(26000);//綠26s
- P1=0xa9;//
- delay_ms(2000);//黃2s
- P1=0x9c;//
- delay_ms(3000);//綠3s
- P1=0x9a;//
- delay_ms(3000);//黃3s
-
- }
- }
復制代碼 加擴展功能黃燈閃爍(無效)
- /*交通燈*/
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit key1 = P2^2;
- uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數(shù)目管0~9段選碼
- uchar code S[4]={0xc9,0xa9,0x9c,0x9a};//交通信號燈控制代碼(一個控制碼一種狀態(tài))
- //延時n毫秒
- void delay_ms(unsigned int n)
- {
- unsigned int i=0,j=0;
- for(i=0;i<n;i++)
- for(j=0;j<123;j++);
- }
- void main()//主函數(shù)
- {
- while(1)//死循環(huán)
- {
-
- //輪流送值給P1口
- P1=S[0];//
- delay_ms(6000);//綠26s
- P1=S[1];//
- delay_ms(2000);//黃2s
- P1=S[2];//
- delay_ms(3000);//綠3s
- P1=S[3];//
- delay_ms(3000);//黃3s
- if(key1==0)//夜間模式黃燈閃爍
- {delay_ms(10);
- if(key1==0)
- { P1=0xAA;//只有黃燈亮
- delay_ms(500);
- P1=0x88;//黃燈滅
- delay_ms(500);
- }
- }
- }
- }
復制代碼
|
-
加黃燈.png
(53.54 KB, 下載次數(shù): 135)
下載附件
2020-6-17 12:39 上傳
仿真圖
-
-
交通燈.zip
2020-6-17 12:42 上傳
點擊文件名下載附件
68.33 KB, 下載次數(shù): 25
代碼+仿真
評分
-
查看全部評分
|