




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE11汽車電子設計競賽汽車遠近光燈智能控制系統的設計與實現設計人員:指導老師:完成時間:
摘要:本汽車遠近光燈智能控制系統分為遠光燈和近光燈光強檢測部分、汽車環境光強檢測并自動調光部分、時鐘檢測智能開啟燈光部分、液晶顯示遠近光燈亮滅情況部分、主動按鍵自由控制部分。整個系統主要以模擬電路為主,配合數字電路控制,全系統通過AT89S52單片機進行全局控制,利用光敏電阻進行可靠的可見光光強檢測。通過論證,本系統能夠很好地實現汽車的燈光亮度調節和遠近光燈的轉換。關鍵字:遠光燈,近光燈,AT89S52,光強檢測,調節光亮度TheAutoDistanceHeadlightAutomaticMonitoringElectricalSystemAbstract:Theautodistanceheadlightautomaticmonitoringelectricalsystemcanbedividedintolong-and-shortdistancelightforcemonitoringpart,autoenvironmentlightforceautomaticmonitoringpart,clockmonitoringautomaticpower-onpart,liquidcrystaldisplayinglongandshortdistancelighton-and-offpart,activeautomaticpressingcontrollingpart.Thewholesystemisfocusedonanalogouscircuitandaccompaniedwithdigitalcircuitmonitoring.Thesystemcontrolsthewholeconditionthrough51MCUanddetectsthevisiblelightforcebrightnessbyphotoresistorreliably.Basedondemonstrations,thesystemcanperformautolightforceadjustmentandlongandshortdistancelighttransferring.Keywords:longdistancelightshortdistancelightAT89S52,lightforcedetectionadjustinglightforcebrightness(一)系統方案:系統方案的選擇與論證基本方案論證本設計硬件電路分為系統控制部分、遠光燈和近光燈光強檢測部分、汽車環境光強檢測并自動調光部分、時鐘檢測智能開啟燈光部分、液晶顯示遠近光燈亮滅情況部分、自動按鍵自由控制部分六大部分。方案系統采用AT89S52進行全局控制,汽車環境光強檢測并自動調光部分采用光敏電阻與BTS629A所組成的外圍電路來檢測燈光與自動調光,無需單片機控制;遠光燈和近光燈光強檢測部分采用了光敏電阻與比較器根據“0”、“1”電平來判別遠光燈和近光燈;時鐘檢測智能開啟燈光部分采用了DS1307實時時鐘芯片,使單片機能夠實時根據規定白天和黑夜的兩個時間段分別控制,實時操作;自動按鍵自由控制部分,具備人性化操作,無論在那個時間、那種情況,司機都可以自由的操作車燈;液晶顯示部分則采用LCD1602來提醒司機當前車燈的情況。(二)功能指標1.功能:系統通過AT89S52單片機進行全局控制,利用光敏電阻進行可靠的可見光光強檢測,很好地實現了汽車的燈光亮度調節和遠近光燈的轉換,也可以通過鍵盤實現車燈的自動控制和手動控制的切換,同時燈也可以根據時間來開啟和關閉,液晶顯示當前燈的開啟情況。(三)實現原理(1)系統硬件主要組成部分系統控制模塊:本模塊采用了AT89S52便宜的51內核單片機,晶振為11.0592MHz,其中外圍電路包括復位電路。遠近光燈檢測模塊:本模塊采用了光敏電阻和比較器為基礎的光強測量電路,比較器采用了uA741集成運放。通過調整電位器來實現光強強度檢測,比較器輸出為高電平,則為遠光燈,否則就是近光燈。自動調光模塊:該模塊采用了BTS629A與光敏電阻構成的環境光強檢測與自動調光電路,當汽車所在環境中的光線變強,光敏電阻立刻檢測到光線的變化,并且轉換為電壓的變化,輸出到調光芯片BTS629A的2號管腳,實現同步調光。時鐘模塊:該模塊用于檢測白天和黑夜,使單片機可以在不同情況下控制車燈的亮滅。液晶顯示模塊:該模塊用于提醒提示司機當前的車燈亮滅情況。主動按鍵自由控制模塊:該模塊由3個簡單的按鍵構成,其中一號按鍵是開啟遠光燈,二號按鍵是開啟近光燈,三號按鍵是自由模塊,由遠近光燈檢測模塊來判斷是開啟遠光燈還是近光燈。方便司機隨時操作車燈。(四)硬件框圖遠近光燈檢測模塊遠近光燈檢測模塊CPUAT89S52系統控制自動調光模塊按鍵模塊液晶顯示遠近光燈時鐘模塊圖1硬件組成方案(五)軟件流程開始(開始(Initial()函數)讀時鐘(Read_RTC())時間在夜晚嗎?(時鐘規定時間)檢測p3.2高電平還是低電平?讀時鐘(Read_RTC())顯示時鐘(Display())檢測(p1.2||p1.3||p1.4||時間在晚上嗎?)是否動作?遠光燈近光燈自動調節模式P1.2||p1.3||p1.4||=0時間還在晚上嗎?(六)系統測試方案系統分為遠光燈和近光燈光強檢測部分、汽車環境光強檢測并自動調光部分、時鐘檢測智能開啟燈光部分、液晶顯示遠近光燈亮滅情況部分、主動按鍵自由控制部分。首先是進行單個模塊的測試,然后再將所有的模塊結合軟件一起測試。由于本系統的時鐘模塊和液晶模塊,平常接觸較多,相對比較熟悉,所以就只測試了遠光燈和近光燈光強檢測部分和汽車環境光強檢測并自動調光部分。測試設備:示波器,萬用表、穩壓直流電源、手電筒、電腦和編程器測試數據:測試分析:由調試的數據可以知道,車燈根據外界環境的變化,當在晚上的時間里,單片機會根據車的狀態自動開燈,在外界光強暗時,車燈功率大,當外界功光強強時,車燈功率小,此時達到一個節能的效果。實現功能:晚上汽車會車時,根據系統遠光燈和近光燈光強檢測部分檢測對面汽車遠近光的開啟情況,來自動切換自己車燈的遠近光燈,以此減少交通事故。同時汽車還會根據汽車環境光強檢測并自動調光部分檢測到的環境光強來調節自身車燈的光強,以大到節能的目的。特色:通過遠近光燈的切換,可以減少司機由于光照過強,而引起的交通事故,達到了安全的效果。汽車環境光強檢測并自動調光部分可以自動調節汽車的燈的亮度,減少了汽車的燈泡的功率消耗,從而實現了節能,環保的理念。(七)附錄含源代碼和程序清單(一部分)#include<reg51.h>#include<intrins.h>/**********************定義LCD1602控制字******************************/#defineLCD_SYS_MODE0X38//8位數據總線,2行顯示,5*7點陣#defineLCD_NO_FLASH0X0c//開顯示,光標不顯示,光標不閃爍#defineLCD_SH0X14//光標左移#defineLCD_NO_SHIFT0X06//AC加1,光標移動,內容不移動#defineLCD_CLEAR_SCREEN0X01//清屏#defineLCD_GO_HOME0X02//AC=0,光標,畫面回HPME//輸入方式設置#defineLCD_AC_AUTO_INCREASEMENT0X06//數據讀寫操作后,AC自動增一#defineLCD_AC_AUTO_DECREASEMENT0x04//減一#defineLCD_MOVE_ENABLE0X05//數據讀寫操作后,畫面平移#defineLCD_MOVE_DISABLE0X04//不動//設置顯示,光標及閃爍開關#defineLCD_DISPLAY_ON0X0C//顯示開#defineLCD_DISPLAY_OFF0X08//顯示關#defineLCD_CURSOR_ON0X0A//光標顯示#defineLCD_CURSOR_OFF0X08//光標不顯示#defineLCD_CURSOR_BLINK_ON0X09//光標閃爍#defineLCD_CURSOR_BLINK_OFF0XO8//光標不閃爍//光標,畫面移動,不影響DDRAM#defineLCD_LEFT_MOVE0X18//LCD顯示左移一位#defineLCD_RIGHT_MOVE0X1C//LCD顯示右移一位#defineLCD_CURSOR_LEFT_MOVE0X10//光標左移一位#defineLCD_CURSOR_RIGHT_MOVE0X14//右//工作方式設置#defineLCD_DISPLAY_DOUBLE_LINE0x38//兩行顯示#defineLCD_DISPLAY_SIGLE_LINE0X30//一行顯示/***********************LCD1602地址相關******************************/#defineLINE1_HEAD0x80//第一行DDRAM起始地址#defineLINE2_HEAD0xc0//第二行DDRAM起始地址#defineLINE10//第一行#defineLINE21//第二行#defineLINE_LENGTH16//每行的最大字符長度/***********************LCD1602接線引腳定義************************************************可根據實際電路改變*******************************/#defineLCDIOP0//定義P2口與LCD1602的數據口相接sbitLCD_RS=P2^7;sbitLCD_RW=P2^6;sbitLCD_EN=P2^5;sbitP3_2=P3^2;sbitP1_2=P1^2;sbitP1_3=P1^3;sbitP2_2=P2^2;sbitP1_4=P1^4;sbitP2_3=P2^3;/**********************另外相關的定義*********************************/#defineDELAYTIME100//#defineHIGH1#defineLOW0#defineTURE1#defineFALSE0#defineucharunsignedchar#defineuintunsignedint/*************************以下是函數的申明部分*************************/voidLCD_init(void);//LCD1602初始化voidLCD_send_command(ucharcommand);//voidLCD_send_data(uchardat);voidLCD_write_string(ucharx,uchary,char*Data);voidLCD_delay(void);voidLCD_write_char(unsignedx,unsignedchary,unsignedchardat);voidLCD_set_position(unsignedcharx);voidDisplay1(void);/*********************結束***********************************************//***************************DS1307開始*****************************************************************/#defineWait1us_nop_();#defineWait2us{_nop_();_nop_();}#defineWait4us{Wait2us;Wait2us;}#defineWait8us{Wait4us;Wait4us;}#defineWait10us{Wait8us;Wait2us;}#defineWRITEDS13070xD0#defineREADDS13070xD1sbitSDA=P2^1;//DS1307Serial-DataInputpin5sbitSCL=P2^0;//DS1307Serial-ClockInputpin6/************************************************************/voidI2C_start(void);//I2CstartfunctionvoidI2C_stop(void);//I2Cstopfunction//voidI2C_send_ack(void);//I2CsendresponsionfunctionvoidI2C_send_noack(void);unsignedcharI2C_write_byte(unsignedcharIIC_data);//I2CbuswritebytefunctionunsignedcharI2C_read_byte(void);//I2Cbusreadbytefunction/***********************************************************************/voidWrite1307(unsignedcharadd,unsignedchardat);//writeinformationtods1307unsignedcharRead1307(unsignedcharadd);//readinformationfromds1307voidRead_RTC(void);//readRTCvoidSet_RTC(void);//setRTC/***********************************************************************/codeunsignedcharset_rtc_code[7]={55,59,20,4,07,8,8};//秒分時周日月年0到7codeunsignedcharrtc_address[7]={0x00,0x01,0x02,0x03,0x04,0x05,0x06};codeunsignedchar*day[7]={"Mon","Tue","Wen","Thu","Fri","Sat","Sun"};unsignedcharread_rtc_code[7];/***********************************************************************/voidInitial(void);//systeminitizefunctionvoidDisplay(void);//RTCdisplayfunction/***********************************************************************/voidmain(void){inti;Initial();while(1){P1_2=LOW;P1_3=LOW;P1_4=LOW;Read_RTC();if((0<=read_rtc_code[2]&&read_rtc_code[2]<=6||18<=read_rtc_code[2]&&read_rtc_code[2]<=24)&&P2_2==HIGH&&P2_3==LOW){while((0<=read_rtc_code[2]&&read_rtc_code[2]<=6||18<=read_rtc_code[2]&&read_rtc_code[2]<=24)&&P1_2==LOW&&P1_3==LOW&&P1_4==LOW){P1_4=HIGH;Read_RTC();Display();}}elseLCD_send_command(LCD_CLEAR_SCREEN);while(P1_2==LOW&&P1_3==LOW&&P1_4==LOW&&6<read_rtc_code[2]&&read_rtc_code[2]<18){Read_RTC();Display1();P2_2=LOW;P2_3=HIGH;}PT:Read_RTC();while(P1_2==LOW&&P1_3==LOW&&(0<=read_rtc_code[2]&&read_rtc_code[2]<=6||18<=read_rtc_code[2]&&read_rtc_code[2]<=24)){if(P3_2){LCD_write_string(0x00,LINE1,"LIGHT1_ON");LCD_write_string(0x00,LINE2,"LIGHT2_OFF");P2_2=HIGH;P2_3=HIGH;for(i=0;i<10000;i++){;}P2_3=HIGH;P2_2=LOW;for(i=0;i<10000;i++){;}P2_2=HIGH;P2_3=HIGH;for(i=0;i<10000;i++){;}while(P3_2==HIGH&&P1_2==LOW&&P1_3==LOW&&(0<=read_rtc_code[2]&&read_rtc_code[2]<=6||18<=read_rtc_code[2]&&read_rtc_code[2]<=24)) { Read_RTC(); P2_2=HIGH; P2_3=HIGH; }}else{LCD_write_string(0x00,LINE1,"LIGHT1_OFF");LCD_write_string(0x00,LINE2,"LIGHT2_ON");P2_2=LOW;P2_3=LOW;for(i=0;i<10000;i++){;}P2_2=HIGH;P2_3=HIGH;for(i=0;i<10000;i++){;}P2_2=LOW;P2_3=LOW;for(i=0;i<10000;i++){;}while(P3_2==LOW&&P1_2==LOW&&P1_3==LOW&&(0<=read_rtc_code[2]&&read_rtc_code[2]<=6||18<=read_rtc_code[2]&&read_rtc_code[2]<=24)){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論