久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51單片機(jī)控制交通信號(hào)燈Proteus仿真 代碼有詳細(xì)注釋
[打印本頁]
作者:
15855jutohhj
時(shí)間:
2021-6-11 09:35
標(biāo)題:
51單片機(jī)控制交通信號(hào)燈Proteus仿真 代碼有詳細(xì)注釋
使用51單片機(jī)作為控制系統(tǒng),內(nèi)含源代碼和protues仿真,實(shí)現(xiàn)交通信號(hào)燈的模擬
51hei.png
(42.2 KB, 下載次數(shù): 78)
下載附件
2021-6-11 17:25 上傳
單片機(jī)源程序如下:
/*****功能:以南北方向?yàn)橹鞲傻溃瑬|西方向?yàn)榇胃傻馈?br />
1 實(shí)現(xiàn)主干道通行15秒,轉(zhuǎn)通行注意狀態(tài),黃燈亮三秒。這段時(shí)間內(nèi)次干道保持紅燈常亮(數(shù)碼管顯示時(shí)間)
2 次干道通行10秒轉(zhuǎn)通行注意狀態(tài),黃燈亮兩秒。這段時(shí)間內(nèi)主干道保持紅燈常亮 (數(shù)碼管顯示時(shí)間)
3 緊急按鍵按下,所有路口紅燈
******/
/*******************************************調(diào)用頭文件宏定義******************************************/
#include <reg51.h>
#define D P1
#define uchar unsigned char
#define uint unsigned int
/*******************************************函數(shù)聲明*****************************************/
void z1(void);//南北通
void z2(void);//南北注意
void z3(void);//東西通
void z4(void);//東西注意
void gb(void); //全關(guān)
void jinji(void);//緊急狀態(tài),紅燈全亮
void sm(void); //鍵盤掃描
void plus(); //加一掃描
void minus(); //見一掃描
void plus2();
void minus2();
void timer(void);//定時(shí)器T1初始化
void time1(void);//定義定時(shí)器T1中斷服務(wù)程序
void display(void);//顯示函數(shù)
void delay(uint a);//10ms延時(shí)函數(shù)
/*************************************定義數(shù)組,全局變量***************************************/
uint duan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9段碼數(shù)組
uint y,gw,sw,gw2,sw2; //全局變量
int time,s,times,time2,times2,time3;
/*********************************定義12個(gè)小燈,數(shù)碼管,按鍵*********************************/
/*************12個(gè)小燈*******************/ //數(shù)碼管// // 按鍵 //
sbit d1=P2^0; sbit d2 =P2^1; sbit d3=P2^2; sbit w1=P0^0; sbit H1=P3^6; sbit H2=P3^7;
sbit d4=P2^3; sbit d5 =P2^4; sbit d6=P2^5; sbit w2=P0^1; sbit key1=P0^5;
sbit d7=P2^6; sbit d8 =P2^7; sbit d9=P3^2; sbit w3=P0^2; sbit key2=P0^6;
sbit d10=P3^3; sbit d11=P3^4; sbit d12=P3^5; sbit w4=P0^3; sbit key3=P0^7;
/*********************************************主函數(shù)**********************************************/
void main(void)
{
times=18;
time=15;
time2=10;
times2=12;
y=0,s=0; //定時(shí)器溢出計(jì)數(shù)初始化
//P1M1=0X00;
//P1M0=0XFF;
timer(); //啟動(dòng)定時(shí)器T1
while(1)
{
z1(); //主干道通行,綠燈15秒
z2(); //主干道注意,黃燈3秒
z3(); //次干道通行,綠燈10秒
z4(); //次干道注意,黃燈2秒
}
}
/******************不同狀態(tài)函數(shù),定時(shí)器初始化,定時(shí)器中斷***********************/
void z1(void)//南北通行,東西禁止
{
while(s<time)
{
sm();
plus();
minus();
if(TR1==1)
{
//綠 /黃 /紅
d4 =0;d5 =1;d6 =1;//北
d10=0;d11=1;d12=1;//南
d7 =1;d8 =1;d9 =0;//東
d1 =1;d2 =1;d3 =0;//西
}
sw2=(time-s)/10; //數(shù)碼管十位(南北主干道)
gw2=(time-s)%10; //數(shù)碼管個(gè)位
sw=(times-s)/10;
gw=(times-s)%10;
display(); //顯示
gb(); //關(guān)閉
} s=0;//清零重置
}
void z2(void)//南北注意,東西禁止
{
time3=3;
while(s<time3)
{
sm();
if(TR1==1)
{
//綠 /黃 /紅
d4 =1;d5 =0;d6 =1;//北
d10=1;d11=0;d12=1;//南
d7 =1;d8 =1;d9 =0;//東
d1 =1;d2 =1;d3 =0;//西
}
sw2=(time3-s)/10; //數(shù)碼管十位(南北主干道)
gw2=(time3-s)%10; //數(shù)碼管個(gè)位
sw=sw2; //東西次干道
gw=gw2;
display(); //顯示
gb(); //關(guān)閉
} s=0;
}
void z3(void)//東西通行南北禁止
{
while(s<time2)
{
sm();
plus2();
minus2();
//綠 /黃 /紅
d4 =1;d5 =1;d6 =0;//北
d10=1;d11=1;d12=0;//南
d7 =0;d8 =1;d9 =1;//東
d1 =0;d2 =1;d3 =1;//西
sw2=(times2-s)/10;; //南北主干道
gw2=(times2-s)%10;
sw=(time2-s)/10; //數(shù)碼管十位(東西次干道)
gw=(time2-s)%10; //數(shù)碼管個(gè)位
display(); //顯示
gb(); //關(guān)閉
} s=0;
}
void z4(void)//東西注意南北禁止
{
time3=2;
while(s<time3)
{
sm();
//綠 /黃 /紅
d4 =1;d5 =1;d6 =0;//北
d10=1;d11=1;d12=0;//南
d7 =1;d8 =0;d9 =1;//東
d1 =1;d2 =0;d3 =1;//西
sw=(time3-s)/10; //數(shù)碼管十位,(東西次干道)
gw=(time3-s)%10; //數(shù)碼管個(gè)位
sw2=sw; //南北主干道
gw2=gw;
display(); //顯示
gb(); //關(guān)閉
} s=0;
}
void jinji(void)//紅燈全亮,其他全滅,緊急狀態(tài)
{
//綠 /黃 /紅
d4 =1;d5 =1;d6 =0;//北
d10=1;d11=1;d12=0;//南
d7 =1;d8 =1;d9 =0;//東
d1 =1;d2 =1;d3 =0;//西
}
void gb(void)//全部關(guān)閉
{
//綠 /黃 /紅
d4 =1;d5 =1;d6 =1;//北
d10=1;d11=1;d12=1;//南
d7 =1;d8 =1;d9 =1;//東
d1 =1;d2 =1;d3 =1;//西
}
void delay(uint a) //@11.0592MHz 10ms延時(shí)(使用燒錄軟件產(chǎn)生的延時(shí)代碼)
{
for(a;a>0;a--)
{
unsigned char i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
}
void display() //數(shù)碼管顯示
{
w1=0; //十位
D=duan[sw];
delay(1);
w1=1;
D=0X00;
w2=0; //個(gè)位
D=duan[gw];
delay(1);
w2=1;
D=0x00;
w3=0; //十位
D=duan[sw2];
delay(1);
w3=1;
D=0X00;
w4=0; //個(gè)位
D=duan[gw2];
delay(1);
w4=1;
D=0x00;
}
void timer(void)
{
TMOD=0X10;
TH1=(65536-50000)/256; //50ms定時(shí)
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;
}
void time1(void) interrupt 3 //定時(shí)器T1中斷服務(wù)程序
{
TH1=(65536-50000)/256; //50ms定時(shí)
TL1=(65536-50000)%256;
y++;
if(y==20)
{s++; y=0;}
}
void sm(void)//緊急狀態(tài)掃描函數(shù)
{
H1=0; //按鍵另一端置零,當(dāng)按鍵按下時(shí)接地
if(key1==0) //判斷按鍵是否按下
{
delay(2); //消抖
while(!key1) //松手檢測
TR1=!TR1; //關(guān)閉定時(shí)器
while(key1==1) //四個(gè)方向全為紅燈,進(jìn)入緊急狀態(tài)
{
gb();
jinji(); //打開緊急狀態(tài)
gw=gw2=sw=sw2=8;
display();
}
while(key1==0) //松手檢測
display();
TR1=1; //打開定時(shí)器跳出
}
}
void plus()
{
H1=0; //按鍵另一端置
if(key2==0) //判斷按鍵是否按下
delay(2); //消抖
if(key2==0)
{
time+=1;
times+=1;}
while(!key2); //松手檢測
}
void minus()
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
51hei.png
(5.49 KB, 下載次數(shù): 74)
下載附件
2021-6-11 17:25 上傳
所有資料51hei提供下載:
交通信號(hào)燈.rar
(79.79 KB, 下載次數(shù): 43)
2021-6-11 09:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
15641613065
時(shí)間:
2021-6-30 10:53
原理圖呢
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产区视频在线观看
|
成人在线免费
|
日韩精品成人网
|
成人在线国产
|
国产又色又爽又黄又免费
|
亚洲一区二区久久
|
成人在线视频网
|
国产婷婷色一区二区三区
|
视频一区二区中文字幕
|
欧美久久久久久久久
|
日日夜夜天天综合
|
欧美中文字幕一区二区
|
欧美日韩视频在线第一区
|
精品啪啪
|
九九久久久
|
成人精品福利
|
久久高清精品
|
国内久久
|
先锋影音资源网站
|
中文字幕成人在线
|
三区四区在线观看
|
久久久成人免费一区二区
|
欧洲一区视频
|
国产偷录叫床高潮录音
|
中文字幕乱码一区二区三区
|
日韩精品一区二区三区视频播放
|
91九色在线观看
|
亚洲一区精品在线
|
天天干免费视频
|
国产精品视频久久
|
日韩欧美不卡
|
亚洲不卡在线视频
|
一区在线视频
|
a级黄色片在线观看
|
97人人超碰
|
免费国产成人av
|
欧美精品v国产精品v日韩精品
|
一级全黄少妇性色生活免费看
|
三级av在线
|
亚洲精品一区二区三区中文字幕
|
国产精品jizz在线观看老狼
|