欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 十字路口交通燈單片機設計報告【代碼+Proteus仿真】 [打印本頁]

作者: diudiu    時間: 2013-6-26 16:16
標題: 十字路口交通燈單片機設計報告【代碼+Proteus仿真】
51hei論壇是我見過的最好的單片機論壇,資料很多,回復也及時,我今天也發(fā)幾個自己的作品,交通燈設置 全套資料
希望大家多多支持51hei.






仿真文件和源代碼下載: C51代碼 Proteus原理圖 .rar (22.57 KB, 下載次數(shù): 1700)
設計報告下載:http://www.raoushi.com/f/單片機課程設計報告-十字路口交通燈控制.pdf



作者: diudiu    時間: 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};//設置碼,測試碼,不計時碼

void delay(uint x);//延時函數(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,//南北 綠燈時間 黃燈時間
value3,value4,//東西 綠燈時間 黃燈時間
count1,count2,flag1,flag2; //南北標記 東西標記

void main()
{	
		
		TMOD=0x01;
		TH0=(65536-45872)/256;
		TL0=(65536-45872)%256;
		EA=1;
		ET0=1;
		TR0=1;
		/*初狀態(tài)*/
		value1=15;		 //南北 黃綠燈默認值
		value2=5;	  
		value3=10;	  //東西 黃綠燈默認值
		value4=5;

		num1=value1; //南北數(shù)碼管先綠燈時間
		num2=value2+value1;//東西紅燈時間
		shi1=num1/10;
		ge1=num1%10;
		shi2=num2/10;
		ge2=num2%10;
		P1=0x41;//初始狀態(tài):東西紅燈 南北綠燈	  20 15

		while(1){
			if(num==20)	   //定時器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ù)
{
	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;  //定時器取反
			flag1=~flag1;//南北能夠設置標志 0有效
			flag2=~flag2;//東西能夠設置標志
		}

		if(key==1&&flag1==0){	//按鍵2:設置時間按鈕
			TR0=0;
			P1=0x44;//禁止東南西北車輛 全為紅燈 可以設置
			shi1=ge1=shi2=ge2=16;
		}

		if(key==2&&flag2==0){//按鍵3:設置完成 重啟
			TR0=1;
			num=0;	 //定時器 初始化
			P1=0x41; //重新開始初狀態(tài)
			num1=value1; //南北數(shù)碼管先綠燈時間
			num2=value2+value1;//東西紅燈時間
			shi1=num1/10;
			ge1=num1%10;
			shi2=num2/10;
			ge2=num2%10;
		}

		if(key==3&&P1==0x44){ //按鍵4:測試交通燈各個設備的好壞
			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:設置南北綠燈時間+

			num1=value1;
			if(num2!=159){ //@@@@保證交通合理,紅燈最大值計時159s,綠燈不再增加
				num1++;
				value1=num1;
			}

			shi1=num1/10;
			ge1=num1%10;

			num2=value1+value2;//顯示東西紅燈時間
			shi2=num2/10;
			ge2=num2%10;


		}
		if(key==1&&P1==0x44){	//按鍵6:設置南北黃燈時間+
			num1=value2;
			if(num2!=159){
				num1++;
				value2=num1;
			}

			shi1=num1/10;
			ge1=num1%10;
			num2=value1+value2;//顯示東西紅燈時間
			shi2=num2/10;
			ge2=num2%10;

		} 
		if(key==2&&P1==0x44&&value1>3){	//按鍵7:設置南北綠燈時間- @@@@保證交通合理,綠燈最小值計時3s,綠燈不再減少
			num1=value1;

			num1--;
			value1=num1;

			shi1=num1/10;
			ge1=num1%10;
			num2=value1+value2;//顯示東西紅燈時間
			shi2=num2/10;
			ge2=num2%10;

		}
		if(key==3&&P1==0x44&&value2>3){	//按鍵8:設置南北黃燈時間-	  
			num1=value2;

			num1--;
			value2=num1;

			shi1=num1/10;
			ge1=num1%10;
			num2=value1+value2;//顯示東西紅燈時間
			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:設置東西綠燈時間+
	
			num2=value3;
			if(num1!=159){
				num2++;
				value3=num2;
			}

			shi2=num2/10;
			ge2=num2%10;

			num1=value3+value4;//顯示南北紅燈時間
			shi1=num1/10;
			ge1=num1%10;



		}
		if(key==1&&P1==0x44){	//按鍵10:設置東西黃燈時間+
			num2=value4;

			if(num1!=159){
				num2++;
				value4=num2;
			}

			shi2=num2/10;
			ge2=num2%10;
			num1=value3+value4;//顯示南北紅燈時間
			shi1=num1/10;
			ge1=num1%10;

		} 
		if(key==2&&P1==0x44&&value3>3){	//按鍵11:設置東西綠燈時間-
			num2=value3;

			num2--;
			value3=num2;

			shi2=num2/10;
			ge2=num2%10;

			num1=value3+value4;//顯示南北紅燈時間
			shi1=num1/10;
			ge1=num1%10;


		}
		if(key==3&&P1==0x44&&value4>3){	//按鍵12:設置東西黃燈時間-
			num2=value4;

			num2--;
			value4=num2;

			shi2=num2/10;
			ge2=num2%10;
			num1=value3+value4;//顯示南北紅燈時間
			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 	//定時器T0 中斷子程序
{
	TH0=(65536-45872)/256;
	TL0=(65536-45872)%256;
	num++;
}

作者: 八戒調皮    時間: 2013-7-1 18:59
挺好好的
作者: 冰藍色de激情    時間: 2013-7-3 16:36
謝謝謝謝謝謝謝謝謝謝
作者: 李強    時間: 2013-7-21 19:28
好好學習啊
作者: 的愛我    時間: 2013-12-18 11:46
你妹,程序錯那么多
作者: 942770740    時間: 2013-12-26 22:47

作者: GZMNGZS    時間: 2013-12-31 15:47
{:soso_e179:}{:soso_e102:}
作者: y5201314    時間: 2014-4-1 23:50
怎一個霸氣了得,謝謝分享!

作者: ya123chiang    時間: 2014-5-6 08:40
謝......................
作者: delux3344    時間: 2014-5-13 13:25
好好學習啊
作者: omegaxzeroaxl    時間: 2014-5-28 08:22
感謝大大分享 最近需要!
作者: omegaxzeroaxl    時間: 2014-5-28 08:22
在次謝謝大大!
作者: busuzhike    時間: 2014-5-28 15:45
nice!!
作者: woahaookc    時間: 2014-6-6 23:49
adaskkdklas
作者: 瘋幸紫    時間: 2014-6-12 00:11
謝謝分享!
作者: 瘋幸紫    時間: 2014-6-12 08:06
有匯編嗎?
作者: 灬飛翔的巧克力    時間: 2014-9-26 20:28
厲害!
作者: 唉丶芒果    時間: 2014-10-15 13:20
這個好用嗎
作者: 唉丶芒果    時間: 2014-10-15 16:15
可以使用麼
作者: ismail    時間: 2014-12-29 22:06
正是我需要的
作者: ws85246    時間: 2015-1-13 15:56
學習參考一下
作者: goray2015    時間: 2015-2-19 20:47
程序調試過了嗎?
作者: goray2015    時間: 2015-2-19 20:48
感謝!
作者: ismail    時間: 2015-3-25 18:17
有匯編語言的程序嗎?
作者: 幸福的王鐵柱    時間: 2015-4-16 16:36

這個不錯啊,學習了,謝謝分享
作者: 51hei論壇    時間: 2015-4-19 22:11
bucuoo
作者: 1178294203    時間: 2015-4-20 10:47
謝謝了
作者: 一雙滑板鞋    時間: 2015-5-7 21:37
謝謝分享
作者: a_fei    時間: 2015-5-10 14:45

作者: 水生    時間: 2015-5-10 23:09
謝謝樓主慷慨分享
作者: yyyyooo    時間: 2015-5-11 12:39
謝謝,分享了
作者: 哎呀蜈蚣    時間: 2015-5-13 15:26
期待能夠多看看,不錯挺好的   支持
作者: 眾生作廢    時間: 2015-5-14 20:29

可以使用麼
作者: 陳志揚    時間: 2015-5-17 09:04
diudiu 發(fā)表于 2013-6-26 16:16
#include&lt;reg51.H>
#define uchar unsigned char
#define uint unsigned int

good

作者: 雙人旅途    時間: 2015-5-29 14:05
51hei 有你更精彩。
作者: 雙人旅途    時間: 2015-5-29 14:05
51hei 有你更精彩!
作者: 雙人旅途    時間: 2015-5-29 14:05
51hei 有你更精彩!
作者: 單純的負擔    時間: 2015-6-17 17:07
數(shù)碼管不亮,沒用啊
作者: constanly    時間: 2015-6-24 14:19
車流量動態(tài)的話如何設計
作者: 532415834    時間: 2015-6-24 14:59
贊贊贊
作者: 727802492    時間: 2015-8-17 18:00
在次謝謝大大!
作者: 476386434    時間: 2015-9-8 10:52
haodongxi
作者: sunrise_    時間: 2015-10-22 11:00
下下來看看,學習一下
作者: sunrise_    時間: 2015-10-22 11:51
學習一下大神的作品
作者: 平心靜氣    時間: 2015-11-18 14:38
我想說 .hex 文件怎么搞啊 為什么是.才。。
作者: 平心靜氣    時間: 2015-11-18 15:07
看了一下 教程 原來還要keil 那個軟件 醉醉的。。
作者: 平心靜氣    時間: 2015-11-19 15:27
南北緊急和東西緊急 兩個按鈕 都是南北綠燈常亮啊。。。。有問題
作者: 平心靜氣    時間: 2015-11-19 15:29
原來每次調整都要 點一下設置 。。
作者: 平心靜氣    時間: 2015-11-20 14:33
大大 能不能提供一下 元器件清單啊 我想做個實物~
作者: 符點小圣龍    時間: 2015-11-30 19:53
可以可以
作者: sincoo    時間: 2015-12-8 15:36
好用。
作者: 貌似注冊過    時間: 2015-12-22 18:01
樓主好人
作者: vhff    時間: 2015-12-28 16:09
diudiu 發(fā)表于 2013-6-26 16:16
**** 作者被禁止或刪除 內容自動屏蔽 ****

如果我需要修改時間,該怎么辦?
作者: a411301001    時間: 2015-12-28 20:21
期待能夠多看看,不錯挺好的   支持
作者: An-Xinz    時間: 2016-1-12 10:08
多謝樓主
作者: love_gavin    時間: 2016-4-26 17:42
不錯頂一個
作者: liyuehuan    時間: 2016-4-27 19:36
這個真的很不錯了,多謝了。
作者: ghfh2012    時間: 2016-4-29 15:03

在次謝謝大大!
作者: 莫丶小七    時間: 2016-5-9 17:29
不錯 頂
作者: haoshijie    時間: 2016-5-12 00:59
程序真多!
作者: killynote    時間: 2016-5-20 22:34
挺好好的
作者: 淺暗    時間: 2016-5-21 14:58
666                     
作者: 568441    時間: 2016-5-24 09:30
eeeedddwqdqwdwq
作者: virus1993    時間: 2016-6-7 10:55
感謝!
作者: fuliang    時間: 2016-6-8 10:16
非常感謝樓主。。!
作者: 852852852    時間: 2016-6-8 10:29
大神,信號燈找不到啊
作者: tcc1361001843    時間: 2016-6-14 19:05
這個可以的
作者: zimuren    時間: 2016-6-17 15:29
謝謝,正在找這個
作者: 上樹福吉    時間: 2016-6-30 00:39
謝謝,非常好用
作者: lemonack    時間: 2016-6-30 06:45
期待能夠多看看,不錯挺好的   支持
作者: wdsaffdsa    時間: 2016-7-2 12:33
bucuo cankaocankao
作者: 在路上adc    時間: 2016-10-30 18:32
diudiu 發(fā)表于 2013-6-26 16:16
#include&lt;reg51.H>
#define uchar unsigned char
#define uint unsigned int

很不錯,學學(●'◡'●)
作者: liwenqi    時間: 2016-11-7 16:49
請問樓主有匯編語言的代碼嗎?

作者: jgljgkf    時間: 2016-11-9 12:13
感謝分享,不過程序沒調試吧
作者: 一個好學生    時間: 2016-11-10 15:41
這個可以去掉4個顯示屏 然后用紅綠LED代替的吧
作者: 海風chuan    時間: 2016-11-20 21:43
運行不了啊
作者: wzh4562    時間: 2016-11-22 12:55
樓主給力
作者: wzh4562    時間: 2016-11-22 12:56
樓主給力啊啊

作者: Alice    時間: 2016-11-22 13:08
厲害了我的哥
作者: ttbjfree    時間: 2016-12-5 15:02
支持一下
作者: qq1158078864    時間: 2017-1-1 13:21
很好用
作者: 大搗蛋鬼    時間: 2017-1-1 21:51
不一樣
作者: study123456789    時間: 2017-2-8 16:52
很給力
作者: study123456789    時間: 2017-2-8 16:52
很給力
作者: study123456789    時間: 2017-2-8 16:53
感謝樓主分享
作者: qwertasdfg    時間: 2017-2-9 09:17
大家都能看的懂嗎 贊的一頭勁 我怎么看到有好多錯誤
作者: 冠希哥哥哥    時間: 2017-3-31 11:24
樓主能分享一下嘛  我的QQ郵箱yao756987613@qq.com   十分感謝樓主大神
作者: 王者MS    時間: 2017-4-25 20:49
設計報告下載不了,被篩選器過濾了。好頭疼
作者: 離別——    時間: 2017-5-3 20:23
不錯很好啊
作者: xqw111    時間: 2017-5-10 16:05
很給力!
作者: Zlover    時間: 2017-5-20 17:56
謝謝分享!
作者: 蕾蕾11    時間: 2017-6-5 13:31
贊一個
作者: kllkllkll    時間: 2017-6-6 15:16
想問一下 為什么沒有用573鎖存器?

作者: 翻翻翻    時間: 2017-6-8 19:59
我想下載這個資料,可是好像下載不了T-T
作者: sfd123    時間: 2017-6-16 11:31
謝謝分享!
作者: 1102396223    時間: 2017-6-16 12:16
很好的資料,給樓主點個贊
作者: nliang    時間: 2017-6-20 16:21
不錯,支持下
作者: 芒芒芒芒果    時間: 2017-6-21 16:07
為啥 我最后顯示的和你的不一樣
作者: 天圓地方    時間: 2017-6-22 09:15
很贊,加油。。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1