久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 57836|回復: 147
打印 上一主題 下一主題
收起左側

十字路口交通燈單片機設計報告【代碼+Proteus仿真】

  [復制鏈接]
跳轉到指定樓層
樓主
ID:51271 發表于 2013-6-26 16:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51hei論壇是我見過的最好的單片機論壇,資料很多,回復也及時,我今天也發幾個自己的作品,交通燈設置 全套資料
希望大家多多支持51hei.






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


評分

參與人數 15黑幣 +56 收起 理由
xuyingjian123 + 5 很給力!
if_2 + 2 很給力!
qrwds + 2 共享資料的黑幣獎勵!
warten + 5 贊一個!
zly747857549 + 1 共享資料的黑幣獎勵!
用戶名已被占用 + 5 贊一個!
丿Sapphire + 5 共享資料的黑幣獎勵!
jyx310528930 + 1 贊一個!
3535435345 + 5 回帖助人的獎勵!
maybea + 5 共享資料的黑幣獎勵!
天圓地方 + 4 贊一個!
352159468 + 5 贊一個!
qq1158078864 + 1 很給力!
791712429 + 5 很給力!
亙黑鹿 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏28 分享淘帖 頂16 踩
回復

使用道具 舉報

沙發
ID:51271 發表于 2013-6-26 16:16 | 只看該作者
#include<reg51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={	 //共陰極數碼管碼表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,

0xC9,0xFF,0x40};//設置碼,測試碼,不計時碼

void delay(uint x);//延時函數
void display(uchar,uchar,uchar,uchar);	//數碼管顯示函數
void mkeys();	//鍵盤函數
void traffic();	//交通燈函數

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;
		/*初狀態*/
		value1=15;		 //南北 黃綠燈默認值
		value2=5;	  
		value3=10;	  //東西 黃綠燈默認值
		value4=5;

		num1=value1; //南北數碼管先綠燈時間
		num2=value2+value1;//東西紅燈時間
		shi1=num1/10;
		ge1=num1%10;
		shi2=num2/10;
		ge2=num2%10;
		P1=0x41;//初始狀態:東西紅燈 南北綠燈	  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)	//數碼管顯示子函數
{		
		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)//延時子函數
{
	uint i,j;
	for(i=x;i>0;i--)
		for(j=110;j>0;j--);
}

void mkeys()  //4*4矩陣鍵盤功能子函數
{
	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; //重新開始初狀態
			num1=value1; //南北數碼管先綠燈時間
			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++;
}
回復

使用道具 舉報

板凳
ID:51419 發表于 2013-7-1 18:59 | 只看該作者
挺好好的
回復

使用道具 舉報

地板
ID:51461 發表于 2013-7-3 16:36 | 只看該作者
謝謝謝謝謝謝謝謝謝謝
回復

使用道具 舉報

5#
ID:52095 發表于 2013-7-21 19:28 | 只看該作者
好好學習啊
回復

使用道具 舉報

6#
ID:57948 發表于 2013-12-18 11:46 | 只看該作者
你妹,程序錯那么多
回復

使用道具 舉報

7#
ID:58267 發表于 2013-12-26 22:47 | 只看該作者
回復

使用道具 舉報

8#
ID:58188 發表于 2013-12-31 15:47 | 只看該作者
{:soso_e179:}{:soso_e102:}
回復

使用道具 舉報

9#
ID:60258 發表于 2014-4-1 23:50 | 只看該作者
怎一個霸氣了得,謝謝分享!
回復

使用道具 舉報

10#
ID:58937 發表于 2014-5-6 08:40 | 只看該作者
謝......................
回復

使用道具 舉報

11#
ID:61761 發表于 2014-5-13 13:25 | 只看該作者
好好學習啊
回復

使用道具 舉報

12#
ID:62348 發表于 2014-5-28 08:22 | 只看該作者
感謝大大分享 最近需要!
回復

使用道具 舉報

13#
ID:62348 發表于 2014-5-28 08:22 | 只看該作者
在次謝謝大大!
回復

使用道具 舉報

14#
ID:62365 發表于 2014-5-28 15:45 | 只看該作者
nice!!
回復

使用道具 舉報

15#
ID:62640 發表于 2014-6-6 23:49 | 只看該作者
adaskkdklas
回復

使用道具 舉報

16#
ID:62868 發表于 2014-6-12 00:11 來自手機 | 只看該作者
謝謝分享!
回復

使用道具 舉報

17#
ID:62868 發表于 2014-6-12 08:06 來自手機 | 只看該作者
有匯編嗎?
回復

