畢業(yè)設(shè)計(jì)----模擬路燈控制系統(tǒng)的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  模擬路燈控制系統(tǒng)的設(shè)計(jì)</p><p><b>  目錄</b></p><p><b>  1 引言2</b></p><p>  2 總體方案設(shè)計(jì)2</p><p>  3 分電路設(shè)計(jì)和論證3</p><p>  3.1 按鍵、顯示模塊電路設(shè)計(jì)

2、3</p><p>  3.2.時(shí)鐘模塊5</p><p>  3.3 聲光報(bào)警模塊6</p><p>  3.4 信號(hào)采集模塊的設(shè)計(jì)7</p><p>  3.5.路燈控制模塊9</p><p>  3.6支路控制系統(tǒng)設(shè)計(jì)9</p><p>  3.7.電源模塊12</p&

3、gt;<p>  3.8 復(fù)位電路12</p><p>  3.9 恒流源模塊13</p><p><b>  4 軟件設(shè)計(jì)19</b></p><p><b>  4.1流程圖19</b></p><p>  4.2 源程序23</p><p>  

4、5 軟硬件系統(tǒng)的調(diào)試27</p><p>  5.1硬件調(diào)試27</p><p>  5.2 軟件調(diào)試27</p><p><b>  6 附錄28</b></p><p>  附錄1 系統(tǒng)原理圖28</p><p>  附錄 2 程序清單29</p><p>

5、;<b>  7 參考文獻(xiàn)46</b></p><p>  摘要:本系統(tǒng)以AVR低功耗單片機(jī)系列ATMEGA16L為核心組成支路控制系統(tǒng),采用專用時(shí)鐘芯片實(shí)現(xiàn)精確的時(shí)鐘功能,設(shè)定并顯示開關(guān)燈時(shí)間。該控制系統(tǒng)能根據(jù)環(huán)境明暗變化自動(dòng)開燈和關(guān)燈,以達(dá)到節(jié)能要求。ATMEGA16L是一款高性能、低功耗的8位AVR微處理器,使系統(tǒng)在低功耗的狀態(tài)下穩(wěn)定工作。系統(tǒng)采用線路簡(jiǎn)單、體積小的專用時(shí)鐘芯片DS1

6、302,DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。使用DS1302不但使電路功耗降低,而且節(jié)省IO口資源。采用低功耗的字符型液晶作為顯示器件,顯示更為直觀。</p><p>  使用光敏電阻來(lái)檢測(cè)環(huán)境明暗的變化,光敏電阻在不同光強(qiáng)下電阻值會(huì)發(fā)生明顯變化,單片機(jī)內(nèi)部AD采集電阻值的變化量達(dá)到檢測(cè)目的。采用對(duì)射式收發(fā)一體光電傳感器檢測(cè)物體的運(yùn)動(dòng),使用靈敏光電傳感器更有效地實(shí)現(xiàn)在物體運(yùn)動(dòng)過(guò)程中路燈

7、的自動(dòng)控制,達(dá)到節(jié)能的要求。當(dāng)路燈電路出現(xiàn)故障時(shí),單片機(jī)采集路燈電路采樣點(diǎn)的電壓后處理采集到的數(shù)據(jù),實(shí)現(xiàn)自動(dòng)報(bào)警功能。該系統(tǒng)基于可靠的硬件設(shè)計(jì)和穩(wěn)定的軟件算法實(shí)現(xiàn)題目基本要求。</p><p>  關(guān)鍵詞:ATMEGA16L 功耗 節(jié)能 光電傳感器 </p><p><b>  1 引言</b></p><p>  1.1 基于Atme

8、g16L單片機(jī)的路燈控制系統(tǒng)的研究</p><p>  當(dāng)今單片機(jī)的發(fā)展相當(dāng)迅速,產(chǎn)品更新?lián)Q代周期也越來(lái)越短,其結(jié)構(gòu)不斷改進(jìn),功能日益增強(qiáng),性能價(jià)格比越來(lái)越高。目前全世界單片機(jī)制造商有很多家,產(chǎn)品有很多系列。它們?cè)谖覈?guó)均得到了廣泛使用。</p><p>  本課題中我所采用的ATmega16芯片是8位單片機(jī)的佼佼者。ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控

9、制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p>  路燈控制系統(tǒng)是生產(chǎn)生活和城市道路建設(shè)中必備的系統(tǒng)之一。根據(jù)設(shè)計(jì)題目要求,基于單片機(jī)為中心,通過(guò)Atmeg16l單片機(jī)實(shí)現(xiàn)對(duì)路燈定時(shí)開關(guān)及時(shí)間顯示的控制。光敏電阻部分電路通過(guò)可根據(jù)外界環(huán)境明暗的變化,能夠自動(dòng)進(jìn)行開燈和關(guān)燈。光電傳感器可以感應(yīng)在

10、一定范圍內(nèi)移動(dòng)的物體,產(chǎn)生信號(hào)送給單片機(jī)實(shí)現(xiàn)燈依次點(diǎn)亮的控制。通過(guò)對(duì)Atmeg16l單片機(jī)進(jìn)行編程,使用單片機(jī)的兩個(gè)端口分別對(duì)兩只路燈進(jìn)行控制,并設(shè)定不同的開燈和關(guān)燈時(shí)間。路燈故障時(shí),支路控制器產(chǎn)生低電平,送入Atmeg16l單片機(jī),產(chǎn)生報(bào)警信號(hào)。并將燈的狀態(tài)等信息顯示在1602液晶屏上。</p><p>  由于本人水平有限,該課題設(shè)計(jì)并不完善,諸多的不足不妥之處難免存在。敬請(qǐng)讀者批評(píng)指正。</p>

11、<p><b>  2 總體方案設(shè)計(jì)</b></p><p>  2.1. 方案一:題目要求設(shè)計(jì)一個(gè)模擬路燈控制系統(tǒng),實(shí)現(xiàn)支路控制器對(duì)單元控制器的有效控制。本系統(tǒng)采用ATMEGA16L單片機(jī)為主控芯片,采用對(duì)射式收發(fā)一體的光電傳感器采集由于物體運(yùn)動(dòng)所產(chǎn)生的信號(hào),信號(hào)經(jīng)單片機(jī)分析處理后控制路燈的亮滅,同時(shí)將時(shí)間顯示出來(lái)。支路控制器的時(shí)鐘采用精確的時(shí)鐘芯片并由字符型液晶作為顯示,利

