基于單片機(jī)的太陽(yáng)能熱水器控制的畢業(yè)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的太陽(yáng)能熱水器控制的畢業(yè)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的太陽(yáng)能熱水器控制的畢業(yè)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的太陽(yáng)能熱水器控制的畢業(yè)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的太陽(yáng)能熱水器控制的畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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)介

I基于單片機(jī)的太陽(yáng)能熱水器控制的設(shè)計(jì)摘要89C522489C5289C52LED出相應(yīng)的上水、加熱指令,對(duì)熱水器的溫度和水位進(jìn)行控。關(guān)鍵詞:太陽(yáng)能熱水器,單片機(jī)AT89C52,硬件設(shè)計(jì),軟件設(shè)計(jì)IIDesignofSolarWaterHeaterControllerBasedonMCUABSTRACTAtpresent,Chinahasbecometheworld'slargestproducerofsolarwaterheater,withannualoutputofaroundandaroundtheworld.However,matchingwithsolarwaterheatercontrollerhasbeeninresearchanddevelopmentstage.Thecontrollernowonlydisplaythetemperatureandlevel,butalsoforthesub-display.Hedidnothaveatemperaturecontrolfunction,whenduetobadweatherandlackoflight,itwillbringinconveniencetothewaterheater.Inviewofdomesticsolarwaterheatermarketexpansion,anditsmatchingcontrollerisanurgentneedtoimprovethesituation,developedasetofsolarwaterheatercontroller.Inthispaper,solarwaterheaterisdesignedforthedetectionofsingle-chipcontrol89C52core,notonlyoftemperature,waterlevelinthetwoparametersinreal-timedisplayandtemperaturesettingandcontrolfunctions.Controlleraccordingtoweatherconditionscanmakeuseofauxiliaryheatingdevicesothatthetemperatureinsidethewatertoreachpre-settemperature,soastoachievea24-hourhotwatersupplypurposes.Practicalapplicationresultsshowthatthecontrollerandcomparedtothepreviousdisplayinstrumentwithhighperformance-priceratio,temperaturecontrolanddisplayhighprecision,easy-to-useandperformanceadvantagesofstability,improvedcontrolofourlevelofsolarenergyapplications,withconsiderableeconomicbenefitsandsocialbenefits.Solarwaterheaterduetotheuseofsolarenergy,pollution-free,easytouse,long-termuseoflowinputcostsandhasbeenfavoredpeople.Introducedthedesignofasingle-chipmicrocomputer89C52asthecoreconsistingofsolarwaterheaterintelligentcontrollermethod,giventhesystemhardwaredesignandsoftwareimplementation.Thedesignofsingle-chipmicrocomputerasthecore89C52,willcomefromthetemperatureandwaterleveldetectionsensorsignalconditioning,A/Dtransformedintosingle-chip,ontheonehandthroughtheLEDdisplaysthecurrentvalueoftemperatureandwaterlevel,whileontheonehand,andthetemperatureandcomparethewaterlevelsettings,computing,accordingtoresultsissuedbytheShangShui,heatinginstructions,ofthewaterheatertocontroltemperatureandwaterlevel.KEYWORDS:Solarwaterheater,single-chip,hardwaredesign,softwaredesignIII目錄摘要 IABSTRACT II緒論 1太陽(yáng)能熱水器的概述 1太陽(yáng)能熱水器的背景 2太陽(yáng)能熱水器的研究現(xiàn)狀 2本設(shè)計(jì)的主要任務(wù)及內(nèi)容 3系統(tǒng)的主要功能 3系統(tǒng)總體方案的設(shè)計(jì) 4系統(tǒng)總體結(jié)構(gòu)框圖的設(shè)計(jì) 4溫度檢測(cè)電路設(shè)計(jì) 4模擬/數(shù)字轉(zhuǎn)換電路 7ADC0809的內(nèi)部結(jié)構(gòu) 8信號(hào)引腳 9ADC0809與單片機(jī)的接口設(shè)計(jì) 9單片機(jī)的控制系統(tǒng) 10AT89C52的主要特性 11AT89C52的引腳說(shuō)明 12振蕩特性 15最小系統(tǒng)應(yīng)用電路 15鍵盤控制電路 17鍵盤設(shè)計(jì)的分類及其特點(diǎn) 17按鍵的確認(rèn) 17重鍵與連擊的處理 17按鍵防抖技術(shù) 18少量功能鍵的接口技術(shù) 19矩陣鍵盤的接口技術(shù) 20本設(shè)計(jì)鍵盤的硬件連接 21LED顯示電路 212.6.18255的介紹 21LED顯示原理 23并行接口動(dòng)態(tài)顯示 26繼電器控制電路設(shè)計(jì) 27軟件部分設(shè)計(jì) 30程序流程圖設(shè)計(jì) 30主程序流程圖 30顯示程序流程圖設(shè)計(jì) 32鍵盤中斷流程圖 32鍵盤中斷流程圖 33A/D轉(zhuǎn)換程序流程圖 33軟件程序設(shè)計(jì) 34分析和總結(jié) 42致謝 43參考文獻(xiàn) 44附I圖總電路圖 45附II仿真電路圖 4611緒論太陽(yáng)能熱水器的概述隨著社會(huì)的發(fā)展,對(duì)能源的需求在快速增長(zhǎng),使不可再生能源的貯量不斷減少,同) 2AT89C52不用重新設(shè)定。太陽(yáng)能熱水器的背景2050了一定的經(jīng)濟(jì)效益和良好的社會(huì)效益。300隨著技術(shù)的不斷更新,將會(huì)有越來(lái)越多、越來(lái)越完善的太陽(yáng)能熱水器產(chǎn)品出現(xiàn),太陽(yáng)能熱水供應(yīng)系統(tǒng)也會(huì)越來(lái)越完善。太陽(yáng)能技術(shù)的推廣使用,節(jié)約了能源改善了環(huán)境、提高了人們的生活質(zhì)量,為人類的文明和進(jìn)步作出了巨大的貢獻(xiàn)。太陽(yáng)能熱水器的研究現(xiàn)狀2002100011040001015%20101300010010001%。難實(shí)現(xiàn)商品化,仍有許多問(wèn)題需要解決。3本設(shè)計(jì)的主要任務(wù)及內(nèi)容AT89C52A/DLED的溫度和水位進(jìn)行控制。本次設(shè)計(jì)的主要內(nèi)容:溫度、水位檢測(cè)傳感器的選擇A/DAT89C52時(shí)鐘控制、鍵盤及顯示部分的設(shè)計(jì)軟件設(shè)計(jì)總體設(shè)計(jì)系統(tǒng)的主要功能太陽(yáng)能熱水器自動(dòng)控制系統(tǒng)具有以下功能:220VAC,5W。0—99℃;精度±2℃。5420%50%80%100%,5當(dāng)水位超過(guò)該水位點(diǎn),相應(yīng)發(fā)光二極管發(fā)亮。水位設(shè)置:可設(shè)置加水水位20%5080%100%50,50%過(guò)按“∧”或“∨”鍵可以調(diào)整水位設(shè)置。在原水位基礎(chǔ)上再加一檔;若水位已加滿,則停止手動(dòng)加水。手動(dòng)加熱:若日曬水溫達(dá)不到設(shè)定值,則電加熱自動(dòng)補(bǔ)溫,加熱到預(yù)置溫色發(fā)光二級(jí)管顯示加熱正在進(jìn)行,待加熱停止后方可用水。) 42系統(tǒng)總體方案的設(shè)計(jì)系統(tǒng)總體結(jié)構(gòu)框圖的設(shè)計(jì)溫度水位檢測(cè)轉(zhuǎn)換水量設(shè)定溫度設(shè)定AT89C528255顯示電路控制加熱繼電器鍵盤控制控制上水電磁閥AT89C52AD590溫度傳感器,用于檢測(cè)0~5V溫度水位檢測(cè)轉(zhuǎn)換水量設(shè)定溫度設(shè)定AT89C528255顯示電路控制加熱繼電器鍵盤控制控制上水電磁閥圖2-1太陽(yáng)能熱水器控制器系統(tǒng)框圖溫度檢測(cè)電路設(shè)計(jì)軟件實(shí)現(xiàn)輔助加熱。其性能的好壞直接影響系統(tǒng)的性能,對(duì)于溫度檢測(cè),目前比較理想AD590,AD590AD590IC1℃,1μA可測(cè)量范圍-55℃150℃供電電壓范圍+4V+30V5AD590的管腳圖及元件符號(hào)如2-2所示:圖2-2 AD590的管腳圖及元件符號(hào)AD590的輸出電流值說(shuō)明如下:其輸出電流是以絕對(duì)溫度零度(-273℃)為基準(zhǔn),每增加1℃,它會(huì)增加1μA輸出電流,因此在室溫25℃時(shí),其輸出電流Iout=(273+25)=298μA。圖2-3 AD590基本應(yīng)用電路AD5902-3注意事項(xiàng):VoIo10K,25℃10K×298μA=2.98V。VoAD5902-4A圖2-4 AD590實(shí)際應(yīng)用圖電路分析:) 6AD590I(273T)A(T,因此測(cè)量的電壓V。為了將電壓測(cè)量出來(lái)又務(wù)須使輸出電流IV2V。由于一般電源供應(yīng)較多的器件之后,電源是不穩(wěn)定的,所以利用可變電阻分壓,其輸出電壓V1需調(diào)整至2.73V。Vo(100K/10K)×(V2-V1)=T/10,28℃,2.8V,A/DA/D量就和攝氏溫度成線形比例關(guān)系。AD590AD5904V~6V44V20VAD590產(chǎn)生的電流與絕對(duì)溫度成正比,它有非常好的線性輸出性能,溫度每增加1℃,1μA。AD590溫度與電流的關(guān)系如表2-1所示:攝氏溫度AD590攝氏溫度AD59010KΩ電壓0℃273.2μA2.732V-0.5℃272.7μA2.727V-1℃272.2μA2.722V-1.5℃271.7μA2.717V-2℃271.2μA2.712V-2.5℃270.7μA2.707V-3℃270.2μA2.702V-3.5℃269.7μA2.697VA/DAD59010kΩ10mV,即轉(zhuǎn)換10mV/K10kΩ9kΩ2kΩ10kΩU3AU2A2.732(即把絕對(duì)溫度轉(zhuǎn)成攝氏溫度U1A5A/D2-5IN02-5溫度檢測(cè)電路圖IN02-5溫度檢測(cè)電路圖模擬/數(shù)字轉(zhuǎn)換電路A/DI/O讀取數(shù)據(jù),這種方式使A/D模擬/ADC0809。ADC0809[]88100μs101069CLOCKSTARTENABLEref(+)12ref(-)1622ALE232425IN-75ADD-CADD-BADD-AIN-647IN-53EOC171415818192021IN-42lsb2-82-72-62-52-42-32-2msb2-1IN-31IN-228IN-127IN-026ADC0809圖2-6ADC0809引腳圖) 8ADC0809Vref(+)12Vref(+)12Vref(-)16262728123458位8路A/D轉(zhuǎn)換器三態(tài)212019188151416輸出鎖存25緩沖電路6 10START 9OE26地址鎖存1723與1122譯碼13圖2-7ADC0809內(nèi)部邏輯結(jié)構(gòu)2-288A/DABCINT09CB表2-2A通道選擇表被選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7信號(hào)引腳ADC0809282-6ADC0809IN~I(xiàn)N7 0ALE:地址鎖存允許信號(hào)。對(duì)應(yīng)ALEBCSTARTA/DA/D,STARTST。A、B、C:地址線。通道端口選擇線,A、B、CADDA,ADDB和ADDC。其地址狀態(tài)與通道對(duì)應(yīng)關(guān)系見(jiàn)表2-2。CLK:時(shí)鐘信號(hào)。ADC0809500KHzEOC:轉(zhuǎn)換結(jié)束信號(hào)。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號(hào)即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請(qǐng)求信號(hào)使用。D~DD7 0 0為最低位,D為最高。7輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。Vcc+:5V電源。Vref:參考電源參考電壓用來(lái)與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref

