標(biāo)題: 十字路口交通燈單片機(jī)設(shè)計(jì)報(bào)告【代碼+Proteus仿真】 [打印本頁]
作者: diudiu 時(shí)間: 2013-6-26 16:16
標(biāo)題: 十字路口交通燈單片機(jī)設(shè)計(jì)報(bào)告【代碼+Proteus仿真】
51hei論壇是我見過的最好的單片機(jī)論壇,資料很多,回復(fù)也及時(shí),我今天也發(fā)幾個(gè)自己的作品,交通燈設(shè)置 全套資料
希望大家多多支持51hei.
QQ截圖20130626022930.jpg (77.83 KB, 下載次數(shù): 455)
下載附件
2013-6-26 02:43 上傳
QQ截圖20130626023702.jpg (21.59 KB, 下載次數(shù): 341)
下載附件
2013-6-26 02:43 上傳
仿真文件和源代碼下載:
C51代碼 Proteus原理圖 .rar
(22.57 KB, 下載次數(shù): 1700)
2013-6-26 02:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
設(shè)計(jì)報(bào)告下載:http://www.zg4o1577.cn/f/單片機(jī)課程設(shè)計(jì)報(bào)告-十字路口交通燈控制.pdf
作者: diudiu 時(shí)間: 2013-6-26 16:16
#include<reg51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={ //共陰極數(shù)碼管碼表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0xC9,0xFF,0x40};//設(shè)置碼,測試碼,不計(jì)時(shí)碼
void delay(uint x);//延時(shí)函數(shù)
void display(uchar,uchar,uchar,uchar); //數(shù)碼管顯示函數(shù)
void mkeys(); //鍵盤函數(shù)
void traffic(); //交通燈函數(shù)
uchar num,num1,num2, //1南北 2東西
shi1,ge1,shi2,ge2,
value1,value2,//南北 綠燈時(shí)間 黃燈時(shí)間
value3,value4,//東西 綠燈時(shí)間 黃燈時(shí)間
count1,count2,flag1,flag2; //南北標(biāo)記 東西標(biāo)記
void main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
/*初狀態(tài)*/
value1=15; //南北 黃綠燈默認(rèn)值
value2=5;
value3=10; //東西 黃綠燈默認(rèn)值
value4=5;
num1=value1; //南北數(shù)碼管先綠燈時(shí)間
num2=value2+value1;//東西紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
shi2=num2/10;
ge2=num2%10;
P1=0x41;//初始狀態(tài):東西紅燈 南北綠燈 20 15
while(1){
if(num==20) //定時(shí)器1s
{
num=0;
num1--;
num2--;
traffic();
shi1=num1/10;
ge1=num1%10;
shi2=num2/10;
ge2=num2%10;
}
mkeys();
display(shi1,ge1,shi2,ge2);
}
}
void traffic() //紅綠燈主控制程序
{
if(num1==0){
count1++;
if(count1==1){
P1=0x42;//東西紅燈 南北黃燈 5 5
num1=value2;
}
if(count1==2){
num1=value3+value4;//東西綠燈 南北紅燈 10 15
P1=0x14;
}
if(count1==3){
P1=0x41;// 東西黃燈 南北紅燈 5 5
num1=value4;
count1=0;
}
}
if(num2==0){
count2++;
if(count2==1){
//P1=0x14;//東西綠燈 南北紅燈
num2=value3;
}
if(count2==2){
P1=0x24;//東西黃燈 南北紅燈
num2=value4;
}
if(count2==3){
num2=value1+value2; //東西紅燈 南北綠燈
num1=value1;
count2=0;
}
}
}
void display(uchar shi1,uchar ge1,uchar shi2,uchar ge2) //數(shù)碼管顯示子函數(shù)
{
uchar temp;
temp=P2;
P2=0xfe;
P0=table[shi1];
delay(5);
P2=0xfd;
P0=table[ge1];
delay(5);
P2=0xfb;
P0=table[shi2];
delay(5);
P2=0xf7;
P0=table[ge2];
delay(5);
}
void delay(uint x)//延時(shí)子函數(shù)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void mkeys() //4*4矩陣鍵盤功能子函數(shù)
{
uchar temp,key;
P3=0xfe;//第一行線
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
case 0x7e:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
if(key==0) {//按鍵1:暫停
TR0=~TR0; //定時(shí)器取反
flag1=~flag1;//南北能夠設(shè)置標(biāo)志 0有效
flag2=~flag2;//東西能夠設(shè)置標(biāo)志
}
if(key==1&&flag1==0){ //按鍵2:設(shè)置時(shí)間按鈕
TR0=0;
P1=0x44;//禁止東南西北車輛 全為紅燈 可以設(shè)置
shi1=ge1=shi2=ge2=16;
}
if(key==2&&flag2==0){//按鍵3:設(shè)置完成 重啟
TR0=1;
num=0; //定時(shí)器 初始化
P1=0x41; //重新開始初狀態(tài)
num1=value1; //南北數(shù)碼管先綠燈時(shí)間
num2=value2+value1;//東西紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
shi2=num2/10;
ge2=num2%10;
}
if(key==3&&P1==0x44){ //按鍵4:測試交通燈各個(gè)設(shè)備的好壞
P1=0xff;
delay(1000);
P1=~P1;
shi1=ge1=shi2=ge2=17;
P1=0x44;
}
}
}
P3=0xfd;//第二行線
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp)
{
case 0xed:
key=0;
break;
case 0xdd:
key=1;
break;
case 0xbd:
key=2;
break;
case 0x7d:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
if(key==0&&P1==0x44){ //按鍵5:設(shè)置南北綠燈時(shí)間+
num1=value1;
if(num2!=159){ //@@@@保證交通合理,紅燈最大值計(jì)時(shí)159s,綠燈不再增加
num1++;
value1=num1;
}
shi1=num1/10;
ge1=num1%10;
num2=value1+value2;//顯示東西紅燈時(shí)間
shi2=num2/10;
ge2=num2%10;
}
if(key==1&&P1==0x44){ //按鍵6:設(shè)置南北黃燈時(shí)間+
num1=value2;
if(num2!=159){
num1++;
value2=num1;
}
shi1=num1/10;
ge1=num1%10;
num2=value1+value2;//顯示東西紅燈時(shí)間
shi2=num2/10;
ge2=num2%10;
}
if(key==2&&P1==0x44&&value1>3){ //按鍵7:設(shè)置南北綠燈時(shí)間- @@@@保證交通合理,綠燈最小值計(jì)時(shí)3s,綠燈不再減少
num1=value1;
num1--;
value1=num1;
shi1=num1/10;
ge1=num1%10;
num2=value1+value2;//顯示東西紅燈時(shí)間
shi2=num2/10;
ge2=num2%10;
}
if(key==3&&P1==0x44&&value2>3){ //按鍵8:設(shè)置南北黃燈時(shí)間-
num1=value2;
num1--;
value2=num1;
shi1=num1/10;
ge1=num1%10;
num2=value1+value2;//顯示東西紅燈時(shí)間
shi2=num2/10;
ge2=num2%10;
}
}
}
////||||||||||||||||||
P3=0xfb;//第三行線
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp)
{
case 0xeb:
key=0;
break;
case 0xdb:
key=1;
break;
case 0xbb:
key=2;
break;
case 0x7b:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
if(key==0&&P1==0x44){ //按鍵9:設(shè)置東西綠燈時(shí)間+
num2=value3;
if(num1!=159){
num2++;
value3=num2;
}
shi2=num2/10;
ge2=num2%10;
num1=value3+value4;//顯示南北紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
}
if(key==1&&P1==0x44){ //按鍵10:設(shè)置東西黃燈時(shí)間+
num2=value4;
if(num1!=159){
num2++;
value4=num2;
}
shi2=num2/10;
ge2=num2%10;
num1=value3+value4;//顯示南北紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
}
if(key==2&&P1==0x44&&value3>3){ //按鍵11:設(shè)置東西綠燈時(shí)間-
num2=value3;
num2--;
value3=num2;
shi2=num2/10;
ge2=num2%10;
num1=value3+value4;//顯示南北紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
}
if(key==3&&P1==0x44&&value4>3){ //按鍵12:設(shè)置東西黃燈時(shí)間-
num2=value4;
num2--;
value4=num2;
shi2=num2/10;
ge2=num2%10;
num1=value3+value4;//顯示南北紅燈時(shí)間
shi1=num1/10;
ge1=num1%10;
}
}
}
P3=0xf7;//第四行線 2未用
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp)
{
case 0xe7:
key=0;
break;
case 0xd7:
key=1;
break;
case 0xb7:
key=2;
break;
case 0x77:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
if(key==0&&P1==0x44){ //按鍵13:南北緊急情況:南北綠燈常亮 東西紅燈常亮
P1=0x41;
shi1=ge1=shi2=ge2=18;
}
if(key==1&&P1==0x44){ //按鍵14:東西緊急情況:東西綠燈常亮 南北紅燈常亮
P1=0x14;
shi1=ge1=shi2=ge2=18;
}
if(key==2&&P1==0x44){//按鍵15:
}
if(key==3&&P1==0x44){//按鍵16:
}
}
}
}
void T0_time() interrupt 1 //定時(shí)器T0 中斷子程序
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
}
作者: 八戒調(diào)皮 時(shí)間: 2013-7-1 18:59
挺好好的
作者: 冰藍(lán)色de激情 時(shí)間: 2013-7-3 16:36
謝謝謝謝謝謝謝謝謝謝
作者: 李強(qiáng) 時(shí)間: 2013-7-21 19:28
好好學(xué)習(xí)啊
作者: 的愛我 時(shí)間: 2013-12-18 11:46
你妹,程序錯那么多
作者: 942770740 時(shí)間: 2013-12-26 22:47
頂
作者: GZMNGZS 時(shí)間: 2013-12-31 15:47
{:soso_e179:}{:soso_e102:}
作者: y5201314 時(shí)間: 2014-4-1 23:50
怎一個(gè)霸氣了得,謝謝分享!
作者: ya123chiang 時(shí)間: 2014-5-6 08:40
謝......................


