![基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)_第1頁](http://file4.renrendoc.com/view/3824cb59aaa913d000c0f31afe0311b8/3824cb59aaa913d000c0f31afe0311b81.gif)
![基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)_第2頁](http://file4.renrendoc.com/view/3824cb59aaa913d000c0f31afe0311b8/3824cb59aaa913d000c0f31afe0311b82.gif)
![基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)_第3頁](http://file4.renrendoc.com/view/3824cb59aaa913d000c0f31afe0311b8/3824cb59aaa913d000c0f31afe0311b83.gif)
![基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)_第4頁](http://file4.renrendoc.com/view/3824cb59aaa913d000c0f31afe0311b8/3824cb59aaa913d000c0f31afe0311b84.gif)
![基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)_第5頁](http://file4.renrendoc.com/view/3824cb59aaa913d000c0f31afe0311b8/3824cb59aaa913d000c0f31afe0311b85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)
基于單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)基于51單片機(jī)和CPLD試驗(yàn)開發(fā)板的設(shè)計(jì)摘要闡述了設(shè)計(jì)的各部分硬件的原理和用于試驗(yàn)的軟件設(shè)計(jì),特別給出了RTC的設(shè)計(jì)在實(shí)驗(yàn)板設(shè)計(jì)中的成功應(yīng)用。單片機(jī)CPLD實(shí)驗(yàn)板將單片機(jī)與CPLD有機(jī)結(jié)合在一起,構(gòu)建以51單片機(jī)為主,CPLD為輔的電路系統(tǒng)設(shè)計(jì)方案,既可以獨(dú)立用于單片機(jī)實(shí)驗(yàn)或CPLD實(shí)驗(yàn),也可以用于單片機(jī)和CPLD綜合應(yīng)用的實(shí)驗(yàn)。尤其,集成了具有ISP功能的CPLD和ISP功能的單片機(jī),為初學(xué)者節(jié)約了昂貴的編程器成本。關(guān)鍵詞:51單片機(jī)CPLDISP編程器實(shí)驗(yàn)板ABSTRACTInthispaper,itwaselaboratedthatthevariouspartsofthedesignprinciplesofhardwareandsoftwarefortestdesign,especiallygiventhedesignoftheRTCboardinthesuccessfulapplicat(yī)ionofdesign.Thee(cuò)xperimentofMCUandCPLDwillbecombinedwiththeMCU-CPLDboard,whichmainlytobuild51single—chip,CPLDsecondarycircuitystemdesign,andbothindependentexperimentsorCPLDforthesingle—chipexperimentscanalsobeMCUandCPLDforthecomprehensiveapplicationoftheexperiment.Inparticular,theintegratedfunctionoftheCPLDandMCUwithISPforbeginnerssavesthecostofexpensiveprogrammers.Keywords:51MCUCPLDISPprogrammerexperimentboard目錄引言……………31MiniB的目的及意義……………………32MiniB的硬件設(shè)計(jì)………42.1單片機(jī)與CPLD接口電路……………42.2USB及串行接口電路……………62。3最小系統(tǒng)及外圍設(shè)備接口電路………82。3。1電源電路………82.3.2單片機(jī)P1口擴(kuò)展電路………82.3.3顯示接口電路…………………123MiniB的軟件設(shè)計(jì)………123.1由AVR單片機(jī)ATmega8實(shí)現(xiàn)USB轉(zhuǎn)串口的驅(qū)動(dòng)設(shè)計(jì)和ISP(in—system—programming)的使用…………………123.2RTC設(shè)計(jì)實(shí)例(DS1302+LCD1602+復(fù)雜按鍵輸入+多模式蜂鳴器發(fā)聲+多任務(wù)輪循架構(gòu))…………………133。2.1任務(wù)解析及人性化設(shè)計(jì)要求………133.2.2多任務(wù)程序架構(gòu)……………143。2.3任務(wù)調(diào)度………173.2.4任務(wù)設(shè)計(jì)………184調(diào)試………………………26致謝…………………27參考文獻(xiàn)……………28引言?單片機(jī)以其控制功能強(qiáng)體積小價(jià)格低耗電省可靠性高等特點(diǎn),嵌入式應(yīng)用很廣[1].而單片機(jī)學(xué)習(xí)門檻較高,涉及單片機(jī)軟硬件知識(shí),同時(shí)還要掌握幾種軟硬件工具平臺(tái),初學(xué)者要想快速入門單片機(jī)領(lǐng)域,往往需要一個(gè)好的硬件平臺(tái)和大量易懂的實(shí)例.隨著電子技術(shù)的不斷發(fā)展,大規(guī)模集成電路的運(yùn)用越來越普遍,用CPLD/FPGA來開發(fā)新產(chǎn)品是電子技術(shù)發(fā)展必然趨勢。目前各高校逐步開設(shè)了單片機(jī)課程和可編程器件設(shè)計(jì)課程,而兩門課程往往是獨(dú)立開設(shè),尤其是實(shí)驗(yàn),而實(shí)驗(yàn)是檢驗(yàn)理論正確與否的試金石,是學(xué)好兩門課程的重要手段和方法。從而,切實(shí)滿足初學(xué)者需要的實(shí)驗(yàn)板的開發(fā)成為了現(xiàn)實(shí),而目前市場上針對(duì)初學(xué)者而開發(fā)的綜合實(shí)驗(yàn)板價(jià)格高,體積大,操作煩瑣,不易學(xué)習(xí)掌握。1MiniB的目的及意義現(xiàn)在市場上關(guān)于單片機(jī)和CPLD的試驗(yàn)開發(fā)板很多,總體上來說設(shè)計(jì)不專業(yè),成本價(jià)格高,功能的單一,不能用于單片機(jī)和CPLD的綜合應(yīng)用試驗(yàn),操作復(fù)雜利用率不高,但對(duì)于在校學(xué)生和電子愛好者這些消費(fèi)者來說需求還很大。1.1目的為單片機(jī)和CPLD初學(xué)者提供一款經(jīng)濟(jì)實(shí)用型實(shí)驗(yàn)板,解決單片機(jī)和CPLD獨(dú)立學(xué)習(xí)的問題,設(shè)計(jì)過程中個(gè)人知識(shí)能力的提升,以消費(fèi)者的切實(shí)需要為原則,市場的需求明顯。1.2意義此款單片機(jī)加CPLD實(shí)驗(yàn)板是總結(jié)單片機(jī)和CPLD學(xué)習(xí)的經(jīng)驗(yàn),站在初學(xué)者的角度上而開發(fā),將單片機(jī)與CPLD有機(jī)結(jié)合在一起,構(gòu)建以單片機(jī)為主,CPLD為輔的電路系統(tǒng)設(shè)計(jì)方案,既可以獨(dú)立用于單片機(jī)實(shí)驗(yàn)或CPLD實(shí)驗(yàn),也可以用于單片機(jī)和CPLD綜合應(yīng)用的實(shí)驗(yàn),打造出袖珍單片機(jī)CPLD學(xué)習(xí)板。尤其,集成了具有ISP功能的CPLD和ISP功能的單片機(jī),為初學(xué)者節(jié)約了昂貴的編程器成本。2MiniB的硬件設(shè)計(jì)系統(tǒng)結(jié)構(gòu)如圖2所示,該板采用單片機(jī)+CPLD結(jié)構(gòu),單片機(jī)為主,CPLD為輔。與單片機(jī)相連的模塊有:P1口接發(fā)光二極管、蜂鳴器、繼電器、AD/DA,P4口(STC單片機(jī)PLCC-44封裝特有)接實(shí)時(shí)時(shí)鐘DS1302、紅外接收器,P3口接232電平轉(zhuǎn)換電路和4個(gè)按鍵,單片機(jī)P0口和P2口以及P3.6、P3.7作為總線使用,CPLD直接驅(qū)動(dòng)4位數(shù)碼管,并給LCD提供使能信號(hào),單片機(jī)和CPLD引腳分別有擴(kuò)展接口,板上集成5V穩(wěn)壓電源,可以外接DC9V電源,也可以從計(jì)算機(jī)USB口直接取5V電源,JTAG接口完全符合IEEE1149.1標(biāo)準(zhǔn),提供完全的邊界掃描功能[2]。圖2系統(tǒng)結(jié)構(gòu)圖2.1單片機(jī)與CPLD接口電路現(xiàn)在所有單片機(jī)廠家都有支持ISP的單片機(jī),由于STC公司推出的STC系列單片機(jī)具有較強(qiáng)的功能和較高的性價(jià)比,本設(shè)計(jì)采用STC89C516RD+單片機(jī)作為系統(tǒng)的核心。單片機(jī)選STC89C5X,該系列單片機(jī)內(nèi)部集成MAX810/STC810專用復(fù)位電路,內(nèi)置看門狗,超強(qiáng)抗干擾,輕松過2KV/4KV快速脈沖干擾(EFT),加密性強(qiáng),STC89C52RC~STC89C58RD+系列與Intel8051管腳兼容,寬電壓,5.5V~3.4V給復(fù)位信號(hào)后能正常工作,PQFP—44,PLCC-44封裝有P4口。STC89C51RC有3個(gè)定時(shí)器/計(jì)數(shù)器,1280字節(jié)大容量內(nèi)部數(shù)據(jù)RAM,特別是該系列單片機(jī)支持ISP編程,開發(fā)無需高價(jià)的編程器,可實(shí)現(xiàn)遠(yuǎn)程升級(jí),在ISP下載編程時(shí)可設(shè)置6或12時(shí)鐘/機(jī)器周期模式,在6時(shí)鐘模式,比普通51速度快一倍.CPLD有兩種型號(hào)可選,ALTERA的EPM7064和ATMEL的ATF1504。器件的參數(shù)特性可參閱相關(guān)資料。單片機(jī)和CPLD都選擇PLCC—44腳封裝,占用PCB面積小,更換容易。圖2.1(a)單片機(jī)與CPLD接口電路Mini51板的CPLD選擇Altera公司的EPM7064.單片機(jī)與CPLD總線接口如圖2.1(a)所示。數(shù)據(jù)總線既單片機(jī)P0口同CPLD一般IO口相連,完成數(shù)據(jù)和低8位地址傳送;控制總線包括單片機(jī)讀寫控制信號(hào)Rd(P3.7)和Wr(P3。6),以及地址鎖存信號(hào)ALE(AddressLockEnable)和高位地址線A15(P2.7)通過CPLD的全局信號(hào)引腳輸入,包括全局時(shí)鐘輸入:INPUT/GCLK1,全局清零輸入INPUT/GCLRn,全局使能輸入INPUT/OE1,INPUT/OE2,這幾個(gè)信號(hào)有專用連線與CPLD中每個(gè)宏單元相連,保證信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。單片機(jī)與CPLD之間可以根據(jù)需要,采用多種不同的接口方式,這里提出一種總線接口方案,采用三總線(數(shù)據(jù)、控制、地址)結(jié)構(gòu),如圖2.1(b)所示,雙向數(shù)據(jù)總線完成數(shù)據(jù)傳輸,單向控制總線和地址總線通過CPLD對(duì)外圍對(duì)象控制.圖2.1(b)單片機(jī)與CPLD接口電路框圖2。2USB及串行接口電路由AVR單片機(jī)ATmega8實(shí)現(xiàn)USB轉(zhuǎn)串口且實(shí)現(xiàn)ISP(in-system—programming)功能的接口電路,如圖2。2。USB接口使用方便,逐漸成為主流,計(jì)算機(jī)經(jīng)典接口串口,并口慢慢消失,于是出現(xiàn)USB轉(zhuǎn)串口,轉(zhuǎn)并口,專用IC很多,一般都很昂貴,USB方案成為最佳選擇。ATmega8是AVR高檔單片機(jī)中內(nèi)部接口豐富、功能齊全、性能價(jià)格比最好的品種[2]。通過燒寫USBASP固件和AVR-CDC固件分別實(shí)現(xiàn)兩種功能:一是實(shí)現(xiàn)AVR和S51ISP編程,二是實(shí)現(xiàn)USB轉(zhuǎn)串口.這里串口輸出(圖中為uRxD和uTxD)為TTL電平,可以直接接單片機(jī)。圖2。2由AVR單片機(jī)ATmega8實(shí)現(xiàn)USB轉(zhuǎn)串口且實(shí)現(xiàn)ISP(in—system-programming)功能的接口電路ISP(in-ysem-prograing指系統(tǒng)在線可編程,是最先由Lattice公司提出的一種技術(shù),是通過同步串行方式實(shí)現(xiàn)對(duì)同步串行方式實(shí)現(xiàn)對(duì)其可編程邏輯器件的重配置ISP的現(xiàn)比較簡單通用做法是內(nèi)部的存儲(chǔ)器可以由上位機(jī)的軟件通過串口來進(jìn)行改寫對(duì)于單片機(jī)來講可以通過PI或其他的串行接口接收上位機(jī)傳來的數(shù)據(jù)并寫入存儲(chǔ)器中.采用P術(shù)P技的優(yōu)勢是不需要編程器就可以進(jìn)行單片機(jī)的實(shí)驗(yàn)和開發(fā),按照SC公司提供ISP下載線的接口標(biāo)準(zhǔn),只要在單片機(jī)與PC機(jī)之間加一個(gè)電平轉(zhuǎn)換電路就可以實(shí)現(xiàn)程序的在線下載免了調(diào)試時(shí)由于頻繁地拔插對(duì)芯片和電路板帶來的損壞這對(duì)于生的實(shí)驗(yàn)教學(xué)而言顯得尤為重要由于P技術(shù)具的上述特點(diǎn)采用了ISP技術(shù),其轉(zhuǎn)換電路如上圖。2。3最小系統(tǒng)及外圍設(shè)備接口電路2.3。1電源電路該板提供兩種供電方式如圖2.3。1,一種從接口輸入DC9V電源,板上集成7805穩(wěn)壓IC,采用貼片封裝,也可以從接口通過計(jì)算機(jī)USB接口取電。圖中按鈕為常閉開關(guān),用來斷開電源實(shí)現(xiàn)冷啟動(dòng)用。其中D3用來防止電源極性接反,R4為4.7歐電阻,這里起保護(hù)作用,防止實(shí)驗(yàn)板短路,損壞計(jì)算機(jī)USB接口.圖2。3。1電源電路2.3.2單片機(jī)P1口擴(kuò)展電路STC89C5X系列單片機(jī)有P4口,因此將P4.0~P4。2分配給DS1302,P4。3端口,用于連接溫度傳感器DS18B20電路如圖2。3.2(a)所示。DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM通過簡單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路提供秒分時(shí)日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過AM/PM指示決定采用24或12小時(shí)格式DS1302與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線1RES復(fù)位2I/O數(shù)據(jù)線3SCLK串行時(shí)鐘時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信DS1302工作時(shí)功耗很低保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW.DS1302和處理器接口一般為3線制,RST(CE)復(fù)位腳,讀寫操作時(shí)同步時(shí)序同步用,I/O串行數(shù)據(jù)輸入輸出腳,SCLK串行時(shí)鐘輸入腳。圖2.3.2(a)DS18B20和DS1302接口電路單片機(jī)P1口帶鎖存功能,編程容易。Mini51板上P1口被LED、蜂鳴器、繼電器、串行AD/DA復(fù)用,除LED直接與P1相連外,其它都可以斷開,只在需要用時(shí)連接。LED電路如圖2.3.2(b)所示,低電平點(diǎn)亮,因?yàn)椋?系列單片機(jī)P1口靠內(nèi)部上拉電阻輸出高電平,所以一般不用P1口輸出高電平驅(qū)動(dòng)LED,外部限流電阻RP不宜太小,否則會(huì)影響到P1口狀態(tài),為以后P1口擴(kuò)展留下隱患,如果用貼片發(fā)光二極管,RP甚至可以為4.7k。圖2.3。2(b)LED接口電路該板還設(shè)計(jì)了繼電器電路通過繼電器容易實(shí)現(xiàn)弱電到強(qiáng)電的開關(guān)控制電路如圖2.3.2(c)所通過跳線P12控制,用時(shí)請(qǐng)斷開,圖中N418為電器線圈續(xù)流用二極管,特別重要。Relay為直流5V驅(qū)動(dòng)雙聯(lián)動(dòng)繼電器,用螺栓接線柱展接口。圖2.3.2(c)雙聯(lián)動(dòng)繼電器接口電路蜂鳴器電路如圖3.3.2(d示通過跳線與P10相不用時(shí)可以斷開Bell為有源蜂鳴器,接通5V電會(huì)發(fā)聲,單片機(jī)P10開關(guān)控制,低電平開啟。圖3。3。2(d)蜂鳴器接口電路此外P1口可以實(shí)現(xiàn)AD/DA電路的轉(zhuǎn)換,接口電路如圖(e。其中,TLC1549為串行接口10位單通道A_D轉(zhuǎn)換器,TLC5615為串行接口10位單通道D_A轉(zhuǎn)換器,都只能實(shí)現(xiàn)單輸單出,而未使用ADC0809和DAC0832是為了縮小PCB的面積,能達(dá)到試驗(yàn)效果是本設(shè)計(jì)的初衷.圖3。3.2(e)AD/DA接口電路2.3.3顯示接口電路本設(shè)計(jì)有三個(gè)顯示模塊,分別是:LCD1602、LCD12864和4位7段LED數(shù)碼管.點(diǎn)陣字符型液晶顯示器是專門用于顯示數(shù)字、字母、圖形符號(hào)及少量自定義符號(hào)的顯示器[3]。2.3.3顯示接口電路3軟件設(shè)計(jì)3.1由AVR單片機(jī)ATmega8實(shí)現(xiàn)USB轉(zhuǎn)串口的驅(qū)動(dòng)設(shè)計(jì)和ISP(in—system-programming)的使用在給ATmega8燒寫固件及驅(qū)動(dòng)文件時(shí),要注意熔絲位的設(shè)置,如果設(shè)置不對(duì),則單片機(jī)不能正常工作。熔絲位設(shè)置如圖3。1:圖3。1熔絲位設(shè)置3.2RTC設(shè)計(jì)實(shí)例(DS1302+LCD1602+復(fù)雜按鍵輸入+多模式蜂鳴器發(fā)聲+多任務(wù)輪循架構(gòu))“實(shí)時(shí)時(shí)鐘”是很多任務(wù)執(zhí)行的關(guān)鍵參數(shù),例如家居智能控制,室外信息發(fā)布,路燈控制等,因此熟悉一種實(shí)時(shí)時(shí)鐘芯片以及精通編程控制將是一件非常有意義的事情。這里結(jié)合Mini51板硬件資源,開發(fā)出一款實(shí)用的實(shí)時(shí)時(shí)鐘萬年歷,特別是程序設(shè)計(jì)采用了定時(shí)中斷多任務(wù)輪詢思想,對(duì)初學(xué)者程序設(shè)計(jì)具有重要的參考價(jià)值。這里使用C語言編程,那么Keil應(yīng)該是首選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境,強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令編程事半功倍[5].3.2。1任務(wù)解析及人性化設(shè)計(jì)要求Mini51板上可用硬件資源有實(shí)時(shí)時(shí)鐘芯片DS1302和備用電池,還有LCD1602顯示屏、按鍵和蜂鳴。整合這些硬件資源,設(shè)計(jì)一個(gè)具有調(diào)時(shí)、鬧鐘功能,還要顯示美觀,易使用的電子萬年歷。LCD顯示要根據(jù)LCD每行16字符的特點(diǎn)設(shè)計(jì),如上,可以顯示年、月、日、星期、時(shí)間,還有鬧鐘設(shè)定功能。顯示效果設(shè)計(jì)如下:第一行顯示:【2008-06-16Week1】第二行顯示:【14:52:35AL07:00】三鍵輸入:模式設(shè)定set,加一up,減一down。按鍵操作:長按set鍵進(jìn)入時(shí)間設(shè)定模式,在進(jìn)入設(shè)定模式以前,隨意短按任意鍵,不產(chǎn)生任何作用,保證時(shí)間不被隨便修改;同一鍵短按鍵選擇設(shè)定對(duì)象;加減鍵長按直接退出設(shè)定模式.進(jìn)入設(shè)定模式后,長時(shí)間10s不按鍵,自動(dòng)退出按鍵模式;以上所有的操作時(shí)鐘正常走鐘。聲音提示:所有按鍵操作伴隨聲音提示,長短按鍵有不同的提示聲,按鍵手感好。鬧鐘設(shè)置:鬧鐘設(shè)置信息寫入DS1302芯片的暫存RAM,保證主電源掉電數(shù)據(jù)不丟失;鬧鐘精確到分鐘;鬧鐘可禁用,并有顯示提示;鬧鐘鬧鈴時(shí),任意按鍵結(jié)束鬧鈴。3.2。2多任務(wù)程序架構(gòu)為了程序移植性好,維護(hù)性好,易裁剪,我們有必要引入多任務(wù)編程思想,就是一個(gè)系統(tǒng)由多個(gè)任務(wù)構(gòu)成,各任務(wù)之間相對(duì)獨(dú)立。我在這里提出一種基于定時(shí)器中斷的多任務(wù)輪循程序架構(gòu),如圖3.2。2(a)所示。在主程序中,根據(jù)任務(wù)延時(shí)量判斷任務(wù)是否就緒,各任務(wù)輪循占用CPU,由任務(wù)延時(shí)量控制任務(wù)執(zhí)行頻度及CPU關(guān)照度,而任務(wù)延時(shí)量又由定時(shí)器中斷控制.關(guān)于任務(wù)實(shí)時(shí)性的理解:從人機(jī)交互角度考慮,很多任務(wù)實(shí)時(shí)性要求是相對(duì)的,例如LCD顯示刷新,就不需要很快的刷新頻度,即使被顯示的內(nèi)容更新足夠快,LCD顯示刷新也不需要很快,因?yàn)椋藽D顯示是給人看的,如果每秒刷新20次,已經(jīng)足夠了,這里結(jié)合數(shù)字鐘顯示任務(wù),每秒3次就可以達(dá)到要求了;又如按鍵掃描,掃描執(zhí)行頻度則不能太慢,太慢容易丟失有效鍵值,至少每秒應(yīng)保持50次以上的執(zhí)行頻度才行;同樣DS1302實(shí)時(shí)時(shí)鐘讀取頻度,每秒3次就可以了.不同任務(wù),需要不同的執(zhí)行頻度(CPU關(guān)照度),如果采用傳統(tǒng)大循環(huán)模式,各任務(wù)按一個(gè)頻度運(yùn)行,顯然不適合本設(shè)計(jì)。這里還涉及到多種延時(shí)需要,例如按鍵去抖動(dòng)、蜂鳴器發(fā)聲等,如果采用傳統(tǒng)循環(huán)延時(shí)法,不僅極大浪費(fèi)CPU資源,而且造成不同任務(wù)之間相互影響,很難找到一個(gè)平衡點(diǎn),特別不利于程序維護(hù),我們形象稱這種程序?yàn)槊鏃l程序.圖3.2。2(a)定時(shí)中斷的多任務(wù)輪循程序架構(gòu)流程圖基于定時(shí)器中斷的多任務(wù)輪循架構(gòu),各子任務(wù)必須設(shè)計(jì)成主動(dòng)放棄CPU運(yùn)行模式,子任務(wù)不能設(shè)計(jì)成死循環(huán)流程,子任務(wù)的執(zhí)行依靠主程序任務(wù)調(diào)度來實(shí)現(xiàn)。正因?yàn)楦魅蝿?wù)不搶占CPU,所以程序設(shè)計(jì)不用考慮現(xiàn)場保護(hù)問題,簡化了程序設(shè)計(jì)。本設(shè)計(jì)程序整體架構(gòu)如圖3。2。2(b)所示,定時(shí)器固定節(jié)拍中斷,該節(jié)拍需滿足最快任務(wù)執(zhí)行頻度需要,例如50Hz,對(duì)于按鍵掃描程序,每秒按50次頻度執(zhí)行即可,而LCD1602可以按每秒3次頻度執(zhí)行,實(shí)時(shí)時(shí)鐘數(shù)據(jù)讀取也只需按每秒3次頻度執(zhí)行一次.圖3。2.2(b)Mini51板實(shí)時(shí)時(shí)鐘流程圖任務(wù)執(zhí)行頻度由任務(wù)延時(shí)量task_delay[ID]控制,各任務(wù)延時(shí)量在定時(shí)中斷中減一,直到延時(shí)量為零,相關(guān)相關(guān)任務(wù)就緒。務(wù)調(diào)度過程就是對(duì)任務(wù)延時(shí)量檢測過程,只有任務(wù)延時(shí)量為零時(shí),CPU從其它任務(wù)中返回后立即執(zhí)行相應(yīng)的任務(wù),由于不同任務(wù)延時(shí)量不同,從而實(shí)現(xiàn)不同任務(wù)具有不同的執(zhí)行頻度而相互不受影響。這里還必須滿足一個(gè)條件,就是每個(gè)任務(wù)執(zhí)行一次的時(shí)間不能太長超過一次定時(shí)中斷時(shí)間,否則任務(wù)之間執(zhí)行頻度會(huì)有影響,對(duì)于50Hz的中斷頻率,每個(gè)任務(wù)執(zhí)行時(shí)間最好不超過20ms,既CPU光顧一次任務(wù)時(shí)間要在20ms以內(nèi),這樣就可以保證任務(wù)之間相互完全不受影響。定時(shí)中斷在這里就是心臟,依靠定時(shí)中斷完成任務(wù)延時(shí)量的修改,從而實(shí)現(xiàn)不同任務(wù)運(yùn)行頻度控制.定時(shí)器設(shè)置及初始化代碼如下:#defineTIME_PER_SEC50//定義定時(shí)中斷頻度,由執(zhí)行頻度要求最快的任務(wù)確定,太高會(huì)降低CPU運(yùn)行效率,太低任務(wù)頻度不好分配,一般200Hz以下,這里采用50Hz。#defineCLOCK22118400//定義時(shí)鐘晶振,單位Hz,與硬件一致即可voidOS_Init_Timer0(void)//定時(shí)器0初始化{uchari;for(i=0;i<MAX_TASK;i++)task_delay[i]=0;//任務(wù)延時(shí)量初始化TMOD=(TMOD&0xf0)|0x01;//定時(shí)器0工作在模式1,16Bit定時(shí)器模式TH0=255-CLOCK/TIME_PER_SEC/12/256;TL0=255—CLOCK/TIME_PER_SEC/12%256;TR0=1;//開啟定時(shí)器ET0=1;//開啟定時(shí)器中斷}這里通過宏定義,把易變參數(shù)在頭文件中定義,這樣使得程序容易修改,便于移植。voidOS_Timer0(void)interrupt1using2//定時(shí)中斷服務(wù){uchari;TH0=255-CLOCK/TIME_PER_SEC/12/256;TL0=255—CLOCK/TIME_PER_SEC/12%256;//每節(jié)拍對(duì)任務(wù)延時(shí)量減1,減至0后,任務(wù)就緒。for(i=0;i〈MAX_TASK;i++){if(task_delay[i]>0)task_delay[i]——;//任務(wù)延時(shí)量減一歸零,使任務(wù)就緒}}在定時(shí)中斷服務(wù)中,執(zhí)行的任務(wù)必須很簡短,重置定時(shí)器初值,把大于0的任務(wù)延時(shí)量減1,該定時(shí)中斷作為心臟跳動(dòng),不斷進(jìn)出運(yùn)行,為了節(jié)省CPU時(shí)間,該中斷任務(wù)越簡單越好。3.2.3任務(wù)調(diào)度任務(wù)調(diào)度在主程序main()中完成,系統(tǒng)初始化之后,在一個(gè)大循環(huán)中,對(duì)各任務(wù)的延時(shí)量是否為零判斷,當(dāng)任務(wù)延時(shí)量為零時(shí),表示該任務(wù)就緒,當(dāng)前一個(gè)任務(wù)主動(dòng)放棄CPU之后,馬上啟動(dòng)就緒的新任務(wù)。各任務(wù)之間不具有搶占功能,因此不用考慮堆棧與保護(hù),初學(xué)者也能夠完全掌握。voidmain(void){sys_init();//系統(tǒng)初始化,包含各子任務(wù)初始化OS_Init_Timer0();//定時(shí)器初始化INT_GLOBAL(1);//開總中斷while(1){//根據(jù)任務(wù)延時(shí)量是否為零選擇執(zhí)就緒任務(wù)執(zhí)行,任務(wù)執(zhí)行完成后返回再恢復(fù)設(shè)定的延時(shí)量if(task_delay[0]==0){task0();task_delay[0]=TIME_PER_SEC/50;}if(task_delay[1]==0){task1();task_delay[1]=TIME_PER_SEC/20;}if(task_delay[2]==0){task2();task_delay[2]=TIME_PER_SEC/01;}if(task_delay[3]==0){task3();task_delay[3]=TIME_PER_SEC/02;}if(task_delay[4]==0){task4();task_delay[4]=TIME_PER_SEC/03;}if(task_delay[5]==0){task5();task_delay[5]=TIME_PER_SEC/04;}if(task_delay[6]==0){task6();task_delay[6]=TIME_PER_SEC/05;}if(task_delay[7]==0){task7();task_delay[7]=TIME_PER_SEC/06;}}}紅色數(shù)字表示任務(wù)執(zhí)行的頻度,即每秒鐘執(zhí)行多少次。各個(gè)不同的任務(wù),根據(jù)需要,設(shè)定不同的延時(shí)量,延時(shí)量在定時(shí)中斷中逐步減一歸零,每個(gè)任務(wù)必須主動(dòng)放棄CPU,正因此,各任務(wù)執(zhí)行時(shí)間最好不要超過定時(shí)中斷節(jié)拍時(shí)間單位,這里為20ms,否則將影響其它任務(wù)運(yùn)行.3.2.4任務(wù)設(shè)計(jì)3.2.4。1按鍵掃描task0。C圖3。2.4.1按鍵掃描任務(wù)流程圖按鍵輸入需要要實(shí)現(xiàn)以下功能:按鍵去抖動(dòng),快速單次觸發(fā),長按單次觸發(fā),長按多次連續(xù)觸發(fā),同一按鍵既有長按又有短按功能.流程圖如所示。由于該任務(wù)在一定的頻度內(nèi)執(zhí)行,通過定義狀態(tài)機(jī)記錄該任務(wù)的歷史運(yùn)行狀態(tài),由于一次按鍵不能立即確定鍵值,需要去抖動(dòng)處理,我可以用狀態(tài)機(jī)把首次按鍵記住,在二次按鍵時(shí)確認(rèn)鍵值,同樣,長短按鍵也是用狀態(tài)機(jī)和計(jì)數(shù)器控制,通過任務(wù)多次調(diào)用積累時(shí)間,從而實(shí)現(xiàn)長延時(shí)而又不占用CPU資源,這就是此種定時(shí)器中斷的多任務(wù)輪循架構(gòu)程序設(shè)計(jì)的精髓所在.以50Hz的頻度掃描鍵盤,基本不會(huì)出現(xiàn)按鍵丟失現(xiàn)象。通過狀態(tài)機(jī)計(jì)數(shù)器控制,去抖動(dòng),長短按鍵,單次多次按鍵等各種復(fù)雜的控制,部分程序解讀如下:#defineKEY_PORTP3//定義按鍵接口#defineKEY_VALKEY_PORT|0xc3//Mini51板P3.2—P3。5有效,有鍵按下則對(duì)應(yīng)位為0#defineKEY00xfb//P3。2#defineKEY10xf7//P3.3#defineKEY20xef//P3。4#defineKEY30xdf//P3。5以上對(duì)硬件接口進(jìn)行定義,這樣做的好處是當(dāng)硬件接口改變后,程序容易修改,這種程序設(shè)計(jì)思想很重要。#defineKEY0_UP0x15#defineKEY1_UP0x16#defineKEY2_UP0x17#defineKEY3_UP0x18以上定義按鍵彈起對(duì)應(yīng)按鍵的關(guān)聯(lián)狀態(tài),數(shù)據(jù)本身沒有實(shí)際意義,只要不重復(fù)就行,由于在程序中多處使用,如果使用常數(shù),程序可讀性差,容易出錯(cuò)。#defineLONG_DN_TIME50*2;//長按鍵時(shí)間設(shè)置,2s,其中50為本任務(wù)執(zhí)行頻度#defineWAIT_DN_TIME50*1;//長按鍵過度到連續(xù)任務(wù)執(zhí)行時(shí)間間隔1s#defineCONU_DO_TIME50*0。2;//長按鍵連續(xù)執(zhí)行頻度,時(shí)間間隔0.2Svoidtask0_init(void)//任務(wù)初始化,在主程序sys_init()中調(diào)用{KEY_PORT=0xff;//按鍵端口初始化}本任務(wù)開始時(shí)需要執(zhí)行一次的任務(wù)初始化函數(shù),在主程序sys_init()中調(diào)用,僅僅執(zhí)行一次。voidtask0(void){staticucharstate_dn=0;//有鍵按下狀態(tài)機(jī)變量staticucharstat(yī)e_up=0;//按鍵釋放狀態(tài)機(jī)變量stat(yī)icucharkey_ldn_cnt=0;//長按鍵計(jì)數(shù)器,控制長按鍵時(shí)間ucharkey_num;//鍵值變量key_num=KEY_VAL;//一次性讀取鍵值if(key_num!=0xff)//判斷是否有鍵按下{switch(state_dn)//采用狀態(tài)機(jī)記住前后按鍵變化情況{……}}else//按鍵釋放觸發(fā)任務(wù)執(zhí)行{switch(stat(yī)e_up){……}}}3.2。4.2LCD顯示task1。C圖3.2.4.2LCD顯示刷新流程圖LCD顯示刷新流程圖如圖4所示,給LCD分配全局變量顯示緩沖區(qū)并在獨(dú)立任務(wù)中周期刷新顯示,這樣做的好處是程序設(shè)計(jì)思路清晰,各任務(wù)獨(dú)立,程序可讀性好,缺點(diǎn)是占用太多內(nèi)存,沒有更新的數(shù)據(jù)也不斷刷新,浪費(fèi)了CPU資源。LCD驅(qū)動(dòng)程序在頭文件lcd1602。h中,其他任務(wù)通過全局變量str_buff和fly_space控制該模塊運(yùn)行效果。閃爍控制原理是根據(jù)閃爍控制標(biāo)志位,周期替換顯示內(nèi)容為空白字符符。部分程序解讀如下:#include"main。h"#include”lcd1602。h”ucharstr_buff[32];//定義全局顯示緩沖區(qū)ucharfly_space;//定義全局閃爍位置控制變量,其它任務(wù)要用該變量需要加前綴extern聲明voidtask1_init(void)//本任務(wù)初始化,在主程序中調(diào)用一次{unsignedchari;lcd1602_init();for(i=0;i<32;i++)str_buff[i]=’’;fly_space=0xff;//首先關(guān)閉閃爍標(biāo)志}voidtask1(void){staticucharfly_cnt=0;//閃爍頻度控制if(fly_space!=0xff){fly_cnt++;if(fly_cnt<3){str_buff[fly_space]='';//將顯示內(nèi)容用空白字符替換,產(chǎn)生閃爍效果if(fly_space!=15)str_buff[fly_space+1]=’';}elseif(fly_cnt〉12)fly_cnt=0;}lcd_put_xyns(1,1,16,str_buff);lcd_put_xyns(1,2,16,str_buff+16);}3。2.4.3實(shí)時(shí)時(shí)鐘讀取task3.C圖3。2。4。3時(shí)鐘讀取描任務(wù)流程圖實(shí)時(shí)時(shí)鐘讀取任務(wù)相對(duì)簡單,由于秒鐘每秒更新一次,為了實(shí)現(xiàn)較好的顯示效果,每秒至少讀3次以上,所以本任務(wù)的執(zhí)行頻度設(shè)定為3次,與時(shí)間相關(guān)的控制任務(wù),如鬧鐘,整點(diǎn)報(bào)時(shí)都放在這里.3。2.4.4蜂鳴器發(fā)聲task4.C蜂鳴器是IO口驅(qū)動(dòng)的簡單開關(guān)控制,Mini51板上的蜂鳴器是采用的有源蜂鳴器,接通電源就發(fā)出單音頻聲音,單片機(jī)的控制只是控制其發(fā)聲時(shí)長和開關(guān)頻度,從而產(chǎn)生不同的效果,看似“接通"“延時(shí)”“斷開"如此簡單的控制,如果考慮多任務(wù)模式,不用常規(guī)死循環(huán)延時(shí)(那樣極大的浪費(fèi)CPU資源,不適合多任務(wù)模式),還要實(shí)現(xiàn)多種發(fā)聲模式可選擇,這就需要我們突破傳統(tǒng)程序設(shè)計(jì)思路,這里還是基于定時(shí)器中斷任務(wù)輪詢的思路,采用狀態(tài)機(jī)控制,程序流程圖如圖所示,這里實(shí)現(xiàn)了單次短發(fā)聲,單次長發(fā)聲,連續(xù)短發(fā)聲,連續(xù)長發(fā)聲,根據(jù)需要還可以添加更多種發(fā)聲模式,這樣在其它需要發(fā)聲處,只要給出發(fā)聲模式即可。蜂鳴發(fā)聲主要用在按鍵響應(yīng),鬧鐘提示,整點(diǎn)報(bào)時(shí)處。圖3。2。4.4蜂鳴器多模式發(fā)聲任務(wù)流程圖部分程序解讀如下:#include”main.h"/***蜂鳴器模式定義***/#defineBM00x01#defineBM10x02#defineBM20x11#defineBM30x22#defineON0#defineOFF1#defineBUZZR(x)BUZZR=(x)sbitBUZZR=P1^0;//蜂鳴器接口定義ucharbeep_modle;//發(fā)聲模式選擇全局變量,其它任務(wù)中通過該變量啟動(dòng)蜂鳴器發(fā)聲voidtask3_init(void){beep_modle=BM0;//初始蜂鳴器模式1,系統(tǒng)復(fù)位啟動(dòng)發(fā)聲一次}voidtask3(void){staticucharbee(cuò)p_time=0;//蜂鳴器發(fā)聲時(shí)間長度控制變量switch(beep_modle){case0:break;caseBM0://模式0,單次短聲BUZZR(ON);//開蜂鳴器beep_time=BM0;beep_modle=0;break;caseBM1://模式1,單次長聲BUZZR(ON);beep_time=BM1;beep_modle=0;break;caseBM2://模式2,連續(xù)短聲BUZZR(ON);bee(cuò)p_time=BM2&0x0f;beep_modle=BM2+0x10;break;caseBM2+0x10://模式2的2狀態(tài)if(beep_time==0)beep_modle=BM2;break;caseBM3://模式3,連續(xù)長聲BUZZR(ON);bee(cuò)p_time=BM3&0x0f;beep_modle=BM3+0x10;break;caseBM3+0x10://模式3的2狀態(tài)if(beep_time==0)beep_modle=BM3;break;default:break;}if(beep_time—-==0)BUZZR(OFF);//時(shí)間到,關(guān)閉蜂鳴器}4調(diào)試及總結(jié)本設(shè)計(jì)硬件電路在控制成本的情況下,盡可能的選擇了集成度高功能強(qiáng)大的芯片。不僅使整個(gè)系統(tǒng)所用的元器件減少,縮小PCB面積,更重要的是減少焊接點(diǎn)和連線,在PCB設(shè)計(jì)中盡可能的使用圓弧走線,從而大大減少故障率和受干擾的概率,使系統(tǒng)的可靠性大大提高。使用USB給系統(tǒng)供電,大大降低了電源耦合的干擾,但本實(shí)驗(yàn)板也提供電源接口,方便使用。在設(shè)計(jì)中,USB轉(zhuǎn)串口的設(shè)計(jì)有難度,調(diào)試也不容易.其實(shí)本設(shè)計(jì)包含了2個(gè)單片機(jī)系統(tǒng),其一是MCU51系統(tǒng),另一是AVR單片機(jī)實(shí)現(xiàn)的USB轉(zhuǎn)串口系統(tǒng)。USB下載采用的是AVR單片機(jī)CDC方案,方便沒有串口的計(jì)算機(jī)可以用USB虛擬一個(gè)串口(即使有串口,還是使用USB接口方便),照樣使用要實(shí)現(xiàn)USB轉(zhuǎn)串口系統(tǒng),需要給AVR單片機(jī)燒寫固件驅(qū)動(dòng)程序,其中容思位的設(shè)置很講究,不能有錯(cuò)誤,否則此系統(tǒng)不能正常工作。在焊接方面,通過平時(shí)練習(xí)和實(shí)際操作,焊接水平不斷提高,貼片的焊接也能很好的完成。軟件調(diào)試最能學(xué)到知識(shí),運(yùn)用Keil51編程和調(diào)試程序,運(yùn)用Protues進(jìn)行單片機(jī)系統(tǒng)仿真,確保了設(shè)計(jì)的可行性。而CPLD主要使用MaxplusII編程和調(diào)試。本設(shè)計(jì)中也有幾處“匠心”的設(shè)計(jì):(1)板子左側(cè),下邊有兩個(gè)缺口,焊接跨線之后,方便夾示波器等儀表探頭地線.(2)板上右上角有一個(gè)開關(guān),通常焊接不帶鎖開關(guān),并且保持常閉狀態(tài),用來斷電冷啟動(dòng)單片機(jī),使得單片機(jī)進(jìn)入ISP下載模式,方便下載程序用。反面有跳線焊盤,這樣就不擔(dān)心開關(guān)放置反了.(3)PLCC44IC座下有一較大圓孔,通過該孔,不用芯片起子也可以取出芯片,專用芯片起子很貴的。本設(shè)計(jì)的不足之處就是手工復(fù)制性不足,關(guān)于PCB制作,我用的是熱轉(zhuǎn)印制作方法,可是走線很細(xì),又是雙面板,要多次制作或許成功.致謝首先,特別感謝我的畢業(yè)設(shè)計(jì)指導(dǎo)老師李紅斌老師,在整個(gè)設(shè)計(jì)過程中李老師給我提出了大量寶貴意見,才使得我順利畢業(yè)設(shè)計(jì)。李老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我學(xué)習(xí)中的榜樣,他循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。業(yè)特別感謝朱士虎老師,他教會(huì)我使用電路設(shè)計(jì)輔助軟件,也特別感謝實(shí)驗(yàn)室的戴新宇老師,為我提供PCB制作工具,才使得PCB制作很成功。當(dāng)然也感謝其他所有的老師教給我相關(guān)電子通信方面的知識(shí),才有了本設(shè)計(jì)。在大學(xué)四年中,和我一起走過的兄弟姐妹們,感謝你們!近朱者赤,近墨者黑。你們在無形中感染了我,使我充分認(rèn)識(shí)自我和社會(huì),把我的意志鍛煉的如此之強(qiáng).是你們的支持和鼓勵(lì),觸動(dòng)我的細(xì)心和毅力,堅(jiān)持把如此復(fù)雜的設(shè)計(jì)做好。尤其,感謝父母,是你們的愛給了我無限動(dòng)力,也感謝自己的執(zhí)著給我和身邊的人帶來微笑!參考文獻(xiàn)[1]徐新民.單片機(jī)原理與應(yīng)用.浙江:浙江大學(xué)出版社,2006[2]鄒應(yīng)全.51系列單片機(jī)原理與實(shí)踐教程.西安:西安電子科技大學(xué)出版社,2007[3]周立功,夏宇聞.單片機(jī)與CPLD綜合應(yīng)用技術(shù)。北京:北京航天航空大學(xué)出版社,2003[4]馬潮,詹衛(wèi)前,耿德根.ATmega8原理及應(yīng)用手冊.北京:清華大學(xué)出版社,2003[5]楊恒.零起點(diǎn)學(xué)單片機(jī)與CPLD/FPGA北京:北京航天航空大學(xué)出版,2007本科畢業(yè)論文(設(shè)計(jì))題目:基于單片機(jī)的智能風(fēng)扇設(shè)計(jì)姓名:學(xué)號(hào):專業(yè):電子信息工程院系:電子通信工程學(xué)院指導(dǎo)老師:職稱學(xué)歷:助教/碩士完成時(shí)間:2014年5月教務(wù)處制安徽新華學(xué)院本科畢業(yè)論文(設(shè)計(jì))獨(dú)創(chuàng)承諾書本人按照畢業(yè)論文(設(shè)計(jì))進(jìn)度計(jì)劃積極開展實(shí)驗(yàn)(調(diào)查)研究活動(dòng),實(shí)事求是地做好實(shí)驗(yàn)(調(diào)查)記錄,所呈交的畢業(yè)論文(設(shè)計(jì))是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除文中特別加以標(biāo)注引用參考文獻(xiàn)資料外,論文(設(shè)計(jì))中所有數(shù)據(jù)均為自己研究成果,不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果.與我一同工作的同志對(duì)本研究所做的工作已在論文中作了明確說明并表示謝意。畢業(yè)論文(設(shè)計(jì))作者簽名:日期:基于單片機(jī)的智能風(fēng)扇設(shè)計(jì)摘要電風(fēng)扇是夏天給人們降溫的非常好的家用電器,智能風(fēng)扇就是能根據(jù)溫度的改變,風(fēng)扇轉(zhuǎn)速隨之改變,現(xiàn)在的風(fēng)扇很難做到這一點(diǎn),只有人為的幾檔調(diào)速.夏夜溫度下降后人們?nèi)菀滓蚴焖軟?,?dāng)溫度升高時(shí),它又不能根據(jù)溫度的變化改變轉(zhuǎn)速。本設(shè)計(jì)智能風(fēng)扇采用單片機(jī)AT89C51作為控制系統(tǒng)的核心,使用溫度傳感器DS18B20進(jìn)行當(dāng)前的溫度采集,利用PWM脈沖寬度調(diào)制技術(shù)進(jìn)行實(shí)時(shí)調(diào)速,并通過LED數(shù)碼管顯示當(dāng)前溫度。同時(shí)本次設(shè)計(jì)還有一個(gè)比較創(chuàng)新的地方,本系統(tǒng)具有驅(qū)蚊功能。關(guān)鍵詞:單片機(jī);溫度傳感器;風(fēng)扇;超聲波驅(qū)蚊DesignofSmartFanBasedonSingleChipMicrocomputerAbstractFanisverygoodforpeoplecoolingappliancesinthesummer。SmartFanisaccordingtochangesintemperature,andfanspeedchanges.Nowthefanisdifficulttodothis,onlyafewartificialstallspeed.ThedesignofthefancontrolsystemusesAT89C51microcontroller,theindoortemperaturesensorDS18B20temperatureacquisition,usePWMpulsewidthmodulationtechnologyforreal—timecontrol,anddisplaysthecurrenttemperaturethroughtheLEDdigitaltube。Thesameinnovativedesignaswellasacomparisonwherethesystemhasarepellentfunction.KeyWords:Microcontroller;TemperatureSensors;Fan;UltrasonicInsectRepellen目錄1緒論...。..........。.。...。。.。。。。。..。。。.。。.。。...。。.。。.。........。.......。。.。...。。.。...。...。..。.11。1智能風(fēng)扇發(fā)展史.。..。.。。。...。。。..。。..。.。....。.。.........。.。。....。.。。.......。.。。..。.。....。.。。。....11.2智能風(fēng)扇的工作原理.。。。.。....。。...。.。。..。。。。。..。.....。..。。..。。。。.。....。....。.。....。.21。3本次設(shè)計(jì)的主要任務(wù)和內(nèi)容。....。。....。....。...。。.。。。....。。....。.........。..。。。。。。.。..。.22方案論證.。。.。....。...。..。。。。.。...。。..。.。.。。...。..。.。。。。.。..。。.。。...。。.。..。...。.。。.................。。。。..32。1控制核心的選擇...。..。。..........。。。。。..。。.。...。。。。....。。...。...。.........。。.。..。..。。.....。.。...32.2顯示電路的選擇。。.......。.。.。..。。。。.。.。.。..。.。。..。。.。。。.。...。.。。..。.。..。.。.。..。。.。。.........32。3調(diào)速方式的選擇.。.。..。。..。。。。....。。...。。.。.。..。。.....。。。..。。...。....。。。。.。。.。.。...。。....42.4溫度傳感器的選擇.。...。。..。....。。。.。........。。.。...。.。。..。....。.....。..。.。.....。。.......。.。。..52。5超聲波發(fā)生器的選擇..。..。.。。...。。.。.。..。。.。..。......。.。。.....。.。。....。.。...。....。。..。.。。....53系統(tǒng)主要硬件電路設(shè)計(jì).。..。。。。..。。...。。.。..。。...。.。..。.。..。。...。......。....。。。。。.。。...。..。73.1系統(tǒng)總體設(shè)計(jì)..。。....。.....。..。..。。。。.。..。.。....。.。...。。。...。.....。.。.。..。.73.2電源電路設(shè)計(jì)..。..。。.......。.。...。。....。..。..。。。.。.。。...。..。.....。..。..。。....。..。.。.。.。。..。...。...73.3單片機(jī)最小系統(tǒng)電路設(shè)計(jì).。。...。...........。.。...。.。.。。....。。.。。..。.。.。。。。..。。。...。.。.83。3.1AT89C51單片機(jī)簡介........。。。..。。.。。...。....。..。.。....。....。...。.。。.。。。.......。....。.。..3。3.2單片機(jī)最小系統(tǒng)電路.。..。...。..。.。....。。.。...。..。.。.。。。。。.。。。.。。....。.....。。....13.4溫度采集電路設(shè)計(jì).。...。。.。。。..。.。。.。。.。........。。.。。。。.。...。。。。.。.。。.。.。。。。。。。..。..。...。....113.4。1DS18B20溫度傳感器簡介...。.。。.。。...。。......。.。..。。。。.。.。。。..。....。...。.。...。。。.。..13。4.2溫度采集電路。。.。.。.。。.。...。。.。.。。。............。。。..。。.。.。...。.。.。......。.....。。。..。13。5溫度顯示電路設(shè)計(jì)。..。。.。。。..。.。.。。...。。。.。。。..。...。。。。..。。。...。.。。...。...。....。.。..。..。。。。。.143。5.1LED數(shù)碼管簡介。...。。......。.。。...。。。。...。。..。............。。.。...。。......。.。..。..。。.。...13.5。2溫度顯示電路.....。.........。....。。..。........。...。。.。.....。。....。.。...。.。。.。。。.....。.。.....。13.6驅(qū)蚊電路設(shè)計(jì)。。.。。...。......。.。..。..。..。。。。。.。.。..。。...。.....。。.。...。......。。。。..。。。。...。...。。。.153.6。1TCT40-16T超聲波發(fā)射器簡介.。..。.。。.。.。..。。..。.。3。6。2驅(qū)蚊電路。。。。.。.。.。.。.。.....。.。...。......。.3.7驅(qū)動(dòng)與調(diào)速電路設(shè)計(jì)。.....。.。。。.。。。.。.。。.。.。。。..。.。.。。.。..。......。..。..。......。。。.....。...。173。7.1達(dá)林頓反相器ULN2803簡介……………….....。173。7.2驅(qū)動(dòng)與調(diào)速電路……………...183.8獨(dú)立按鍵電路設(shè)計(jì)………..。。.。.....184軟件設(shè)計(jì).。....。...。..。.。.。.。.。.。..。..。...。...。。.。。.。。.。...。.。....。..。。.。。。...。....。.。。..。.........。。.。204.1系統(tǒng)總體軟件設(shè)計(jì)流程圖。........。。....。...。..。。。.。...。....。...。....。..。..。..204.2用KeilC51進(jìn)行程序編輯..。.。....。。.....。..。。..。.。....。..。。..。.......。。。..。。。.。。.。.215系統(tǒng)調(diào)試與仿真..。.。。..。.。。。.。......。.......。.。。.......。。..。.。。..。...。...。。.。..。..。。。.。。.。......。225.1系統(tǒng)軟件調(diào)試.。...。。...。...。...。。。.。..。。...。。。。。.。.。。.。。.。。....。.。....。.。...。.......。.。.225.2程序下載..。.。。...。。。。........。。.。.....。.。..。..。.....。。....。。...........。..。。.......。.。。。..。。。.225.3系統(tǒng)仿真.。..。。.。.。.。..。。.。。。。..。..。。....。。。...。..。。。。.。.。...。.....。。。。...。。..。......。..。。。.226結(jié)論。..。..。..。.。..。..。.。...。.。。..。...。..。。...。......。。...。.。。。。..。。。...。.。。..。...。。。...。。。26致謝...。...。..。。..。。..。....。....。..。..。......。。。.。.。...。...。.。。。。..。。。...。..。..。。.。.。。。。。.。。。.。.。.....。.27參考文獻(xiàn).。。.....。.。.。。.。..。..。。.。...。..。。...。....。.。.。.。。.......。..。。.。..。。。..。....。...。。.....。.。。.....。..28附錄。。......。。。.。。。。...。..。..........。。。.。...。...。..。.。。。。。。。。。。。...。.。。..。.。。.。。..。...。。..。。.。.....291緒論在現(xiàn)實(shí)生活中,我們要經(jīng)常使用一些降溫設(shè)備。雖然現(xiàn)在不少城市家庭都用空調(diào)設(shè)備作為降溫工具,但在大部分農(nóng)村家庭風(fēng)扇仍然是作為夏季降溫的主要工具。春夏或者夏秋交替季節(jié),早晚溫差比較大,白天溫度很高,風(fēng)扇應(yīng)該轉(zhuǎn)動(dòng)的比較快,這樣才能給人帶來涼爽.到了晚上,氣溫下降的很多,當(dāng)人們?nèi)胨?,風(fēng)扇的轉(zhuǎn)動(dòng)速度應(yīng)慢慢減下來,防止感冒。雖然現(xiàn)在的風(fēng)扇有不同的檔位可以調(diào)節(jié),但都必須人工來換擋,當(dāng)人們熟睡時(shí)就無能為力了。盡管現(xiàn)在普遍采用定時(shí)的方式解決這個(gè)問題,但定時(shí)時(shí)間有限,一般最多只有兩個(gè)小時(shí),在這兩個(gè)小時(shí)內(nèi)溫度并不一定就會(huì)下降的很多,風(fēng)扇關(guān)閉后,人們可能就會(huì)因?yàn)檠谉嵩俅涡褋黹_啟電扇,這樣會(huì)使人的睡眠質(zhì)量大大降低。從以上的分析可知,需要設(shè)計(jì)出一種很智能化的電風(fēng)扇來解決.本設(shè)計(jì)用單片機(jī)作為控制核心,用溫度傳感器采集當(dāng)前溫度,LED數(shù)碼管顯示實(shí)時(shí)溫度,并根據(jù)當(dāng)前檢測到的溫度,輸出不同占空比的PWM脈沖信號(hào),從而風(fēng)扇實(shí)現(xiàn)了不同的轉(zhuǎn)速。1。1電風(fēng)扇的發(fā)展史電風(fēng)扇簡稱電扇,香港稱為風(fēng)扇,日本及韓國稱為扇風(fēng)機(jī),從發(fā)明到現(xiàn)在已經(jīng)經(jīng)過了一百多年,是炎熱夏季的寵物。電風(fēng)扇起源于1830年,是叫詹姆斯的一個(gè)美國人發(fā)明了一種用發(fā)條來驅(qū)動(dòng)的,可以固定在天花板上的電風(fēng)扇。1880年,一個(gè)叫舒樂的美國人第一次將葉片直接裝到電動(dòng)機(jī)上,再接上電源,葉片便很快速旋轉(zhuǎn)起來。1882年,一個(gè)叫休伊?斯卡茨?霍伊拉的紐約人最早發(fā)明了商品化的電風(fēng)扇。中國生產(chǎn)的第一臺(tái)風(fēng)扇起于1916年,直到1925年華生電器制造廠才正式生產(chǎn)電風(fēng)扇,并很快贏得市場好評(píng)。一開始電風(fēng)扇不能很好的控制時(shí)間,過了一段時(shí)間,便出現(xiàn)了一種可以設(shè)置風(fēng)扇轉(zhuǎn)動(dòng)時(shí)間,及可以根據(jù)設(shè)定的時(shí)間來開啟或者關(guān)閉的電風(fēng)扇,這種風(fēng)扇在當(dāng)時(shí)相當(dāng)受好評(píng),也受到廣大人民的喜愛。電風(fēng)扇的操作方式從一原先的旋鈕,到按鍵,再到現(xiàn)在的觸摸式操作[1]。1.2電風(fēng)扇的工作原理電風(fēng)扇的主要功能器件是交流電機(jī),通電后線圈在磁場中因受力而轉(zhuǎn)動(dòng),能量的轉(zhuǎn)化形式是這樣的:電能主要是轉(zhuǎn)化為機(jī)械能,同時(shí)由于電阻問題,電能還有一部分轉(zhuǎn)化成內(nèi)能。電風(fēng)扇工作時(shí),因?yàn)橛须娏髁鬟^電風(fēng)扇的線圈,而線圈是有電阻的,所以會(huì)產(chǎn)生部分熱量向外擴(kuò)散,因此電風(fēng)扇的溫度會(huì)增高。但人們?yōu)槭裁磿?huì)感覺到?jīng)鏊?因?yàn)槿梭w的表面在夏天有大量的汗液,當(dāng)電風(fēng)扇工作后,室內(nèi)的空氣會(huì)隨著電風(fēng)扇流動(dòng),所以就能夠蒸發(fā)人體表面的汗液,由物理學(xué)原理蒸發(fā)需要吸熱,故人們會(huì)感覺到非常涼爽[2]。1.3本次設(shè)計(jì)的主要任務(wù)和內(nèi)容本設(shè)計(jì)是以AT8951單片機(jī)為主要控制核心,利用51單片機(jī)對(duì)溫度傳感器采集到的數(shù)據(jù)進(jìn)行處理,并且通過各種電子元器件對(duì)電風(fēng)扇各種工作狀態(tài)進(jìn)行實(shí)時(shí)控制,從而可以達(dá)到用戶的要求。本次設(shè)計(jì)主要完成以下內(nèi)容:(1)能夠檢測當(dāng)前溫度并顯示,可根據(jù)預(yù)設(shè)溫度自動(dòng)開啟關(guān)閉,當(dāng)當(dāng)前溫度大于預(yù)設(shè)溫度,自動(dòng)開啟,小于預(yù)設(shè)溫度自動(dòng)關(guān)閉。(2)預(yù)設(shè)溫度可通過按鍵增加或減少。(3)可隨著外界溫度的增加風(fēng)扇可自行調(diào)速,主要分為五個(gè)檔位,溫度每升高五度風(fēng)扇自動(dòng)增加一檔.(4)具有驅(qū)蚊功能。2方案論證2.1控制核心的選擇方案一:采用單片機(jī)作為主要控制芯片。在本設(shè)計(jì)中采用AT89C51單片機(jī),通過軟件編程的方法來實(shí)現(xiàn)對(duì)溫度的實(shí)時(shí)采集和控制,在其I/O口輸出相應(yīng)的控制信號(hào)。單片機(jī)AT89C51工作電壓相對(duì)比較低,單片內(nèi)含有4k字節(jié)的ROM和256字節(jié)的RAM,并且價(jià)格也相對(duì)較便宜。方案二:采用電壓比較電路作為控制執(zhí)行部件。將采集到的溫度信號(hào)轉(zhuǎn)換為電信號(hào)并經(jīng)放大電路放大,集成運(yùn)算放大器組成的比較電路來判斷決定電風(fēng)扇的轉(zhuǎn)動(dòng)速度.對(duì)于方案一,用單片機(jī)作為控制器件,通過簡單的程序編寫可以將溫度傳感器DS18B20檢測的溫度通過LED數(shù)碼管顯示出來,而且可以通過按鍵掃描程序通過單片機(jī)的外部按鍵對(duì)預(yù)設(shè)的初值進(jìn)行增加或者減少,同時(shí)對(duì)于驅(qū)蚊功能采用單片機(jī)的軟件編程更易實(shí)現(xiàn),成本低,故以單片機(jī)AT89C51為控制核心,適合本次設(shè)計(jì)。對(duì)于AT89C51的具體參數(shù)參見下面“硬件設(shè)計(jì)”中的各器件介紹。對(duì)于方案二,采用電壓比較電路作為控制的核心,雖然電路比較簡單、容易實(shí)現(xiàn),但不能對(duì)預(yù)設(shè)溫度的值進(jìn)行更改,無法滿足不同用戶的需求,故本次設(shè)計(jì)不采用。2.2顯示電路的選擇方案一:采用LCD液晶顯示器顯示。方案二:采用數(shù)碼管做顯示器件,共陰極接法,動(dòng)態(tài)方式顯示[3]。對(duì)于方案一,液晶顯示屏顯示的字符非常優(yōu)美,這一優(yōu)點(diǎn)LED數(shù)碼管是無法做到的,但是液晶顯示屏價(jià)格太過昂貴,驅(qū)動(dòng)程序編寫起來也是相當(dāng)復(fù)雜的,本次設(shè)計(jì)不采用。對(duì)于方案二,用LED顯示,成本非常低,溫度顯示清晰可見,即使夜間也能看見,顯示程序的編寫也比較容易,因此這種顯示方式得到了廣泛的應(yīng)用。不足的地方是采用該方案可能會(huì)產(chǎn)生閃爍現(xiàn)象,因?yàn)檫@種動(dòng)態(tài)掃描方式五個(gè)LED數(shù)碼管是逐個(gè)點(diǎn)亮的,但由于人眼有個(gè)視覺暫留效應(yīng),為20MS,我們只要設(shè)定合適的掃面周期就可以避免閃爍現(xiàn)象,故這一方案可行。關(guān)于LED的詳細(xì)參數(shù)參看下面“硬件設(shè)計(jì)”中的各器件介紹。2.3調(diào)速方式的選擇方案一:采用變壓器調(diào)節(jié)方式,運(yùn)用變壓器原理將市電220V交流電壓通過線圈降壓到不同的值,電風(fēng)扇電機(jī)接到不同電壓值的線圈上就可以來控制直流電機(jī)的轉(zhuǎn)速.方案二:采用單片機(jī)的PWM軟件編程方式。PWM中文意思是脈沖寬度調(diào)制,英文意思是PulseWidthModulation的簡寫形式,它是一種按某種規(guī)律變化的脈沖方波,在PWM驅(qū)動(dòng)直流電機(jī)的調(diào)節(jié)控制系統(tǒng)當(dāng)中,最常用的是矩形PWM脈沖波信號(hào),也是編寫程序最簡單的。在對(duì)直流電機(jī)的轉(zhuǎn)速進(jìn)行控制時(shí),需要根據(jù)當(dāng)前溫度來輸出不同占空比的PWM脈沖.PWM脈沖的占空比是指高電平的時(shí)間在一個(gè)周期時(shí)間內(nèi)的百分比,若全為低電平,占空比為零,風(fēng)扇不轉(zhuǎn);若全為高電平,占空比為100%時(shí),轉(zhuǎn)速達(dá)到最大[4]。用單片機(jī)輸出PWM脈沖信號(hào)時(shí),有如下兩種方法:(1)利用軟件延時(shí).可以利用單片機(jī)自帶的定時(shí)器編程實(shí)現(xiàn)不同占空比的PWM脈沖的輸出,利用中斷程序?qū)纹瑱C(jī)輸出的電平進(jìn)行高低轉(zhuǎn)換,從而實(shí)現(xiàn)風(fēng)扇的調(diào)速,本設(shè)計(jì)采用該方法。設(shè)計(jì)不同占空比的PWM脈沖的思路是:假設(shè)采用1S的周期方波,以50MS為基準(zhǔn),則20個(gè)基準(zhǔn)便就是一個(gè)1S,那么當(dāng)其中4個(gè)連續(xù)的50MS的高電平脈沖,然后16連續(xù)的50MS低電平脈沖,便得到了占空比為20%的PWM方波信號(hào).(2)利用單片機(jī)自帶的PWM功能。但本次設(shè)計(jì)所用得AT89C51單片機(jī)沒有這種功能,只有STC系列的才有,故不可行.對(duì)于方案一,該方案可以對(duì)直流風(fēng)扇進(jìn)行調(diào)速,但調(diào)節(jié)不是很方便,而且采用變壓器來改變電壓,不能適應(yīng)人性化要求。對(duì)于方案二,采用PWM脈沖調(diào)制的純軟件的方法來實(shí)現(xiàn)對(duì)直流電機(jī)的實(shí)時(shí)調(diào)速,具有很大的靈活性,而且可以更充分地發(fā)揮單片機(jī)的功能,綜合考慮選用方案二。2.4溫度傳感器的選擇方案一:用熱電偶來作為檢測溫度的元器件,配合適當(dāng)?shù)耐鈬娐?將檢測到的溫度信號(hào)送入單片機(jī)AT89C51處理。方案二:用熱敏電阻作為檢測溫度的元器件,經(jīng)過運(yùn)算放大器放大,由于溫度變化會(huì)引起熱敏電阻的電阻值發(fā)生相應(yīng)的變化、便可以得到輸出電壓變化的信號(hào).方案三:用高精度集成溫度傳感器DS18B20作為檢測溫度的元器件,直接輸出數(shù)字溫度信號(hào)給單片機(jī)處理[5]。對(duì)于方案一,采用熱電偶作為檢測元器件,其檢測的溫度范圍非常寬,可檢測—50攝氏度到1600對(duì)于方案二,采用熱敏電阻價(jià)格相對(duì)便宜、元器件也很容易買到,但熱敏電阻對(duì)溫度的變化不是很敏感,在檢測溫度信號(hào)的時(shí)候,還有可能產(chǎn)生失真和誤差,故本設(shè)計(jì)不采用該方案。對(duì)于方案三,由于溫度傳感器DS18B20的集成度很高,大大減少了外接電路,從而檢測誤差也會(huì)變小很多,DS18B20檢測溫度的原理與前面兩種方案的原理有著很大的不同。其檢測到的溫度值可以直接送入單片機(jī)處理,不用編寫更多的轉(zhuǎn)換程序,簡化了程序的編寫,且只用一根線便可與單片機(jī)相連,接口相當(dāng)簡單,本次設(shè)計(jì)采用該方案。關(guān)于DS18B20的詳細(xì)參數(shù)參看下面“硬件設(shè)計(jì)”中的器件介紹。2.5超聲波發(fā)射器的選擇本設(shè)計(jì)的原理是根據(jù)蚊子的生理特性來的,主要靈感來源是現(xiàn)在的智能手機(jī)上帶有驅(qū)蚊的軟件。在夏天咬人的一般都是雌蚊,雄蚊幾乎是不咬人的,雌蚊在夏天大部分都是懷卵的且在懷卵期間又不喜歡與雄蚊接近,因此當(dāng)它們感覺到雄蚊發(fā)出頻率在22KHZ的超聲波信號(hào)時(shí),就會(huì)自動(dòng)離開,因此只需控制超聲波發(fā)射器發(fā)射出模擬雄蚊的超聲波就可達(dá)到驅(qū)蚊的目的。產(chǎn)生該頻率的超聲波有一下兩種方案:方案一:可以通過軟件編寫,定時(shí)器T1產(chǎn)生頻率在22KHZ的方波信號(hào),并通過并聯(lián)的反相器用來增大驅(qū)動(dòng)能力,然后接入超聲波發(fā)射器,使超聲波發(fā)射器發(fā)出模擬雄蚊的超聲波,從而驅(qū)逐雌蚊,進(jìn)而可以避免蚊子的叮咬.方案二:用NE555構(gòu)成多諧振蕩器產(chǎn)生可調(diào)頻率的方波,從而驅(qū)動(dòng)超聲波發(fā)射器,使其發(fā)射我們需要的超聲波信號(hào),達(dá)到驅(qū)蚊目的[6]。對(duì)于方案一:AT89C51單片機(jī)定時(shí)器T1工作在方式1,可通過初值的設(shè)置,輸出22KHz的時(shí)鐘信號(hào)輸出,不用反復(fù)中斷,提高了系統(tǒng)的執(zhí)行效率。超聲波發(fā)射器選擇的是TCT40—16T,為了增大驅(qū)動(dòng)能力,單片機(jī)P3。5口產(chǎn)生的方波信號(hào)經(jīng)過并聯(lián)反相器后加在超聲波發(fā)射器的兩端,這樣超聲波發(fā)射器就可以發(fā)射22KHz的超聲波,本設(shè)計(jì)采用該方案。關(guān)于TCT40—16T的詳細(xì)參數(shù)參看下面“硬件設(shè)計(jì)”中的器件介紹。對(duì)于方案二:由于NE555產(chǎn)生的超聲波頻率調(diào)節(jié)是依靠調(diào)節(jié)滑動(dòng)變阻器實(shí)現(xiàn)的,不好可視化的調(diào)節(jié)頻率,不方便用戶使用。3系統(tǒng)主要硬件電路設(shè)計(jì)3。1系統(tǒng)總體設(shè)計(jì)本次設(shè)計(jì)的思路:本次設(shè)計(jì)主要利用AT89C51單片機(jī)為控制核心,利用溫度傳感器DS18B20采集當(dāng)前溫度送入單片機(jī)處理,單片機(jī)根據(jù)當(dāng)前溫度與預(yù)設(shè)溫度的比較決定是否開啟風(fēng)扇,并通過五段LED數(shù)碼管顯示當(dāng)前溫度和預(yù)設(shè)溫度。當(dāng)當(dāng)前溫度高于預(yù)設(shè)溫度,風(fēng)扇開啟,低預(yù)設(shè)溫度時(shí)風(fēng)扇關(guān)閉.單片機(jī)根據(jù)當(dāng)前的溫度輸出相應(yīng)占空比的PWM脈沖,并通過ULN2803增大驅(qū)動(dòng)后,送入12V的直流電機(jī),從而產(chǎn)生不同轉(zhuǎn)速。本次設(shè)計(jì)的系統(tǒng)總框圖如圖3。1所示:ATAT89C51DS18B20獨(dú)立按鍵溫度顯示時(shí)鐘及復(fù)位TCT4016ULN2803直流電機(jī)圖3.1系統(tǒng)總體框圖3.2電源電路設(shè)計(jì)直流穩(wěn)壓電源作為直流能源的提供者,在電路中起到很關(guān)鍵的作用,因此對(duì)電源的要求比較高,尤其是對(duì)電源紋波系數(shù)和輸出電流能力的要求上,如果電源沒有達(dá)到設(shè)計(jì)所需電源的要求,將直接影響系統(tǒng)的正常工作。常用的轉(zhuǎn)5V電源有線性型穩(wěn)壓芯片和開關(guān)型穩(wěn)壓芯片兩大類。線性型穩(wěn)壓芯片線性度高,紋波小,外圍電路簡單。開關(guān)型穩(wěn)壓電路功耗小,轉(zhuǎn)換率高,但紋波大,受尖峰脈沖干擾嚴(yán)重。綜合考慮選用線性型三端穩(wěn)壓芯片LM7805。本次設(shè)計(jì)需要兩個(gè)幅度不同的直流電壓5V和12V。其中5V電壓的產(chǎn)生是將市電~220V交流電經(jīng)過降壓器降壓,橋式整流濾波后送入穩(wěn)壓器件LM7805,輸出的電壓可能還含有紋波,在通過470uf帶極性的電容濾除低頻信號(hào),0.1uf不帶極性的電容濾除高頻信號(hào),進(jìn)而可以得到穩(wěn)定的5V電壓[7]。12V電壓只需將5V電壓經(jīng)過運(yùn)算放大器放大即可得到,5V和12V電壓產(chǎn)生電路如圖3.2(a)和3.2(b)所示:圖3.2(a)5V電壓產(chǎn)生電路圖3。2(b)12V電壓產(chǎn)生電路3。3單片機(jī)最小系統(tǒng)電路設(shè)計(jì)3。3。1AT89CAT89C51是美國ATMEL公司生產(chǎn)的低電壓單片機(jī),其含有4K字節(jié)的ROM和256字節(jié)的RAM,兼容MCS-51指令。其中央處理器是8位的,且含有Flash存儲(chǔ)單元,功能非常強(qiáng)大。AT89C51單片機(jī)具有以下標(biāo)準(zhǔn)的功能:一個(gè)8位CPU頻率范圍1.2—12MHZ,4K字節(jié)Flash閃存,256字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM,4個(gè)8位并行I/O口,一個(gè)全雙工串行口,2個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源的中斷控制系統(tǒng),片內(nèi)自帶振蕩器和時(shí)鐘電路。AT89C51單片機(jī)管腳圖如3。3所示:圖3。3AT89C51單片機(jī)各管腳功能如下[8]:VCC:40引腳接5V供電電壓。GND:20引腳接地。XTAL1:19引腳為單片機(jī)提供外部時(shí)鐘信號(hào),外接石英晶體和微調(diào)電容。XTAL2:18引腳為單片機(jī)提供外部時(shí)鐘信號(hào),外接石英晶體和微調(diào)電容。P0口:P0.7~P0。0,這組引腳共8條,其中P0.7為最高位,P0.0為最低位。是漏極開路的8位準(zhǔn)雙向I/O口,有兩種功能。第一:做通用I/O口,無片外內(nèi)存時(shí),P0口可做通用I/O接口使用。第二:做地址/數(shù)據(jù)口,在訪問外部內(nèi)存時(shí),用作地址總線的低8位和數(shù)據(jù)總線。P1口:P1.7~P1.0,其中P1.7為最高位,P1。0為最低位,僅用作I/O口.P2口:P2.7~P2.0,其中P2.7為最高位,P2。0為最低位。P2口是帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O接口,具有兩種功能。第一:做通用I/O口,無片外內(nèi)存時(shí),P2口可用作通用I/O口。第二:做地址口,在訪問外部內(nèi)存時(shí),用作地址總線的高8位。P3口:P3.7~P3。0,其中P3.7為最高位,P3.0為最低位。P3口是雙功能口。具有兩種功能。第一:用作通用I/O口。第二功能:P3.0RXD串行口輸入;P3.1TXD串行口輸出;P3.2INTO外部中斷0輸入;P3。3INT1外部中斷1輸入;P3。4T0定時(shí)計(jì)數(shù)器的脈沖輸入;P3.5T1定時(shí)計(jì)數(shù)器的脈沖輸入;P3.6WR(shí)片外RAM寫信號(hào);P3。4RD片外RAM讀信號(hào)。RST:9引腳復(fù)位輸入,高電平有效。:29引腳外部程序內(nèi)存讀信號(hào)。當(dāng)訪問外部程序內(nèi)存時(shí),此腳定時(shí)輸出脈沖作為讀片外程序內(nèi)存的選通信號(hào),通常接EPROM的OE端。端在每個(gè)機(jī)器周期中兩次有效,但當(dāng)訪問外部RAM時(shí),兩次負(fù)脈沖不出現(xiàn).可驅(qū)動(dòng)8個(gè)LS型TTL。ALE/:30引腳地址鎖存允許/編程線,當(dāng)訪問片外存儲(chǔ)器時(shí),在P0.7~P0。0引腳線上輸出片外存儲(chǔ)器低8位地址的同時(shí)還在ALE/線上輸出一個(gè)高電位脈沖,其下降沿用于把這個(gè)片外存儲(chǔ)器低8位地址鎖存到外部專用地址鎖存器。/VPP:31引腳內(nèi)外部程序內(nèi)存選擇輸入端.=1,CPU訪問片外ROM,并執(zhí)行其指令。當(dāng)PC>0FFFH時(shí),自動(dòng)轉(zhuǎn)向片外ROM。=0,不論片內(nèi)是否含有內(nèi)存,只執(zhí)行片外ROM的指令.3.3。2單片機(jī)單片機(jī)工作時(shí)需要時(shí)鐘信號(hào),時(shí)鐘信號(hào)通??捎赏獠糠绞交蛘邌纹瑱C(jī)的內(nèi)部方式提供。本次設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部自帶的反相放大器,XTAL2為放大器的輸出端,XTAL1為放大器的輸入端,這兩個(gè)引腳外接石英晶體振蕩器和微電容,構(gòu)成可以自激的振蕩器。本設(shè)計(jì)在XTAL1和XTAL2外接了一個(gè)12MHZ的晶振,30pf的電容[9]。復(fù)位是使單片機(jī)回復(fù)到初使的狀態(tài),就跟計(jì)算機(jī)的重啟差不多,并從初始狀態(tài)從新工作。單片機(jī)是高電平復(fù)位,一般有兩種方式:按鍵復(fù)位和上電復(fù)位,兩種復(fù)位方式均可。本次設(shè)計(jì)采用按鍵復(fù)位,當(dāng)按下按鍵開關(guān)S1時(shí),系統(tǒng)復(fù)位一次,電阻R2、R3為10k。其時(shí)鐘電路與復(fù)位電路如圖3。4所示:圖3.4最小系統(tǒng)電路3。4溫度采集電路設(shè)計(jì)3.4.1DS18B20簡介DS18B20內(nèi)部結(jié)構(gòu)主要有四個(gè)部分:64位的只讀程序存儲(chǔ)器ROM、溫度傳感器、非揮發(fā)的報(bào)警觸發(fā)器TH和TL、配置寄存器。總共有三個(gè)管腳,包含DQ,GND,VDD.其中DQ為數(shù)字信號(hào)端,GND為電源地,VDD為電源輸入端。DS18B20的主要性能特點(diǎn)如下:(1)僅可用一個(gè)端口便可以通信;(2)無須外部器件;(3)DS18B20支持多點(diǎn)組網(wǎng)功能;(4)適應(yīng)電壓范圍廣,電壓范圍為3。0~5.5V;(5)待機(jī)功耗為零;(6)溫度以9位或12位數(shù)字;(7)具有報(bào)警命令識(shí)別功能;(8)具有負(fù)電壓特性,電源接反時(shí),芯片不會(huì)燒壞;DS18B20的管腳圖及部分溫度值與DS18B20輸出的數(shù)字量對(duì)照表見圖3。5和表3—1所示:圖3.5DS18B20溫度傳感器表3-1部分溫度值與DS18B20輸出的數(shù)字量對(duì)照溫度值/℃數(shù)字輸出(二進(jìn)制)數(shù)字輸出(十六進(jìn)制)+125000001111101000007D0H +8500000101010100000550H+25。62500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H—0。51111111111111000FFF8H-10.1251111111101101110FF5EH-25.6251111111101101111FF6FH-551111110010010000FC90H3.4.3DS18B20數(shù)字溫度傳感器檢測現(xiàn)場溫度,將檢測到的溫度值送入AT89C51單片機(jī)的P1.0口,經(jīng)過單片機(jī)處理后顯示此時(shí)溫度值,并與設(shè)定溫度值做比較,輸出相應(yīng)占空比的PWM脈沖信號(hào)。電路如圖3。6所示:圖3.6溫度采集電路3.5溫度顯示電路設(shè)計(jì)3.5.1LED數(shù)碼管簡介本設(shè)計(jì)選用五個(gè)LED數(shù)碼管來進(jìn)行溫度顯示。LED又稱為數(shù)碼管,主要是由8個(gè)發(fā)光二極管構(gòu)的。LED數(shù)碼管按結(jié)構(gòu)可以分為共陰極和共陽極兩種結(jié)構(gòu),如圖3。7所示:共陰極把8個(gè)發(fā)光二極管陰極連接在一起,共陽極把8個(gè)發(fā)光二極管陽極連接在一起.通過編程的方式使單片機(jī)的引腳輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年供水設(shè)施建設(shè)協(xié)議書
- 2025年緊急出口門采購合同
- 2025年午休時(shí)段兒童看護(hù)服務(wù)協(xié)議
- 兒童領(lǐng)養(yǎng)程序指導(dǎo)協(xié)議
- 2025年產(chǎn)品市場分隔協(xié)議范本
- 2025年防水建材項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年公共場所消防設(shè)施供應(yīng)及維護(hù)合同
- 2025年同心同行策劃合作框架協(xié)議
- 2025年醫(yī)療用品分銷合作伙伴協(xié)議范例
- 2025年共同策劃長遠(yuǎn)發(fā)展協(xié)同計(jì)劃協(xié)議書標(biāo)準(zhǔn)樣式
- 課題申報(bào)參考:法國漢學(xué)家弗朗索瓦·朱利安對(duì)中國山水畫論的闡釋研究
- 2024年09月2024年中國農(nóng)業(yè)發(fā)展銀行總行部門秋季校園招聘(22人)筆試歷年參考題庫附帶答案詳解
- 2025年北京生命科技研究院招聘筆試參考題庫含答案解析
- 銀行金融機(jī)構(gòu)銀行金融服務(wù)協(xié)議
- 基于ChatGPT的ESG評(píng)級(jí)體系實(shí)現(xiàn)機(jī)制研究
- GB/T 27697-2024立式油壓千斤頂
- 《消防機(jī)器人相關(guān)技術(shù)研究》
- 《商務(wù)數(shù)據(jù)分析》課件-商務(wù)數(shù)據(jù)的分析
- 2024年考研政治真題及答案
- 【直播薪資考核】短視頻直播電商部門崗位職責(zé)及績效考核指標(biāo)管理實(shí)施辦法-市場營銷策劃-直播公司團(tuán)隊(duì)管理
- 項(xiàng)目設(shè)計(jì)報(bào)告范文高中
評(píng)論
0/150
提交評(píng)論