![電加熱爐溫度控制系統(tǒng)設(shè)計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e2/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e21.gif)
![電加熱爐溫度控制系統(tǒng)設(shè)計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e2/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e22.gif)
![電加熱爐溫度控制系統(tǒng)設(shè)計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e2/3c5c975f-0b26-4a42-b2c2-ee0a3c2998e23.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄1 意義與要求 11.1 實(shí)際意義 11.2 技術(shù)要求 12 設(shè)計(jì)內(nèi)容和步驟 12.1 方案設(shè)計(jì) 12.2 詳細(xì)設(shè)計(jì) 22.2.1 主要硬件介紹 22.2.2 電路設(shè)計(jì)方法 32.2.3 繪制流程圖 62.2.4 程序設(shè)計(jì) 72.3 調(diào)試和仿真 73 結(jié)果分析 84 課程設(shè)計(jì)心得體會(huì) 9參考文獻(xiàn) 10附錄 11電加熱爐溫度控制系統(tǒng)設(shè)計(jì)1 意義與要求1.1 實(shí)際意義在現(xiàn)實(shí)生活當(dāng)中, 很多場合需要對溫度進(jìn)行智能控制, 日常生活中最常見的 要算空調(diào)和冰箱了, 他們都能根據(jù)環(huán)境實(shí)時(shí)情況, 結(jié)合人為的設(shè)定, 對溫度進(jìn)行 智能控制。工業(yè)生產(chǎn)中的電加熱爐溫度監(jiān)控系統(tǒng)和培養(yǎng)基的溫度監(jiān)控系統(tǒng)都是計(jì) 算機(jī)控制
2、系統(tǒng)的典型應(yīng)用。 通過這次課程設(shè)計(jì), 我們將自己動(dòng)手設(shè)計(jì)一個(gè)小型的 計(jì)算機(jī)控制系統(tǒng),目的在于將理論結(jié)合實(shí)踐以加深我們對課本知識的理解。1.2 技術(shù)要求要求利用所學(xué)過的知識設(shè)計(jì)一個(gè)溫度控制系統(tǒng), 并用軟件仿真。 功能要求如 下:( 1)能夠利用溫度傳感器檢測環(huán)境中的實(shí)時(shí)溫度;(2)能對所要求的溫度進(jìn)行設(shè)定;(3)將傳感器檢測到得實(shí)時(shí)溫度與設(shè)定值相比較,當(dāng)環(huán)境中的溫度高于或低于 所設(shè)定的溫度時(shí), 系統(tǒng)會(huì)自動(dòng)做出相應(yīng)的動(dòng)作來改變這一狀況, 使系統(tǒng)溫度始終 保持在設(shè)定的溫度值。2 設(shè)計(jì)內(nèi)容和步驟2.1 方案設(shè)計(jì)要想達(dá)到技術(shù)要求的內(nèi)容,少不了以下幾種器件:單片機(jī)、溫度傳感器、 LCD 顯示屏、直流電動(dòng)機(jī)
3、等。其中單片機(jī)用作主控制器,控制其他器件的工作 和處理數(shù)據(jù); 溫度傳感器用來檢測環(huán)境中的實(shí)時(shí)溫度, 并將檢測值送到單片機(jī)中 進(jìn)行數(shù)值對比; LCD 顯示屏用來顯示溫度、時(shí)間的數(shù)字值;直流電動(dòng)機(jī)用來表 示電加熱爐的工作情況, 轉(zhuǎn)動(dòng)表示電加熱爐通電加熱, 停止轉(zhuǎn)動(dòng)表示電加熱爐斷 電停止加熱。整體思路是這樣的: 首先我們通過按鍵設(shè)定所需要的溫度值, 然后利用溫度 傳感器檢測電加熱爐的實(shí)時(shí)加熱溫度, 并送至單片機(jī)與設(shè)定值進(jìn)行比較。 若檢測 值小于設(shè)定值,則無任何動(dòng)作,電加熱爐繼續(xù)導(dǎo)通加熱;若檢測值大于設(shè)定值, 則單片機(jī)控制光電耦合器導(dǎo)通, 繼電器動(dòng)作, 電加熱爐斷電停止加熱。 一旦爐溫 低于設(shè)定值,
4、單片機(jī)又控制光電耦合器斷開, 繼電器開關(guān)分離, 電加熱爐開始導(dǎo) 通加熱。這個(gè)過程中所設(shè)定的溫度值和傳感器檢測到得溫度值都要在 LCD 顯示 屏上顯示出來, 以方便操作人員觀察。 另外,還可以加上時(shí)鐘模塊, 以方便計(jì)時(shí)。這個(gè)設(shè)計(jì)思路相對比較簡單, 利用所學(xué)過的知識容易實(shí)現(xiàn), 加上光電耦合器 用于隔離強(qiáng)電和弱電, 比較安全,正好符合我們自動(dòng)化專業(yè)用弱電控制強(qiáng)電的目 的,正所謂學(xué)以致用。2.2 詳細(xì)設(shè)計(jì)2.2.1 主要硬件介紹1單片機(jī)這里選用AT89C5仲片機(jī)作為控制系統(tǒng)的處理器。AT89C51是一種帶4K字 節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器。2溫度傳感器溫度傳感器
5、有很多種型號,這里我選用DS18B20溫度傳感器。數(shù)字溫度傳感器DS18B2C具有獨(dú)特的單總線接口方式,支持多節(jié)點(diǎn),使分布式溫度傳感器 設(shè)計(jì)大為簡化。 測溫時(shí)無需任何外圍原件, 可以通過數(shù)據(jù)線直接供電, 具有超低 功耗工作方式。測溫范圍為 -55 到+1 25攝氏度,可直接將溫度轉(zhuǎn)換值以 16位二 進(jìn)制數(shù)字碼的方式串行輸出, 因此特別適合單線多點(diǎn)溫度測量系統(tǒng)。 由于傳輸?shù)?是串行數(shù)據(jù), 可以不需要放大器和 A/D 轉(zhuǎn)換器,因而這種測溫方式大大提高了各 種溫度測控系統(tǒng)的可靠性,降低了成本,縮小了體積。3 開關(guān)器件由于單片機(jī)與電動(dòng)機(jī)之間需要用開關(guān)器件連接,并且前者用弱電控制,后者由強(qiáng)電控制,這就尤
6、其需要注意安全問題。于是我想到了在課本中學(xué)過的高性能安全開關(guān)器件光電耦合器。光電耦合器是由一個(gè)發(fā)光器件和和一個(gè)光電轉(zhuǎn)換器件組成,這里所用的光電耦合器OPTOCOUPLER-NP是由一個(gè)發(fā)光二極管和一個(gè)光敏晶體管所組成。當(dāng)發(fā)光二極管發(fā)光,就會(huì)使得光 敏晶體管導(dǎo)通,繼電器通電動(dòng)作,將開關(guān)吸合,電動(dòng)機(jī)回路斷開。222電路設(shè)計(jì)方法1 顯示部分電路顯示電路截圖如下圖所示LCD1LM016L圖2.1顯示部分電路圖這里我選用 LCDLM016L液晶顯示屏作為系統(tǒng)的顯示器件,如圖所示, LCDLM016L采用標(biāo)準(zhǔn)的16腳接口,仿真時(shí)隱藏了背光正極和背光負(fù)極兩個(gè) 引腳。它通過 D0-D78位數(shù)據(jù)端來與單片機(jī)進(jìn)行
7、數(shù)據(jù)和指令傳輸,這里我們 將它與單片機(jī)的 P0 口連接。在顯示屏上顯示的內(nèi)容包括設(shè)定的溫度值SET傳感器檢測到的環(huán)境溫度SA以和時(shí)鐘,這個(gè)時(shí)鐘是可以調(diào)整的,這樣方便工作人員在對系統(tǒng)進(jìn)行 操作時(shí)有一個(gè)時(shí)間概念。2 溫度檢測電路溫度傳感器與單片機(jī)的連接情況如下圖所示圖2.2溫度檢測電路圖溫度傳感器18B20將檢測到的環(huán)境實(shí)時(shí)溫度進(jìn)行A/D轉(zhuǎn)換和放大,然后串行送入單片機(jī) P1.7 口,便于單片機(jī)將此數(shù)值與設(shè)定的溫度值進(jìn)行比較, 然后先做出相應(yīng)反應(yīng)。在仿真時(shí),我們只能通過按18B20上的加減按鈕來調(diào)節(jié)實(shí)時(shí)溫度,是一個(gè)模擬的過程。3.鍵盤電路鍵盤電路如下圖所示。圖2.3鍵盤電路圖這里減排設(shè)計(jì)得比較簡單,
8、“ MS鍵是切換調(diào)整對象的,調(diào)整對象包括時(shí)、分、溫度設(shè)定值三項(xiàng),“ +”鍵是向上加調(diào)整對象的值,“一”鍵是向下減調(diào)整對象的值,“ON/OFF鍵是打開和關(guān)閉系統(tǒng)自動(dòng)調(diào)節(jié)功能的開關(guān)鍵。4 電氣開關(guān)和工作電路電器開關(guān)和工作電路如下圖所示圖2.4電氣開關(guān)和工作電路圖如圖所示,光電耦合器1腳接電源,2腳接單片機(jī)P3.7腳。工作過程用以下三個(gè)階段來描述:(1)單片機(jī)將溫度傳感器送入的值與設(shè)定值進(jìn)行比較,若送入值小于 設(shè)定值,則P3.7腳保持高電平,這樣發(fā)光二極管不發(fā)光,光敏晶體管保持 高阻態(tài),繼電器也不會(huì)工作,電動(dòng)機(jī)和燈泡維持導(dǎo)通,相當(dāng)于電爐繼續(xù)加熱,指示燈亮;(2) 一旦送入值比設(shè)定值大,單片機(jī)將會(huì)控制
9、P3.7腳變?yōu)榈碗娖剑?發(fā)光二極管導(dǎo)通發(fā)光,光敏晶體管受光照影響導(dǎo)通,繼而繼電器工作,電磁鐵將單刀雙擲開關(guān)吸向左端,使電動(dòng)機(jī)和燈泡同時(shí)停止工作,這就相當(dāng) 于電爐斷電,停止加熱;(3) 電爐短路一段時(shí)間后,必然導(dǎo)致爐溫降低,而溫度傳感器 DS18B20在不間斷地檢測爐溫,當(dāng)檢測值低于設(shè)定值后,單片機(jī)又控制P3.7腳恢復(fù)高電平,光電耦合器恢復(fù)高阻態(tài),繼電器斷電,單刀雙擲開關(guān)被彈回右端,電動(dòng)機(jī)和燈泡又開始工作,這相當(dāng)于電爐從新開始加熱。223繪制流程圖224程序設(shè)計(jì)由于整個(gè)程序工程量比較大,我采用模塊化設(shè)計(jì)方法來設(shè)計(jì)這個(gè)程序。首先定義在后面將會(huì)用到的變量,不可能一次定義準(zhǔn)確,所以邊定義邊補(bǔ)充。然后編
10、寫子函數(shù),包括LCM初始化子函數(shù)、顯示指定坐標(biāo)的一個(gè)字符子函數(shù)、ds18b20初始化函數(shù)、ds18b20延遲子函數(shù)、讀取 ds18b20當(dāng)前溫度子函數(shù)、液晶顯示子函數(shù)、鍵盤掃描子函數(shù)、設(shè)定工作模式子函數(shù)、按鍵加法子函數(shù)、按鍵減法子函數(shù)、24C02讀寫驅(qū)動(dòng)程序、定時(shí)器t0中斷子函數(shù)等子程序,最后是主函數(shù)。2.3調(diào)試和仿真在Keil軟件中編寫完程序后,編譯生成.Hex文件,單片機(jī)可以執(zhí)行.Hex 文件。在Protues軟件中,給單片機(jī)加載所生成的.Hex文件,按下運(yùn)行按rjiU鈕,系統(tǒng)開始仿真。系統(tǒng)仿真截圖如下圖所示。1揺疊鑒碎1罟罟害魯r魯害專一一蚩舄耳尋Q5:36:67SET:28C 5A:2
11、1.0Or rJU-LCDtLAVI HLr rJU-DlXi -h-ZJi _*V.-D1X*-3Jl、QJ IVHRL1.圖2.5系統(tǒng)仿真圖(一)上一張是當(dāng)溫度采樣值小于設(shè)定值,電熱爐處于工作狀態(tài)時(shí)的仿真截 圖。以下這張是當(dāng)溫度采樣值高于設(shè)定值后,系統(tǒng)自動(dòng)做出反應(yīng),使電熱 爐斷電停止工作的仿真截圖。器-TWAT起* U3FILI. ir .orekTO-Vl2Jim-ufTiiTCCLiTLSlF-hfF圖2.6系統(tǒng)仿真圖(二)3結(jié)果分析由以上仿真結(jié)果可以知道,此次的設(shè)計(jì)基本成功。當(dāng)采樣溫度低于設(shè) 定值的時(shí)候,系統(tǒng)不會(huì)對電熱爐做出相應(yīng)動(dòng)作,電熱爐保持加熱。一旦采 樣溫度高于設(shè)定值,系統(tǒng)就會(huì)
12、做出反應(yīng),使電加熱爐斷電停止加熱。當(dāng)溫 度降下來后,系統(tǒng)又會(huì)自動(dòng)控制電加熱爐重新開始加熱。系統(tǒng)的反應(yīng)速度 也是十分精確的,會(huì)在很短的時(shí)間內(nèi)作出相應(yīng)動(dòng)作。另外,由于在電路中 加入了 EPROM24C02使得該系統(tǒng)具有掉電保護(hù)功能,來電后自動(dòng)恢復(fù)正常 工作。除此之外,該系統(tǒng)還有一個(gè)比較實(shí)用的小功能一電子鐘,這樣的話 工作人員可以利用它準(zhǔn)確掌握系統(tǒng)已經(jīng)工作的時(shí)間,也就是說可以把它當(dāng) 做一個(gè)定時(shí)器來用。在安全保護(hù)方面,該系統(tǒng)也有相當(dāng)不錯(cuò)的表現(xiàn),由于 使用了光電耦合器和就電磁繼電器,將強(qiáng)電部分和弱電部分充分隔離,十 分安全。綜合以上分析,該系統(tǒng)的設(shè)計(jì)十分成功。4 課程設(shè)計(jì)心得體會(huì)一個(gè)星期很快就過去了,
13、計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)也告一段落。 本次課程設(shè) 計(jì),我的題目是設(shè)計(jì)一個(gè)電加熱爐溫度控制系統(tǒng) 。說到電加熱爐,我們都比 較熟悉,在日常生活中我們經(jīng)常用到, 特別是冬天用它來煮火鍋。 我們也會(huì)發(fā)現(xiàn) 這樣一個(gè)問題, 一般的電加熱爐是沒有溫度自動(dòng)控制的, 當(dāng)溫度上升到我們需要 的程度時(shí),它仍然繼續(xù)加熱,這不僅會(huì)影響到加熱效果,還會(huì)造成電能的浪費(fèi)。 那么就有必要設(shè)計(jì)一種能自動(dòng)調(diào)節(jié)爐溫的系統(tǒng), 把它應(yīng)用到日常生活中, 將會(huì)給 人們帶來極大的方便。在設(shè)計(jì)的過程中, 我也遇到一些麻煩, 比如說怎樣來實(shí)現(xiàn)電動(dòng)機(jī)回路的自動(dòng) 通斷調(diào)節(jié)、 怎樣來實(shí)現(xiàn)時(shí)鐘的調(diào)整等等, 這些問題都令我十分棘手。 通過去圖書 館查閱相關(guān)資
14、料和上網(wǎng)搜索各硬件的原理以和應(yīng)用, 我最終都一一解決了這些問 題。由于我們是三個(gè)同學(xué)做同一個(gè)題目, 在設(shè)計(jì)過程中, 我們遇到困難的時(shí)候也 經(jīng)常相互討論,相互請教,最終一起解決問題,在此也感謝我的“戰(zhàn)友”們。總的來說, 此次課程設(shè)計(jì)的過程比較輕松, 從拿到問題到徹底解決問題, 這 是一個(gè)令人振奮并享受的過程。 經(jīng)過去圖書館大量的查閱書籍, 我也學(xué)到了很多 在課本上沒有的知識, 收獲頗豐。 這段過程讓我懂得了一個(gè)道理, 那就是學(xué)生要 學(xué)的絕對不該僅僅是課本上的東西, 有些東西只有走進(jìn)圖書館, 你才可能學(xué)習(xí)到。 也只有這樣,我們才能成為一個(gè)見多識廣、淵博的人。參考文獻(xiàn)1 于海生微型計(jì)算機(jī)控制技術(shù)清華
15、大學(xué)出版社, 20042 譚浩強(qiáng).C程序設(shè)計(jì)(第三版)清華大學(xué)出版社,20063 戴焯. 傳感與檢測技術(shù) . 武漢理工大學(xué)出版社, 20064 張毅剛. 單片機(jī)原理和應(yīng)用 . 高等教育出版社, 20035 柯節(jié)成. 簡明電子元件器件手冊 . 高等教育出版社, 2005附錄系統(tǒng)的完整程序如下:/*電加熱爐溫度控制系統(tǒng)問題描述:當(dāng)溫控開關(guān)打開時(shí),若測得環(huán)境溫度大于設(shè)定溫度,則繼電器 吸合,電加熱爐停止工作;若測得環(huán)境溫度小于設(shè)定溫度,則繼電器釋放, 電加熱爐繼續(xù)工作。*/#include#include#include #define uchar unsigned char#define uint
16、 unsigned int#define BUSY 0x80/lcd#define DATAPORT P0 /#define PLAYE_ADDR XBYTE0XBFFFsbit RED_ALARM=PO;sbit WRITE_ALARM=P1A1;sbit GREEN_ALARM=P2;sbit BLUE_ALARM=P1A3;sbit P1_4=P1A4;sbit P1_5=P1A5;sbit P1_6=P1A6;sbit DQ = P1A7;sbit LCM_RS=P2A0;sbit LCM_RW=P2A1;sbit LCM_EN=P2A2;sbit sda=P2A3;/IOsbit s
17、cl=P2A4;sbit ad_busy=P3A2;sbit RECLED_EOC=P3A5;sbit OUT=P3A7;忙檢測標(biāo)志定義P0 口為LCD通訊端口/ 語音報(bào)警地址/ 紅色指示燈/ 白色指示燈/ 綠色指示燈/ 時(shí)鐘調(diào)整/ 時(shí)鐘加/ 時(shí)鐘減/ 定義 ds18b20 通信端口/ 數(shù)據(jù) / 命令端/ 讀 / 寫選擇端口定義/LCD 使能信號/adc 中斷方式接口/ISD1420 放音結(jié)束查詢標(biāo)志uchar ad_data;uchar seconde;uchar minite;uchar hour;uchar mstcnt=0;uchar temp1,temp2,temp;uchar t,
18、set;uchar K;bit ON_OFF=0;bit outflag;bit write=0;uchar code str0=- : : - ; uchar code str1=SET: C SA: . C; void delay_LCM(uint);void initLCM( void);void lcd_wait(void);/ad 采樣值存儲(chǔ)/ 定義并初始化時(shí)鐘變量/ 溫度顯示變量/LCD 延時(shí)子程序/LCD 初始化子程序/LCD 檢測忙子程序?qū)懼噶畹?ICM 子函數(shù)寫數(shù)據(jù)到 LCM子函數(shù)顯示指定坐標(biāo)的一個(gè)字符顯示指定坐標(biāo)的一/ 定時(shí)器初始化void WriteCommandLCM(
19、uchar WCLCM,uchar BusyC); / void WriteDataLCM(uchar WDLCM); /void DisplayOneChar(uchar X,uchar Y,uchar DData) / 子函數(shù)void DisplayListChar(uchar X,uchar Y,uchar code *DData);/ 串字符子函數(shù)void init_timer0(void);void displayfun1(void);void displayfun2(void);void displayfun3(void);void displayfun4(void);/ 鍵盤掃描
20、子程序void keyscan(void );void set_adj(void);void inc_key(void);void dec_key(void);void delay_18B20(unsigned int i);void Init_DS18B20(void) ;uchar ReadOneChar(void);void WriteOneChar(unsigned char dat);void ReadTemperature(void);void ad0809(void); void playalarm(void);*延時(shí) K*1ms,12.000mhz*/void delay_LC
21、M(uint k) uint i,j;for(i=0;ik;i+)for(j=0;j60;j+);/*寫指令到 LCM 子函數(shù) */void WriteCommandLCM(uchar WCLCM,uchar BusyC)if(BusyC)lcd_wait();DATAPORT=WCLCM;LCM_RS=0;/選中指令寄存器LCM_RW=0;/ 寫模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;/*寫數(shù)據(jù)到 LCM 子函數(shù) */void WriteDataLCM(uchar WDLCM) lcd_wait( );/DATAPORT=WDLCM;LCM_R
22、S=1;/LCM_RW=0;/LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;檢測忙信號選中數(shù)據(jù)寄存器寫模式*lcm內(nèi)部等待函數(shù)*/void lcd_wait(void)DATAPORT=0xff;LCM_EN=1;LCM_RS=0;LCM_RW=1;_nop_();while(DATAPORT&BUSY) LCM_EN=0;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;*LCM初始化子函數(shù) */void initLCM( ) DATAPORT=0;delay_LCM(15);WriteCommandLC
23、M(0x38,0); / delay_LCM(5); WriteCommandLCM(0x38,0); delay_LCM(5);WriteCommandLCM(0x38,0); delay_LCM(5);WriteCommandLCM(0x38,1);/8bitWriteCommandLCM(0x08,1); /WriteCommandLCM(0x01,1); /WriteCommandLCM(0x06,1); /WriteCommandLCM(0x0c,1); /三次顯示模式設(shè)置,不檢測忙信號數(shù)據(jù)傳送, 2 行顯示, 5*7 字型,檢測忙信號 關(guān)閉顯示,檢測忙信號 清屏,檢測忙信號 顯示光
24、標(biāo)右移設(shè)置,檢測忙信號 顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號*顯示指定坐標(biāo)的一個(gè)字符子函數(shù) */void DisplayOneChar(uchar X,uchar Y,uchar DData) Y&=1;X&=15;,地址碼 +0X40if(Y)X|=0x40; / 若 y 為 1 (顯示第二行)X|=0x80; / 指令碼為地址碼 +0X80 WriteCommandLCM(X,0);WriteDataLCM(DData);/* 顯示指定坐標(biāo)的一串字符子函數(shù) */void DisplayListChar(uchar X,uchar Y,uchar code *DData)uchar L
25、istLength=0;Y&=0x01;X&=0x0f;while(X0;i-)DQ = 0; /給脈沖信號dat=1;DQ = 1; /給脈沖信號if(DQ) dat|=0x80;delay_18B20(4);return(dat);/*ds18b20寫一個(gè)字節(jié) *void WriteOneChar(uchar dat)unsigned char i=0; for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;delay_18B20(5);DQ = 1; dat=1;*讀取 ds18b20 當(dāng)前溫度 */void ReadTemperature(void) unsign
26、ed char a=0; unsigned char b=0; unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay_18B20(100); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE); 是溫度delay_18B20(100);a=ReadOneChar(); b=ReadOneChar(); temp1=b4; temp2=a
27、&0x0f;temp=(b*256+a)4); / 跳過讀序號列號的操作/ 讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就/ 讀取溫度值低位/ 讀取溫度值高位當(dāng)前采集溫度值除16 得實(shí)際溫度值*液晶顯示子函數(shù)1 正常顯示 */void displayfun1(void)WriteCommandLCM(0x0c,1); / 顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x3
28、0);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30); /DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,te
29、mp2/10+0x30);/ 液晶上顯示小時(shí)/ 液晶上顯示分/ 液晶上顯示秒/ 液晶上顯示設(shè)定的溫度液晶上顯示測得的溫度if(ON_OFF=0)DisplayOneChar(14,0,0x4f);DisplayOneChar(15,0,0x46);else/ 若溫控標(biāo)志為 0/ 液晶上顯示不控溫的標(biāo)志液晶上顯示控溫的標(biāo)志DisplayOneChar(14,0,0x4f); /DisplayOneChar(15,0,0x4e);if(outflag=1)DisplayOneChar(0,0,0x7c);elseDisplayOneChar(0,0,0xef);*液晶顯示子函數(shù)*void disp
30、layfun2(void)WriteCommandLCM(0x0c,1); / 顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar
31、(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1); / 顯示屏打開,光標(biāo)顯示,閃爍,檢測忙信號DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);*液晶顯示子函數(shù)3*void displayfun3(void)WriteCommandLCM(0x0c,1); / 顯示屏打開,光標(biāo)
32、不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);D
33、isplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1); / 顯示屏打開,光標(biāo)顯示,閃爍,檢測忙信號DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);*液晶顯示子函數(shù) 4 */void displayfun4(void)WriteCommandLCM(0x0c,1); / 顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0);Displa
34、yListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);DisplayOneChar(12,1,temp1%10+0x30);D
35、isplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1); / 顯示屏打開,光標(biāo)顯示,閃爍,檢測忙信號 DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);*鍵盤掃描子函數(shù)*void keyscan(void)uchar xx;/P1=0xff;if(P1!=0xff)delay_LCM(50);if(P1!=0xff)xx=P1; switch(xx) case 0xfe:set_adj();case 0xfd:inc_key();局部變量/ 根據(jù)按鍵狀態(tài),調(diào)用不同的
36、子函數(shù)break; break;case 0xfb:dec_key(); break;case0xf7:delay_LCM(150);ON_OFF=!ON_OFF;while(!BLUE_ALARM); break;default:break;*設(shè)定工作模式子函數(shù)*void set_adj(void)delay_LCM(100);set+;if(set=4)set=0;while(!RED_ALARM);*按鍵加法子函數(shù)*void inc_key(void)break; delay_LCM(150); switch(set) case 0:if(P1=0xf7)delay_LCM(150);O
37、N_OFF=!ON_OFF; case 1:hour+; if(hour=23)hour=23; break; case 2:minite+; if(minite=59)minite=59;break; case 3:K+;if(K=99)K=99; break; default:break; while(!WRITE_ALARM);*按鍵減法子函數(shù)*void dec_key(void)break; delay_LCM(150); switch(set) case 0:if(P1=0xf7)delay_LCM(150);ON_OFF=!ON_OFF; case 1:hour-; if(hour
38、=0)hour=0; break; case 2:minite-;if(minite=0)minite=0;break; case 3:K-;if(K=1)K=1;break;default:break;while(!GREEN_ALARM);* *24C02讀寫驅(qū)動(dòng)程序 */void delay1(uchar x)uint i;for(i=0;ix;i+);void flash() ; ; void x24c02_init() /24c02scl=1;flash();sda=1;flash();void start() /sda=1;flash();scl=1;flash();sda=0;flash();scl=0;flash();void stop() /sda=0;flash();scl=1;flash();sda=1;flash();初始化子程序啟動(dòng) I2C 總線停止 I2C 總線void writex(uchar j) /寫一個(gè)字節(jié)uchar i,temp;temp=j;for (i=0;i8;i+) temp=temp1; scl=0; flash(); sda=CY; flash(); scl=1; flash();scl=0;flash();sda=1;flash();uchar readx() / 讀一個(gè)字節(jié) uchar i,j,k=0;scl=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八項(xiàng)規(guī)定手寫承諾書范本
- 手足口病防控培訓(xùn)課件
- 2025-2030全球等離子處理設(shè)備行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球醫(yī)用無紡布電極片行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球鋰電池用隔膜行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國發(fā)泡奶精行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國油炸方便面生產(chǎn)線行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國超薄壁PET熱縮管行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球耐高溫耐火絕緣磚行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球衛(wèi)星鋰離子電池行業(yè)調(diào)研及趨勢分析報(bào)告
- 房地產(chǎn)調(diào)控政策解讀
- 五年級數(shù)學(xué)(小數(shù)乘法)計(jì)算題專項(xiàng)練習(xí)及答案
- 產(chǎn)前診斷室護(hù)理工作總結(jié)
- 2024-2025學(xué)年八年級數(shù)學(xué)人教版上冊寒假作業(yè)(綜合復(fù)習(xí)能力提升篇)(含答案)
- 《AP內(nèi)容介紹》課件
- 醫(yī)生定期考核簡易程序述職報(bào)告范文(10篇)
- 市政工程人員績效考核制度
- 公園景區(qū)安全生產(chǎn)
- 安全創(chuàng)新創(chuàng)效
- 《中國糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 初級創(chuàng)傷救治課件
評論
0/150
提交評論