作者: delux3344 時(shí)間: 2014-5-13 13:25
好好學(xué)習(xí)啊
作者: omegaxzeroaxl 時(shí)間: 2014-5-28 08:22
感謝大大分享 最近需要!
作者: omegaxzeroaxl 時(shí)間: 2014-5-28 08:22
在次謝謝大大!
作者: busuzhike 時(shí)間: 2014-5-28 15:45
nice!!
作者: woahaookc 時(shí)間: 2014-6-6 23:49
adaskkdklas
作者: 瘋幸紫 時(shí)間: 2014-6-12 00:11
謝謝分享!
作者: 瘋幸紫 時(shí)間: 2014-6-12 08:06
有匯編嗎?
作者: 灬飛翔的巧克力 時(shí)間: 2014-9-26 20:28
厲害!
作者: 唉丶芒果 時(shí)間: 2014-10-15 13:20
這個(gè)好用嗎
作者: 唉丶芒果 時(shí)間: 2014-10-15 16:15
可以使用麼
作者: ismail 時(shí)間: 2014-12-29 22:06
正是我需要的
作者: ws85246 時(shí)間: 2015-1-13 15:56
學(xué)習(xí)參考一下
作者: goray2015 時(shí)間: 2015-2-19 20:47
程序調(diào)試過了嗎?
作者: goray2015 時(shí)間: 2015-2-19 20:48
感謝!
作者: ismail 時(shí)間: 2015-3-25 18:17
有匯編語言的程序嗎?
作者: 幸福的王鐵柱 時(shí)間: 2015-4-16 16:36
這個(gè)不錯啊,學(xué)習(xí)了,謝謝分享
作者: 51hei論壇 時(shí)間: 2015-4-19 22:11
bucuoo
作者: 1178294203 時(shí)間: 2015-4-20 10:47
謝謝了
作者: 一雙滑板鞋 時(shí)間: 2015-5-7 21:37
謝謝分享
作者: a_fei 時(shí)間: 2015-5-10 14:45