12、用按鍵設(shè)定、修改開關(guān)燈時(shí)間。系統(tǒng)采用光敏電阻分壓的方式感應(yīng)周圍環(huán)境明暗的變化,支路控制系統(tǒng)采集分壓值經(jīng)單片機(jī)處理后來(lái)控制路燈的變化。當(dāng)路燈出現(xiàn)故障后路燈電路中采樣點(diǎn)的電壓值會(huì)發(fā)生變化,單片機(jī)根據(jù)變化量進(jìn)行相應(yīng)的處理。將地址編號(hào)顯示在 1602液晶屏上,并且實(shí)現(xiàn)聲光報(bào)警。</p><p>  2.2.方案二:與方案一不同的是方案二選用AT89S52芯片,采用紅外對(duì)管對(duì)物體的移動(dòng)進(jìn)行檢測(cè),時(shí)鐘由單片機(jī)定時(shí)器實(shí)現(xiàn)。&l

13、t;/p><p>  方案比較:與AT89S52相比,ATMEGA16L在性能上具有明顯的優(yōu)勢(shì),可選用的資源也多得多。故采用方案一。</p><p>  本系統(tǒng)以ATMEGA16L為控制核心。整個(gè)系統(tǒng)硬件框圖如圖1所示:</p><p><b>  圖1 系統(tǒng)框圖</b></p><p>  3 分電路設(shè)計(jì)和論證</p

14、><p>  3.1 按鍵、顯示模塊電路設(shè)計(jì)</p><p>  3.1.1 方案一:采用掃描方式工作的獨(dú)立式按鍵、采用液晶顯示屏。</p><p>  對(duì)于獨(dú)立式按鍵來(lái)說(shuō),如果設(shè)置過(guò)多按鍵,顯然會(huì)占用較多I/O口,給布線帶來(lái)不便,此方案適用于按鍵較少的情況。但此方案實(shí)現(xiàn)簡(jiǎn)單,硬件電路冰不復(fù)雜,軟件編程也容易。</p><p>  液晶顯示屏(L

15、CD)具有功耗小、輕薄短小無(wú)輻射危險(xiǎn),平面直角顯示以及影象穩(wěn)定不閃爍,可視面積大,畫面效果好,抗干擾能力強(qiáng)等特點(diǎn)。</p><p>  3.1.2 方案二:4×4矩陣式鍵盤、采用LED七段數(shù)碼管顯示。。</p><p>  此方案需要占用8個(gè)I/O口,采用行列掃描的方式工作,即每個(gè)程序的執(zhí)行周期要對(duì)鍵盤進(jìn)行至少一次的掃描,這就占用了系統(tǒng)的時(shí)間,增長(zhǎng)了程序的執(zhí)行周期,變相的減緩了溫

16、度的讀取速度,本系統(tǒng)需要的I/O口比較多,該方案占用的資源比較多。數(shù)碼管硬件接線麻煩,占用的I/O口比LCD要多,浪費(fèi)資源,而且走線繁瑣,不利于系統(tǒng)的擴(kuò)展。</p><p>  綜合考慮我選擇方案一來(lái)進(jìn)行設(shè)計(jì)。</p><p>  顯示電路我們采用1602字符型液晶顯示。</p><p>  關(guān)于1602我們并不陌生,它是工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32

17、個(gè)字符。(16列2行)1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中:</p><p>  寄存器選擇控制表   </p><p>  注:關(guān)于E=H脈沖——開始時(shí)初始化E為0,然后置E為1,再清0. </p><p>  busy flag(

18、DB7):在此位為被清除為0時(shí),LCD將無(wú)法再處理其他的指令要求。</p><p><b>  1602的字符集</b></p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000

19、001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。 </p><p>  因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A’。</p><p>  圖2 1602顯示及按鍵電路</p><p>  通過(guò)按鍵可以調(diào)節(jié)和設(shè)定路燈的開關(guān)時(shí)間,控制整條支路按

20、時(shí)開燈和關(guān)燈,并在字符液晶上顯示出來(lái)。字符型液晶因具有體積小、功耗低、壽命長(zhǎng)、價(jià)格低、接口控制方便及顯示操作簡(jiǎn)單等優(yōu)點(diǎn)而被廣泛應(yīng)用。我們這里用到的是1602液晶,1602液晶為5V電壓驅(qū)動(dòng),帶背光,可顯示2行,每行16個(gè)字符,不能顯示漢字,內(nèi)置128個(gè)字符的ASCII字符集庫(kù),只有并口接口,無(wú)串口接口。</p><p><b>  3.2.時(shí)鐘模塊</b></p><p&

21、gt;  3.2.1 方案一 使用1MHZ石英晶體振蕩器。</p><p>  石英晶體振蕩器頻率準(zhǔn)確,外圍元件少,易于調(diào)試。電路搭建容易,維修簡(jiǎn)單方便,價(jià)格低廉。但是此方案會(huì)占用較多單片機(jī)I/O端口,顯然在此不太實(shí)用。</p><p>  3.2.2 方案二 用單極晶體管觸發(fā)電路提供時(shí)序脈沖。</p><p>  此方案是用LC震蕩回路產(chǎn)生脈沖,然后對(duì)脈沖進(jìn)行整形

22、,這種方法得到的脈沖頻率難以準(zhǔn)確,而且電路難以調(diào)試。</p><p>  3.2.3 方案三采用能精確定時(shí)的專用時(shí)鐘芯片DS1302</p><p>  DS1302芯片線路簡(jiǎn)單、體積小,易于操作,且價(jià)格低廉。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí)。</p><p>  故綜上所述我選用方案三。電路如下圖。 </p><p><

23、b>  圖3 時(shí)鐘電路</b></p><p>  為實(shí)現(xiàn)精確的時(shí)鐘功能并節(jié)省單片機(jī)IO口資源,該設(shè)計(jì)使用專用的接口方式為串行的時(shí)鐘芯片DS1302,該芯片線路簡(jiǎn)單、體積小,易于操作,且價(jià)格低廉。DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)

24、行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。另外該芯片有備份電源引腳,可以在斷電后仍能工作,以保證時(shí)鐘的準(zhǔn)確性。DS1302與單片機(jī)之間能簡(jiǎn)單的采用同步串行方式進(jìn)行通信,僅需用到三個(gè)口線:(1)RES(

25、復(fù)位),(2)I/O(數(shù)據(jù)線),(3)SCLK(串行時(shí)鐘)。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏</p><p>  3.3 聲光報(bào)警模塊</p><p>  本設(shè)計(jì)采用LED作為光報(bào)警器件,蜂鳴器作為聲報(bào)警器件。在光報(bào)警硬件設(shè)計(jì)方面,本系統(tǒng)只有在溫度正常時(shí),蜂鳴

