加入星計(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ī)汽車智能燈光控制系統(tǒng)設(shè)計(jì)

08/05 08:59
1505
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

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

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

仿真圖proteus 7.8

程序編譯器:keil 4/keil 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):C0049

硬件構(gòu)成:
51單片機(jī)
LCD1602液晶
光敏電阻
超聲波
ADC0832
LED燈

功能介紹

1.按鍵說(shuō)明:從左邊第一個(gè)起,減鍵、加鍵、設(shè)置鍵。單獨(dú)一個(gè)控制為復(fù)位按鍵。

2.LCD1602液晶第一行顯示超聲波的距離,第二行顯示光線的強(qiáng)弱。

3.可以設(shè)定超聲波和光敏的下限值,并具有掉電保存功能,數(shù)據(jù)保存在STC單片機(jī)的內(nèi)部。

4.用光敏傳感器測(cè)光線亮度,低于設(shè)置值時(shí)自動(dòng)開(kāi)啟燈光。

5.用超聲波測(cè)距離,低于設(shè)置值時(shí)自動(dòng)將遠(yuǎn)光燈變成近光燈,大于設(shè)置值時(shí)又會(huì)自動(dòng)變換成遠(yuǎn)光。

硬件設(shè)計(jì)

根據(jù)本次設(shè)計(jì)的要求,設(shè)計(jì)出一款基于51單片機(jī)的自動(dòng)切換遠(yuǎn)近光燈的設(shè)計(jì)。所以本次設(shè)計(jì)硬件部分,中央處理器采用了STC89C52RC單片機(jī),另外使用兩個(gè)燈珠代表遠(yuǎn)近光燈,感光部分采用了光敏電阻,因?yàn)楣饷綦娮栎敵龅氖请妷?a class="article-link" target="_blank" href="/baike/1589317.html">模擬信號(hào),單片機(jī)不能直接處理模擬信號(hào),所以經(jīng)過(guò)ADC0832進(jìn)行轉(zhuǎn)化成數(shù)字信號(hào),還有顯示部分采用了LCD1602液晶,還增加按鍵部分電路,可以選擇手自動(dòng)切換遠(yuǎn)近光燈,最后還是用了超聲模塊進(jìn)行檢測(cè)距離。

img

img

img

仿真圖

img

img

img

原理圖

img

源程序:

img

顯示函數(shù)

void display()	//顯示函數(shù)
 {
   if(state==0)	   //如果是非設(shè)置狀態(tài)
   {
	   LCD1602_write(0,0x80); //第一行
	   LCD1602_writebyte("distance:"); //顯示距離
	   if(S>99) LCD1602_write(1,0x30+S/100%10);
	   else LCD1602_writebyte(" ");
	   if(S>9) LCD1602_write(1,0x30+S/10%10);
	   else LCD1602_writebyte(" ");
	   LCD1602_write(1,0x30+S%10);
	   LCD1602_writebyte("cm   ");
	
	   LCD1602_write(0,0xC0);		//第二行
	   LCD1602_writebyte("light:");	 //顯示光照強(qiáng)度
	   if(light>99) LCD1602_write(1,0x30+light/100%10);
	   else LCD1602_writebyte(" ");
	   if(light>9) LCD1602_write(1,0x30+light/10%10);
	   else LCD1602_writebyte(" ");
	   LCD1602_write(1,0x30+light%10);
	   LCD1602_writebyte("%        ");
   }
   else	  //設(shè)置狀態(tài)
   {
   	   LCD1602_write(0,0x80);  //第一行
	   LCD1602_writebyte("dis_set:");  //設(shè)置距離
	   if(state==1&&s0)	LCD1602_writebyte("   ");	//閃爍效果
	   else
	   {
		   if(S_set>99) LCD1602_write(1,0x30+S_set/100%10);
		   else LCD1602_writebyte(" ");
		   if(S_set>9) LCD1602_write(1,0x30+S_set/10%10);
		   else LCD1602_writebyte(" ");
		   LCD1602_write(1,0x30+S_set%10);
	   }
	   LCD1602_writebyte("cm   ");
	
	   LCD1602_write(0,0xC0);	
	   LCD1602_writebyte("lig_set:"); //設(shè)置光照
	   if(state==2&&s0)	LCD1602_writebyte("   ");
	   else
	   {
		   if(light_set>99) LCD1602_write(1,0x30+light_set/100%10);
		   else LCD1602_writebyte(" ");
		   if(light_set>9) LCD1602_write(1,0x30+light_set/10%10);
		   else LCD1602_writebyte(" ");
		   LCD1602_write(1,0x30+light_set%10);
	   }
	   LCD1602_writebyte("%        ");
   }
 }

光照處理

void AD_dispose()	 //光照處理
{
	if(ad_count<10)		//讀十次光照數(shù)據(jù),取平均值,起到濾波的作用
	{
		ad_dat+=A_D(1);
		ad_count++;
	}
	else
	{
	   light=ad_dat/10;
	   light=(light*100)/255; //最大是255,所以這里擴(kuò)大100倍除以255,可以得到百分比數(shù)據(jù)
	   ad_count=0;
	   ad_dat=0;
	}
}