作者: 水生 時(shí)間: 2015-5-10 23:09
謝謝樓主慷慨分享
作者: yyyyooo 時(shí)間: 2015-5-11 12:39
謝謝,分享了
作者: 哎呀蜈蚣 時(shí)間: 2015-5-13 15:26
期待能夠多看看,不錯挺好的 支持
作者: 眾生作廢 時(shí)間: 2015-5-14 20:29
可以使用麼
作者: 陳志揚(yáng) 時(shí)間: 2015-5-17 09:04
good
作者: 雙人旅途 時(shí)間: 2015-5-29 14:05
51hei 有你更精彩!
作者: 雙人旅途 時(shí)間: 2015-5-29 14:05
51hei 有你更精彩。
作者: 雙人旅途 時(shí)間: 2015-5-29 14:05
51hei 有你更精彩。
作者: 單純的負(fù)擔(dān) 時(shí)間: 2015-6-17 17:07
數(shù)碼管不亮,沒用啊
作者: constanly 時(shí)間: 2015-6-24 14:19
車流量動態(tài)的話如何設(shè)計(jì)
作者: 532415834 時(shí)間: 2015-6-24 14:59
贊贊贊
作者: 727802492 時(shí)間: 2015-8-17 18:00
在次謝謝大大!
作者: 476386434 時(shí)間: 2015-9-8 10:52
haodongxi
作者: sunrise_ 時(shí)間: 2015-10-22 11:00
下下來看看,學(xué)習(xí)一下
作者: sunrise_ 時(shí)間: 2015-10-22 11:51
學(xué)習(xí)一下大神的作品
作者: 平心靜氣 時(shí)間: 2015-11-18 14:38
我想說 .hex 文件怎么搞啊 為什么是.才。。
作者: 平心靜氣 時(shí)間: 2015-11-18 15:07
看了一下 教程 原來還要keil 那個(gè)軟件 醉醉的。。
作者: 平心靜氣 時(shí)間: 2015-11-19 15:27
南北緊急和東西緊急 兩個(gè)按鈕 都是南北綠燈常亮啊。。。。有問題
作者: 平心靜氣 時(shí)間: 2015-11-19 15:29
原來每次調(diào)整都要 點(diǎn)一下設(shè)置 。。
作者: 平心靜氣 時(shí)間: 2015-11-20 14:33
大大 能不能提供一下 元器件清單啊 我想做個(gè)實(shí)物~
作者: 符點(diǎn)小圣龍 時(shí)間: 2015-11-30 19:53
可以可以
作者: sincoo 時(shí)間: 2015-12-8 15:36
好用。
作者: 貌似注冊過 時(shí)間: 2015-12-22 18:01
樓主好人
作者: vhff 時(shí)間: 2015-12-28 16:09
如果我需要修改時(shí)間,該怎么辦?
作者: a411301001 時(shí)間: 2015-12-28 20:21
期待能夠多看看,不錯挺好的 支持
作者: An-Xinz 時(shí)間: 2016-1-12 10:08
多謝樓主
作者: love_gavin 時(shí)間: 2016-4-26 17:42
不錯頂一個(gè)
作者: liyuehuan 時(shí)間: 2016-4-27 19:36
這個(gè)真的很不錯了,多謝了。
作者: ghfh2012 時(shí)間: 2016-4-29 15:03
在次謝謝大大!