26、器沒(méi)有聲響發(fā)出。本系統(tǒng)采用聲光報(bào)警的原因是:</p><p>  一:從聲、光兩方面著手,刺激人的視覺(jué)和聽(tīng)覺(jué)。這從感官方面來(lái)講,提供了雙保險(xiǎn)設(shè)計(jì)。</p><p>  二:在電路設(shè)計(jì)方面來(lái)講,當(dāng)聲或是光中的一方出現(xiàn)問(wèn)題時(shí),另一方面還可以正常報(bào)警,從硬件上提供了雙保險(xiǎn)設(shè)計(jì)。</p><p><b>  圖4 聲光報(bào)警電路</b></p>

27、;<p>  當(dāng)系統(tǒng)出現(xiàn)故障時(shí),蜂鳴器會(huì)發(fā)出警報(bào)聲,同時(shí)報(bào)警指示燈也會(huì)點(diǎn)亮。</p><p>  3.4 信號(hào)采集模塊的設(shè)計(jì)</p><p>  3.4.1 方案一 采用光電傳感器檢測(cè)物體的移動(dòng),由光敏電阻檢測(cè)環(huán)境明暗的變化</p><p>  信號(hào)采集模塊包括物體檢測(cè)模塊和環(huán)境明暗檢測(cè)模塊,兩者功能如下:</p><p>  

28、物體檢測(cè)模塊:該模塊需要檢測(cè)物體的移動(dòng),并根據(jù)物體的移動(dòng)進(jìn)行路燈開關(guān)的自動(dòng)控制。基于此目的采用探測(cè)距離遠(yuǎn)、靈敏度高的反射式光電傳感器進(jìn)行檢測(cè),當(dāng)傳感器檢測(cè)到小車時(shí),傳感器給單片機(jī)一個(gè)信號(hào),然后單片機(jī)對(duì)路燈進(jìn)行合理控制,達(dá)到題目要求。</p><p>  環(huán)境明暗檢測(cè)模塊:該模塊需要檢測(cè)環(huán)境光的變化,根據(jù)環(huán)境光的明暗進(jìn)行路燈開關(guān)的自動(dòng)控制?;诖艘蟛捎糜晒饷綦娮杞M成的分壓電路進(jìn)行檢測(cè)。光敏電阻器又稱光導(dǎo)管,特性是

29、在特定光的照射下,其阻值迅速減小,可用于檢測(cè)可見(jiàn)光。在不同的光強(qiáng)下,光敏電阻的電阻值會(huì)發(fā)生明顯變化,光敏電阻器是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器;入射光強(qiáng),電阻減小,入射光通過(guò)檢測(cè)不同光強(qiáng)下電阻值的變化量來(lái)控制路燈的開和關(guān)。</p><p>  3.4.2 方案二 超聲波檢測(cè)</p><p>  機(jī)械振動(dòng)在介質(zhì)中的傳播過(guò)程叫做波,人耳能夠感受到頻率高于16赫

30、茲,低于20000赫茲的彈性波,所以在這個(gè)頻率范圍內(nèi)的彈性波又叫聲波。頻率小于10赫茲的彈性波又叫次聲波,頻率高于20000赫茲的彈性波叫做超聲波。次聲波和超聲波人耳都不能感受。</p><p>  超聲波測(cè)距作為一種非接觸性的檢測(cè)方法,因其結(jié)構(gòu)簡(jiǎn)單緊湊、可靠性高、價(jià)格低廉、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),近年來(lái)已經(jīng)得到了廣泛應(yīng)用,如液位測(cè)量,修路過(guò)程中路面平整檢測(cè),汽車倒車?yán)走_(dá),機(jī)器人輔助視覺(jué)識(shí)別系統(tǒng)等。但因超聲波在空氣中傳播

31、時(shí)受到諸如環(huán)境溫度、濕度、風(fēng)速等影響,傳統(tǒng)的超聲波測(cè)距系統(tǒng)精度普遍較低。由于超聲波測(cè)距的不穩(wěn)定,我們需要復(fù)雜的超聲波處理電路,處理程序算法也比較復(fù)雜,我們不采用。</p><p>  3.4.3 方案三 紅外傳感器檢測(cè)</p><p>  紅外線是介于可見(jiàn)光和微波之間的一種電磁波,因此,它不僅具有可見(jiàn)光直線傳播、反射、折射等特性,還具有微波的某些特性,如較強(qiáng)的穿透能力和能貫穿某些不透明物質(zhì)

32、等。紅外傳感器包括紅外發(fā)射器件和紅外接收器件。自然界的所有物體只要溫度高于絕對(duì)零度都會(huì)輻射紅外線,因而,紅外傳感器須具有更強(qiáng)的發(fā)射和接收能力。</p><p>  紅外傳感器的的測(cè)距基本原理為發(fā)光管發(fā)出紅外光,光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物。根據(jù)發(fā)射光的強(qiáng)弱可以判斷物體的距離,它的原理是接收管接收的光強(qiáng)隨反射物體的距離而變化的,距離近則反射光強(qiáng),距離遠(yuǎn)則反射光弱。</p>&

33、lt;p>  目前,使用較多的一種傳感器-紅外光電開關(guān),它的發(fā)射頻率一般為38 kHz左右,探測(cè)距離一般比較短,通常被用作近距離障礙目標(biāo)的識(shí)別。</p><p>  由于方案二需要復(fù)雜的超聲波處理電路,處理程序算法也比較復(fù)雜,我們不采用。</p><p>  而方案三需要安裝紅外對(duì)管也比較麻煩,所以我采用方案一。模塊電路如下:</p><p><b>

34、;  圖5 采樣電路</b></p><p>  光電傳感器原理:光電傳感器是指能夠?qū)⒖梢?jiàn)光轉(zhuǎn)換成某種電量的傳感器。光敏二極管是最常見(jiàn)的光傳感器。光敏二極管的外型與一般二極管一樣,只是它的管殼上開有一個(gè)嵌著玻璃的窗口,以便于光線射入,為增加受光面積,PN結(jié)的面積做得較大,光敏二極管工作在反向偏置的工作狀態(tài)下,并與負(fù)載電阻相串聯(lián),當(dāng)無(wú)光照時(shí),它與普通二極管一樣,反向電流很?。ǎ?#181;A),稱為光敏

