加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

基于51單片機(jī)的交通燈【LCD1602,左拐,獨(dú)立按鍵】(仿真)

4小時(shí)前
235
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買(mǎi)成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買(mǎi)后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

三色交通燈只代表轉(zhuǎn)向指示,全滅表示形式的通行

1.整個(gè)系統(tǒng)具有開(kāi)啟、停止、運(yùn)行等選項(xiàng),在停止?fàn)顟B(tài)可以進(jìn)行通行時(shí)間的設(shè)置;

2.可以對(duì)車輛的通行時(shí)間進(jìn)行設(shè)置;

3.不同類型的通行應(yīng)可以單獨(dú)設(shè)置,如上下直行和左右直行可以為不同的通行時(shí)間;

4.利用LCD1602(LM016L)指示各個(gè)路口通行剩余時(shí)間以及修改時(shí)間。


sbit k1=P3^2;//設(shè)置
sbit k2=P3^3;//加
sbit k3=P3^4;//減
sbit k4=P3^0;//啟動(dòng)
sbit k5=P3^1;//停止

sbit red1	=P1^0;	  //南北方向
sbit yellow1=P1^1;
sbit green1	=P1^2;
sbit red2	=P1^3;	  //東西方向
sbit yellow2=P1^4;
sbit green2	=P1^5;
sbit left1=P1^7;//東西左拐
sbit left2=P1^6;//南北左拐

uchar sec=0,miao=0;	  //定時(shí)
uchar nan=0,dong=0;//東西南北時(shí)間
uchar mode=0;		  //路燈工作順序
uchar nan_lim=10,dong_lim=10,left1_lim=10,left2_lim=15;//自由調(diào)整時(shí)主次干道綠燈時(shí)間
uchar yellow_time=3;//黃燈時(shí)間
uchar human_time=10;//行人通行時(shí)間
uchar moshi=10;
uchar disp[]="00s";

void delay(uint i)//延時(shí)
{
	while(i--);
}

void control()//控制路燈
{
	switch(mode)
		{
			case 0:red1=0;yellow1=1;green1=1;
				red2=1;yellow2=1;green2=0;//東西直行
				left1=1;left2=1;
				nan=dong_lim+yellow_time*2+left1_lim+2;
				dong=dong_lim;//設(shè)置初始時(shí)間
				break;
			case 1:red1=0;yellow1=1;green1=1;
				red2=1;yellow2=0;green2=1;//東西黃燈亮
				left1=1;left2=1;
				dong=yellow_time;
				break;
			case 2:red1=0;yellow1=1;green1=1;//東西左拐
				red2=1;yellow2=1;green2=1;
				left1=0;left2=1;
				dong=left1_lim;//設(shè)置初始時(shí)間
				break;
			case 3:red1=0;yellow1=1;green1=1;
				red2=1;yellow2=0;green2=1;//東西黃燈亮
				left1=1;left2=1;
				dong=yellow_time;
				break;
						
			case 4:red1=1;yellow1=1;green1=0;
				red2=0;yellow2=1;green2=1;//東西紅燈亮
				left1=1;left2=1;
				nan=nan_lim;
				dong=nan_lim+yellow_time*2+left2_lim+2;//設(shè)置初始時(shí)間
				break;
			case 5:red1=1;yellow1=0;green1=1;
				red2=0;yellow2=1;green2=1;//南北黃燈亮
				left1=1;left2=1;
				nan=yellow_time;
				break;
			case 6:red1=1;yellow1=1;green1=1;
				red2=0;yellow2=1;green2=1;//南北左拐
				left1=1;left2=0;
				nan=left2_lim;
				break;
			case 7:red1=1;yellow1=0;green1=1;
				red2=0;yellow2=1;green2=1;//南北黃燈亮
				left1=1;left2=1;
				nan=yellow_time;
				break;
			case 8:red1=1;yellow1=1;green1=1;//行人通行
				red2=1;yellow2=1;green2=1;
				left1=1;left2=1;
				nan=human_time+1;
				dong=human_time;
		}
}

//清屏
void clear()
{
	write_com(0x01);//清屏
	delay(15000);
}
void main()//主函數(shù)
{
	init_1602();//初始化LCD
	TMOD=0x01;//定時(shí)器設(shè)置
	TH0=0x3c; //50ms
	TL0=0xb0;
	ET0=1;	  //開(kāi)中斷
	EA=1;
	TR0=1;	 //啟動(dòng)定時(shí)器
	red1=0;yellow1=1;green1=1;	//禁行
		red2=0;yellow2=1;green2=1;
		left1=1;left2=1;	

	while(1)
	{
		if(!k1 &&(moshi<10))	 //設(shè)置
		{				 //模式切換
			if(moshi<5)
				moshi++;
			else
				moshi=1;
			clear();//清屏
			while(!k1);
		}
		if(moshi==1)//調(diào)節(jié)南北時(shí)間
		{
			if(!k2)
			{
				if(nan_lim<99)
					nan_lim++;
				while(!k2);
			}
			if(!k3)
			{
				if(nan_lim>1)
					nan_lim--;
				while(!k3);
			}
		}
		if(moshi==2)//調(diào)節(jié)南北左拐時(shí)間
		{
			if(!k2)
			{
				if(left2_lim<99)
					left2_lim++;
				while(!k2);
			}
			if(!k3)
			{
				if(left2_lim>1)
					left2_l
  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