版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
題目:語(yǔ)音溫度計(jì)設(shè)計(jì)[29]。語(yǔ)音子程序的流程圖如圖所示:圖4-5語(yǔ)音子程序流程圖第5章實(shí)物制作與調(diào)試5.1實(shí)物制作具體步驟如下:準(zhǔn)備實(shí)物所需要的器件:AT89C51單片機(jī)、20pf的電容2個(gè)、發(fā)光二極管1個(gè)、LCD1602液晶顯示屏1個(gè)、9012型的三極管1個(gè)、2K的電阻3個(gè)、1個(gè)蜂鳴器1個(gè)、按鍵4個(gè)、電源開(kāi)關(guān)1個(gè)、防水型DS18B20溫度傳感器1個(gè)、10uf的電容1個(gè)、頻率為12M的晶振1個(gè)、WT588D語(yǔ)音芯片1個(gè)、揚(yáng)聲器1個(gè)、萬(wàn)用板以及導(dǎo)線若干。準(zhǔn)備好所有器件后,檢查單個(gè)器件有無(wú)損壞等,檢查完畢準(zhǔn)備焊接工作,按照所畫(huà)的原理圖進(jìn)行焊接,焊接過(guò)程中需對(duì)引腳與引腳之間對(duì)應(yīng)關(guān)系防止焊接錯(cuò)誤,且在焊接過(guò)程中需注意發(fā)光二極管和蜂鳴器的長(zhǎng)腳都接正極,短腳都接負(fù)極。焊接好的實(shí)物圖如下圖所示:圖5-1實(shí)物背面圖圖5-2實(shí)物正面圖5.2實(shí)物調(diào)試運(yùn)行與分析在完成電路的焊接之后,需結(jié)合程序一起調(diào)試,調(diào)試步驟如下:首先將程序燒錄進(jìn)單片機(jī),采用編程器進(jìn)行程序的燒錄。當(dāng)燒錄完畢后,聯(lián)接電源的USB線,按下電源鍵。先觀察二極管是否短暫發(fā)光,蜂鳴器是否叫一聲。觀察顯示器是否顯示,是否出現(xiàn)亂碼。測(cè)試按下設(shè)置按鍵,按下加減鍵對(duì)溫度上限值進(jìn)行設(shè)置,再次按下設(shè)置鍵對(duì)低溫就行設(shè)置。實(shí)物調(diào)試:(1)當(dāng)調(diào)試步驟準(zhǔn)備好,首先對(duì)液晶顯示進(jìn)行調(diào)試,液晶顯示可以正常的顯示。液晶顯示調(diào)試圖如圖所示:圖5-3液晶顯示調(diào)試圖報(bào)警功能的調(diào)試:先將溫度上限值設(shè)定比實(shí)際所測(cè)得溫度值低,發(fā)出高溫報(bào)警;再將溫度下限值設(shè)置比實(shí)際溫度高,發(fā)出低溫報(bào)警。高低溫報(bào)警演示圖如下:圖5-4高溫報(bào)警調(diào)試圖圖5-5低溫報(bào)警調(diào)試圖分析:實(shí)物調(diào)試時(shí),設(shè)定按鍵接地端調(diào)試時(shí),發(fā)現(xiàn)按鍵接地引腳與單片機(jī)的接地引腳沒(méi)有接通,上網(wǎng)查詢資料后,原因是斷路或錯(cuò)接,又與電路圖作比較,排查出原因是按鍵的接地引腳錯(cuò)接,然后重新焊接,再次調(diào)試解決了這個(gè)問(wèn)題。在調(diào)試液晶顯示器時(shí),發(fā)現(xiàn)有時(shí)液晶顯示器正常顯示,有時(shí)液晶顯示器不顯示,我網(wǎng)上查閱相關(guān)資料和詢問(wèn)老師后,排查出原因,是假焊,然后在對(duì)其重新焊接后,再無(wú)這些情況出現(xiàn)。雖然調(diào)試過(guò)程中發(fā)現(xiàn)了一些問(wèn)題,但是在解決這些問(wèn)題后,此次語(yǔ)音溫度計(jì)的設(shè)計(jì)基本符合設(shè)計(jì)任務(wù)書(shū)的要求。語(yǔ)音功能、聲光報(bào)警功能、顯示功能都能實(shí)現(xiàn)以及使用鍵盤(pán)設(shè)置溫度上下限值都能基本實(shí)現(xiàn)。第6章總結(jié)與展望隨著人們對(duì)于健康的越來(lái)越重視,溫度計(jì)已經(jīng)成為人家日常生活中的必備品。但是現(xiàn)在市面上的溫度計(jì)大多為數(shù)字或者刻度值的溫度計(jì),然而這些溫度計(jì)對(duì)于老年人或者盲人這樣的特殊人群使用極不方便,所以此次設(shè)計(jì)的靈感來(lái)源于生活。此次設(shè)計(jì)是在傳統(tǒng)溫度計(jì)上增加一個(gè)語(yǔ)音功能以及數(shù)字顯示。此次畢業(yè)設(shè)計(jì),從選定題目,到查閱資料,再到方案的確定,然后器材的選定,硬件電路設(shè)計(jì),程序的設(shè)計(jì),實(shí)物的制作以及系統(tǒng)調(diào)試。方案確定過(guò)程中對(duì)于控制器的選定時(shí),在單片機(jī)與可編程邏輯器件CPLD中選擇時(shí)出現(xiàn)了迷茫,在老師的幫助以及結(jié)合自己查閱相關(guān)資料,最后選定單片機(jī)作為核心控制。在實(shí)物調(diào)試過(guò)程中,出現(xiàn)了按鍵與單片機(jī)未接通,在老師的幫助與指導(dǎo)下發(fā)現(xiàn)時(shí)錯(cuò)接了,然后進(jìn)行重新焊接。還出現(xiàn)了液晶顯示器在通電時(shí)有時(shí)顯示有時(shí)不顯示的問(wèn)題,為排查這個(gè)問(wèn)題,我咨詢老師,然后自己在查閱相關(guān)的資料,排查出是出現(xiàn)了假焊,然后重新對(duì)電路進(jìn)行焊接解決問(wèn)題。此次設(shè)計(jì)的難點(diǎn)在于程序的設(shè)計(jì),其中液晶顯示的程序設(shè)計(jì)是一個(gè)難點(diǎn)。由于只學(xué)過(guò)基礎(chǔ)的c語(yǔ)言,且學(xué)習(xí)時(shí)間過(guò)久,導(dǎo)致設(shè)計(jì)中很多的不熟練,再加上液晶顯示需要去查閱液晶的字符使用手冊(cè),所以在對(duì)于液晶程序設(shè)計(jì)時(shí),遇到了很多的困難。在起初的程序總體流程設(shè)計(jì)時(shí)也出現(xiàn)了很多錯(cuò)誤,然后自己查閱相關(guān)資料以及老師幫助下,完成了程序流程圖的設(shè)計(jì)。在程序設(shè)計(jì)完,對(duì)程序進(jìn)行仿真測(cè)試時(shí),出現(xiàn)了很多的問(wèn)題,然后又逐步排查出問(wèn)題,查閱資料解決相關(guān)的問(wèn)題。此次設(shè)計(jì)的一個(gè)小小的新穎點(diǎn)在于開(kāi)機(jī)時(shí)系統(tǒng)提示的設(shè)計(jì),開(kāi)機(jī)時(shí)單片機(jī)給報(bào)警電路一個(gè)低電平信號(hào),使報(bào)警電路短暫工作,用于提示使用者整個(gè)系統(tǒng)已開(kāi)啟。此次設(shè)計(jì)中的不足:由于要求實(shí)現(xiàn)溫度值的顯示與溫度上下限值的顯示,所以設(shè)計(jì)只進(jìn)行了簡(jiǎn)單的設(shè)計(jì),沒(méi)有加入時(shí)鐘芯片,不能在液晶顯示器上對(duì)時(shí)間進(jìn)行顯示,也不能實(shí)現(xiàn)整點(diǎn)播報(bào)語(yǔ)音溫度。因?yàn)檫@是一款環(huán)境溫度測(cè)量溫度計(jì),所以有可能在嘈雜的環(huán)境中進(jìn)行,因?yàn)橹贿M(jìn)行了簡(jiǎn)單的語(yǔ)音播報(bào)設(shè)計(jì),所以語(yǔ)音播報(bào)的聲音以及聲光報(bào)警的聲音無(wú)法調(diào)節(jié)大小。此次設(shè)計(jì)中由于只需語(yǔ)音播報(bào)的功能的實(shí)現(xiàn),為了調(diào)試與檢驗(yàn)的方便,所以設(shè)計(jì)中將播報(bào)的循環(huán)時(shí)間間隔很短。設(shè)計(jì)中只是對(duì)系統(tǒng)自動(dòng)語(yǔ)音播報(bào)進(jìn)行了設(shè)計(jì),而在系統(tǒng)不進(jìn)行播報(bào)時(shí),不能手動(dòng)按下報(bào)溫鍵進(jìn)行溫度值的播報(bào)。改進(jìn):如果增加一個(gè)外部時(shí)鐘電路,就能更好的實(shí)現(xiàn)溫度的整點(diǎn)播報(bào)以及顯示器也可以顯示出時(shí)間等;如果增加一個(gè)報(bào)溫按鍵,就不需要把播報(bào)的循環(huán)時(shí)間間隔設(shè)置的很短。如果WT588D采用MP3控制模式,就能實(shí)現(xiàn)音量的大小的控制。通過(guò)本次設(shè)計(jì)我學(xué)會(huì)了許多其他方面的知識(shí)。比如單片機(jī)的知識(shí),明白了單片機(jī)的運(yùn)行原理,以及單片機(jī)的運(yùn)行條件。掌握了很多以前不熟練的東西,也讓我學(xué)會(huì)了一些在以后工作與學(xué)習(xí)上可以用到的道理,在確定設(shè)計(jì)方案時(shí),需要從多個(gè)方面入手去準(zhǔn)備,一定需要準(zhǔn)備齊全。也對(duì)WT588D芯片有了一定的了解,以及液晶顯示器的相關(guān)知識(shí),學(xué)會(huì)了相關(guān)軟件的操做。隨著以后溫度計(jì)、溫度檢測(cè)技術(shù)與集成化的發(fā)展,以后溫度計(jì)的設(shè)計(jì)也將會(huì)越來(lái)越智能化,越來(lái)越集成化。不僅可以實(shí)現(xiàn)語(yǔ)音功能,還可以實(shí)現(xiàn)其他更多的功能,也使得那些特殊人群能自己使用溫度計(jì)。參考文獻(xiàn)張克,張哲,楊莉.采用高精度數(shù)字溫度計(jì)替代標(biāo)準(zhǔn)水銀溫度計(jì)的探討[J].計(jì)量學(xué)報(bào),2007(9):99-102.陳雪小.數(shù)字顯示溫度計(jì)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)產(chǎn)品與流通,2019(07):120.楊杰,陳麗蓉.玻璃液體溫度計(jì)的正確選用及示值誤差的修正[J].計(jì)量與測(cè)試技術(shù),2015,42(02):37-38.周之光.數(shù)字顯示溫度控制器的設(shè)計(jì)[C].中國(guó)電工技術(shù)學(xué)會(huì).湖南省電工技術(shù)學(xué)會(huì)第七次會(huì)員代表大會(huì)暨2004學(xué)術(shù)年會(huì)論文集.中國(guó)電工技術(shù)學(xué)會(huì):中國(guó)電工技術(shù)學(xué)會(huì),2004:93-96.任睿,石潔.接觸式數(shù)字體溫計(jì)的概念設(shè)計(jì)[J].設(shè)計(jì),2020,33(05):31-33.羅萍.基于SPCE061A單片機(jī)的語(yǔ)音播報(bào)溫度計(jì)的設(shè)計(jì)[J].惠州學(xué)院學(xué)報(bào)(自然科學(xué)版),2009,29(06):66-68.唐永紅.史賢俊.劉陵順.飛機(jī)發(fā)動(dòng)機(jī)轉(zhuǎn)速實(shí)時(shí)檢測(cè)與顯示系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化儀表.2012:84-86.MaxtechInternationalInc,NewMarketResearchontheWorldMarketforCommercialandDual-UseInfraredImagingandInfraredThermometryEquipmentVol,IRW-CbyMaxtechInternational,IncJournalofTransportation[J],2020(75):12-17.FatemiSeyedAbolghsem,ElliottKatieElaineCollins,BelloAbiodun,DurojayeOluwaseunAyobami,ZhangHai-Jun,PeeblesEdgarDavid.TheeffectsofinovoinjectedvitaminD3sourcesontheeggshelltemperatureandearlyposthatchperformanceofRoss708broilers[J],Poultryscience,2020,99(3),45-50.Liu,C.Voicethermometerbasedblindorasthenopiapeople,hasboxbodywhosesideisprovidedwithchargingportandpowerswitch,andsinglechipmicrocomputerconnectedwithvoicesynthesizingmodulethatisconnectedwithloudspeaker[P].CN210346945-U,CN210346945-U17Apr2020G01K-013/00202038.Shwetlana,M.Pourmand,S.V.Boriskina,etal.Enhancedlightfocusinginself-assembledoptoplasmonicclusterswithsubwavelengthdimensions[J].AdvancedMaterials,2013,25(1):115-119深圳理思科技有限公司.語(yǔ)音溫度計(jì):CN201821078427.3[P].2019-02-05.郭源生.人體紅外測(cè)溫傳感器大有可為,中國(guó)電子報(bào),2020(8),26-29.汪桂珍.基于C51的萬(wàn)年歷語(yǔ)音溫度計(jì)的設(shè)計(jì)[J].福建電腦,2010,26(11):164,150.楊效春.基于MSP430F427單片機(jī)高精度智能語(yǔ)音數(shù)字溫度計(jì)的設(shè)計(jì)[J].機(jī)電信息,2010(30):134-136.葉富邦.基于MLX90614紅外傳感器的機(jī)床測(cè)溫系統(tǒng)設(shè)計(jì),安徽職業(yè)技術(shù)學(xué)院學(xué)報(bào),2019,18(03):24-27.王磊.基于輻射測(cè)溫理論的比色測(cè)溫儀的研究,哈爾濱理工大學(xué),2019,13(5):78.楊志巍,張朝龍,刁書(shū)成,江善和,李彥梅.基于單片機(jī)的紅外測(cè)溫裝置設(shè)計(jì),電腦知識(shí)與技術(shù),2019,15(13):278-280.類延強(qiáng),張麗萍,類延法.基于單片機(jī)的可編程紅外溫度傳感器設(shè)計(jì),工業(yè)控制計(jì)算機(jī),2019,32(04):125-126.連全塔.基于語(yǔ)音合成的非接觸式紅外溫度計(jì),電子質(zhì)量,2019(04):3-7.楊賢聰.基于單片機(jī)的光電循跡小車設(shè)計(jì),電子技術(shù)與軟件工程,2019(02):246.考其祎,趙娟.基于單片機(jī)的紅外體溫測(cè)量?jī)x的設(shè)計(jì),南方農(nóng)機(jī),2018,49(23):181+190.強(qiáng)大壯,李寧,王瑛,王陽(yáng).基于Arduino的變電站自動(dòng)巡線測(cè)溫車模型設(shè)計(jì),遼寧師專學(xué)報(bào)(自然科學(xué)版),2018,20(03):73-75.王帥.基于紅外輻射的電廠鍋爐溫度檢測(cè)與溫度場(chǎng)重建,太原理工大學(xué),2018,15:136-137.許璇,郎朝先,邱達(dá),彭興河,張勇.基于單片機(jī)的奶牛生理狀態(tài)監(jiān)測(cè)系統(tǒng),現(xiàn)代信息科技,2018,2(03):195-196.袁媛,李秋,顏翠翠.智能測(cè)溫儀的設(shè)計(jì),科技資訊,2018,16(07):108-109.王明楊.基于單片機(jī)的電力設(shè)備在線監(jiān)測(cè)系統(tǒng)研究,電腦迷,2017,3(11):91.韓斗.機(jī)車輪箍車載監(jiān)測(cè)報(bào)警裝置的研究,西南交通大學(xué),2017,45,12-17.江楚炎.淺談電氣設(shè)備紅外測(cè)溫技術(shù)的應(yīng)用,中國(guó)高新區(qū),2017,14(20):123.余國(guó)衛(wèi).基于單片機(jī)的非接觸式測(cè)溫系統(tǒng),電腦知識(shí)與技術(shù),2017,13(24):206-207.李毅豐,毛曉波,楊怡航,朱楓.非接觸式紅外測(cè)溫灶具防干燒系統(tǒng)設(shè)計(jì),鄭州大學(xué)學(xué)報(bào)(工學(xué)版),2017,38(05):18-22致謝經(jīng)過(guò)幾個(gè)月的努力,畢業(yè)設(shè)計(jì)也來(lái)到了終點(diǎn)。大學(xué)四年也到了終點(diǎn),在這里也感謝那些教過(guò)我的老師,他(她)們教會(huì)了我們知識(shí),還教會(huì)了我們?cè)S多的道理。此次畢業(yè)設(shè)計(jì)能順利的完成,感謝指導(dǎo)老師雷莉萍老師的細(xì)心指導(dǎo)。盡管此次設(shè)計(jì)受疫情的影響使得我們只能在家里完成,但是有什么問(wèn)題咨詢雷莉萍老師時(shí),她都耐心細(xì)心給講解。我在改寫(xiě)論文時(shí),看見(jiàn)一個(gè)批注,批注顯示的時(shí)間是凌晨1點(diǎn),雷莉萍老師的這種負(fù)責(zé)的精神,值得我學(xué)習(xí)。這里誠(chéng)摯的感謝雷莉萍老師在我的畢業(yè)設(shè)計(jì)過(guò)程中提供的幫助!同時(shí)也感謝在答辯過(guò)程中對(duì)于我不設(shè)計(jì)不足提出寶貴意見(jiàn)的老師!附錄程序:#include<reg51.h> //調(diào)用單片機(jī)頭文件#defineucharunsignedchar//無(wú)符號(hào)字符型宏定義 變量范圍0~255#defineuintunsignedint //無(wú)符號(hào)整型宏定義 變量范圍0~65535#include<intrins.h>sbitdq=P1^5; //18b20IO口的定義sbitbeep=P1^4;//蜂鳴器IO口定義uinttemperature;//bitflag_300ms;bitflag_lj_en; //按鍵連加使能bitflag_lj_3_en; //按鍵連3次連加后使能加的數(shù)就越大了ucharkey_time,key_value;//用做連加的中間變量bitkey_500ms;ucharcodetable_num[]="0123456789abcdefg";sbitrs=P1^0; //寄存器選擇信號(hào)H:數(shù)據(jù)寄存器 L:指令寄存器sbitrw=P1^1; //寄存器選擇信號(hào)H:數(shù)據(jù)寄存器 L:指令寄存器sbite=P1^2; //片選信號(hào)下降沿觸發(fā)ucharmenu_1;//菜單設(shè)計(jì)的變量uintt_high=350,t_low=100;sbitVBUSY=P2^0; sbitVSDA=P2^1;sbitVCS=P2^2;sbitVSCL=P2^3;sbitVRST=P2^4;ucharyujing[3];/***********************1ms延時(shí)函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}voiddelay_us(unsignedintus){ while(us--) { _nop_(); }}/**********************語(yǔ)音子程序************************/voidSend_threelines(unsignedcharaddr){unsignedchari; VRST=0; delay_1ms(5); VRST=1; delay_1ms(20);/*復(fù)位拉高20ms*/ VCS=0; delay_1ms(5);/*片選拉低5ms*/for(i=0;i<8;i++) { VSCL=0; if(addr&0x01) { VSDA=1; } else VSDA=0; addr>>=1; delay_us(150);/*150us*/ VSCL=1; delay_us(150);/*150us*/ } VCS=1; delay_1ms(150); while(VBUSY==0); //忙等待}/*********************************************************************名稱:delay_uint()*功能:小延時(shí)。*輸入:無(wú)*輸出:無(wú)***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無(wú)***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫(xiě)數(shù)據(jù)函數(shù)*輸入:需要寫(xiě)入1602的數(shù)據(jù)*輸出:無(wú)***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; }/*********************************************************************名稱:write_string(ucharhang,ucharadd,uchar*p)*功能:改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開(kāi)始顯示"abcdef",調(diào)用該函數(shù)如下 write_string(1,5,"abcdef;")*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無(wú)***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/***********************lcd1602上顯示特定的字符************************/voidwrite_zifu(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(date); }/***********************lcd1602上顯示兩位十進(jìn)制數(shù)************************/voidwrite_sfm3_18B20(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data('.'); write_data(0x30+date%10); }/***********************lcd1602初始化設(shè)置************************/voidinit_1602(){ write_com(0x38); // write_com(0x0c); write_com(0x06); delay_uint(1000); write_string(1,0,"temp:."); write_string(2,0,"H:.L:."); write_zifu(1,12,0xdf);//顯示度 write_zifu(2,6,0xdf);//顯示度 write_zifu(2,14,0xdf);//顯示度}/***********************18b20初始化函數(shù)*****************************/voidinit_18b20(){ bitq; dq=1; //把總線拿高 delay_uint(1); dq=0; //給復(fù)位脈沖 delay_uint(80); dq=1; //把總線拿高等待 delay_uint(10); q=dq; //讀取18b20初始化信號(hào) delay_uint(20); dq=1; //把總線拿高釋放總線}/*************寫(xiě)18b20內(nèi)的數(shù)據(jù)***************/voidwrite_18b20(uchardat){ uchari; for(i=0;i<8;i++) { //寫(xiě)數(shù)據(jù)是低位開(kāi)始 dq=0; //把總線拿低寫(xiě)時(shí)間隙開(kāi)始 dq=dat&0x01;//向18b20總線寫(xiě)數(shù)據(jù)了 delay_uint(5); dq=1; //釋放總線 dat>>=1; } }/*************讀取18b20內(nèi)的數(shù)據(jù)***************/ucharread_18b20(){ uchari,value; for(i=0;i<8;i++) { dq=0; //把總線拿低讀時(shí)間隙開(kāi)始 value>>=1; //讀數(shù)據(jù)是低位開(kāi)始 dq=1; //釋放總線 if(dq==1) //開(kāi)始讀寫(xiě)數(shù)據(jù) value|=0x80; delay_uint(5); } returnvalue; //返回?cái)?shù)據(jù)}/*************讀取溫度的值讀出來(lái)的是小數(shù)***************/uintread_temp(){ uintvalue; ucharlow; //在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳過(guò)64位ROM write_18b20(0x44); //啟動(dòng)一次溫度轉(zhuǎn)換命令 delay_uint(50); init_18b20(); //初始化18b20 EA=0; write_18b20(0xcc); //跳過(guò)64位ROM write_18b20(0xbe); //發(fā)出讀取暫存器命令 EA=1; low=read_18b20(); //讀溫度低字節(jié) value=read_18b20();//讀溫度高字節(jié) value<<=8; //把溫度的高位左移8位 value|=low; //把讀出的溫度低位放到value的低八位中 value*=0.625; //轉(zhuǎn)換到溫度值小數(shù) returnvalue; //返回讀出的溫度帶小數(shù)}/*************定時(shí)器0初始化程序***************/voidtime_init() { EA=1; //開(kāi)總中斷 TMOD=0X01; //定時(shí)器0、定時(shí)器1工作方式1 ET0=1; //開(kāi)定時(shí)器0中斷 TR0=1; //允許定時(shí)器0定時(shí)}/********************獨(dú)立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨(dú)立按鍵程序{ staticucharkey_new; key_can=0;//按鍵值還原 P3|=0xf0; if(key_500ms==1) //連加 { key_500ms=0; key_new=1; } if((P3&0xf0)!=0xf0) //按鍵按下 { delay_1ms(1); //按鍵消抖動(dòng) if(((P3&0xf0)!=0xf0)&&(key_new==1)) { //確認(rèn)是按鍵按下 key_new=0; switch(P3&0xf0) { case0xd0:key_can=3;break; //得到k1鍵值 case0xb0:key_can=2;break; //得到K2鍵值 case0x70:key_can=1;break; //得到k3鍵值 } flag_lj_en=1; //連加使能 } } else { if(key_new==0) { key_new=1; flag_lj_en=0; //關(guān)閉連加使能 flag_lj_3_en=0; //關(guān)閉3秒后使能 key_value=0; //清零 key_time=0; } } }/****************按鍵顯示函數(shù)***************/voidkey_with(){ if(key_can==1) //設(shè)置鍵 { menu_1++; if(menu_1>=3) { menu_1=0; } if(menu_1==0) { write_com(0x0c);//關(guān)閉光標(biāo) } } if(menu_1==1) //設(shè)置高溫報(bào)警 { if(key_can==2) { if(flag_lj_3_en==0) t_high++; //按鍵按下未松開(kāi)自動(dòng)加三次 else t_high+=10; //按鍵按下未松開(kāi)自動(dòng)加三次之后每次自動(dòng)加10 if(t_high>990) t_high=990; } if(key_can==3) { if(flag_lj_3_en==0) t_high--; //按鍵按下未松開(kāi)自動(dòng)減三次 else t_high-=10; //按鍵按下未松開(kāi)自動(dòng)減三次之后每次自動(dòng)減10 if(t_high<=t_low) t_high=t_low+1; } write_sfm3_18B20(2,2,t_high); write_com(0x80+0x40+2);//將光標(biāo)移動(dòng)到秒個(gè)位 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==2) //設(shè)置低溫報(bào)警 { if(key_can==2) { if(flag_lj_3_en==0) t_low++; //按鍵按下未松開(kāi)自動(dòng)加三次 else t_low+=10; //按鍵按下未松開(kāi)自動(dòng)加三次之后每次自動(dòng)加10 if(t_low>=t_high) t_low=t_high-1; } if(key_can==3) { if(flag_lj_3_en==0) t_low--; //按鍵按下未松開(kāi)自動(dòng)減三次 else t_low-=10; //按鍵按下未松開(kāi)自動(dòng)加三次之后每次自動(dòng)加10 if(t_low<=10) t_low=10; } write_sfm3_18B20(2,10,t_low); write_com(0x80+0x40+10);//將光標(biāo)移動(dòng)到秒個(gè)位 write_com(0x0f);//顯示光標(biāo)并且閃爍 } }/********************菜單對(duì)應(yīng)的處理函數(shù)***********************/voidmenu_dispaly(){ if((menu_1==1)) //對(duì)光標(biāo)不處理,要不然光標(biāo)不會(huì)顯示在正確的位置 { write_com(0x80+0x42);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 }elseif((menu_1==2)) { write_com(0x80+0x4a);//將光標(biāo)移動(dòng)到 write_com(0x0f); //顯示光標(biāo)并且閃爍 }}/****************報(bào)警函數(shù)***************/voidclock_h_l(){ if((temperature<=t_low)||(temperature>=t_high)) { beep=~beep; //蜂鳴器報(bào)警 } else { beep=1; } }/****************主函數(shù)***************/voidmain(){ staticucharvalue; beep=0; //開(kāi)機(jī)叫一聲 temperature=read_temp(); //先讀出溫度的值 delay_1ms(150); P0=P1=P2=P3=0xff; init_1602();//1602初始化 write_sfm3_18B20(2,2,t_high); write_sfm3_18B20(2,10,t_low); delay_1ms(750); temperature=read_temp(); //先讀出溫度的值 write_sfm3_18B20(1,8,temperature); time_init();
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 輕鋼龍骨制作工風(fēng)險(xiǎn)評(píng)估與管理考核試卷含答案
- 民族拉弦彈撥樂(lè)器制作工崗前崗后考核試卷含答案
- 鑿巖工安全生產(chǎn)基礎(chǔ)知識(shí)能力考核試卷含答案
- 喪葬撫恤委托書(shū)
- 2025年胃動(dòng)力藥項(xiàng)目發(fā)展計(jì)劃
- 2025年陳設(shè)藝術(shù)陶瓷制品項(xiàng)目發(fā)展計(jì)劃
- 2026年數(shù)字孿生 航空發(fā)動(dòng)機(jī)運(yùn)維項(xiàng)目建議書(shū)
- 2026年環(huán)視全景影像系統(tǒng)項(xiàng)目評(píng)估報(bào)告
- 2025年數(shù)字媒體藝術(shù)專業(yè)考試試題及答案
- 家居環(huán)境適老化評(píng)估量表、適老化改造設(shè)計(jì)方案要點(diǎn)
- 湖南省2025-2026學(xué)年七年級(jí)歷史上學(xué)期期末復(fù)習(xí)試卷(含答案)
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人考試參考試題及答案解析
- 紡織倉(cāng)庫(kù)消防安全培訓(xùn)
- 器官移植術(shù)后排斥反應(yīng)的風(fēng)險(xiǎn)分層管理
- 虛擬電廠關(guān)鍵技術(shù)
- 事業(yè)單位清算及財(cái)務(wù)報(bào)告編寫(xiě)范本
- 護(hù)坡綠化勞務(wù)合同范本
- 臨床績(jī)效的DRG與CMI雙指標(biāo)調(diào)控
- 物料提升機(jī)保養(yǎng)記錄表
- 中華系列期刊目錄
- 馬口鐵空罐檢驗(yàn)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論