35、二極管的暗電流;當(dāng)有光照時(shí),載流子被激發(fā),產(chǎn)生電子-空穴,稱為光電載流子。在外電場(chǎng)的作用下,光電載流子參于導(dǎo)電,形成比暗電流大得多的反向電流,該反向電流稱為光電流。光電流的大小與光照強(qiáng)度成正比,于是在負(fù)載電阻上就能得到隨光照強(qiáng)度變化而變化的電信號(hào)。光敏三極管除了具有光敏二極管能將光信號(hào)轉(zhuǎn)換成電信號(hào)的功能外,還有對(duì)電信號(hào)放大的功能。光敏三級(jí)管的外型與一般三極管相差不大,一般光敏三極管只引出兩個(gè)極——發(fā)射極和集電極,基極不引出,管殼同樣開

36、窗口,以便光線射入。為增大光照,基區(qū)面積做得很大,發(fā)射區(qū)較小,入射光主要被基區(qū)吸收。工作時(shí)集電結(jié)反偏,發(fā)射結(jié)正偏。在無(wú)光照時(shí)管子流過(guò)的電流為暗電流Iceo=(1+β)Icbo(很小),比一般三極管的穿透電流還?。划?dāng)有</p><p>  3.5.路燈控制模塊</p><p>  3.5.1方案一:用晶閘管電子開關(guān)控制LED燈的開關(guān)</p><p>  晶閘管電子開關(guān)

37、充分利用了電壓過(guò)零觸發(fā)、電流過(guò)零切除、開關(guān)無(wú)觸點(diǎn)、響應(yīng)速度快等晶閘管特性,可使電容上的電壓從零快速上升到額定工作電壓。而在斷開時(shí),晶閘管上的電流過(guò)零切除.可實(shí)現(xiàn)電容器投入無(wú)涌流、切除無(wú)過(guò)壓、投切無(wú)電弧的快速動(dòng)態(tài)補(bǔ)償功能,故能較好地解決電容器投切時(shí)產(chǎn)生的暫態(tài)沖擊問(wèn)題。但是,晶閘管在導(dǎo)通狀態(tài)下存在較大的管壓降(1 V左右),故在工作時(shí),要考慮消耗功率和其產(chǎn)生和散發(fā)的大量熱量,而這會(huì)使運(yùn)行和維護(hù)的成本加大。</p><p&

38、gt;  3.5.2 方案二 采用繼電器控制LED燈的開關(guān)</p><p>  電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過(guò)一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來(lái)的位置,使動(dòng)觸點(diǎn)與原來(lái)的靜觸點(diǎn)(常閉

39、觸點(diǎn))吸合。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。</p><p>  此方案非常適用于AVR單片機(jī)電路,資源占用少,硬件電路也相對(duì)簡(jiǎn)單得多。故我們采用該方案。</p><p><b>  圖6 路燈控制電路</b></p><p>  該模塊采用節(jié)能的1W LED燈,當(dāng)電路出現(xiàn)故障時(shí),單片機(jī)通過(guò)內(nèi)部AD采集電路采樣點(diǎn)的電壓變化

40、量后對(duì)數(shù)據(jù)進(jìn)行處理,通過(guò)繼電器控制路燈。</p><p>  3.6支路控制系統(tǒng)設(shè)計(jì)</p><p>  3.6.1 方案一 采用AVR單片機(jī)系列的ATmega16芯片作為電路的核心處理模塊。</p><p>  ATmega16芯片功能強(qiáng)大,51系列單片機(jī)所有能實(shí)現(xiàn)的功能它基本都能實(shí)現(xiàn),而且比51系列更為強(qiáng)大,使用更為靈活。而且,ATmega16單片機(jī)具有更多的資

41、源,比如他自帶的AD轉(zhuǎn)換模塊,可以在硬件設(shè)計(jì)的時(shí)候省略外圍的AD轉(zhuǎn)換電路。軟件編程呢也更為靈活。</p><p>  3.6.2 方案二 采用AT89s52單片機(jī)</p><p>  該單片機(jī)性價(jià)比雖然比較好,但功能相比而言確實(shí)要少很多,資源也不像AVR單片機(jī)系列那么豐富,運(yùn)用方面相對(duì)較單一點(diǎn)。而且需要加的外圍電路會(huì)更加復(fù)雜。</p><p>  綜合各方面考慮我選

42、擇了方案一。核心電路如圖:</p><p>  圖7 支路控制系統(tǒng)</p><p>  支路控制系統(tǒng)是模擬路燈控制系統(tǒng)的核心,該系統(tǒng)采用ATMEL公司的ATMEGA16L單片機(jī)作為主控制芯片來(lái)實(shí)現(xiàn)對(duì)受控對(duì)象的控制。與AT89S52相比,ATMEGA16L是一款高性能、低功耗的8位AVR微處理器,具有速度快、輸出電流大、工作電壓范圍寬、成本低等優(yōu)點(diǎn),是一款性價(jià)比很高的單片機(jī)。</p

43、><p>  ATmega16單片機(jī)的產(chǎn)品特性:</p><p>  ? 高性能、低功耗的 8 位 AVR® 微處理器</p><p>  ? 先進(jìn)的RISC結(jié)構(gòu)</p><p>  – 131 條指令 – 大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期</p><p>  –32 個(gè)8 位通用工作寄存器</p>

44、<p><b>  – 全靜態(tài)工作</b></p><p>  – 工作于16 MHz 時(shí)性能高達(dá)16 MIPS</p><p>  – 只需兩個(gè)時(shí)鐘周期的硬件乘法器</p><p>  ? 非易失性程序和數(shù)據(jù)存儲(chǔ)器</p><p>  – 16K 字節(jié)的系統(tǒng)內(nèi)可編程 Flash </p>&l

45、t;p>  擦寫壽命: 10,000 次</p><p>  – 具有獨(dú)立鎖定位的可選Boot 代碼區(qū)</p><p>  通過(guò)片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程</p><p><b>  真正的同時(shí)讀寫操作</b></p><p>  – 512 字節(jié)的EEPROM</p><p>  擦

46、寫壽命: 100,000 次</p><p>  –1K 字節(jié)的片內(nèi)SRAM</p><p>  – 可以對(duì)鎖定位進(jìn)行編程以實(shí)現(xiàn)用戶程序的加密</p><p>  ? JTAG 接口( 與IEEE 1149.1標(biāo)準(zhǔn)兼容 )</p><p>  – 符合JTAG標(biāo)準(zhǔn)的邊界掃描功能</p><p>  – 支持?jǐn)U展的片內(nèi)調(diào)