=+5V,Vref

=-5V)。(+) (-)ADC0809) 10VV+器感傳++456UQQVcrVNNNNNNNN DIIIIIIIIVGDAGD4RR7PLKC13KTA E00DLCULCBACDDDDDDDDTSAOCOEDA2 3417U75 6 2 37KC91615129652Q8Q7Q6Q5Q4Q3RLCD8D7D6D5D4D3D2D181714181743Q2UQ1COC111V+0V49876543233333333 3+103928765432122222222CVDDDDDDDDP GAAAAAAAAE 111111DD........ AVR SPPPPPPPPE////5432.L ......22P AA7DDDDDDAA///1APPPPPPPPAT89C52DDTTRTNNTTWR01234567 TUPPPPPPP12345678S 01234567 A AR 2 1R((((((((.T TDCX X GAN9 1111111111 2圖2-8ADC0809與單片機(jī)的硬件連接單片機(jī)的控制系統(tǒng)2070SCM、MCU、SOCSCM即單片微型計(jì)算機(jī)(SingleChipMicrocomputer)階段,主要是尋求最佳的單片SCM全不同的發(fā)展道路。第二階段:MCU即微型控制器(MicroControllerUnit)階段,智能化控制能力。Intel,PhilipsMCS-51MCU11要因素。因此,專用單片機(jī)的發(fā)展自然形成了SOCICEDASOC我們將8位單片機(jī)的推出作為起點(diǎn),那單片機(jī)的發(fā)展歷史大致可分為以下幾個(gè)階段:第一階段單片機(jī)的探索階段。以IntelMCS-48、Zilog等公司也參與了探索,都取得了滿意的效果。第二階段(1978-1982)單片機(jī)的完善階段。IntelMCS-48MCS-51。它有完善的外部總線、CPU(1982-1990):816MCS-96MCS-5180C51A/D1990-至今):微控制器的全8/16/32在選擇單片機(jī)時(shí)也應(yīng)充分考慮其便利和實(shí)用,8031單片機(jī)最大缺點(diǎn)是需要外接EPROMEPROMATMELAT89C52FLASH803180318KB內(nèi)部程序存儲(chǔ)器,可用電擦除,十分方便。AT89C52AT89C52單片機(jī)主要有以下一些特點(diǎn):MCS-518KBFLASH1000/寫操作;全靜態(tài)操作:0Hz24MHz;三級(jí)程序存儲(chǔ)器加密;(5)256字節(jié)內(nèi)部RAM;(632I/O(7)3個(gè)16位定時(shí)/計(jì)數(shù)器;) 12(8)8個(gè)中斷源;可編程串行口;低功耗空閑和掉電方式。AT89C52AT89C52包括40個(gè)引腳,其引腳結(jié)構(gòu)如圖2-9所示。圖2-9AT89C52外部管腳排列圖VCC:電源。GND:地。P08I/O8TTL邏輯電平。對(duì)P0時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P08/數(shù)據(jù)復(fù)用。在這種模式下,P0需要外部上拉電阻。P18I/O4TTLP1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIP1.0P1.2/2P1.0/T2)和時(shí)器/2(P1.1/T2EX2-3flashP1813引腳號(hào)第二功能引腳號(hào)第二功能P1.0T2(/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入,時(shí)鐘輸出P1.1T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P28I/O4TTLP2端口寫“1”輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(II。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR)18(MOVX@RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2P2flash,P28P38I/O4TTLP3端口寫“1”輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(II。P3AT89S52(第二功能)2-4編程和校驗(yàn)時(shí),P3引腳號(hào)第二功能引腳號(hào)第二功能P3.0RXD(串行輸入)P3.1P3.2P3.3P3.4TXD(串行輸出)INT00)1)T0(0)P3.5T1(1)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器寫選通)RST:復(fù)位輸入。晶振工作時(shí),RST2看門狗計(jì)時(shí)完成后,RST96AUXR() 14DISRTODISRTO8flash(PROG)ALE8EHSFR0“1”ALE“1ALEMOVXMOVC將被微弱拉高。這個(gè)ALE使能標(biāo)志位(8EH0)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:0000HFFFFHGNDVCC。在flash期間,EA12VPPXTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。AT89S52MCS-5164K程序存儲(chǔ)器EAAT89S52,如果EA0000H~1FFFH)地址為:2000H~FFFFH。數(shù)據(jù)存儲(chǔ)器AT89S52有256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128字節(jié)與特殊功能寄存器重疊。也就128高于7FHCPU訪問(wèn)高128字節(jié)RAM直接尋址方式訪問(wèn)特殊功能寄存器(SFR)0A0H(P2口)存儲(chǔ)單元。MOV0A0H,#data128RAM。例如,下面的間接尋址方式中,R00A0H0A0HP2(0A0H)。MOV@R0,#data128RAM4)中斷15AT89S526(INT0和),三個(gè)定時(shí)中斷(定時(shí)器012)和一個(gè)串行中斷。每個(gè)中斷都可以通過(guò)置位或清除特殊寄存器IE斷允許控制位分別使得中斷源有效與無(wú)效。IEEA,他能2-5IE.6AT89S52,IE.51AT892T2CONTF2EXF20。01TF0TF1S5P22TF2S2P2表2-5中斷允許控制器功能表符號(hào)位地址功能中斷總允許控制位。EA=0,中斷總禁止;EAIE.7EA=1,各中斷由各自的控制為設(shè)定—IE.6預(yù)留ET2IE.5定時(shí)器2中斷允許控制位ESIE.4串行口中斷允許控制位ET1IE.3定時(shí)器1中斷允許控制位EX1IE.2外部中斷1允許控制位ET0IE.1定時(shí)器0中斷允許控制位EX0IE.0外部中斷1允許控制位振蕩特性XTAL1和XTAL2器,石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。最小系統(tǒng)應(yīng)用電路單片機(jī)的最小應(yīng)用系統(tǒng)電路指的是它可以正常工作的最簡(jiǎn)單電路組成。AT89S51單片機(jī)的最小應(yīng)用系統(tǒng)電路圖如圖2-10所示。該系統(tǒng)中包含4個(gè)電路部分。) 16+5V+5VC4+10μFC50.143333333333222222222C01234567PGN54321)98CDDDDDDDDVOE111111AAV((((((((A........EEPPAA((((1PPPPPPPPL......22APPPPPPPP+C110μF)IS)O)OMMIK)D)D)0)1)R)D01234PPPPPPPPS RTXXTTIITTWRLT))LRP.......T3PPPPPPAADXXGN12345678911111111112R110CRYC230pFC312MHz30pF圖2-10A89C52單片機(jī)最小應(yīng)用系統(tǒng)電路供電電路VCC(40)接+5VGND(20)0.1μF(104)10μFVCC程序存儲(chǔ)器選擇電路Atmel8052EA(引腳31)可以總是接高電平。時(shí)鐘電路AT89C520~33MHzXTAL2(18)和XTAL1(19)接上晶3-3CRYC2C3CRYCRY12MHzC2C330pF~50pF時(shí)鐘電路采用晶體的目的是提高時(shí)鐘頻率的穩(wěn)定性。復(fù)位電路AT89C529)保持24RST10ms以上的高電平。只要引腳RSTRST0000HC1R1C1RSTC117RSTC1R1可靠地復(fù)位。C110μF,R110kΩ。0000H特殊功能存儲(chǔ)器的初始狀態(tài)鍵盤控制電路鍵盤控制電路采用的是矩陣鍵盤的接口技術(shù)中的程控掃描法,這種鍵盤由行線和列線組成,按鍵設(shè)置在行,列結(jié)構(gòu)的交叉點(diǎn)上,行列線分別連在按鍵開(kāi)關(guān)的兩端,列線通過(guò)上拉電阻接到正電源,以使無(wú)鍵按下時(shí)列線處于高電平狀態(tài)。程控掃描法程控掃描是由程序控制鍵掃描的方法。程控掃描的任務(wù)如下:AFFH。去除鍵抖動(dòng),若有鍵按下,則延時(shí)10~20ms有鍵按下,則認(rèn)為鍵盤上有一個(gè)鍵處于穩(wěn)定閉合期。若有鍵按下,則求出閉合鍵的鍵盤值。求值的方法是對(duì)鍵盤進(jìn)行逐行掃描,先P2.6=1然后讀入列值,若等于 FFH,則說(shuō)明該行無(wú)鍵按下,對(duì)下一行進(jìn)行掃描(令P2.6=,如果不等于FFH,則說(shuō)明該行有鍵有鍵按下,求出其鍵值。鍵盤設(shè)計(jì)的分類及其特點(diǎn)CPU,接口簡(jiǎn)單,響應(yīng)速度快,但需要專用的硬件電但他不需要專用的硬件支持,所以得到了廣泛的應(yīng)用與發(fā)展。按鍵的確認(rèn)鍵盤實(shí)際上就是一組按鍵開(kāi)關(guān)的集合,其中每一個(gè)按鍵就是一個(gè)開(kāi)關(guān)量輸入裝置。鍵的閉合與否取決于機(jī)械彈性開(kāi)關(guān)的狀態(tài)。反應(yīng)在電壓上就是呈現(xiàn)高電平或低電平,所以可以通過(guò)檢測(cè)電平的狀態(tài)來(lái)判斷按鍵是否已被按下。重鍵與連擊的處理) 18按鍵防抖技術(shù)鍵被按下前沿抖動(dòng)后沿抖動(dòng)2-1110鍵被按下前沿抖動(dòng)后沿抖動(dòng)

