




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 目 錄 內(nèi)容提要1 關(guān)鍵字1 引言1 二、設(shè)計方案 2 21設(shè)計任務(wù)和要求 2 22方案辯證 3 1溫度計軟件設(shè)計流程圖 3 2元器件的選取 4 3系統(tǒng)最終設(shè)計方案 4 三、設(shè)計方案的總體設(shè)計框圖 4 31硬件電路框圖 4 32硬件電路概述 5 33主控電路 5 34顯示電路 6 35報警溫度調(diào)節(jié)電路 7 36溫度傳感器及DS18B20測溫原理 7 3.7 升降溫調(diào)節(jié)電路7 四、系統(tǒng)軟件算法設(shè)計8 4.1主程序 9 42讀出溫度子程序9 4.3溫度轉(zhuǎn)換命令子程序10 44 計算溫度子程序 10 45 顯示數(shù)據(jù)刷新子程序 10 46 1602的液晶顯示 10 五、軟件
2、仿真 10 51系統(tǒng)仿真設(shè)計 11 52系統(tǒng)仿真原理圖 13 52系統(tǒng)原理圖 14 結(jié)與體會15 附錄15 一【內(nèi)容摘要】 隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同種類的傳感器,可實現(xiàn)諸如電壓、濕度、溫度、速度、硬度、壓力等的物理量的測量。本文將介紹一種基于單片機控制理論及其應(yīng)用系統(tǒng)設(shè)計的數(shù)字溫度計。 本文主要介紹了一個基于AT89C51單片機的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單
3、片機喜愛的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也進行一一介紹,該系統(tǒng)可以方便的是實現(xiàn)溫度采集和顯示,并可以根據(jù)需要任意設(shè)定上下限報警溫度,它使用起來方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合我們?nèi)粘I詈凸まr(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)做溫度處理模塊嵌入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20和AT89C51結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合與惡劣環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。 本設(shè)計首先是確定目標(biāo),氣候是各個功能模塊的設(shè)計,再在Proteus軟件上進行仿真,修改,仿真。本溫度計屬于多功能溫度計
4、,可以設(shè)置上下報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時,可以報警,同時根據(jù)設(shè)定的溫度范圍通過升降溫電路控制環(huán)境的溫度達(dá)到恒溫效果。 【關(guān)鍵詞】 單片機,數(shù)字控制,溫度計, DS18B20,STC89C52RC【引言】 單片機技術(shù)作為計算機技術(shù)的一個分支,廣泛地應(yīng)用于工業(yè)控制,智能儀器儀表,機電一體化產(chǎn)品,家用電器等各個領(lǐng)域。“單片機原理與應(yīng)用”在工科院校各專業(yè)中已作為一門重要的技術(shù)基礎(chǔ)課而普遍開設(shè)。學(xué)生在課程設(shè)計,畢業(yè)設(shè)計,科研項目中會廣泛應(yīng)用到單片機知識,而且,進入社會后也會廣泛接觸到單片機的工程項目。鑒于此,提高“單片機原理及應(yīng)用”課的教學(xué)效果,讓學(xué)生參與課程設(shè)計實習(xí)甚為重要。單片機應(yīng)用技術(shù)涉及的
5、內(nèi)容十分廣泛,如何使學(xué)生在有限的時間內(nèi)掌握單片機應(yīng)用的基本原理及方法,是一個很有價值的教學(xué)項目。為此,我們進行了“單片機的學(xué)習(xí)與應(yīng)用”方面的課程設(shè)計,鍛煉學(xué)生的動腦動手以及協(xié)作能力。 單片機課程設(shè)計是針對模擬電子技術(shù),數(shù)字邏輯電路,電路,單片機的原理及應(yīng)用課程的要求,對我們進行綜合性實踐訓(xùn)練的實踐學(xué)習(xí)環(huán)節(jié),它包括選擇課設(shè)任務(wù)、軟件設(shè)計,硬件設(shè)計,調(diào)試和編寫課設(shè)報告等實踐內(nèi)容。通過此次課程設(shè)計實現(xiàn)以下三個目標(biāo):第一,讓學(xué)生初步掌握單片機課程的試驗、設(shè)計方法,即學(xué)生根據(jù)設(shè)計要求和性能約束,查閱文獻(xiàn)資料,收集、分析類似的相關(guān)題目,并通過元器件的組裝調(diào)試等實踐環(huán)節(jié),使最終硬件電路達(dá)到題目要求的性能指標(biāo)
6、;第二,課程設(shè)計為后續(xù)的畢業(yè)設(shè)計打好基礎(chǔ),畢業(yè)設(shè)計是系統(tǒng)的工程設(shè)計實踐,而課程設(shè)計的著眼點是讓學(xué)生開始從理論學(xué)習(xí)的軌道上逐漸引向?qū)嶋H運用,從已學(xué)過的定性分析、定量計算的方法,逐步掌握工程設(shè)計的步驟和方法,了解科學(xué)實驗的程序和實施方法。第三,培養(yǎng)學(xué)生勤于思考樂于動手的習(xí)慣,同時通過設(shè)計并制作單片機類產(chǎn)品,使學(xué)生能夠自己不斷地學(xué)習(xí)接受新知識(如在本課設(shè)題目中存在智能測溫器件DS18B20,就是課堂環(huán)節(jié)中不曾提及的“新器件”),通過多人的合作解決現(xiàn)實中存在的問題,從而不斷地增強學(xué)生在該方面的自信心及興趣,也提高了學(xué)生的動手能力,對學(xué)生以后步入社會參加工作打下一定良好的實踐基礎(chǔ)。溫度可調(diào)上下限檢測報警
7、恒溫設(shè)計二、設(shè)計方案21設(shè)計務(wù)任和要求1、基本范圍-551252、精度誤差小于0.53、LCD 數(shù)碼直讀顯示4、可以任意設(shè)定溫度的上下限報警功能.22方案辯證1溫度計軟件設(shè)計流程圖: 設(shè)置堆棧指針將溫度轉(zhuǎn)換為BCD碼發(fā)讀存儲器命令讀溫度數(shù)據(jù)復(fù)位DS18B20發(fā)跳過ROM命令顯示緩沖區(qū)初始化更新數(shù)據(jù)緩沖區(qū)延時發(fā)溫度轉(zhuǎn)換命令復(fù)位DS18B20發(fā)跳過ROM命令開始 2元器件的選?。簡纹瑱C芯片的選取:方案一.采用89C51芯片作為硬件核心,利用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備ISP在線編程
8、技術(shù), 當(dāng)在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。方案二:采用STC89C52RC單片機作為硬件核心,該單片機指令代碼完全兼容傳統(tǒng)的8051單片機。STC89C52RC的工作電壓為5.5-3.4V,工作頻率范圍0-80MHz,程序存儲器flash容量為8KB,隨機存儲器RAM空間為512字節(jié),完全滿足設(shè)計溫度控制系統(tǒng)的要求。綜上所述:本課設(shè)中單片機芯片采用STC89C52RC。 溫度傳感器的選?。?方案一:采用熱敏電阻傳感器。利用熱敏電阻隨溫度變化而顯著變化,能直接將溫度的變化轉(zhuǎn)換為能量的變化,進而制成溫度計。但是其測溫傳
9、感器比較復(fù)雜,而且不易通過編制程序來控制測溫精度,增大系統(tǒng)設(shè)計的難度。 方案二: 采用DS18B20溫度傳感器。DS18B20的內(nèi)部3腳(或8腳)封裝;使用特有的溫度測量技術(shù),將被測溫度轉(zhuǎn)換成數(shù)值信號;3.05.5V的電源供電方式和寄生電源供電方式;ROM由64位二進制數(shù)字組成,共分為8個字節(jié);RAM由9個字節(jié)的高速暫存器和非易失性電擦寫ROM組成。綜上所述:溫度傳感器選取智能測溫器件DS18B20。本設(shè)計顯示電路采用1602液晶顯示模塊芯片。3系統(tǒng)最終設(shè)計方案:綜上各方案所述,對此次課設(shè)的方案選定: 采用STC89C52RC作為主控制系統(tǒng); 1602液晶顯示模塊芯片作為溫度數(shù)據(jù)顯示裝置;而智
10、能溫度傳感器DS18B20器件作為測溫電路主要組成部分。至此,系統(tǒng)最終方案確定。三、設(shè)計方案的總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖所示,控制器采用單片機STC89C52RC,溫度傳感器采用DS18B20,用1602液晶顯示屏以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。3.1硬件電路框圖: 單片機芯片STC89C52RC復(fù)位電路晶振控制1602 顯示器溫度檢測電路DS18B20報警溫度調(diào)整鍵蜂鳴器,指示燈 圖總體設(shè)計方框圖3.2硬件電路概述:系統(tǒng)由單片機最小系統(tǒng)、顯示電路、按鍵、溫度傳感器等組成。本電路是由STC89C52RC單片機為控制核心,具有與8051系列單片機完全兼容,程序加密等功能,8KB字節(jié)
11、可編程閃存,工作電壓范圍為2.76V,全靜態(tài)工作頻率為024MHZ;顯示電路由1602液晶顯示模塊芯片,可以進行多行顯示;溫度報警按鍵設(shè)為五個,可以顯示華氏溫度,調(diào)節(jié)高低報警溫度;溫度傳感器電路主要由DS18B20測溫器件構(gòu)成,該器件主要功能有:采用單總線技術(shù);每只DS18B20具有一個獨立的不可修改的64位序列號;低壓供電,電源范圍為35V;測溫范圍為-55+125,誤差為±0.5;復(fù)位電路是10K電阻構(gòu)成的上電自動復(fù)位。3.3主控電路單片機STC89C52RC 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)
12、電池供電。晶振采用12MHZ。復(fù)位電路采用上電加自動復(fù)位。主控芯片8051 晶振電路 復(fù)位電路3.4顯示電路 本設(shè)計顯示電路采用1602液晶顯示模塊芯片,該芯片可現(xiàn)實16x2個字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。另外,由于1602芯片編程比較簡單,界面直觀,因此更加易于使用者的操作和觀測。1602A芯片的接口信號說明圖 液晶顯示電路35報警溫度調(diào)節(jié)電路本系統(tǒng)一共設(shè)置了四個按鍵,K1鍵只是按一下上限報警溫度加1,松開后恢復(fù)顯示正常溫度,K2鍵按一下上限報警溫度減1,松開后恢復(fù)顯示正常溫度,當(dāng)調(diào)節(jié)的上限報警溫度與環(huán)境實際的溫度相比,環(huán)境實際溫度高于上限報警溫度時系統(tǒng)會出
13、現(xiàn)聲音報警及燈光警示,同理,K3,K4的調(diào)節(jié)方法一樣,當(dāng)環(huán)境實際溫度低于下限報警溫度時,系統(tǒng)出現(xiàn)報警。報警點調(diào)節(jié)電路3.6溫度傳感器及DS18B20測溫原理預(yù)置斜率累加器比較低溫度系數(shù)振蕩器計數(shù)器1溫度寄存器Tx預(yù)置=0高溫度系數(shù)振蕩器-0計數(shù)器2T1加1停止T2 64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。 DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存
14、RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖4所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖5所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶不要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)
15、器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將最低溫所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在最低溫所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計
16、數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。 測溫電路3.6升溫、降溫控制電路 加溫電路系統(tǒng)在檢測到當(dāng)前溫度低于設(shè)定的下限值時,在報警器啟動報警同時,升溫電路開始工作,使得Q2三極管導(dǎo)通,繼電器RL1吸合加熱燈開始點亮加熱,起到升溫的效果,此時升溫指示燈點亮,表示升溫系統(tǒng)開始工作。降溫電路系統(tǒng)在檢測到當(dāng)前溫度超高設(shè)定的上限值時,在報警器啟動報警同時,降溫電路開始工作,使得Q3三極管導(dǎo)通,繼電器RL2吸合風(fēng)扇開始吹風(fēng),起到降溫的效果,此時降溫指示燈點亮,表示降溫系統(tǒng)開始
17、工作。四、系統(tǒng)軟件算法設(shè)計整個系統(tǒng)是由硬件配合軟件來實現(xiàn)的,在硬件確定后,編寫的軟件的功能也就基本定型了。所以軟件的功能大致可分為兩個部分:一是監(jiān)控,這也是系統(tǒng)的核心部分,二是執(zhí)行部分,完成各個具體的功能。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。4.1主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖所示。Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結(jié)束
18、NNY初始化調(diào)用顯示子程序1S到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYNY 圖1主程序流程圖 圖2讀溫度流程圖 4.2讀出溫度子程序發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖示圖 溫度轉(zhuǎn)換流程圖4.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖9所示4.4 計算溫度子程序計算溫度
19、子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定,其程序流程圖如圖所示。 開始溫度零下?溫度值取補碼置“”標(biāo)志計算小數(shù)位溫度BCD值 計算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY 圖計算溫度流程圖 圖顯示數(shù)據(jù)刷新流程圖4.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖。1602液晶顯示流程圖4.6 1602的液晶顯示五、軟件仿真5.1系統(tǒng)仿真設(shè)計本設(shè)計是在Proteus環(huán)境
20、下進行仿真的,仿真所用到的器件有:單片機AT89C51,DS1820溫度傳感器,蜂鳴器,液晶顯示器,一些電阻,電容等。仿真結(jié)果如下: 顯示器顯示 傳感器溫度 5.2系統(tǒng)仿真原理圖5.3系統(tǒng)原理圖六、總結(jié)與體會 #include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit DQ=P23;/ds18b20與單片機連接口sbit RS=P25;sbit RW=P26;sbit EN=P27;uchar data disdata5;uint tvalu
21、e,CurrentT=0;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志#define LCD_BUS P0sbit SetKey = P22;sbit UpKey = P21;sbit DnKey = P20;sbit BEEP = P24;sbit Heat = P10;sbit Cool = P11;unsigned char AlarmTempLow=10,AlarmTempTop=40,Set=0,NG=0;void delayms(uint ms) /延時xx毫秒 uchar i;while(ms-) for(i=0;i<120;i+);void command(uint c
22、om) /LCD寫指令 RS=0; /RS為0 LCD_BUS=com; /裝載指令 delayms(5); /延時5ms EN=1; /LCD使能 delayms(5);/延時5ms EN=0;/LCD不使能void write_dat(uchar dat) /LCD寫數(shù)據(jù) RS=1;/RS為1 LCD_BUS=dat;/裝載數(shù)據(jù) delayms(5); /延時5ms EN=1; /LCD使能 delayms(5); /延時5ms EN=0; /LCD不使能void writestring(uchar x,uchar y,uchar *s) /LCD 寫字符串 if (y = 0) comm
23、and(0x80 + x); /表示第一行 else command(0xC0 + x); /表示第二行 while (*s) /判斷是否字符串的結(jié)尾 write_dat( *s); /顯示當(dāng)前字符 s +; /字符串地址加1 void writeChar(uchar x,uchar y,uchar s) /LCD 寫字符串 if (y = 0) command(0x80 + x); /表示第一行 else command(0xC0 + x); /表示第二行 write_dat( s); /顯示當(dāng)前字符 void LCD_Initial()/LCD初始化 EN=0; /LCD不使能 RW=0;
24、 /RW為0 command(0x38);/發(fā)送初始化指令 command(0x0c);/發(fā)送初始化指令 command(0x06); /發(fā)送初始化指令 command(0x01); /發(fā)送初始化指令 command(0x80+0x02);/發(fā)送LCD初始位置/*DS1820程序*/void delay_18B20(unsigned int i)/延時1微秒 while(i-);void ds1820rst(void)/*ds1820復(fù)位*/ unsigned char x=0;DQ = 1; /DQ復(fù)位delay_18B20(4); /延時DQ = 0; /DQ拉低delay_18B20(1
25、00); /精確延時大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd(void)/*讀數(shù)據(jù)*/ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; /給脈沖信號dat>>=1;DQ = 1; /給脈沖信號if(DQ)dat|=0x80;delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/unsigned char i=0; for (i=8; i>0; i-) DQ = 0
26、;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1; unsigned int Read_Temperature(void)/*讀取溫度值并轉(zhuǎn)換*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ds1820wr(0x44);/*啟動溫度轉(zhuǎn)換*/ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tval
27、ue=tvalue|a; if(tvalue<0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);/溫度值擴大10倍,精確到1位小數(shù)CurrentT=tvalue;return(tvalue);void Display_Temperature()/顯示溫度uchar flagdat; disdata0=tvalue/1000+0x30;/百位數(shù) disdata1=tvalue%1000/100+0x30;/十位數(shù) disdata2=tvalue%100/10+0x30;/個位數(shù) disdata3=tval
28、ue%10+0x30;/小數(shù)位 if(tflag=0) flagdat=0x20;/正溫度不顯示符號 else flagdat=0x2d;/負(fù)溫度顯示負(fù)號:- /if(disdata0=0x30) /disdata0=0x20;/如果百位為0,不顯示/if(disdata1=0x30) disdata1=0x20;/如果百位為0,十位為0也不顯示 /if(tflag=1)writeChar(10,0,flagdat);/wr_com(0x8a);wr_dat(flagdat);/顯示符號位writeChar(11,0,disdata0);/wr_com(0x8b);wr_dat(disdata
29、0);/顯示百位writeChar(12,0,disdata1);/wr_com(0x8c);wr_dat(disdata1);/顯示十位 writeChar(13,0,disdata2);/wr_com(0x8d);wr_dat(disdata2);/顯示個位 writeChar(14,0,0X2E);/wr_com(0x8e);wr_dat(0x2e);/顯示小數(shù)點 writeChar(15,0,disdata3);/wr_com(0x8f);wr_dat(disdata3);/顯示小數(shù)位elsewriteChar(10,0,disdata0);/wr_com(0x8a);wr_dat(d
30、isdata0);/顯示百位writeChar(11,0,disdata1);/wr_com(0x8b);wr_dat(disdata1);/顯示十位 writeChar(12,0,disdata2);/wr_com(0x8c);wr_dat(disdata2);/顯示個位 writeChar(13,0,0X2e);/wr_com(0x8d);wr_dat(0x2e);/顯示小數(shù)點 writeChar(14,0,disdata3);/wr_com(0x8e);wr_dat(disdata3);/顯示小數(shù)位 void SetFun(void)unsigned char i1=0,i2=0,i3=
31、0,i4=0,i5=0,i6=0;if(SetKey=0)delayms(20);if(SetKey=0)if(Set<2)Set+;else Set=0;switch(Set)case 0: writestring(0,1," ");writestring(8,1," ");break;case 1:writestring(0,1,">");writestring(8,1," ");break;case 2:writestring(0,1," ");writestring(8,1,
32、">");break;while(SetKey=0);if(UpKey=0)&&(Set!=0)delayms(20);if(UpKey=0)switch(Set)case 1:if(AlarmTempLow<99) AlarmTempLow+;else AlarmTempLow=99; break;case 2:if(AlarmTempTop<99) AlarmTempTop+;else AlarmTempTop=99; break;i1 = AlarmTempLow/100; /獲得溫度值的百位 i2 = AlarmTempLow%10
33、0/10; /獲得溫度值的十位i3 = AlarmTempLow%10; /獲得溫度值的個位i4 = AlarmTempTop/100; /獲得溫度值的百位 i5 = AlarmTempTop%100/10; /獲得溫度值的十位i6 = AlarmTempTop%10; /獲得溫度值的個位writestring(5,1," ");writestring(13,1," ");if(i1!=0)writeChar(5,1,i1+'0');if(i1=0)&&(i2!=0) writeChar(5,1,i2+'0'
34、;);if(i1!=0) writeChar(6,1,i2+'0');if(i1=0)&&(i2=0)writeChar(5,1,i3+'0');else if(i1=0)&&(i2!=0)writeChar(6,1,i3+'0');if(i1!=0) writeChar(7,1,i3+'0');if(i4!=0)writeChar(13,1,i4+'0');if(i4=0)&&(i5!=0) writeChar(13,1,i5+'0');if(i4!
35、=0) writeChar(14,1,i5+'0');if(i4=0)&&(i5=0)writeChar(13,1,i6+'0');else if(i4=0)&&(i5!=0)writeChar(14,1,i6+'0');if(i4!=0) writeChar(15,1,i6+'0');while(UpKey=0);if(DnKey=0)&&(Set!=0)delayms(20);if(DnKey=0)switch(Set)case 1:if(AlarmTempLow>0) A
36、larmTempLow-;else AlarmTempLow=0; break;case 2:if(AlarmTempTop>0) AlarmTempTop-;else AlarmTempTop=0; break;i1 = AlarmTempLow/100; /獲得溫度值的百位 i2 = AlarmTempLow%100/10; /獲得溫度值的十位i3 = AlarmTempLow%10; /獲得溫度值的個位i4 = AlarmTempTop/100; /獲得溫度值的百位 i5 = AlarmTempTop%100/10; /獲得溫度值的十位i6 = AlarmTempTop%10; /
37、獲得溫度值的個位writestring(5,1," ");writestring(13,1," ");if(i1!=0)writeChar(5,1,i1+'0');if(i1=0)&&(i2!=0) writeChar(5,1,i2+'0');if(i1!=0) writeChar(6,1,i2+'0');if(i1=0)&&(i2=0)writeChar(5,1,i3+'0');else if(i1=0)&&(i2!=0)writeChar(6,1,i3+'0');if(i1!=0) writeChar(7,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程經(jīng)濟的資金管理策略試題及答案
- 唾液腺黏液囊腫
- 美術(shù)雕刻土豆課件
- 工程經(jīng)濟運營管理試題及答案
- 2025年工程項目管理個人能力提升試題及答案
- 工程項目管理產(chǎn)品生命周期試題及答案
- 物流管理信息系統(tǒng)設(shè)計
- 初中寒假交通安全教育
- 工程經(jīng)濟學(xué)前沿問題試題及答案
- 藝考教育創(chuàng)業(yè)計劃書
- “校園之星”評選實施方案
- 部編版二年級下冊語文園地八(完美版)教學(xué)設(shè)計1
- 《安全生產(chǎn)法培訓(xùn)課件》(2021版)
- 庫車中原石油化工有限公司11萬噸年凝析油分離及輕烴芳構(gòu)化項目環(huán)境影響評價報告書
- 石膏板吊頂施工方案
- WORD VBA編程 從零開始學(xué)VBA
- 機動車檢測站可行性研究報告-建設(shè)機動車檢測站可行性報告
- 高二英語外研版選擇性必修三U4 AI:a real threat教學(xué)課件(精編)
- 投標(biāo)函(格式范本)
- stype kit操作手冊第一步調(diào)整水平平衡儀
- 2022年10月上海閔行職業(yè)技術(shù)學(xué)院公開招聘優(yōu)秀高校教師筆試題庫(答案解析)
評論
0/150
提交評論