基于單片機(jī)的視力保護(hù)器設(shè)計(jì)
為了保護(hù)青少年的視力,現(xiàn)如今越來越多的公司都在研發(fā)生產(chǎn)各種視力保護(hù)產(chǎn)品,國內(nèi)主要有眼保姆,坐姿矯正器和各種護(hù)眼燈;國外有法國艾斯·布魯斯研發(fā)的光明天使博士鏡,以及美國眼科專家威廉貝茨研發(fā)的阿瞳二代產(chǎn)品。但這些產(chǎn)品功能單一,不能滿足消費(fèi)者的個(gè)性化需求。針對(duì)這一問題,本文將單片機(jī)與視力保護(hù)相結(jié)合,利用單片機(jī)芯片的智能處理功能,結(jié)合超聲波測距原理,光敏電阻隨光強(qiáng)變化的特點(diǎn),單片機(jī)定時(shí)器T0,T1的工作原理,以及LCD1602液晶顯示器的使用方法,設(shè)計(jì)了一個(gè)多功能視力保護(hù)器。該設(shè)計(jì)的技術(shù)要求是當(dāng)學(xué)生的面部與書本或電腦的距離小于30 cm時(shí),蜂鳴器產(chǎn)生聲光報(bào)警,提醒學(xué)生注意坐姿;當(dāng)學(xué)生學(xué)習(xí)時(shí)間超過45分鐘時(shí),蜂鳴器產(chǎn)生聲光報(bào)警,提醒學(xué)生休息片刻;當(dāng)光線過強(qiáng)或過弱時(shí),蜂鳴器產(chǎn)生聲光報(bào)警,提醒學(xué)生注意學(xué)習(xí)環(huán)境;能夠分辨是什么原因引起的聲光報(bào)警;并具有設(shè)置功能,能夠自行設(shè)定相應(yīng)的數(shù)據(jù)。
1 總體設(shè)計(jì)
1.1 系統(tǒng)設(shè)計(jì)方案
本系統(tǒng)采用STC89C52RC DPIP40單片機(jī)作為核心控制單元,通過HC—SR04超聲波測距模塊測量人的面部到書本的距離,當(dāng)測得距離小于30 cm或設(shè)定距離時(shí)產(chǎn)生聲光報(bào)警。利用光敏電阻的光電導(dǎo)效應(yīng)采集光線模擬信號(hào),并通過ADC0832模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào),對(duì)數(shù)字信號(hào)進(jìn)行光強(qiáng)等級(jí)處理并用1602液晶顯示器顯示光的強(qiáng)弱,當(dāng)光太強(qiáng)或太弱時(shí)產(chǎn)生報(bào)警。通過單片機(jī)內(nèi)部定時(shí)器T1對(duì)學(xué)習(xí)時(shí)間進(jìn)行計(jì)時(shí),當(dāng)學(xué)習(xí)時(shí)間超過45分鐘或設(shè)定值時(shí)產(chǎn)生報(bào)警,其中報(bào)警電路由一個(gè)PNP型三極管驅(qū)動(dòng)。系統(tǒng)總體設(shè)計(jì)方框圖如圖1所示。
1.2 系統(tǒng)設(shè)計(jì)的基本步驟
本設(shè)計(jì)的主要步驟如下:
1)認(rèn)真分析視力保護(hù)器的技術(shù)要求。
2)確定硬件設(shè)備,選好器件的型號(hào)。
3)畫電路原理圖。
4)根據(jù)硬件電路及各芯片的時(shí)序編寫程序。
5)將程序輸入單片機(jī)進(jìn)行軟件測試,查找錯(cuò)誤,使系統(tǒng)程序更加完善。
6)根據(jù)電路原理圖及相應(yīng)元器件的焊接方法焊接硬件電路。
7)將程序?qū)戇M(jìn)單片機(jī)進(jìn)行硬件調(diào)試。
2 硬件設(shè)計(jì)
STC89C52RC PDIP封裝單片機(jī)由宏晶科技推出,其指令代碼完全兼容傳統(tǒng)8051單片機(jī),是一種增強(qiáng)型8051單片機(jī)。工作電壓為5. 5~3.3 V(5 V單片機(jī)),有8 K字節(jié)的用戶應(yīng)用程序空間,片上集成512字節(jié)RAM,內(nèi)部帶2 K EEPROM的存儲(chǔ)空間。通過串口就可直接下載程序,且處理速度快,抗干擾能力強(qiáng),功耗低,價(jià)格便宜,所以本設(shè)計(jì)采用STC89C52RC作為控制電路的主選芯片。
2.1 主控模塊設(shè)計(jì)
該主控模塊含有時(shí)鐘電路、系統(tǒng)復(fù)位電路、電源電路。其中時(shí)鐘電路由單片機(jī)內(nèi)部反相放大器的輸入引腳跨接在晶振兩端和兩個(gè)微調(diào)電容組成,構(gòu)成自激勵(lì)振蕩器,用來產(chǎn)生單片機(jī)工作時(shí)必須的時(shí)鐘信號(hào)。時(shí)鐘電路中電容選用20 pF,晶振選用12 MHz,因?yàn)轭l率越高單片機(jī)的速度越快。系統(tǒng)采用按鍵復(fù)位的工作方式,其復(fù)位電路由復(fù)位按鍵、10μF電容和10kΩ電阻組成,單片機(jī)的復(fù)位時(shí)間由復(fù)位電路的極性電容決
定,極性電容一般采用10~30μF。單片機(jī)的時(shí)鐘工作以后,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,系統(tǒng)就復(fù)位。
2.2 蜂鳴器報(bào)警電路模塊設(shè)計(jì)
由于電磁式蜂鳴器需要較低的電壓就能發(fā)出很高分貝的聲音,本設(shè)計(jì)選用電磁式蜂鳴器,其發(fā)聲的原理為電流通過電磁線圈產(chǎn)生磁場,進(jìn)而驅(qū)動(dòng)振動(dòng)膜片發(fā)聲。由于單片機(jī)I/O引腳輸出電流的驅(qū)動(dòng)能力有限,所以采用PNP型三極管(放大作用)驅(qū)動(dòng)蜂鳴器。當(dāng)P1.3輸出高電平“1”時(shí),三極管Q1截止,沒有電流流過線圈,蜂鳴器不發(fā)聲,當(dāng)P1.3輸出低電平“0”時(shí),三極管Q1導(dǎo)通,電流流過蜂鳴器線圈,蜂鳴器發(fā)聲。因?yàn)榘l(fā)光二極管和蜂鳴器并聯(lián),所以聲光報(bào)警是同時(shí)進(jìn)行的。蜂鳴器報(bào)警電路圖如圖2所示。
2.3 光敏電阻測光電路模塊設(shè)計(jì)
2.3. 1 光敏電阻
光敏電阻采用硅,鍺,硫化鎘,硒化鉛等半導(dǎo)體材料制成,它的工作區(qū)在一個(gè)很薄的光敏層上,光敏層具有電阻特性,兩端由金屬電極引出。無光照時(shí),光敏電阻的阻值很大,當(dāng)光線照到光敏層上,半導(dǎo)體材料中的載流子將迅速增加,阻值下降,光線越強(qiáng),阻值越低。光敏電阻通常做成片狀結(jié)構(gòu),以便吸收更多光能。光敏電阻具有靈敏度高,測光范圍廣的優(yōu)點(diǎn)。光敏電阻屬于有源器件,工作時(shí)必須加電源。
2.3.2 光敏電阻測光電路
光敏電阻測光電路工作原理:當(dāng)光線發(fā)生變化時(shí),由于光敏電阻內(nèi)部載流子發(fā)生變化,所以流過光敏電阻的電流發(fā)生變化,進(jìn)而R6兩端的分壓產(chǎn)生變化,該模擬電壓信號(hào)經(jīng)過ADC0832模數(shù)轉(zhuǎn)換器采集后便可得到相應(yīng)的數(shù)字信號(hào),再經(jīng)過單片機(jī)處理后,在LCD液晶模塊上顯示光的強(qiáng)弱百分比。光敏電阻測光電路接線圖如圖3所示。
2.4 電源接口電路模塊設(shè)計(jì)
本設(shè)計(jì)采用3節(jié)1.5 V電池串聯(lián)供電,電池盒和自鎖開關(guān)串聯(lián)可以方便電路的通斷。電源接口電路接線圖如圖4所示。
2.5 按鍵電路模塊設(shè)計(jì)
本設(shè)計(jì)用按鍵設(shè)置學(xué)習(xí)時(shí)間、光線強(qiáng)弱界限以及報(bào)警距離。按鍵電路接線圖如圖5所示。其中S4為設(shè)置鍵,S3為開始學(xué)習(xí)鍵和設(shè)定值的加鍵,S2為時(shí)間清零鍵和設(shè)定值的減鍵。當(dāng)某鍵按下時(shí),低電平有效。
2.6 超聲波測距模塊設(shè)計(jì)
2.6.1 超聲波簡介
超聲波是高于20 kHz的機(jī)械波,它在不同的介質(zhì)中傳播速度不同,在通過兩種不同介質(zhì)時(shí),在介質(zhì)表面會(huì)發(fā)生反射、折射現(xiàn)象,超聲波在傳播過程中有一定的衰減。超聲波在空氣中衰減較快,頻率越高,衰減越快,故在空氣中傳播時(shí)采用頻率較低的超聲波40 kHz。
2.6.2 超聲波測距原理
本設(shè)計(jì)利用超聲波遇到障礙物發(fā)生反射的特性,采用往返時(shí)間檢測的方法進(jìn)行測距,超聲波測距原理圖如圖6所示。
測距時(shí),超聲波發(fā)射器向某一方向發(fā)射超聲波,超聲波在空氣中傳播遇到障礙物就立即反射回來,計(jì)算出超聲波在空氣中傳播的往返時(shí)間t,超聲波在空氣中傳播的速度為:340 m/s。利用如下公式(1)便可知超聲波探頭距障礙物的距離S。
S=vt/2 (1)
2.6.3 HC—SRO4超聲波測距模塊
本設(shè)計(jì)采用HC—SRO4超聲波測距模塊測量人的臉部離書籍的距離。該模塊測距范圍為2~400 cm,測距精度高達(dá)3 mm;模塊由超聲波發(fā)射器,超聲波接收器,控制電路組成,其中發(fā)射器發(fā)射超聲波信號(hào)用來作為距離的采樣信號(hào),接收器接收所發(fā)射的信號(hào)。
HC—SRO4超聲波測距模塊采用I/O口TIRG觸發(fā)測距,給TIRG最少10 s的高電平,這時(shí)模塊自動(dòng)發(fā)送8個(gè)40 kHz的方波,自動(dòng)檢測是否有信號(hào)返回,如果有信號(hào)返回,則通過I/O口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間便是超聲波從發(fā)射到返回的時(shí)間,測試距離=(高電平時(shí)間*340 m/s)/2。HC—SRO4超聲波測距模塊的引腳圖如圖7所示。其中VCC接電源,GND接地,TIRG為觸發(fā)控制信號(hào)輸入端接P3.3,ECHO為回響信號(hào)輸出端接P3.2。
3 軟件設(shè)計(jì)
本設(shè)計(jì)使用的編程語言為C語言,根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能,先寫出主程序,再利用硬件電路功能及各芯片、各模塊的工作時(shí)序?qū)懗鲎映绦?,最后在主程序中進(jìn)行調(diào)用,這種方法簡單,主程序語句少,且易于軟件設(shè)計(jì)和查錯(cuò),還能很好的利用硬件電路,分模塊進(jìn)行調(diào)試。
3. 1 主程序流程圖
系統(tǒng)主程序流程圖如圖8所示。
3.2 部分子程序流程圖
T0用于測超聲波的往返時(shí)間,工作于工作方式1,對(duì)單片機(jī)的機(jī)器周期進(jìn)行計(jì)數(shù)。定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的時(shí)鐘頻率有關(guān),由于一個(gè)機(jī)器周期等于12個(gè)時(shí)鐘周期,晶振為12 MHz,則計(jì)數(shù)周期為:T=12x1/(12x106)=1μs。當(dāng)超聲波ECHO端為高電平時(shí)開始計(jì)時(shí)。超聲波測距子程序流程圖如圖9所示。
學(xué)習(xí)時(shí)間由定時(shí)器T1定時(shí),其工作于工作方式1,初值為TH1=0X3C;TL1=0XB0;50 ms中斷一次,value加1,當(dāng)value值加到20時(shí),即為1 s,秒鐘加1;當(dāng)秒加到60時(shí),分鐘加1;當(dāng)分加到60時(shí),時(shí)加1;當(dāng)時(shí)加到24時(shí),從新開始。報(bào)警子程序流程圖如圖10所示。
4 系統(tǒng)調(diào)試
軟件測試:在Keil uvision4中編寫程序,進(jìn)行調(diào)試,修改語法錯(cuò)誤。
硬件測試:焊接電路之前,先用萬用表測得各元器件的好壞,分清極性電容蜂鳴器、發(fā)光二極管的正負(fù)以及PNP型三極管的三個(gè)級(jí)。在焊接電路板時(shí),從單片機(jī)最小系統(tǒng)開始,分模塊,逐個(gè)進(jìn)行焊接并隨時(shí)用萬用表的“二極管”擋測試電路是否導(dǎo)通。焊接完成后,利用STC_ISP _V479下載軟件將編好程序燒進(jìn)單片機(jī)芯片中,并進(jìn)行功能檢測。
5 結(jié)論
經(jīng)過軟硬件的設(shè)計(jì)與調(diào)試,系統(tǒng)達(dá)到了設(shè)計(jì)要求,當(dāng)學(xué)生開始學(xué)習(xí)時(shí);若光線低于設(shè)定的弱光或光線高于設(shè)定的強(qiáng)光時(shí),報(bào)警電路產(chǎn)生聲光報(bào)警,提醒學(xué)生注意學(xué)習(xí)環(huán)境;若超聲波測到的距離小于30 cm或設(shè)定值時(shí),報(bào)警電路產(chǎn)生聲光報(bào)警,提醒學(xué)生調(diào)節(jié)眼睛到書本的距離。當(dāng)學(xué)習(xí)時(shí)間到達(dá)設(shè)定值時(shí),產(chǎn)生10次報(bào)警,每次3下,提醒學(xué)生注意休息。由于超聲波在空氣中的傳播速度與溫度有關(guān),本設(shè)計(jì)沒有考慮溫度對(duì)超聲波傳播速度的影響,測量距離還有一定的誤差,但誤差很小,還可通過溫度傳感器DS18B20進(jìn)一步完善,使其測量更加精確。