使用道具 舉報

18#
ID:66684 發表于 2014-9-26 20:28 | 只看該作者
厲害!
回復

使用道具 舉報

19#
ID:67422 發表于 2014-10-15 13:20 | 只看該作者
這個好用嗎
回復

使用道具 舉報

20#
ID:67422 發表于 2014-10-15 16:15 | 只看該作者
可以使用麼
回復

使用道具 舉報

21#
ID:71333 發表于 2014-12-29 22:06 | 只看該作者
正是我需要的
回復

使用道具 舉報

22#
ID:72150 發表于 2015-1-13 15:56 | 只看該作者
學習參考一下
回復

使用道具 舉報

23#
ID:73743 發表于 2015-2-19 20:47 | 只看該作者
程序調試過了嗎?
回復

使用道具 舉報

24#
ID:73743 發表于 2015-2-19 20:48 | 只看該作者
感謝!
回復

使用道具 舉報

25#
ID:71333 發表于 2015-3-25 18:17 | 只看該作者
有匯編語言的程序嗎?
回復

使用道具 舉報

26#
ID:77172 發表于 2015-4-16 16:36 | 只看該作者

這個不錯啊,學習了,謝謝分享
回復

使用道具 舉報

27#
ID:77355 發表于 2015-4-19 22:11 | 只看該作者
bucuoo
回復

使用道具 舉報

28#
ID:77505 發表于 2015-4-20 10:47 | 只看該作者
謝謝了
回復

使用道具 舉報

29#
ID:78642 發表于 2015-5-7 21:37 | 只看該作者
謝謝分享
回復

使用道具 舉報

30#
ID:79514 發表于 2015-5-10 14:45 | 只看該作者
回復

使用道具 舉報

31#
ID:79586 發表于 2015-5-10 23:09 | 只看該作者
謝謝樓主慷慨分享
回復

使用道具 舉報

32#
ID:79621 發表于 2015-5-11 12:39 | 只看該作者
謝謝,分享了
回復

使用道具 舉報

33#
ID:78456 發表于 2015-5-13 15:26 | 只看該作者
期待能夠多看看,不錯挺好的   支持
回復

使用道具 舉報

34#
ID:79943 發表于 2015-5-14 20:29 | 只看該作者

可以使用麼
回復

使用道具 舉報

35#
ID:80215 發表于 2015-5-17 09:04 | 只看該作者
diudiu 發表于 2013-6-26 16:16
#include&lt;reg51.H>
#define uchar unsigned char
#define uint unsigned int

good
回復

使用道具 舉報

36#
ID:81281 發表于 2015-5-29 14:05 | 只看該作者
51hei 有你更精彩!!
回復

使用道具 舉報

37#
ID:81281 發表于 2015-5-29 14:05 | 只看該作者
51hei 有你更精彩!!
回復

使用道具 舉報

38#
ID:81281 發表于 2015-5-29 14:05 | 只看該作者
51hei 有你更精彩!!
回復

使用道具 舉報

39#
ID:83273 發表于 2015-6-17 17:07 | 只看該作者
數碼管不亮,沒用啊
回復

使用道具 舉報

40#
ID:83785 發表于 2015-6-24 14:19 | 只看該作者
車流量動態的話如何設計
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品视频在线观看免费 | 新av在线 | 精品欧美乱码久久久久久 | 欧美日韩在线视频观看 | 成人免费视频网站在线看 | 特级生活片 | 在线观看视频一区 | 夜夜夜夜夜夜曰天天天 | 91麻豆精品国产91久久久久久 | 91色在线视频 | 国产精品成人一区二区三区 | 国产精品日日做人人爱 | 噜噜噜噜狠狠狠7777视频 | 国产视频一区二区三区四区五区 | 另类视频区| 亚洲精选一区二区 | 午夜精品一区二区三区三上悠亚 | 久久久久久久电影 | 久草新在线| 久久高清精品 | 成人影院在线观看 | 日韩欧美三级 | 国产精品五月天 | 一区亚洲 | 青青久草 | 亚洲女人的天堂 | 在线视频91| 黄色毛片视频 | 成人午夜影院 | 国产精品区二区三区日本 | 一级黄色录像毛片 | 亚洲成人自拍 | 国产精品美女久久久 | 欧美激情一区二区 | 最近最新中文字幕 | 欧美www在线观看 | 欧美极品在线视频 | 精品久久视频 | 亚洲综合三区 | 一区二区三区国产 | 天天干夜夜拍 |