47、試功能</p><p>  – 通過(guò)JTAG接口實(shí)現(xiàn)對(duì) Flash、EEPROM、熔絲位和鎖定位的編程</p><p><b>  ? 外設(shè)特點(diǎn)</b></p><p>  – 兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8 位定時(shí)器/ 計(jì)數(shù)器</p><p>  – 一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16 位定時(shí)器 /計(jì)數(shù)器

48、</p><p>  – 具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器RTC</p><p><b>  – 四通道PWM</b></p><p>  –8路 10 位ADC</p><p><b>  8 個(gè)單端通道</b></p><p>  TQFP 封裝的7 個(gè)差分通道</p&g

49、t;<p>  2個(gè)具有可編程增益 (1x, 10x, 或200x)的差分通道</p><p>  – 面向字節(jié)的兩線接口</p><p>  – 兩個(gè)可編程的串行USART</p><p>  – 可工作于主機(jī)/從機(jī)模式的 SPI串行接口</p><p>  – 具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定時(shí)器</p>&

50、lt;p><b>  – 片內(nèi)模擬比較器</b></p><p>  ? 特殊的處理器特點(diǎn)</p><p>  – 上電復(fù)位以及可編程的掉電檢測(cè)</p><p>  – 片內(nèi)經(jīng)過(guò)標(biāo)定的RC 振蕩器</p><p>  – 片內(nèi)/片外中斷源</p><p>  –6種睡眠模式 : 空閑模式、A

51、DC噪聲抑制模式、省電模式、掉電模式、Standby 模式以及</p><p>  擴(kuò)展的Standby 模式</p><p><b>  ? I/O和封裝</b></p><p>  – 32 個(gè)可編程的I/O口</p><p>  –40 引腳PDIP封裝 , 44 引腳 TQFP 封裝,與 44 引腳MLF封裝&l

52、t;/p><p><b>  ? 工作電壓:</b></p><p>  – ATmega16L:2.7 - 5.5V</p><p>  –ATmega16:4.5 - 5.5V</p><p><b>  ? 速度等級(jí)</b></p><p>  – 0 - 8 MHz AT

53、mega16L</p><p>  – 0 - 16 MHz ATmega16</p><p>  ? ATmega16L在 1 MHz, 3V, 25°C時(shí)的功耗</p><p>  – 正常模式: 1.1 mA</p><p>  – 空閑模式: 0.35 mA</p><p>  – 掉電模式: <

54、; 1 µA</p><p><b>  3.7.電源模塊</b></p><p>  3.7.1方案一:采用穩(wěn)壓電路提供穩(wěn)壓電源。</p><p>  采用三端集成穩(wěn)壓電路提供穩(wěn)壓電源供電,電源的穩(wěn)壓性能好,直流輸出特性好,系統(tǒng)可以穩(wěn)定工作。</p><p>  3.7.2方案二:采用四只干電池提供電源。&l

55、t;/p><p>  該方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明扼要,成本低;缺點(diǎn)是輸出功率不高,只能勉強(qiáng)推動(dòng)單片機(jī),適合小電流負(fù)載。該方案中需要能提供LED電源,干電池?zé)o法提供這么大的電流。而且在整個(gè)系統(tǒng)工作的過(guò)程中,電壓會(huì)隨著時(shí)間的推移而不斷降低,進(jìn)而造成系統(tǒng)出現(xiàn)死機(jī)等情況。 </p><p>  方案一電路結(jié)構(gòu)簡(jiǎn)單,成本較低,完全可以滿足電路正常工作的要求。故選擇方案一。電路圖如下:</p>

56、<p>  圖8 5V穩(wěn)壓電路</p><p>  電源是系統(tǒng)中最重要的模塊之一,輸入電源經(jīng)穩(wěn)壓塊后輸出穩(wěn)定的+5V電源,用以驅(qū)動(dòng)整個(gè)系統(tǒng)。</p><p><b>  3.8 復(fù)位電路</b></p><p>  3.8.1 方案一:上電復(fù)位</p><p>  該方案電路簡(jiǎn)單,可靠性高,但是只有當(dāng)系統(tǒng)上電

57、時(shí),自動(dòng)復(fù)位。而當(dāng)系統(tǒng)出現(xiàn)死機(jī)情況的時(shí)候,要把整個(gè)系統(tǒng)斷電。</p><p>  3.8.2 方案二:按鍵復(fù)位</p><p>  該方案并不復(fù)雜而且比方案一更加可靠,更便捷。只需按下鍵盤即可實(shí)現(xiàn)復(fù)位操作。</p><p>  按鍵復(fù)位電路如下圖:</p><p><b>  圖9 復(fù)位電路</b></p>

58、<p><b>  3.9 恒流源模塊</b></p><p>  3.9.1 恒流源原理</p><p>  恒流源是輸出電流保持不變的電流源,而理想的恒流源為: a)不因負(fù)載(輸出電壓)變化而改變。 b)不因環(huán)境溫度變化而改變。 c)內(nèi)阻為無(wú)限大。   &

59、#160;          恒流源之電路符號(hào):          理想的恒流源       

60、;      實(shí)際的流源</p><p>  圖10 恒流源理想的恒流源,其內(nèi)阻為無(wú)限大,使其電流可以全部流出外面。實(shí)際的恒流源皆有內(nèi)阻R。 </p><p>  2.三極管的恒流特性: </p><p>  圖11 三極管恒流特性</p><p>

61、  從三極管特性曲線可見(jiàn),工作區(qū)內(nèi)的IC受IB影響,而VCE對(duì)IC的影響很微。 因此,只要IB值固定,IC亦都可以固定。 輸出電流IO即是流經(jīng)負(fù)載的IC。 </p><p>  電流鏡電路Current Mirror: 電流鏡是一個(gè)輸入電流IS與輸出電流IO相等的電路:  </p><p>  圖1

62、2 電流鏡電路Q1和Q2的特性相同,即VBE1 = VBE2,β1 = β2。    三極管之β受溫度的影響,但利用電流鏡像恒流源,不受β影響,主要依靠外接電阻R經(jīng) Q2去決定輸出電流IO(IC2 = IO)。 </p><p>  

63、3.9.2方案一:    </p><p>  從左邊看起:基極偏壓</p><p>  所以 VE=VB - 0.6=1.0V 又因?yàn)樯錁O電阻是1K,流經(jīng)射極電阻的電流是