作者: 莫丶小七 時(shí)間: 2016-5-9 17:29
不錯 頂
作者: haoshijie 時(shí)間: 2016-5-12 00:59
程序真多!
作者: killynote 時(shí)間: 2016-5-20 22:34
挺好好的
作者: 淺暗 時(shí)間: 2016-5-21 14:58
666
作者: 568441 時(shí)間: 2016-5-24 09:30
eeeedddwqdqwdwq
作者: virus1993 時(shí)間: 2016-6-7 10:55
感謝!
作者: fuliang 時(shí)間: 2016-6-8 10:16
非常感謝樓主。。。
作者: 852852852 時(shí)間: 2016-6-8 10:29
大神,信號燈找不到啊
作者: tcc1361001843 時(shí)間: 2016-6-14 19:05
這個(gè)可以的
作者: zimuren 時(shí)間: 2016-6-17 15:29
謝謝,正在找這個(gè)
作者: 上樹福吉 時(shí)間: 2016-6-30 00:39
謝謝,非常好用
作者: lemonack 時(shí)間: 2016-6-30 06:45
期待能夠多看看,不錯挺好的 支持
作者: wdsaffdsa 時(shí)間: 2016-7-2 12:33
bucuo cankaocankao
作者: 在路上adc 時(shí)間: 2016-10-30 18:32
很不錯,學(xué)學(xué)(●'◡'●)
作者: liwenqi 時(shí)間: 2016-11-7 16:49
請問樓主有匯編語言的代碼嗎?
作者: jgljgkf 時(shí)間: 2016-11-9 12:13
感謝分享,不過程序沒調(diào)試吧
作者: 一個(gè)好學(xué)生 時(shí)間: 2016-11-10 15:41
這個(gè)可以去掉4個(gè)顯示屏 然后用紅綠LED代替的吧
作者: 海風(fēng)chuan 時(shí)間: 2016-11-20 21:43
運(yùn)行不了啊
作者: wzh4562 時(shí)間: 2016-11-22 12:55
樓主給力
作者: wzh4562 時(shí)間: 2016-11-22 12:56
樓主給力啊啊
作者: Alice 時(shí)間: 2016-11-22 13:08
厲害了我的哥
作者: ttbjfree 時(shí)間: 2016-12-5 15:02
支持一下
作者: qq1158078864 時(shí)間: 2017-1-1 13:21
很好用
作者: 大搗蛋鬼 時(shí)間: 2017-1-1 21:51
不一樣
作者: study123456789 時(shí)間: 2017-2-8 16:52
很給力
作者: study123456789 時(shí)間: 2017-2-8 16:52
很給力
作者: study123456789 時(shí)間: 2017-2-8 16:53
感謝樓主分享
作者: qwertasdfg 時(shí)間: 2017-2-9 09:17
大家都能看的懂嗎 贊的一頭勁 我怎么看到有好多錯誤
作者: 冠希哥哥哥 時(shí)間: 2017-3-31 11:24
樓主能分享一下嘛 我的QQ郵箱yao756987613@qq.com 十分感謝樓主大神
作者: 王者M(jìn)S 時(shí)間: 2017-4-25 20:49
設(shè)計(jì)報(bào)告下載不了,被篩選器過濾了。好頭疼
作者: 離別—— 時(shí)間: 2017-5-3 20:23
不錯很好啊
作者: xqw111 時(shí)間: 2017-5-10 16:05
很給力!
作者: Zlover 時(shí)間: 2017-5-20 17:56
謝謝分享!
作者: 蕾蕾11 時(shí)間: 2017-6-5 13:31
贊一個(gè)
作者: kllkllkll 時(shí)間: 2017-6-6 15:16
想問一下 為什么沒有用573鎖存器?
作者: 翻翻翻 時(shí)間: 2017-6-8 19:59
我想下載這個(gè)資料,可是好像下載不了T-T
作者: sfd123 時(shí)間: 2017-6-16 11:31
謝謝分享!
作者: 1102396223 時(shí)間: 2017-6-16 12:16
很好的資料,給樓主點(diǎn)個(gè)贊
作者: nliang 時(shí)間: 2017-6-20 16:21
不錯,支持下
作者: 芒芒芒芒果 時(shí)間: 2017-6-21 16:07
為啥 我最后顯示的和你的不一樣
作者: 天圓地方 時(shí)間: 2017-6-22 09:15
很贊,加油。!
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产一区二区久久
|
国产不卡一区在线观看
|
99国产精品久久久久久久
|
国产精品视频中文字幕
|
亚洲视频在线免费观看
|
国产精品久久久久久久久免费相片
|
欧美精品一区二区蜜桃
|
欧美日韩精品专区
|
久久人人爽人人爽
|
日韩精品一区二区三区中文在线
|
99国产精品99久久久久久
|
中文字幕av亚洲精品一部二部
|
欧美性大战久久久久久久蜜臀
|
成人一区二区三区在线
|
罗宾被扒开腿做同人网站
|
亚洲高清在线
|
日本不卡视频
|
国产区精品
|
日本欧美国产在线观看
|
亚洲啊v在线
|
日韩免费看片
|
91最新入口
|
91在线看
|
日韩欧美久久精品
|
亚洲97|
久久精品16
|
麻豆av一区二区三区久久
|
成人精品福利
|
免费观看成人鲁鲁鲁鲁鲁视频
|
国产欧美一区二区三区另类精品
|
日韩国产精品一区二区三区
|
亚洲第一中文字幕
|
秋霞性生活
|
成人一区二区视频
|
天天曰天天曰
|
91久久国产精品
|
av一级久久
|
密室大逃脱第六季大神版在线观看
|
欧美日本一区二区
|
国产女人叫床高潮大片免费
|
国产中文字幕在线观看
|