圖2-11按鍵抖動(dòng)信號(hào)波形通過(guò)硬件電路消除按鍵的抖動(dòng)是一種廣為采用的措施,一般有以下兩種去抖電路。濾波防抖電路RC2-12。74LS06K74LS06K1R2CR12-12濾波防抖電路KC0,1KCR1﹑R2CCKCR2CC1910ms,該電路就能消除抖動(dòng)的影響。雙穩(wěn)態(tài)防抖電路用兩個(gè)與非門夠成一個(gè)RS2-13所示。當(dāng)KKAQ1,致使與非20。此信號(hào)引至與非門1#的輸入端,將其鎖住,使其固定輸出為1。每當(dāng)KAKB0。這時(shí),無(wú)論A1KBB2#的輸出變?yōu)楦唠娖?,Q0,2,1。此時(shí),即使B2#的輸出,從而保證Q0。同理,在釋放鍵的過(guò)程中,只要一1。只要開(kāi)關(guān)KBVcc(+5v)RR74LS00有抖動(dòng)無(wú)抖動(dòng)A/ON&1#QOUTKB/OFF&2#QRVcc(+5v)2-13 雙穩(wěn)態(tài)防抖電路軟件防抖電路如前所述,若NN少量功能鍵的接口技術(shù)8SB7~SB0) 20874LS30INT0端變?yōu)榈碗娖剑駽PUCPU關(guān)開(kāi)啟時(shí),輸出被提升到+5V。反之,輸入就被強(qiáng)制接地。矩陣鍵盤的接口技術(shù)程控掃描法程控掃描法是由程序控制鍵掃描的方法,其任務(wù)如下:①首先判斷是否有鍵按下。其方法是使所有的行輸出均為低電平,然后由端口A讀入列值。如沒(méi)鍵按下則讀入值為FFH,否則不為FFH;②去處鍵抖動(dòng)。若有鍵按下則延時(shí)10~20ms,再一次判斷有無(wú)鍵按下。如果此時(shí)仍有鍵按下,則認(rèn)為鍵盤上有一個(gè)鍵處于穩(wěn)定閉合狀態(tài);③若有鍵閉合,則求出該鍵的鍵值。求鍵值的方法是對(duì)鍵盤進(jìn)行逐行掃描。先使PC0=0,然后讀入列值,若等于FFH,說(shuō)明該行無(wú)鍵按下,再對(duì)下行進(jìn)行掃描,同時(shí)令PC1=0,如果列值不等于FFH,則說(shuō)明該行有鍵按下,求出其鍵值。求鍵值時(shí)要采用行08H;行值寄存器保持原值,并轉(zhuǎn)至求相應(yīng)的列值。此時(shí),首先將列值讀數(shù)右移,每移位一次1,直到有鍵按下(低電平)為止。最后將行值列值相加,即得鍵值(十六進(jìn)制數(shù)DAA④為保證鍵每閉合一次,CPU只做一次處理,程序中需要等閉合鍵釋放后才對(duì)其進(jìn)行處理。定時(shí)掃描法CPU/計(jì)數(shù)器產(chǎn)生。這樣可以減少計(jì)算機(jī)掃描鍵盤時(shí)間,以減少CPUCPU21中斷掃描法CPUCPU的處理。本設(shè)計(jì)鍵盤的硬件連接U11 P1.023 P1.14 P1.25 P1.36 P1.47 P1.58 P1.6P1.7P0.0 39P0.1 38P0.2 37P0.3 36P0.4 35U11 P1.023 P1.14 P1.25 P1.36 P1.47 P1.58 P1.6P1.7P0.0 39P0.1 38P0.2 37P0.3 36P0.4 35P0.5 34P0.6 33P0.7 32INT0INT115 T114 T031EA/VP191891716P2.0 21P2.1 22P2.2 23P2.3 24P2.4 25P2.5 26P2.6 27P2.7 28X1X2RESETRDWRAT89C52 ALE/PRXDTXDPSEN1011293089C51VCCR43KR53KPPPSETADDSUBS1S4S2S5S3S6SW-PBSW-PBSW-PB圖2-14鍵盤控制電路2.6LED顯示電路2.6.18255的介紹) 228255,INTEL公司的研制的8255不僅8位的I/O端口AB口)位的I/O端口C口256B的靜態(tài)RAM存儲(chǔ)器和14位的定時(shí)/RAM和定時(shí)器的并行口8255的引腳功能8255采用40腳雙列直插式封裝,單一+5v電源。8255引腳功能說(shuō)明:RESET:(包括控制寄存器均被清除,所有I/O口均被置成輸入方式。PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入鎖存器。PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器,一個(gè)8位的輸入輸出緩沖器。PC0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口,每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊。RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫8255。D0~D7:與CPUCPU時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。ALE:地址鎖存器啟用信號(hào)線,高電平有效,其下降沿把AD0~AD7信號(hào)、IO/M信號(hào)鎖存起來(lái)。IO/M:I/O和RAM選擇信號(hào)線,高電平造反輸入/輸出,該線低電平選擇存儲(chǔ)器。RD:讀信號(hào)線,低電平有效,當(dāng)片選信號(hào)與RD有效時(shí),開(kāi)啟AD0~AD7緩沖器,如IO/MRAMAD0~AD7,如果IO/MAD0~AD7。WR:寫信號(hào)線,低電平有效,當(dāng)片選信號(hào)和WRAD0~AD7IO/MRAMI/OPA0~PA7:輸入/A8/輸出口,輸入/過(guò)對(duì)命令/PB0~PB7:輸入/B8/輸出口,輸入/過(guò)對(duì)命令/狀態(tài)寄存器的編程來(lái)選擇。PC0~PC5:/C/輸出口,也可用作AB的控制信號(hào)線,通過(guò)對(duì)命令/狀態(tài)寄存器編程來(lái)選擇。23INT:定時(shí)/計(jì)數(shù)器輸入信號(hào)線,定時(shí)/計(jì)數(shù)器的時(shí)鐘由此線輸入。TOUT:定時(shí)/計(jì)數(shù)器的輸出信號(hào)線,輸出信號(hào)為方波還是脈沖則由定時(shí)/計(jì)數(shù)器的工作方式而定。VCC:電源線,接+5V直流電源。VSS:接地線,接到公用地線上。LEDCRT分為固定段顯示和可以拼裝的大型字段顯示,此外還有共陽(yáng)極和共陰極之分等。三種顯示器中,以熒光管顯示器亮度極高,發(fā)光二極管次之,而液晶顯示器最弱,為被動(dòng)顯示器,必須有外光源。由于LED顯示具有顯示清晰、亮度高、使用電壓低、壽命長(zhǎng)的特點(diǎn),因此使用非常廣泛。LED7LEDLED壓。當(dāng)某個(gè)發(fā)光二極管的陰極接低電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。LED[7]LEDLEDa)LEDLED顯示器工作于靜態(tài)顯示方式時(shí),各位的共陰極(或共陽(yáng)極)連接在一起并接地(或+5V)8不變,直到顯示為另一個(gè)字符為止,靜態(tài)顯示器的亮度較高。LED源較多。如果顯示位數(shù)增多,靜態(tài)顯示無(wú)法時(shí)應(yīng),一般都采用動(dòng)態(tài)顯示方式。b)LED動(dòng)態(tài)顯示方式LED8I/OI/O[7]。本系統(tǒng)所采用顯示為雙位7段LED共陽(yáng)極顯示[3]。) 24h g f e d c b aCOMCOM共陽(yáng)極發(fā)光二極管連接圖h g f e d c b aCOMCOM共陰極發(fā)光二極管連接圖LED82-15709LED+5V2-16共陰極接法。把發(fā)光二極管的陰極連接在一起,在使用時(shí)共陰極接地,這時(shí)陽(yáng)極接782-6LED2-7數(shù)據(jù)位D7數(shù)據(jù)位D7D6D5D4D3D2D1D0顯示段hgfedcba25表2-7LED數(shù)碼管的字型碼顯示字型共陽(yáng)極字型碼共陰極字型碼0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71HAAB+5VBCCDDAAB+5VBCCDDEEFFGGDPDP圖2-17LED的顯示原理圖時(shí)顯示“-”號(hào),溫度不為負(fù)時(shí)顯示黑碼,即無(wú)任何內(nèi)容顯示,右邊的數(shù)碼管用于顯示25/S。下面) 26簡(jiǎn)單介紹一下七段LED,它的構(gòu)成字型為“8”,另外還有一個(gè)數(shù)點(diǎn)發(fā)光二極管以顯示連在一起的(K0)Ka)稱為共陰顯示器。一位顯示器由八個(gè)發(fā)光二極管組成,其中七個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)a~g,另外一個(gè)小數(shù)點(diǎn)為dpLED并行接口動(dòng)態(tài)顯示2-1048255PB82557PB經(jīng)驅(qū)動(dòng)器變?yōu)榈碗娖絃ED才發(fā)光。若將各位依次從左到由依次進(jìn)行顯示,每個(gè)數(shù)碼管連續(xù)顯示1ms,4+5vR*7DS1+5vR*7DS18pdcdbgpdgfedfaYPDcbaDS2pdcdpdgfeeb faDS3gdcbaU4PC5PC4PC3PC2PC1PC0RESET4TMRIN3pdcdpdgfeeTMROUT6b faDS4gdcbaPB7PB6PB5PB4PB3PB2PB1PB0ALE 11IO/M 7WR 10RD 9CE 8pdcdpdgfeeb agdcbaPA7PA6PA5PA4PA3PA2PA1PA0AD7 19AD6 18AD5 17AD4 16AD3 15AD2 14AD1 13AD0 1281558255U13U122003U112003U1020032003765432174LS07874LS0776574LS074532274LS07113938874LS0737736674LS0735534433374LS073223113074LS07298287276265254243232221212-18顯示電路圖2.7繼電器控制電路設(shè)計(jì)在太陽(yáng)能熱水器控制器的設(shè)計(jì)中,繼電器輸出是實(shí)現(xiàn)蓄水箱輔助加熱的手段。對(duì)繼2-19處采用了光電耦合器4N254N25D1) 2889C52CPUP1.6CPUP1.6P1.6變?yōu)楦唠娖?進(jìn)入與門,此時(shí)若與門另一輸入腳為高,則與門輸出高電平,同時(shí)發(fā)光二極管點(diǎn)亮,指示工作狀態(tài)為正在輔助加熱。同時(shí)使光耦發(fā)光管發(fā)光,繼電器動(dòng)作,開(kāi)始輔助位檢測(cè)線是為了防止有一根水位線斷線系統(tǒng)拒絕輔助加熱的情況,增強(qiáng)了系統(tǒng)容錯(cuò)性。P1.6