64、 所以流經(jīng)負(fù)載的電流就就是穩(wěn)定的1mA</p><p>  3.9.3方案二:利用PNP三極管供應(yīng)電流給負(fù)載電路。電路如下圖:   </p><p>  這個(gè)有一點(diǎn)不同:利用PNP三極管供應(yīng)電流給負(fù)載電路.首先,利用二極管0.6 V的壓降,提供8.2 V基極偏壓(

65、10 – 3 x 0.6 = 8.2). 4.7 K電阻只是用來(lái)形成通路,而且不希望(也不會(huì))有很多電流流經(jīng)這個(gè)電阻。 VE=VB + 0.6=8.8V,PNP晶體的560歐姆電阻兩端電位差是1.2V, 所以電流是2mA。 </p><p>  如果只用一個(gè)三極管不能滿足需求,可以用兩

66、個(gè)三極管架成:    </p><p>  或是    </p><p>  3.9.4方案三:利用電位器采樣電壓值,通過(guò)集成運(yùn)放組組成恒流源。已達(dá)到輸出可調(diào)電流的恒流源的目的。</p><p&g

67、t;<b>  電路圖如下所示:</b></p><p><b>  圖13 恒流源電路</b></p><p>  圖中的第一組運(yùn)放電路是跟隨器,對(duì)輸入的電壓取樣電路進(jìn)行阻抗變換。最前面的雙向開關(guān)負(fù)責(zé)將正負(fù)12V電壓接入,這個(gè)電壓是運(yùn)放的供電電壓,并提供給其他線路作為電源輸入,C24和C25電容是運(yùn)放正負(fù)電源端的濾波電容,緊靠運(yùn)放電源引腳。R1

68、1和電位器RW4組成了一個(gè)電壓取樣電路,通過(guò)改變電位器RW4滑動(dòng)端的位置取出不同的電壓值,同時(shí)這個(gè)取出的電壓值也是輸出電流的正比例控制值,電位器滑動(dòng)頭的電壓就按照串聯(lián)分壓的方式計(jì)算得出,后端的R15和電容C20作為取出電壓信號(hào)的阻容濾波電路,因?yàn)楹蠖私拥氖沁\(yùn)放的正端,電位器的滑動(dòng)頭不輸出電流。運(yùn)放的1腳輸出的電壓等于3腳的電壓,既是電位器滑動(dòng)端的電壓值。運(yùn)放上面的R12和D9是供電電源12V的指示電路,12V通過(guò)開關(guān)供給后D9發(fā)光指示電

69、壓正常。</p><p>  后面的一組運(yùn)放是實(shí)現(xiàn)電壓到恒流的轉(zhuǎn)換,電路中有正反饋也有負(fù)反饋,但線路是穩(wěn)定的狀態(tài),計(jì)算的時(shí)候運(yùn)放也是按照虛短和虛斷的分析方式,C21是電壓信號(hào)的濾波電容,假設(shè)第一組運(yùn)放1腳輸出的電壓是V,第二組運(yùn)放5腳正端的電壓是V1,那么電阻RS1左端的電壓值為2V1,因?yàn)殡娮鑂16和R18是相同的數(shù)值。電阻RS1右端的電壓按照R13和R14分壓電路計(jì)算的話數(shù)值是V1-(V-V1)=2V1-V,

70、這樣我們就可以計(jì)算出RS1兩端的電壓是V,所以流過(guò)RS1電阻的電流是恒定的,另外考慮到RX1和R13相對(duì)RS1和負(fù)載的阻值不在同一個(gè)數(shù)量級(jí),比他們大好多倍,因此流過(guò)RS1的電流基本都流向負(fù)載,很少量的電流流向R13和RX1,所以輸出的電流基本是恒定的。在以上的計(jì)算中V1的數(shù)值是不確定的,他是根據(jù)負(fù)載的大小變化的,但是不論V1的數(shù)值怎么變化,通過(guò)計(jì)算可以知道流過(guò)電阻RS1的電流是不變的,以為它兩端的電壓是V,而V這個(gè)電壓值是第一組運(yùn)放的輸

71、出,在電位器不調(diào)節(jié)的時(shí)候V的數(shù)值是固定的,流過(guò)RS1的電流不變,所以輸出電流也不變,實(shí)現(xiàn)恒流控制。</p><p>  后面一組運(yùn)放電路中Q4三極管的作用時(shí)增大運(yùn)放的電流輸出能力,因?yàn)樨?fù)載比較小,運(yùn)放驅(qū)動(dòng)能力可能不夠,R19基本沒(méi)有作用在電路中,RX1可能是負(fù)載或者假負(fù)載,比如輸出不接任何負(fù)載,電流基本都流過(guò)RX1,如果不接RX1,在沒(méi)有負(fù)載的情況下輸出就是電壓最大值接近12V,在這種電壓輸出下,運(yùn)放的正負(fù)端會(huì)有

72、較大的壓差,有可能會(huì)損壞運(yùn)放358。同時(shí)在線路的設(shè)計(jì)上也要保證負(fù)載流過(guò)恒定電流產(chǎn)生的電壓值不能超過(guò)12V,如果超過(guò)電源供電電壓,不能實(shí)現(xiàn)恒流工作性能。</p><p>  RX1不取沒(méi)事,取小了對(duì)負(fù)載不好,要比負(fù)載大10倍以上,要忽略流過(guò)他的電流。</p><p>  由于方案三可以更好的對(duì)輸出電流進(jìn)行控制,進(jìn)而達(dá)到對(duì)路燈條光的目的。故本系統(tǒng)采用方案三的恒流源電路,以實(shí)現(xiàn)系統(tǒng)的功能。<

73、;/p><p><b>  4 軟件設(shè)計(jì)</b></p><p><b>  4.1流程圖</b></p><p>  4.1.1主程序流程圖</p><p><b>  圖10 流程圖</b></p><p>  C語(yǔ)言表達(dá)能力和運(yùn)算能力比較強(qiáng),且具有很好

74、的可移植性和硬件控制能力。采用ICC AVR編譯器。ICC AVR是眾多AVR單片機(jī)應(yīng)用開發(fā)軟件中的優(yōu)秀軟件之一,界面友好,易學(xué)易用。</p><p>  該系統(tǒng)能完成基本功能部分,傳感器檢測(cè)物體運(yùn)動(dòng)的最大誤差為正負(fù)1cm,光敏電阻在正常光照情況下電阻值為2K,在強(qiáng)光下電阻值為200歐姆,在黑暗情況下2M.。路燈電路正常時(shí)采樣點(diǎn)電壓為3V左右,在開路故障時(shí)電壓為0V。</p><p>  