main函數(shù)

void main()
 {  
   interrupt_int();	//調(diào)用定時(shí)器初始化函數(shù)
   LCD1602_cls();  //調(diào)用1602初始化函數(shù)
   read_memory();  //調(diào)用讀存儲(chǔ)
   init_measuring(); //調(diào)用超聲波相應(yīng)端口初始化
   while(1)
    {
	  display();  //顯示函數(shù)
	  if(ir_ok)
	   {
	    ir_ok=0;
		 trigger(); //觸發(fā)超聲波啟動(dòng)
		 
		while(echo==0) //等待回聲&&TH0<200
		{
		;	
		}	
		measuring(); //進(jìn)行距離測(cè)量
		init_measuring(); //超聲波相應(yīng)端口初始化
		 
	   }
	   if(memory_flag) //如果存儲(chǔ)標(biāo)志位是1
	   {
	   	memory_flag=0;	//清0,
		memory();	   //執(zhí)行一次存儲(chǔ)函數(shù)
	   }
	   if(A_M)	  //如果是自動(dòng)狀態(tài)
	   {
	   	led1=0;	   //自動(dòng)模式指示燈點(diǎn)亮
		led2=1;
		police(); //執(zhí)行自動(dòng)處理函數(shù)
	   }
	   else	  //否則
	   {
	   	led2=0;	 //手動(dòng)指示燈點(diǎn)亮
		led1=1;
	   }
	   AD_dispose(); //調(diào)用AD處理函數(shù)
	   switch(beam)	//根據(jù)beam的值,切換遠(yuǎn)近光燈狀態(tài)
	   {
	   	case 0:LED_1=1;LED_2=1;break;  //關(guān)閉
		case 1:LED_1=1;LED_2=0;break;	//近光
		case 2:LED_1=0;LED_2=1;break;  //遠(yuǎn)光
	   }
	}
 }

器件清單:

img

設(shè)計(jì)說(shuō)明書:

設(shè)計(jì)背景

隨著日益成熟的交通網(wǎng)絡(luò)的發(fā)展,汽車成為了人類出行不可缺少的交通工具。交通事故的頻繁發(fā)生成為了人們?nèi)諠u擔(dān)憂的問(wèn)題,人們更加關(guān)心汽車的安全性能。根據(jù)報(bào)道的數(shù)據(jù)顯示,我國(guó)夜間發(fā)生的交通事故中,70%左右是由于違章使用氙氣燈造成燈光炫目,使駕駛員無(wú)法看清前方路況而發(fā)生的。照明系統(tǒng)是汽車主動(dòng)安全的重要組成部分之一,如今汽車前照燈燈光光型單一的傳統(tǒng)照明系統(tǒng)已經(jīng)無(wú)法跟上當(dāng)前汽車安全性能發(fā)展的趨勢(shì);所以,為了減少交通事故的發(fā)生,考慮到汽車的人性化設(shè)計(jì)。本文采用 STC89C52 單片機(jī)設(shè)計(jì)了一款自動(dòng)切換遠(yuǎn)近光的汽車前照燈系統(tǒng)。這種前照燈系統(tǒng)更加智能化,能消除存在的安全隱患。

目標(biāo)、研究?jī)?nèi)容和技術(shù)要求

結(jié)合所學(xué)課程的基礎(chǔ)專業(yè)知識(shí)和基本技能,熟悉單片機(jī)機(jī)其他硬件的相關(guān)知識(shí),完成以下工作:

第一步,查閱資料,選擇合適的硬件,確定硬件系統(tǒng)框圖

第二步,使用AD畫圖;

第三步,畫圖程序流程圖,并使用KEIL完成程序的編寫。

第四步,調(diào)試。

實(shí)現(xiàn)功能

1、檢測(cè)環(huán)境光強(qiáng)。

2、實(shí)現(xiàn)自動(dòng)切換遠(yuǎn)近光燈。

3、增加手動(dòng)切換遠(yuǎn)近光。

4、使用液晶顯示實(shí)時(shí)數(shù)據(jù)

img

設(shè)計(jì)資料清單

全部資料

img

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
PIC32MX575F512H-80I/PT 1 Microchip Technology Inc 32-BIT, FLASH, 80 MHz, RISC MICROCONTROLLER, PQFP64, 10 X 10 MM, 1 MM HEIGHT, LEAD FREE, PLASTIC, TQFP-64

ECAD模型

下載ECAD模型
$9 查看
ATXMEGA128A4U-MHR 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, PQCC44, 7 X 7 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, PLASTIC, MO-220VKKD-3, VQFN-44
$4.48 查看
TMS320F28335PGFA 1 Texas Instruments C2000&trade; 32-bit MCU with 150 MIPS, FPU, 512 KB flash, EMIF, 12b ADC 176-LQFP -40 to 85

ECAD模型

下載ECAD模型
$29.61 查看

相關(guān)推薦

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