+5V +15VJ1220V1K J1220V4N25水位檢測(cè)最低位非門輸?shù)臀环情T輸

74LS09

1K LCD圖2-19繼電器輸出電路P1.3P1.4P1.5P1.69013P1.3P1.4P1.5P1.69013圖2-20 繼電器控制上水裝置與單片機(jī)連接硬件圖) 303軟件部分設(shè)計(jì)程序流程圖設(shè)計(jì)53-1更加精確。查表程序采用對(duì)分查表法,既節(jié)省機(jī)時(shí)又無(wú)需太多要求。為了使顯示和控制都更精確,表格分得越細(xì)越好,這需要在實(shí)驗(yàn)測(cè)量時(shí)采集更多的數(shù)據(jù)。主程序流程圖31開(kāi)始開(kāi)始初始化延時(shí)溫度、水位采樣A/D轉(zhuǎn)換顯示子程序N按鍵中斷?Y中斷子程序回圖3-1主程序流程圖) 32顯示程序流程圖設(shè)計(jì)動(dòng)態(tài)顯示子程序動(dòng)態(tài)顯示子程序顯示緩沖區(qū)首地址R0指向最左邊一位DPTR8255B0地址取出要顯示的地址求待顯示數(shù)據(jù)的顯示碼求下一個(gè)位選碼口修改顯示緩沖區(qū)地址口1msN5位數(shù)顯示完了嗎?Y返回圖3-2顯示程序流程圖330013H0013H關(guān)中斷現(xiàn)場(chǎng)保護(hù)讀鍵值Y是抖動(dòng)?N判斷鍵值執(zhí)行鍵功能恢復(fù)現(xiàn)場(chǎng)中斷回圖3-3鍵盤中斷程序流程圖A/D) 34開(kāi)始開(kāi)始初始化A/轉(zhuǎn)換A/轉(zhuǎn)換結(jié)果讀取結(jié)果NNRA單元修改通道號(hào)RA地址計(jì)數(shù)YY返回3-4AD換流程圖軟件程序設(shè)計(jì)#include<reg52.h>#include<intrins.h>#defineuintunsigned#defineucharunsigned#definesled_AD_port P035#definesled_WD_port P1 /*定義數(shù)碼管段碼的控制腳#definesled_wm_portP2 /*定義數(shù)碼管位碼的控制腳*/sbitDQ=P3^5; //定義DS18B20通信端口sbitADCS=P3^2;//ADC0832chipseclectsbitADCLK=P3^3;//ADC0832clocksignalsbitADDI=P3^4;//ADC0832datainsbitADDO=P3^4;//ADC0832dataoutsbitkai1=P3^0;sbitkai2=P3^1;sbitup_key=P3^6;sbitdown_keyucharcodedu_char[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};ucharcodewe_table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; /*要點(diǎn)亮的數(shù)碼管*/uchardatasled_data[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};/*0-7號(hào)SLED緩沖值*/uchardataled_lighten_bit=0; /*LEDucharshuiwei;uintwendu;uchartemp_buff;voiddelay_1ms(uintz){