75、4.1.2 按鍵子程序流程圖:</p><p>  4.1.3 界面顯示子程序流程圖:</p><p>  4.1.4 報(bào)警子程序流程圖: </p><p><b>  4.2 源程序</b></p><p><b>  4.2.1主程序</b></p><p>  //**

76、***************主函數(shù)***********************</p><p>  Void main()</p><p><b>  {</b></p><p>  AD_init();</p><p>  DDRB|=0x50;</p><p>  DDRD|=BIT(0)

77、;</p><p>  PORTD|=BIT(0);</p><p>  if(chuangan_press())</p><p><b>  {</b></p><p>  if(turn1==1)</p><p><b>  {</b></p><p&

78、gt;  switch(chuangan_scan())//判斷車的方向,左還是右</p><p><b>  {</b></p><p>  case 1:turn=1;</p><p><b>  break;</b></p><p>  case 3:turn=3;</p>&l

79、t;p>  break; </p><p><b>  }</b></p><p><b>  }</b></p><p>  switch(turn)</p><p><b>  {</b></p><p>  case 1: zu

80、o_turn();</p><p><b>  break;</b></p><p>  case 3: you_turn();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>

81、  }</b></p><p>  begin_AD();</p><p><b>  }</b></p><p>  4.2.2按鍵子程序</p><p>  /*******************************************</p><p>  函數(shù)名稱: k

82、ey_press</p><p>  功 能: 檢測(cè)是否有鍵按下</p><p><b>  參 數(shù): 無(wú)</b></p><p>  返回值 : 鍵按下時(shí)為1,否則為0</p><p>  /********************************************/</p>

83、<p>  uchar key_press()</p><p><b>  {</b></p><p>  uchar temp;</p><p><b>  KEY_OUT;</b></p><p>  KEY_OUT_H;</p><p><b>  

84、KEY_IN;</b></p><p>  temp=KEY_DATA;</p><p>  temp&=0XF8;</p><p>  if(temp==0XF8)</p><p><b>  {</b></p><p><b>  return 0;</b&

85、gt;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  return 1;</b></p><p><b>  }&

86、lt;/b></p><p><b>  }</b></p><p>  函數(shù)名稱: key_scan</p><p>  功 能: 返回鍵值</p><p><b>  參 數(shù): 無(wú)</b></p><p>  返回值 : key</p>

87、<p>  /********************************************/</p><p>  uchar key_scan()</p><p><b>  {</b></p><p>  uchar key;</p><p>  delay(10);</p><

88、;p>  if(key_press())</p><p><b>  {</b></p><p>  key=KEY_DATA;</p><p>  key&=0XF8;</p><p>  switch(key)</p><p><b>  {</b><

89、/p><p>  case 0X78: </p><p><b>  key=0x0;</b></p><p><b>  break;</b></p><p>  case 0XB8:</p><p><b>  key=0x1;</b></p>

90、;<p><b>  break;</b></p><p>  case 0XD8: </p><p><b>  key=0x2;</b></p><p><b>  break;</b></p><p>  case 0XE8:</p><

91、p><b>  key=0x3;</b></p><p>  PORTB&=~BIT(4);</p><p>  PORTB&=~BIT(6);</p><p><b>  break; </b></p><p>  case 0XF0:</p><p>

92、;<b>  key=0x4;</b></p><p><b>  break;</b></p><p><b>  default:</b></p><p>  key=16; </p><p><b>  }</b></p>

93、;<p>  while(key_press());</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  key=16;</b></p

94、><p><b>  }</b></p><p>  return key;</p><p><b>  }</b></p><p>  4.2.3界面顯示子程序</p><p>  /*******************************************<

95、/p><p>  函數(shù)名稱: LCD1602_write_com(uchar com)</p><p>  功 能: 向1602液晶寫入一個(gè)字節(jié)指令</p><p>  參 數(shù): com是指令</p><p><b>  返回值 : 無(wú)</b></p><p>  /**********

96、**********************************/</p><p>  void LCD1602_write_com(uchar com)</p><p><b>  {</b></p><p><b>  LCD_RS_L;</b></p><p><b>  LCD

97、_RW_L;</b></p><p>  LCD_DATA=com;</p><p><b>  delay(5);</b></p><p><b>  LCD_OE_H;</b></p><p><b>  delay(5);</b></p><

98、;p><b>  LCD_OE_L;</b></p><p><b>  }</b></p><p>  /*******************************************</p><p>  函數(shù)名稱: LCD1602_write_dat(uchar dat)</p><p

99、>  功 能: 向1602液晶寫入一個(gè)字節(jié)數(shù)據(jù)</p><p>  參 數(shù): dat是數(shù)據(jù)</p><p><b>  返回值 : 無(wú)</b></p><p>  /**********************************************/</p><p>  void LCD16

