




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、飲水機(jī)是日常生活中不可缺少的家用電器,在市場(chǎng)上也有各種各樣的飲水機(jī)供人們選擇,價(jià)格從數(shù)百多的普通飲水機(jī)到上千的豪華飲水機(jī)應(yīng)有盡有,在能源日益緊張的今天,電熱水器,飲水機(jī),電飯煲之類的家用電器仔保溫時(shí),由于其簡(jiǎn)單的溫度控制系統(tǒng),利用溫敏電阻來實(shí)現(xiàn)溫控,因而會(huì)造成很大的能源浪費(fèi)?;诖耍芯匡嬎畽C(jī)的溫度控制系統(tǒng)是具有很大的可行性和使用性的,而這個(gè)溫度控制系統(tǒng)必須能實(shí)現(xiàn)傳統(tǒng)飲水機(jī)的基本功能,而且要有所創(chuàng)新,能實(shí)現(xiàn)人們對(duì)不同水溫的要求,而且控制溫度系統(tǒng)的成本使之能貼切實(shí)際,打入市場(chǎng)。如今,單片機(jī)控制技術(shù)十分成熟,而且功能強(qiáng)大,成本低,工作穩(wěn)定,本設(shè)計(jì)有單片機(jī)來實(shí)現(xiàn),在加入外圍電路后,控制系統(tǒng)能實(shí)現(xiàn)一般
2、以飲水機(jī)的制冷制熱的功能,可以實(shí)現(xiàn)檢測(cè)飲水機(jī)水箱的溫度,并且可以通過數(shù)碼管顯示飲水機(jī)水箱水溫度數(shù)。創(chuàng)新之處在于可以通過按鍵輸入數(shù)值設(shè)置水溫上限和下限,可以滿足人群對(duì)不同水溫的要求,同時(shí)也節(jié)約了電能。本設(shè)計(jì)利用AT89C51單片機(jī)為核心,配合溫度傳感器,信號(hào)處理電路,顯示電路,輸出控制電路,故障報(bào)警電路等組成,軟件選用C語言編程,單片機(jī)可將溫度傳感器檢測(cè)到的水溫模擬量轉(zhuǎn)換成數(shù)字量,顯示于LED顯示器上,該系統(tǒng)靈活性強(qiáng),易于操作,可靠性高,將會(huì)有更廣闊的的發(fā)展前景關(guān)鍵字: 單片機(jī) 飲水機(jī) 水溫控制 傳感器目 錄第1章緒論1課題發(fā)展現(xiàn)狀及意義1系統(tǒng)設(shè)計(jì)內(nèi)容及要求1第2章系統(tǒng)的硬件設(shè)計(jì)2系統(tǒng)工作原理與
3、功能2硬件系統(tǒng)組成及各模塊介紹2溫度采集模塊3時(shí)鐘電路5數(shù)據(jù)保存電路6鍵盤接口電路7電磁繼電器控制電路7顯示模塊8第3章系統(tǒng)的軟件設(shè)計(jì)9軟件總體設(shè)計(jì)思路9主程序軟件設(shè)計(jì)9鍵盤子程序軟件設(shè)計(jì)10報(bào)警子程序軟件設(shè)計(jì)11顯示子程序軟件設(shè)計(jì)12第4章系統(tǒng)軟件仿真144.1 Protues介紹144.2 Keil uVision4調(diào)試軟件154.3 Proteus 的仿真步驟與結(jié)果17心得體會(huì)20參考文獻(xiàn)21附錄22第1章 緒論1.1 課題發(fā)展現(xiàn)狀及意義隨著人類社會(huì)的不斷進(jìn)步,人類飲用水的供給方式也隨其發(fā)生著變化,其過程為:河水井水自來水購買桶裝水自制健康純水。對(duì)此已形成了“喝純凈水,用自來水”的現(xiàn)代飲
4、水新觀念。我國(guó)現(xiàn)階段的生活飲用水市場(chǎng),實(shí)質(zhì)上是桶裝飲用水、自來水終端制水、管道直飲水三分天下的格局。其中桶裝水以85%的絕對(duì)優(yōu)勢(shì)占據(jù)著市場(chǎng)的主導(dǎo)地位,但是桶裝水存在著“二次污染”問題以及假冒偽劣等現(xiàn)實(shí)問題。管道分質(zhì)供水在美國(guó)等發(fā)達(dá)國(guó)家的普及率為30%左右,但由于工程浩大,近年內(nèi)難有大的作為。自來水終端制水就產(chǎn)品來分,可以分為對(duì)自來水等進(jìn)行初步過濾的凈水器和各種大、中、小型的辦公、家用純水機(jī),普及率在15%左右??梢姮F(xiàn)在仍普遍用桶裝水,但是為避免反復(fù)燒開造成的“千滾水”產(chǎn)生的重金屬對(duì)身體的危害,因而本文設(shè)計(jì)用單片機(jī)來控制水溫使其保持在一個(gè)較適合的溫度,以適于用戶的即時(shí)飲用。目前飲水機(jī)的控制方式可
5、分為普通控制型、智能感應(yīng)型和微電腦控制型三類。普通控制型飲水機(jī)其加熱和制冷均自動(dòng)恒溫控制,是目前用戶使用最多的機(jī)型,并且其價(jià)位適中一般為首選。因而,本文在此基礎(chǔ)上,做了一些改造使其更為人性化,比如說設(shè)置一定的保溫溫度使其一直處在這已設(shè)定溫度左右,可供隨時(shí)飲用,不必?fù)?dān)心水溫過燙的問題等。(1)系統(tǒng)設(shè)計(jì)內(nèi)容如下:該設(shè)計(jì)可以實(shí)時(shí)檢測(cè)飲水機(jī)水箱的水溫,并且可以通液晶顯示飲水機(jī)水箱水溫度數(shù),可以人為設(shè)置水的溫度的保溫值,當(dāng)溫度在設(shè)定的范圍內(nèi)時(shí)正常工作,當(dāng)?shù)陀诒販囟葧r(shí)控制加熱器加熱;當(dāng)溫度高于水溫保溫溫度時(shí)繼電器斷開停止加熱。另外,其溫度檢測(cè)范圍為0100,精度±1,并且有一定的時(shí)間延遲。(2
6、)系統(tǒng)的設(shè)計(jì)要求如下:1.首先根據(jù)用戶對(duì)設(shè)計(jì)系統(tǒng)的具體要求來設(shè)計(jì)系統(tǒng)的總體構(gòu)成。2.模塊化思想對(duì)系統(tǒng)硬件進(jìn)行模塊劃分。 比較和型號(hào)選擇第2章 系統(tǒng)的硬件設(shè)計(jì)2.1 系統(tǒng)工作原理與功能(1)工作原理該系統(tǒng)主要通過傳感器來輸入數(shù)據(jù),傳感器將水溫溫度即室溫溫度等非電信號(hào)轉(zhuǎn)化為電信號(hào),再由信號(hào)處理電路,將傳感器輸出的電信號(hào)進(jìn)行處理(放大、濾波等),使之滿足A/D 轉(zhuǎn)換的要求,然后由A/D 轉(zhuǎn)換電路完成將溫度傳感器輸出的模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。CPU首先寫入命令給DS18B20,然后DS18B20開始轉(zhuǎn)換數(shù)據(jù),轉(zhuǎn)換后通過AT89C52來處理數(shù)據(jù),由LCD顯示屏顯示實(shí)時(shí)溫度與時(shí)間。并且可以通過外中斷來實(shí)
7、現(xiàn)對(duì)溫度的預(yù)設(shè),由存儲(chǔ)電路存儲(chǔ)這一預(yù)設(shè)溫度,通過繼電器根據(jù)預(yù)設(shè)溫度來控制加熱與否。(2)系統(tǒng)功能飲水機(jī)溫控系統(tǒng)主要是控制水的溫度,讓用戶使用起來方便。首先,第一次加水的時(shí)候,通過單片機(jī)的控制,燒開時(shí)蜂鳴器報(bào)警,得到干凈衛(wèi)生的飲用水。其次,溫度恒定在設(shè)計(jì)值附近,使得用戶可以隨時(shí)飲用適合自己溫度的飲用水。水加熱時(shí),燈亮,當(dāng)加熱到設(shè)置的溫度時(shí)燈滅繼電器斷開,當(dāng)?shù)陀谠O(shè)置的溫度1時(shí)開始加熱直到達(dá)到設(shè)定的溫度。如此往復(fù)。另外,該顯示器除具有顯示溫度功能時(shí)還可以顯示時(shí)間也為其一特點(diǎn)。按系統(tǒng)的功能設(shè)計(jì)要求,硬件電路模塊包括如下部分:如圖2-1所示系統(tǒng)組成的結(jié)構(gòu)框圖。圖2-1系統(tǒng)結(jié)構(gòu)圖塊溫度采集模塊功能是對(duì)外界
8、水溫進(jìn)行采集,然后將信號(hào)傳給單片機(jī)。測(cè)量溫度的關(guān)鍵是溫度傳感器,本文采用DS18B20進(jìn)行測(cè)溫,其溫度值可以直接讀出來,通過核心部件單片機(jī)AT89C52控制溫度的讀寫和顯示,通過LCD進(jìn)行顯示。(1) DS18B20介紹Dallas單線數(shù)字溫度傳感器DS18B20具有“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì)等特點(diǎn)。Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持“一線總線”接口的溫度傳感器?!耙痪€總線”獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。DS18B20、DS1822“一線總線”數(shù)字化溫度傳感器同DS18B20一樣,DS18B2
9、0也支持“一線總線”接口,測(cè)量溫度范圍為 -55+125,在-10+85范圍內(nèi),精度為±。DS1822的精度較差為±2。現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其DS18B20的管腳配置和封裝結(jié)構(gòu)如圖2-2所示1。圖2-2 DS18B20封裝引腳定義: DQ為數(shù)字信號(hào)輸入/輸出端; GND為電源地; VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 (2)DS18B20的單線(1wire bus)系統(tǒng)單線總線結(jié)構(gòu)是DS18B20的突出特點(diǎn),也是理解和編程的難點(diǎn)。從兩個(gè)方面來理解單線總線:一、單線總線只定義了一個(gè)信號(hào)線,而且DS18B20智
10、能程度較低(這點(diǎn)可以與微控制器和SPI器件間的通信做一個(gè)比較),所以DS18B20和處理器之間的通信必然要通過嚴(yán)格的時(shí)序控制來完成。二、DS18B20的輸出口是漏級(jí)開路輸出,這種設(shè)計(jì)使總線上的器件在合適的時(shí)間驅(qū)動(dòng)它。總線上的器件與(wired AND)關(guān)系。這就決定:(1)微控制器不能單方面控制總線狀態(tài)。之所以提出這點(diǎn),是因?yàn)橄喈?dāng)多的文獻(xiàn)資料上認(rèn)為,微控制器在讀取總線上數(shù)據(jù)之前的I/O口的置1操作是為了給DS18B20一個(gè)發(fā)送數(shù)據(jù)的信號(hào)。這是一個(gè)錯(cuò)誤的觀點(diǎn)。如果當(dāng)前DS18B20發(fā)送0,即使微控制器I/O口置1,總線狀態(tài)還是0;置1操作是為了是I/O口截止(cut off),以確保微控制器正確
11、讀取數(shù)據(jù)。(2)除了DS18B20發(fā)送0的時(shí)間段,其他時(shí)間其輸出口自動(dòng)截止。自動(dòng)截止是為確保:1時(shí),在總線操作的間隙總線處于空閑狀態(tài),即高態(tài)。2時(shí),確保微控制器在寫1的時(shí)候DS18B20可以正確讀。本設(shè)計(jì)將溫度傳感器DS18B20與單片機(jī)RXD引腳相連,讀取溫度傳感數(shù)值。圖2-3 DS18B20硬件電路圖本文增加的一個(gè)功能為顯示實(shí)時(shí)時(shí)間,為了更準(zhǔn)確的顯示時(shí)間,硬件電路設(shè)置了時(shí)鐘電路模塊,并且由LCD屏顯示。本文選用DS1302做為時(shí)鐘電路,DS1302的結(jié)構(gòu)及工作原理:如圖2-4所示DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。
12、DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之
13、前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)雙向輸入輸出端,SCLK始終是輸入端3。圖2-4 DS1302引腳圖本文中RST、SCLK和I/O口分別于單片機(jī)的P1.5,P1.6和P1.7口相連。圖2-5為時(shí)鐘電路硬件部分:圖2-5時(shí)鐘電路硬件電路圖。圖2-6數(shù)據(jù)保存硬件電路圖數(shù)據(jù)保存電路功能就是數(shù)據(jù)通過單片機(jī)的數(shù)據(jù)口被單片機(jī)接收后單片機(jī)再通過串口發(fā)給計(jì)算機(jī),在計(jì)算機(jī)中用串口調(diào)試工具就可以收到單片機(jī)發(fā)出數(shù)據(jù)“開始”命令。鍵盤接口電路如圖2-7所示:圖2-7鍵盤接口電路圖電路電磁繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又
14、稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流,較低的電壓去控制較大電流,較高的電壓的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用4。本模塊中繼電器與一燈泡相連,加熱狀態(tài)時(shí)為燈亮即繼電器閉合,保溫狀態(tài)時(shí),燈滅,繼電器斷開。繼電器與單片機(jī)相連如圖2-8所示:圖2-8繼電器硬件電路圖本設(shè)計(jì)中若繼電器吸合電源接通開始加熱同時(shí)燈亮,反之燈滅。單片機(jī)控制液晶顯示屏系統(tǒng)總共可分為四個(gè)環(huán)節(jié),分別是單片機(jī)控制系統(tǒng)、字符顯示模塊、控制開關(guān)模塊和液晶顯示屏模塊。通過這四個(gè)模塊的協(xié)調(diào)工作就可以完成相應(yīng)的液晶屏控制和顯示功能5。如下圖2-9所示:本文設(shè)計(jì)數(shù)據(jù)口接0口的輸入,并根據(jù)
15、不同的按鍵在字符型液晶上顯示不同的字符。LCD的D0D7引腳分別于單片機(jī)P0P7數(shù)據(jù)口連接圖2-9液晶顯示硬件電路圖 本文采用LCD顯示溫度與時(shí)間,因?yàn)橐@示較多字符所以不選用LED。一般選用LMO16L作為液晶模塊,其采用HD44780控制器,HD44780具有簡(jiǎn)單而功能較強(qiáng)的指令集可以實(shí)現(xiàn)字符移動(dòng)、閃爍功能。第3章 系統(tǒng)的軟件設(shè)計(jì)思路良好的設(shè)計(jì)方案可以減少軟件設(shè)計(jì)的工作量,提高軟件的可讀性,擴(kuò)展性和通用型。本系統(tǒng)的設(shè)計(jì)方案和步驟如下:(1) 按照系統(tǒng)的功能要求來逐級(jí)劃分模塊。(2) 明確各模塊之間的數(shù)據(jù)流傳遞關(guān)系,為增強(qiáng)各模塊的獨(dú)立性,力求數(shù)據(jù)傳遞少,便于軟件編制和調(diào)試。(3) 確定軟件開
16、發(fā)環(huán)境,選擇設(shè)計(jì)語言,完成模塊功能設(shè)計(jì),并分別調(diào)試通過。(4) 按照開發(fā)式軟件設(shè)計(jì)結(jié)構(gòu),將各模塊有機(jī)的結(jié)合起來,即成一個(gè)較完善的系統(tǒng)。主程序主要包括對(duì)顯示子程序,鍵盤子程序,報(bào)警子程序的控制和調(diào)用。下圖流程圖是按照其本設(shè)計(jì)所要實(shí)現(xiàn)的功能來的設(shè)計(jì)的。主程序流程圖如圖3-1:圖3-1主程序流程圖在執(zhí)行程序的時(shí)候只需逐位判斷P3.2,P3.3,P3.4,P3.5口是高電平還是低電平,若為高電平,則表示沒有按鍵按下;若為低電平,則表示有按鍵按下。在程序的設(shè)計(jì)當(dāng)中,考慮了按鍵的去抖動(dòng)問題。因?yàn)橛檬职聪乱粋€(gè)按鍵時(shí),往往會(huì)出現(xiàn)所按鍵在閉合位置和斷開位置之間跳動(dòng)幾下才穩(wěn)定到閉合狀態(tài)的情況。在釋放一個(gè)鍵的時(shí)候,
17、也會(huì)出現(xiàn)類似的情況,抖動(dòng)的時(shí)間是不一致的,通常小于10毫秒,若抖動(dòng)的問題不解決,就會(huì)引起閉合鍵的多次讀入。對(duì)于鍵的抖動(dòng)處理,一般采用軟件延時(shí)10毫秒的方法。在發(fā)現(xiàn)有按鍵閉合時(shí),不是立即讀入該鍵值,而是延時(shí)一段時(shí)間以后,再進(jìn)行鍵閉合與否的判斷,確認(rèn)此時(shí)是否真的有按鍵下,有則進(jìn)行該按鍵的處理,沒有則不進(jìn)行處理。先判斷是否右鍵按下,再判斷是哪個(gè)按鍵,分別按照各個(gè)功能執(zhí)行。鍵盤子程序如圖3-2:圖3-2 鍵盤子程序流程圖報(bào)警子程序是在當(dāng)設(shè)定的保溫溫度大于99時(shí),當(dāng)加熱到這個(gè)預(yù)設(shè)溫度時(shí),蜂鳴器報(bào)警提示水燒開,繼電器斷開,停止加熱,溫度下降,停止報(bào)警。報(bào)警子程序中響樂用到的頭文件如下:#include&l
18、t;reg52.h>#define uchar unsigned char#define uint unsigned int#define OSC 12000000 /OSC/定義普通音符演奏的長(zhǎng)度分率,每4分音符間隔#define MUSIC_SPACE 4/5sbit music_out=P36;/原始頻率表void playm_init_sound(void);/void playm_interrupt_timer0(void); /interrupt 1; /signature 簽字 Octachord 八度音節(jié)void playm_play_music(uchar *sound
19、,uchar signature,unsigned octachord,uint speed);圖3-3報(bào)警子程序流程圖顯示模塊子程序?yàn)轱@示溫度與當(dāng)前時(shí)間,其主要功能仍為顯示預(yù)設(shè)溫度與當(dāng)前溫度。首先,從外界感知溫度輸入到溫度傳感器中,讀取溫度值進(jìn)行存儲(chǔ),顯示出結(jié)果。然后如此循環(huán)。其流程圖如圖3-4所示:圖3-4顯示子程序流程圖第4章 系統(tǒng)軟件仿真4.1 Protues介紹Protues軟件是Labcenter electronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前應(yīng)用廣泛的仿真單片機(jī)及
20、外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者以及從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的工作者的青睞7。Proteus是世界上著名的EDA工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的設(shè)計(jì),是目前世界上將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8052、HC11、PIC10/12/16/18/24/30/DsPIC33、ARM、AVR、8086和MSP430等,2010年增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPL
21、AB等多種編譯器,本次設(shè)計(jì)使用的是Keil編譯器8。打開Proteus程序后,進(jìn)入軟件的主界面。通過左側(cè)工具欄中的P(從庫中選擇元件命令)命令,在Pick Devices 左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設(shè)置,如圖4-1所示。圖4-1 PROTUES參數(shù)設(shè)置4.2 Keil uVision4調(diào)試軟件Keil uVision4是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì)9。Keil uVision4軟件提供豐富的庫函數(shù)和功能強(qiáng)
22、大的集成開發(fā)調(diào)試工具,全Windows界面,能短期內(nèi)很快就能學(xué)會(huì)使用keil uVision4來開發(fā)單片機(jī)應(yīng)用程序10。調(diào)試過程具體操作如下:?jiǎn)纹瑱C(jī)的類型選取界面如下圖4-2所示:圖4-2 單片機(jī)選型設(shè)置在新建Keil項(xiàng)目時(shí)選擇AT89C52單片機(jī)作為CPU,將源程序?qū)?,在“Options For Target”對(duì)話窗口中,選中“Output”選項(xiàng)中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件,此文件的選取界面如下圖4-3所示。圖4-3調(diào)試前窗口設(shè)置用Keil編譯后如圖4-4所示:圖4-4程序編譯圖編譯無錯(cuò)誤,之后開始仿真。4.3 Proteus 的仿真步驟與結(jié)果
23、Proteus仿真時(shí),單片機(jī)需要加載程序,加載程序?yàn)?HEX文件。在Proteus ISIS中,選中AT89C52并雙擊鼠標(biāo)左鍵,對(duì)AT89C52進(jìn)行設(shè)置,設(shè)置單片機(jī)時(shí)鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件,對(duì)單片機(jī)設(shè)置完畢后就可以開始仿真了。通過Keil與Proteus的聯(lián)合調(diào)試就可以得到滿意的結(jié)果。仿真過程中設(shè)置保溫溫度為60,當(dāng)加熱到100時(shí)報(bào)警表示燒開。然后進(jìn)入保溫階段,當(dāng)溫度降到60以下時(shí)燈亮表示處于加熱狀態(tài),圖中顯示溫度降到58時(shí),繼電器吸合進(jìn)入加熱狀態(tài),燈亮。如圖4-5所示:圖4-5 繼電器吸合狀態(tài)仿真圖當(dāng)溫度超過60時(shí),如為62時(shí),繼電器斷開,進(jìn)入停止加熱狀態(tài),
24、燈滅如圖4-6所示:圖4-6繼電器斷開狀態(tài)仿真圖仿真結(jié)果分析:本設(shè)計(jì)的目的是為了避免反復(fù)燒開而造成產(chǎn)生對(duì)人體有害的重金屬,從而設(shè)置了一種功能:可以讓用戶預(yù)設(shè)適合的溫度,使水溫保持一直在這一溫度范圍內(nèi),誤差是1,以便用戶可以隨時(shí)飲用。由仿真結(jié)果知,基本達(dá)到了預(yù)期的效果,即顯示實(shí)時(shí)時(shí)間,當(dāng)溫度預(yù)設(shè)為其他溫度時(shí),低于其則燈亮表示加熱,燈滅則表示停止加熱。如果預(yù)設(shè)溫度為99時(shí),燈滅的同時(shí)會(huì)報(bào)警,表示水燒開?;就瓿闪吮驹O(shè)計(jì)所要實(shí)現(xiàn)的功能,簡(jiǎn)單實(shí)用,有較好的應(yīng)用前景。心得體會(huì)大學(xué)四年的時(shí)光我們基本上都在學(xué)習(xí)理論知識(shí)中度過,很少有機(jī)會(huì)將這些理論知識(shí)用于實(shí)踐中,而這次的畢業(yè)設(shè)計(jì)正好給了我們展示這四年學(xué)業(yè)成果
25、的好機(jī)會(huì)。在整個(gè)的設(shè)計(jì)過程中,實(shí)際上是自己對(duì)四年學(xué)習(xí)的總結(jié),它不但加深了自己對(duì)理論知識(shí)的深化認(rèn)知,更讓自己學(xué)會(huì)了如何去正確運(yùn)用理論知識(shí)解決實(shí)際問題,也就是“從理論中來,到實(shí)踐中去”,從中也使自己學(xué)到和積累了許多經(jīng)驗(yàn)。我的設(shè)計(jì)還具有很大的擴(kuò)展空間,例如在硬件電路上增加不同顏色的燈,在不同的狀態(tài)有不同的顏色顯示,使其更加美觀。同時(shí)還可以與紅外遙控連接,這樣就省去了很多麻煩,我們可以利用遙控器對(duì)其進(jìn)行遠(yuǎn)距離的控制等操作。通過這次設(shè)計(jì)使我認(rèn)識(shí)到我對(duì)單片機(jī)方面的知識(shí)知道的太少了,對(duì)于書本上的很多知識(shí)還不能靈活運(yùn)用,有很多我們需要掌握的知識(shí)在等著我去學(xué)習(xí),我會(huì)在以后的學(xué)習(xí)生活中彌補(bǔ)我所缺少的知識(shí)。本次設(shè)計(jì)
26、使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的用到我們現(xiàn)實(shí)的生活中去,此次的溫度控制系統(tǒng)設(shè)計(jì)給我奠定了一個(gè)實(shí)踐基礎(chǔ),我會(huì)在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競(jìng)爭(zhēng)。參考文獻(xiàn)1 李全利.單片機(jī)原理及應(yīng)用技術(shù)(第二版).北京:高等教育出版社,2000:32-40.2 韓志軍,王振波,沈晉源.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2006:22-32.3 李光飛,樓然苗,胡佳文,謝象佐.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京:航空航天大學(xué)出版社,2008:23-43.4 李朝清
27、.單片機(jī)原理與接口技術(shù).北京:航空航天大學(xué)出版社,2000:56-98.5 :航空航天大學(xué)出版社,2008:56-98.6 .LED驅(qū)動(dòng)電路設(shè)計(jì)與應(yīng)用.北京:人民郵電出版社,2006:67-98.7 袁宇正.電子愛好者實(shí)用電子制作.北京:人民郵電出版社,2007:34-78.8 :高等教育出版社,2004:67-98.9 :東南大學(xué)出版社,2005:212-234.10 楊振江,杜鐵軍,李群編著.流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例.西安:電子科技大學(xué)出版社,2002:32-78.附 錄一、 主程序:#include <reg52.h>#include "eepom52.h&q
28、uot;#define uchar unsigned char #define uint unsigned int/* 本設(shè)計(jì)系統(tǒng)是18b20溫度報(bào)警系統(tǒng)數(shù)碼管顯示,可設(shè)置溫度上限高溫報(bào)警和下限低溫報(bào)警,報(bào)警溫度可精確到0.1度,并具有掉電保存功能,數(shù)據(jù)保存在單片機(jī)內(nèi)部EEPOM中,進(jìn)入設(shè)置界面后如果沒有鍵按下系統(tǒng)會(huì)在30秒后自動(dòng)退出設(shè)置界面,人性化的按鍵設(shè)置,按鍵還具有連加、減功能。*/數(shù)碼管段選定義 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x8
29、3,0xc6,0xa1,0x86,0x8e,0xff; /斷碼/數(shù)碼管位選定義uchar code smg_we=0xef,0xdf,0xbf,0x7f;uchar dis_smg8 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uchar smg_i = 3; /顯示數(shù)碼管的個(gè)位數(shù)sbit dq = P24;/18b20 IO口的定義sbit relay = P25; /繼電器IO口定義sbit beep = P23; /蜂鳴器IO口定義uchar a_a;uint temperature ; /bit flag_300ms ;uchar key_can
30、; /按鍵值的變量uchar menu_1; /菜單設(shè)計(jì)的變量uint t_high = 300,t_low = 100;bit flag_lj_en; /按鍵連加使能bit flag_lj_3_en; /按鍵連3次連加后使能 加的數(shù)就越大了 uchar key_time,flag_value; /用做連加的中間變量bit key_500ms ;uchar flag_clock;uchar zd_break_en,zd_break_value; /自動(dòng)退出設(shè)置界面/*1ms延時(shí)函數(shù)*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=
31、0;j<120;j+);/*小延時(shí)函數(shù)*/void delay_uint(uint q)while(q-);/*數(shù)碼顯示函數(shù)*/void display()uchar i;for(i=0;i<smg_i;i+) P3 = smg_wei; /位選P1 = dis_smgi; /段選 delay_1ms(1); P3 = 0xff; /位選P1 = 0xff; /消隱 /*把數(shù)據(jù)保存到單片機(jī)內(nèi)部eepom中*/void write_eepom()SectorErase(0x2000);byte_write(0x2000, t_high % 256);byte_write(0x2001
32、, t_high / 256);byte_write(0x2002, t_low % 256);byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);/*把數(shù)據(jù)從單片機(jī)內(nèi)部eepom中讀出來*/void read_eepom()t_high = byte_read(0x2001);t_high <<= 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low <<= 8;t_low |= byte_read(0x2002);a_a = byte_r
33、ead(0x2055);/*18b20初始化函數(shù)*/void init_18b20()bit q;dq = 1;/把總線拿高delay_uint(1); /15usdq = 0;/給復(fù)位脈沖delay_uint(80);/750usdq = 1;/把總線拿高 等待delay_uint(10);/110usq = dq;/讀取18b20初始化信號(hào)delay_uint(20);/200usdq = 1;/把總線拿高 釋放總線/*寫18b20內(nèi)的數(shù)據(jù)*/void write_18b20(uchar dat)uchar i;for(i=0;i<8;i+) /寫數(shù)據(jù)是低位開始dq = 0; /把總
34、線拿低寫時(shí)間隙開始 dq = dat & 0x01; /向18b20總線寫數(shù)據(jù)了delay_uint(5); / 60usdq = 1; /釋放總線dat >>= 1;/*讀取18b20內(nèi)的數(shù)據(jù)*/uchar read_18b20()uchar i,value;for(i=0;i<8;i+)dq = 0; /把總線拿低讀時(shí)間隙開始 value >>= 1; /讀數(shù)據(jù)是低位開始dq = 1; /釋放總線if(dq = 1) /開始讀寫數(shù)據(jù) value |= 0x80;delay_uint(5); /60us讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間return v
35、alue; /返回?cái)?shù)據(jù)/*讀取溫度的值 讀出來的是小數(shù)*/uint read_temp()uint value;uchar low; /在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序init_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_18b20(0x44); /啟動(dòng)一次溫度轉(zhuǎn)換命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_18b20(0xbe); /發(fā)出讀取暫存器命令EA = 0;
36、low = read_18b20(); /讀溫度低字節(jié)value = read_18b20(); /讀溫度高字節(jié)EA = 1;value <<= 8; /把溫度的高位左移8位value |= low; /把讀出的溫度低位放到value的低八位中value *= 0.625; /轉(zhuǎn)換到溫度值 小數(shù)return value; /返回讀出的溫度 帶小數(shù)/*定時(shí)器0初始化程序*/void time_init() EA = 1; /開總中斷TMOD = 0X01; /定時(shí)器0、定時(shí)器1工作方式1ET0 = 1; /開定時(shí)器0中斷 TR0 = 1; /允許定時(shí)器0定時(shí)/*獨(dú)立按鍵處理函數(shù)*/v
37、oid key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按鍵松開的時(shí)候做松手檢測(cè)if(P2 & 0x0f) = 0x0f)key_value +;else key_value = 0;if(key_value >= 10)write_eepom();key_value = 0;key_new = 1;flag_lj_en = 0;/關(guān)閉連加使能flag_lj_3_en = 0;/關(guān)閉3秒后使能flag_value = 0;/清零else if(P2 & 0x0f) != 0x
38、0f)key_value +; /按鍵按下的時(shí)候else key_value = 0;if(key_value >= 7)key_value = 0;key_new = 0;flag_lj_en = 1; /連加使能zd_break_en = 1; /自動(dòng)退出設(shè)置界使能zd_break_value = 0; /自動(dòng)退出設(shè)置界變量清零key_can = 20;if(key_500ms = 1)key_500ms = 0;zd_break_en = 1; /自動(dòng)退出設(shè)置界使能zd_break_value = 0; /自動(dòng)退出設(shè)置界變量清零key_new = 0;key_old = 1;if(
39、key_new = 0) && (key_old = 1)switch(P2 & 0x0f)case 0x0e: key_can = 4; break; /得到k1鍵值case 0x0d: key_can = 3; break; /得到k2鍵值case 0x0b: key_can = 2; break; /得到k3鍵值case 0x07: key_can = 1; break; /得到k4鍵值 key_old = key_new; /*按鍵處理數(shù)碼管顯示函數(shù)*/void key_with()if(key_can = 4)menu_1 +;if(menu_1 >=
40、2)menu_1 = 0;if(menu_1 = 0)dis_smg0 = smg_dutemperature % 10; /取溫度的小數(shù)顯示dis_smg1 = smg_dutemperature / 10 % 10 & 0x7f; /取溫度的個(gè)位顯示dis_smg2 = smg_dutemperature / 100 % 10 ; /取溫度的十位顯示smg_i = 3;if(menu_1 = 1)dis_smg0 = smg_dut_low % 10; /取low小數(shù)顯示dis_smg1 = smg_dut_low / 10 % 10 & 0x7f; /取個(gè)位顯示dis_s
41、mg2 = smg_dut_low / 100 % 10 ; /取十位顯示dis_smg3 = 0xc7;smg_i = 4;/if(menu_1 = 1)/設(shè)置高溫報(bào)警/if(key_can = 3)/if(flag_lj_3_en = 0)/t_high + ;/按鍵按下未松開自動(dòng)加三次/else /t_high += 10;/按鍵按下未松開自動(dòng)加三次之后每次自動(dòng)加10/if(t_high > 990)/t_high = 990;/dis_smg0 = smg_dut_high % 10; /取小數(shù)顯示/dis_smg1 = smg_dut_high / 10 % 10 &
42、0x7f; /取個(gè)位顯示/dis_smg2 = smg_dut_high / 100 % 10 ; /取十位顯示/dis_smg3 = 0x89; /H/if(key_can = 2)/if(flag_lj_3_en = 0)/t_high - ;/按鍵按下未松開自動(dòng)加三次/else /t_high -= 10;/按鍵按下未松開自動(dòng)減三次之后每次自動(dòng)減10/if(t_high <= t_low)/t_high = t_low + 1;/dis_smg0 = smg_dut_high % 10; /取小數(shù)顯示/dis_smg1 = smg_dut_high / 10 % 10 &
43、0x7f; /取個(gè)位顯示/dis_smg2 = smg_dut_high / 100 % 10 ; /取十位顯示/dis_smg3 = 0x89; /H/if(menu_1 = 1)/設(shè)置溫報(bào)警if(key_can = 3)if(flag_lj_3_en = 0)t_low + ;else t_low += 10;if(t_low >= 999)t_low = 999;dis_smg0 = smg_dut_low % 10; /取小數(shù)顯示dis_smg1 = smg_dut_low / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_low / 100 % 10 ; /取十位顯示dis_smg3 = 0xc7; /Lif(key_can = 2)if(flag_lj_3_en = 0)t_low - ;else t_low -= 10;if(t_low <= 10)t_low = 10;dis_smg0 = smg_dut_low % 10; /取小數(shù)顯示dis_smg1 = smg_dut_low / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_low / 100 % 10 ; /取十
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024基于類腦計(jì)算人工智能安全
- 口語交際:轉(zhuǎn)述 教學(xué)設(shè)計(jì)-2023-2024學(xué)年語文四年級(jí)下冊(cè)統(tǒng)編版
- 2025年中考道德與法治全真模擬卷3(含答案)
- 攝影基礎(chǔ)知識(shí)培訓(xùn)課件
- 出資贈(zèng)與合同范本
- 2025年節(jié)約糧食標(biāo)準(zhǔn)教案5篇
- 員工薪酬福利計(jì)劃
- 加強(qiáng)社區(qū)“鄰里守望”機(jī)制建設(shè)計(jì)劃
- 加強(qiáng)幼兒園學(xué)生創(chuàng)新思維能力的工作計(jì)劃
- 教學(xué)評(píng)價(jià)中的定量與定性計(jì)劃
- 林木林地權(quán)屬爭(zhēng)議處理申請(qǐng)書
- 阿里云+跨國(guó)企業(yè)上云登陸區(qū)(Landing+Zone)白皮書
- 家鄉(xiāng)鹽城城市介紹江蘇鹽城介紹課件
- 市政工程施工安全檢查標(biāo)準(zhǔn)
- 銀行整村授信工作經(jīng)驗(yàn)材料工作總結(jié)匯報(bào)報(bào)告2篇
- 四川事業(yè)單位工作人員收入分配制度改革實(shí)施意見
- 陜西省2023第二屆長(zhǎng)安杯大中小學(xué)國(guó)家安全知識(shí)競(jìng)賽題庫及答案
- 基建礦井應(yīng)急救援預(yù)案之綜合應(yīng)急預(yù)案匯編(完整版)資料
- GA/T 830-2021尸體解剖檢驗(yàn)室建設(shè)規(guī)范
- 《PEP英語六年級(jí)下冊(cè)Unit3Readandwrite》東城虎英小學(xué)王曉惠
- GB/T 3778-2021橡膠用炭黑
評(píng)論
0/150
提交評(píng)論