/*1MS為單位的延時(shí)程序*/ucharx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//////////////////以下是DS18B20驅(qū)動(dòng)程序////////////////voiddelay(uinti){

//延時(shí)函數(shù)while(i--);}//初始化函數(shù)) 36Init_DS18B20(void){ucharx=0;DQ=1;//DQ復(fù)位delay(8);//稍做延時(shí)DQ=0;//DQDQ=1;//拉高總線delay(14);x=DQ;//x=0x=1delay(20);}//讀一個(gè)字節(jié)Read(void){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//dat>>=1;DQ=1;//給脈沖信if(DQ) dat|=0x80;delay(4);}return(dat);}//寫一個(gè)字節(jié)Write(uchar{uchari=0;for(i=8;i>0;DQ=0;DQ=dat&0x01;delay(5);DQ=1;37dat>>=1;}}//讀取溫度ReadTemperature(void){uchara=0;ucharb=0;uintt=0;floattt=0;Init_DS18B20();Write(0xCC);//Write(0x44);//啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20();Write(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作Write(0xBE);//讀取溫度寄存器等(9)a=Read();b=Read();t=b;t<<=8;t=t|a;tt=t*0.0625;//將溫度的高位與低位合并t=tt*10+0.5;//對(duì)結(jié)果進(jìn)行4舍5入return(t);}//////////////////以上是DS18B20驅(qū)動(dòng)程序//////////////////采集數(shù)據(jù)unsignedintAdc0832(unsignedcharchannel){uchari=0;ucharj;uintdat=0;ucharndat=0;If(channel==0)channel=2;If(channel==1)channel=3;) 38ADDI=1;_nop_();_nop_();ADCS=0;//拉低CS端_nop_();_nop_();ADCLK=1;//拉高CLK端_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿1_nop_();_nop_();ADCLK=1;//CLKADDI=channel&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿2_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=(channel>>1)&0x1;_nop_();_nop_();ADCLK=0;//CLKADDI=1;//控制命令結(jié)束_nop_();_nop_();dat=0;for(i=0;i<8;i++){dat|=ADDO;//ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次時(shí)鐘脈沖39_nop_();_nop_();Dat<<=1;If(i==7)dat|=ADDO;}For(i=0;i<8;i++){j=0;j=j|ADDO;//ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次時(shí)鐘脈沖_nop_();_nop_();j=j<<7;ndat=ndat|j;if(i<7)ndat>>=1;}ADCS=1;//CSCLKADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)dat<<=8;dat|=ndat;return(dat); //returnaddata}xianshiTemperature(){ucharc;sled_WD_port=0;{wendu=ReadTemperature();//讀取當(dāng)前溫度sled_data[3]=du_char[wendu/100];sled_data[4]=du_char[wendu%100/10];sled_data[5]=du_char[wendu%10];) 40for(c=3;c<6;c++){sled_wm_port=0x00;//關(guān)閉顯示sled_WD_port=sled_data[c];//輸出段碼數(shù)據(jù)到數(shù)碼管//if(c==4)sled_WD_port=sled_WD_port&0x7f;sled_wm_port=we_table[c];//輸出位碼數(shù)據(jù)到數(shù)碼管delay_1ms(20);}}}xianshishuiwei(){ucharuu,d;sled_AD_port=0;{uu=Adc0832(0);shuiwei=uu/2.56;sled_Data[0]=du_char[shuiwei%100/10];sled_data[1]=Du_Char[shuiwei%10];For(d=0;d<2;d++){sled_wm_port=0x00;//關(guān)閉顯示sled_AD_port=sled_data[d];//輸出段碼數(shù)據(jù)到數(shù)碼管sled_wm_port=we_table[d];//輸出位碼數(shù)據(jù)到數(shù)碼管delay_1ms(25);}}}Voidmain(){While(1){xianshishuiwei();XianshiTemperature();If(wendu<350)41kai1=0;If(wendu>400)kai1=1;if(shuiwei<20)kai2=0;if(shuiwei>90)kai2=1;}}) 424分析和總結(jié)AT89C52在需要打印的時(shí)候還可以打印出需要的數(shù)據(jù)。該系統(tǒng)結(jié)構(gòu)合理、操作方便、性能可靠、運(yùn)行穩(wěn)定。通過(guò)此設(shè)計(jì)的分析可得到如下結(jié)論:AT89C52可靠性強(qiáng)的自動(dòng)控制產(chǎn)品---太陽(yáng)能熱水器控制器的控制系統(tǒng),實(shí)現(xiàn)了熱水器溫度水位的自動(dòng)控制。本系統(tǒng)的設(shè)計(jì)盡量簡(jiǎn)化電路,提高軟件質(zhì)量。件

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論