100、02_write_dat(uchar dat)</p><p><b>  { </b></p><p><b>  LCD_RS_H;</b></p><p><b>  LCD_RW_L;</b></p><p>  LCD_DATA=dat;</p>

101、<p><b>  delay(5);</b></p><p><b>  LCD_OE_H;</b></p><p><b>  delay(5);</b></p><p><b>  LCD_OE_L;</b></p><p><b&

102、gt;  }</b></p><p>  4.2.4 報(bào)警子程序</p><p>  void begin_AD()</p><p><b>  {</b></p><p>  uchar AD0,AD1,AD2;</p><p>  ADMUX=0X20; //外部參考電壓

103、AVCC,選通AD0路</p><p>  ADCSRA|=BIT(6); //ADC轉(zhuǎn)換開始</p><p><b>  delay(1);</b></p><p><b>  AD0=ADCH;</b></p><p><b>  delay(1);</b></p&

104、gt;<p>  ADMUX=0X21; ////外部參考電壓AVCC,選通AD1路</p><p>  ADCSRA|=BIT(6); //ADC轉(zhuǎn)換開始</p><p><b>  delay(1);</b></p><p><b>  AD1=ADCH;</b></p><

105、;p>  ADMUX=0X22; ////外部參考電壓AVCC,選通AD2路</p><p>  ADCSRA|=BIT(6); //ADC轉(zhuǎn)換開始</p><p><b>  delay(1);</b></p><p><b>  AD2=ADCH;</b></p><p>  

106、if(AD0<=20)//光敏</p><p><b>  {</b></p><p>  PORTB|=BIT(6);</p><p>  PORTB|=BIT(4);</p><p><b>  }</b></p><p>  if(AD0>=150)<

107、/p><p><b>  {</b></p><p>  PORTB&=~BIT(6);</p><p>  PORTB&=~BIT(4);</p><p><b>  }</b></p><p>  if(AD1>=200)//報(bào)警1</p>

108、<p><b>  {</b></p><p>  PORTD&=~BIT(0);</p><p><b>  error=1;</b></p><p><b>  }</b></p><p><b>  else</b></p&

109、gt;<p><b>  {</b></p><p>  PORTD|=BIT(0);</p><p><b>  error=0;</b></p><p>  display(0x80+0x04,' ');</p><p>  display(0x80+0x05,&#

110、39; ');</p><p>  display(0x80+0x06,' ');</p><p>  display(0x80+0x07,' ');</p><p>  display(0x80+0x08,' ');</p><p>  display(0x80+0x09,'

111、');</p><p>  display(0x80+0x0a,' ');</p><p>  display(0x80+0x0b,' ');</p><p>  display(0x80+0x0c,' ');</p><p><b>  }</b></p&g

112、t;<p>  if(AD2>=150)//報(bào)警2</p><p><b>  {</b></p><p>  PORTD&=~BIT(0);</p><p><b>  error=2;</b></p><p><b>  }</b></p&

113、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  PORTD|=BIT(0);</p><p><b>  error=0;</b></p><p>  display(0x80+0x04,' '

114、;);</p><p>  display(0x80+0x05,' ');</p><p>  display(0x80+0x06,' ');</p><p>  display(0x80+0x07,' ');</p><p>  display(0x80+0x08,' ');&

115、lt;/p><p>  display(0x80+0x09,' ');</p><p>  display(0x80+0x0a,' ');</p><p>  display(0x80+0x0b,' ');</p><p>  display(0x80+0x0c,' ');</

116、p><p><b>  }</b></p><p><b>  }</b></p><p>  5 軟硬件系統(tǒng)的調(diào)試</p><p>  硬件設(shè)計(jì)和軟件設(shè)計(jì)是電子設(shè)計(jì)中不可缺少的內(nèi)容,為了滿足設(shè)計(jì)的功能和指標(biāo)的要求,我們必須在開始設(shè)計(jì)時(shí)就考慮到硬件與軟件的協(xié)調(diào);不然會(huì)增加軟件實(shí)現(xiàn)時(shí)困難和復(fù)雜程度,有時(shí)即

117、使硬件和軟件單獨(dú)能用,卻不能使他們組成的系統(tǒng)工作,故在設(shè)計(jì)的過(guò)程中必須考慮軟硬件的處理能力以及它們的接口是否兼容,實(shí)現(xiàn)軟硬件的信號(hào)過(guò)渡。</p><p><b>  5.1硬件調(diào)試</b></p><p><b>  1.正確焊接硬件。</b></p><p>  一般來(lái)講,焊料不能過(guò)少,也不能過(guò)多,不能有虛焊,脫焊等現(xiàn)象

118、出現(xiàn)。焊接的時(shí)間不能過(guò)長(zhǎng),過(guò)長(zhǎng)會(huì)造成焊盤的脫落,絕緣層的燒毀,影響電路的電器性能。焊接時(shí)間也不能過(guò)短,過(guò)短會(huì)造成冷焊,虛焊脫焊,等現(xiàn)象。一般以5秒鐘為宜。焊接結(jié)束后清理焊點(diǎn)上的殘?jiān)?,以免殘?jiān)鼘?duì)焊點(diǎn)產(chǎn)生腐蝕作用,造成電路功能性故障。</p><p>  2.正確安裝硬件,檢查硬件的電氣連接是否可靠。電路是否完整,有無(wú)短路、斷路現(xiàn)象存在。</p><p>  3.上電測(cè)試硬件,看硬件能否工作。

119、注意,上電前一定要先檢測(cè)電源正負(fù)級(jí)是否短路。加穩(wěn)壓管VD1,VD2可以有效保護(hù)LED燈,防止因電流過(guò)大二燒壞LED。在調(diào)試時(shí)發(fā)現(xiàn)電源線太長(zhǎng)會(huì)起分壓作用,影響我們的供電電壓。故,在關(guān)鍵器件的供電一定要直接接電源輸出端和共地點(diǎn)。</p><p>  4. 測(cè)試系統(tǒng)性能,將測(cè)得參數(shù)與設(shè)計(jì)參數(shù)比較,若兩者不符,修改軟件,重復(fù)軟硬件調(diào)試的所有步驟,直到兩者相符為止。</p><p><b>

120、;  5.2 軟件調(diào)試</b></p><p>  1.通過(guò)ICC AVR對(duì)程序進(jìn)行編寫編譯,調(diào)試。編譯成功之后拷入單片機(jī)進(jìn)行系統(tǒng)聯(lián)調(diào)。</p><p>  2.程序拷貝成功后與硬件進(jìn)行系統(tǒng)聯(lián)調(diào),觀看現(xiàn)象,檢查系統(tǒng)功能能否按要求正常完成。</p><p><b>  6 附錄</b></p><p>  附錄

121、1 系統(tǒng)原理圖</p><p><b>  附錄 2 程序清單</b></p><p>  /******************************************/</p><p>  #include <iom16v.h>//包含型號(hào)頭文件</p><p>  #include &l

122、t;macros.h>//包含"位"操作頭文件</p><p>  #include "b.c"</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  /************

123、***1602控制位的宏定義**************************/</p><p>  #define LCD_OUT DDRC=0XFF //數(shù)據(jù)端設(shè)為輸出</p><p>  #define LCD_C_DDR DDRD|=0XE0 //控制端設(shè)為輸出 </p><p>  #

124、define LCD_DATA PORTC //發(fā)送數(shù)據(jù)端</p><p>  #define LCD_RS_H PORTD|=BIT(PD5); //操作的是命令</p><p>  #define LCD_RS_L PORTD&=~BIT(PD5); //操作的是數(shù)據(jù)</p><p>  #defi

125、ne LCD_RW_H PORTD|=BIT(PD6); //從1602讀</p><p>  #define LCD_RW_L PORTD&=~BIT(PD6); //向1602寫</p><p>  #define LCD_OE_H PORTD|=BIT(PD7); //1602使能</p><p>  #define L

126、CD_OE_L PORTD&=~BIT(PD7); //1602不使能</p><p>  #define LCDa_CURON0x0E// 顯示光標(biāo)</p><p>  #define LCDa_CURFLA0x0F// 打開光標(biāo)閃爍</p><p>  /******************RTC常量***********

127、*******/ </p><p>  #define RTC_CLK PB7</p><p>  #define RTC_DATA PB5</p><p>  #define RTC_CS PC7</p><p>  #define RD 0x01</p><p>  #defi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論