




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中國(guó)地質(zhì)大學(xué)(武漢)基于C51單片機(jī)的數(shù)字溫度報(bào)警器的設(shè)計(jì)指導(dǎo)老師: 姓 名: 班 級(jí): 072 學(xué) 號(hào): 專(zhuān) 業(yè): 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 院 系: 機(jī)電學(xué)院 日 期: 2016.01.10 基于單片機(jī)的數(shù)字溫度報(bào)警器的設(shè)計(jì)摘要:隨著現(xiàn)代信息化技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能獨(dú)立工作的溫度檢測(cè)系統(tǒng)已廣泛應(yīng)用于各種不同的領(lǐng)域。本次課程設(shè)計(jì)是基于AT89C51單片機(jī)進(jìn)行溫度傳測(cè)定及報(bào)警等功能的設(shè)計(jì),利用數(shù)字溫度傳感器DS18B20的測(cè)溫系統(tǒng),通過(guò)LED數(shù)碼管和LCD液晶顯示屏同時(shí)顯示實(shí)時(shí)溫度和報(bào)警預(yù)設(shè)溫度,報(bào)警指示通過(guò)蜂鳴器的聲音和16X16點(diǎn)陣屏同時(shí)報(bào)警,并能采取降溫措施(直流電動(dòng)機(jī)
2、啟動(dòng))。同時(shí)本次設(shè)計(jì)的報(bào)警溫度采用鍵盤(pán)輸入的方式,確保各種報(bào)警溫度可以方便的設(shè)定和調(diào)節(jié)。本次課程設(shè)計(jì)的系統(tǒng)電路簡(jiǎn)單、操作簡(jiǎn)便,能任意設(shè)定報(bào)警溫度,系統(tǒng)具有可靠性高、成本低、功耗小等優(yōu)點(diǎn)。關(guān)鍵詞: 單片機(jī)、溫度檢測(cè)、AT89C51、DS18B20 目錄基于單片機(jī)的數(shù)字溫度報(bào)警器的設(shè)計(jì)1一、引言:3二、設(shè)計(jì)方案31.基本要求32.擴(kuò)展功能33.方案選定34.總體設(shè)計(jì)方案4三、功能模塊分析41.復(fù)位電路42.鍵盤(pán)電路53.DS18B20溫度檢測(cè)電路64.顯示電路75.報(bào)警電路106.降溫風(fēng)扇電路10四、軟件設(shè)計(jì)分析111.主函數(shù)模塊112.溫度檢測(cè)模塊123.鍵盤(pán)掃描模塊134.LCD液晶顯示模塊1
3、45.中斷模塊15五、課程設(shè)計(jì)體會(huì)15附錄:18一、 引言:隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便是不可否定的,各種數(shù)字系統(tǒng)的應(yīng)用也使人們的生活更加舒適。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等方面帶來(lái)方便。其中數(shù)字溫度計(jì)就是一個(gè)典型的例子。數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便、測(cè)溫范圍廣、測(cè)溫精確、功能多樣話(huà)等優(yōu)點(diǎn)。其主要用于對(duì)測(cè)溫要求準(zhǔn)確度比較高的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)使用STC89C51單片機(jī)作控制器,數(shù)字溫度傳感器DS18B20測(cè)量溫度,單片機(jī)接受傳感器輸出,經(jīng)處理用LED數(shù)碼管和LCD液晶屏實(shí)現(xiàn)溫度值顯示。二、 設(shè)計(jì)方
4、案1. 基本要求實(shí)現(xiàn)實(shí)時(shí)溫度顯示,測(cè)溫范圍-55+125。報(bào)警通過(guò)揚(yáng)聲器和發(fā)光二極管顯示。2. 擴(kuò)展功能任意設(shè)定設(shè)置溫度報(bào)警,通過(guò)鍵盤(pán)直接設(shè)定溫度,設(shè)定報(bào)警溫度通過(guò)LCD液晶屏顯示。報(bào)警同時(shí)采取風(fēng)扇降溫措施。 3. 方案選定本次課程設(shè)計(jì)在實(shí)驗(yàn)室進(jìn)行,基于現(xiàn)有的實(shí)驗(yàn)器材,本次選用DS18B20溫度傳感器作為溫度測(cè)量傳感器,此傳感器為單總線(xiàn)數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理,即可實(shí)現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測(cè)溫范圍為-55+125攝氏度,測(cè)溫分辨率可達(dá)0.0625攝氏度,其測(cè)量范圍與精度都能符合設(shè)計(jì)要求。 4. 總
5、體設(shè)計(jì)方案圖:總體設(shè)計(jì)三、 功能模塊分析1. 復(fù)位電路復(fù)位操作是為了完成單片機(jī)內(nèi)部電路的初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。當(dāng)AT89C51單片機(jī)的復(fù)位引腳RST出現(xiàn)2個(gè)機(jī)器周期以上,單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)1。 復(fù)位通常有2種基本形式:上電復(fù)位和開(kāi)關(guān)復(fù)位。上電復(fù)位要求要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開(kāi)關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開(kāi)關(guān)操作使單片機(jī)復(fù)位。本次采用的是常用的上電且開(kāi)關(guān)復(fù)位電路,電路如下圖所示:圖:復(fù)位電路上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持
6、續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開(kāi)關(guān)復(fù)位的操作。通常選擇C=1030F,R=101000。復(fù)位操作使單片機(jī)進(jìn)入初始化過(guò)程,其中包括使程序計(jì)數(shù)器PC=0000H,P0P3=FFH,SP=07H,其它寄存器處于零。2. 鍵盤(pán)電路本次使用實(shí)驗(yàn)儀提供的一個(gè)64的小鍵盤(pán),向列掃描碼地址(0X002H)逐列輸出低電平,然后從行碼地址(0X001H)讀回。如果有鍵按下,則相應(yīng)行的值應(yīng)為低,如果無(wú)鍵按下,由于上拉的作用,行碼為高。這樣就可以通過(guò)輸出的列碼和讀取的行碼來(lái)判斷按下的是什么鍵。在判斷有鍵按下后,要有一定的延時(shí),防止鍵盤(pán)抖動(dòng)。地址中的X是由KEY/LED CS 決定,參見(jiàn)地址譯碼。做鍵盤(pán)和LED實(shí)驗(yàn)
7、時(shí),需將KEY/LED CS 接到相應(yīng)的地址譯碼上。以便用相應(yīng)的地址來(lái)訪(fǎng)問(wèn)。例如將KEY/LED CS信號(hào)接CS0上,則列掃描地址為08002H,行碼地址為08001H。列掃描碼還可以分時(shí)用作LED的位選通信號(hào)。鍵盤(pán)在由單片機(jī)控制的溫度報(bào)警器系統(tǒng)中的主要作用是通過(guò)按鍵向單片機(jī)輸入指令,其中主要是輸入控制溫度的上下限,是人工控制單片機(jī)的主要手段。在此溫度報(bào)警系統(tǒng)由于使用偉福試驗(yàn)箱進(jìn)行設(shè)計(jì),本次使用的偉福試驗(yàn)箱的鍵盤(pán)原理圖如下所示:圖:鍵盤(pán)掃描電路3. DS18B20溫度檢測(cè)電路使用美國(guó)Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820,支持 “一線(xiàn)總線(xiàn)”接口的溫度傳感器,在其內(nèi)部使用了在板(O
8、N-B0ARD)專(zhuān)利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)?!耙痪€(xiàn)總線(xiàn)”獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶(hù)可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟(jì)、更靈活。使你可以充分發(fā)揮“一線(xiàn)總線(xiàn)”的優(yōu)點(diǎn)。 同DS1820一樣,DS18B20也支持“一線(xiàn)總線(xiàn)”接口,測(cè)量溫度范圍為-55C+125C,在-10+85C范圍內(nèi),精度為0.5C?,F(xiàn)場(chǎng)溫度直接以“一線(xiàn)總線(xiàn)”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3V5.5V的電壓范圍
9、,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小,DS18B20產(chǎn)品的特點(diǎn) :(1) 只要求一個(gè)端口即可實(shí)現(xiàn)通信。 (2) 在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。 (3) 實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。 (4) 測(cè)量溫度范圍在55。C到125。C之間。 (5) 數(shù)字溫度計(jì)的分辨率用戶(hù)可以從9位到12位選擇。 (6) 內(nèi)部有溫度上、下限告警設(shè)置。DS18B20內(nèi)部結(jié)構(gòu)如圖所示:連線(xiàn)連接孔1連接孔22P1.0SD18B20端口圖:DS18B20內(nèi)部結(jié)構(gòu)由于DS18B20單線(xiàn)通信功能是分時(shí)完成的,所以有嚴(yán)格的時(shí)隙概念,讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作
10、必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。其電路簡(jiǎn)圖如下圖:圖:溫度檢測(cè)電路4. 顯示電路(1) LED數(shù)碼管顯示電路顯示電路主要是用于顯示時(shí)間。采用LED數(shù)碼管進(jìn)行顯示是因?yàn)長(zhǎng)ED數(shù)碼管具有以下幾個(gè)優(yōu)點(diǎn):(1)能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與CMOS、ITL電路兼容。(2)發(fā)光響應(yīng)時(shí)間極短(0.1s),高頻特性好,單色性好,亮度高。(3)體積小,重量輕,抗沖擊性能好。本次實(shí)驗(yàn)使用實(shí)驗(yàn)儀提供的6 位8段碼LED顯示電路,學(xué)生只要按地址輸出相應(yīng)數(shù)據(jù),就可以實(shí)現(xiàn)對(duì)顯示器的控制。顯示共有6位,用動(dòng)態(tài)方式顯示。8位段碼、6位位碼是由兩
11、片74LS374輸出。位碼經(jīng)MC1413或ULN2003倒相驅(qū)動(dòng)后,選擇相應(yīng)顯示位。當(dāng)用PIC5X驅(qū)動(dòng)八段管時(shí),是用I/O方式驅(qū)動(dòng),所以,驅(qū)動(dòng)方式開(kāi)關(guān)撥到“外驅(qū)”方式,PB0PB7接八段的AH段,PC0PC5接G0G5。當(dāng)用LPC2103驅(qū)動(dòng)時(shí),用的是模擬總線(xiàn)方式,所以只需將八段管的KEY/LED_CS 片選接到CS0即可。實(shí)驗(yàn)儀中 8位段碼輸出地址為0X004H,位碼輸出地址為 0X002H。此處X是由KEY/LED CS 決定,參見(jiàn)地址譯碼。做鍵盤(pán)和LED實(shí)驗(yàn)時(shí),需將KEY/LED CS 接到相應(yīng)的地址譯碼上。以便用相應(yīng)的地址來(lái)訪(fǎng)問(wèn)。例如,將KEY/LED CS 接到CS0上,則段碼地址為
12、08004H,位碼地址為08002H。LED顯示電路如圖所示:連線(xiàn)連接孔1連接孔21LED_CSCS0圖:LED顯示電路(2) LCD液晶顯示電路本次實(shí)驗(yàn)使用實(shí)驗(yàn)儀提供的液晶顯示屏內(nèi)置控制器為SED1520,點(diǎn)陣為122x32,需要兩片SED1520組成,由E1、E2分別選通,以控制顯示屏的左右兩半屏。圖形液晶顯示模塊有兩種連接方式。一種為直接訪(fǎng)問(wèn)方式,一種為間接控制方式。本實(shí)驗(yàn)儀采用直接控制方式。直接控制方式就是將液晶顯示模塊的接口作為存儲(chǔ)器或IO設(shè)備直接掛在計(jì)算機(jī)總線(xiàn)上。計(jì)算機(jī)通過(guò)地址譯碼控制 E1和 E2的選通;讀寫(xiě)操作信號(hào) RW由地址線(xiàn) A1控制;命令/數(shù)據(jù)寄存器選擇信號(hào) AO由地址線(xiàn)
13、 A0控制。實(shí)際電路如上圖所示。地址映射如下(地址中的X由LCD CS決定,可參見(jiàn)地址譯碼部分說(shuō)明)0X000H0X001H0X002H0X003H0X004H0X0050X006H0X007H寫(xiě)E1指令寫(xiě)E1數(shù)據(jù)讀E1狀態(tài)讀E1數(shù)據(jù)寫(xiě)E2指令寫(xiě)E2數(shù)據(jù)讀E2狀態(tài)讀E2數(shù)據(jù)間接控制方式是計(jì)算機(jī)通過(guò)自身的或系統(tǒng)的并行接口與液晶顯示模塊連接,如 MCS51的P1口和P3口, 8255等并行接口芯片。計(jì)算機(jī)通過(guò)對(duì)該并行接口輸出狀態(tài)的編程操作,完成對(duì)液晶顯示模塊所需時(shí)序的操作和數(shù)據(jù)的傳輸。這種間接控制方式的電路簡(jiǎn)單,控制時(shí)序通過(guò)編程來(lái)實(shí)現(xiàn)。LCD液晶顯示電路如下圖:連線(xiàn)連接孔1連接孔23LCD_CSC
14、S1圖:LCD液晶顯示電路(3) 16x16點(diǎn)陣顯示16x16點(diǎn)陣需要32個(gè)驅(qū)動(dòng),分別為16個(gè)列驅(qū)動(dòng)及16個(gè)行驅(qū)動(dòng)。每個(gè)行與每個(gè)列可以選中一個(gè)發(fā)光管,共有256個(gè)發(fā)光管,采用動(dòng)態(tài)驅(qū)動(dòng)方式。每次顯示一行,10ms后再顯示下一行。實(shí)驗(yàn)電路圖如下:連線(xiàn)連接孔1連接孔2416x16_CSCS3圖:16x16點(diǎn)陣顯示電路(4) 二極管指示燈實(shí)驗(yàn)除采取上述三種顯示方式外,還設(shè)置有二極管電路來(lái)顯示程序運(yùn)行狀態(tài)和報(bào)警狀態(tài),其電路圖比較簡(jiǎn)單,下表為二極管電路連接方式。連線(xiàn)連接孔1連接孔25二極管L0P1.26二極管L1P1.45. 報(bào)警電路本次試驗(yàn)采用的報(bào)警裝置是比較簡(jiǎn)單的一種直接使用P16端口輸出講題變化的高
15、低電平,端口輸出的方波經(jīng)放大濾波后,驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。聲音的頻率由端口輸出時(shí)延時(shí)控制。實(shí)驗(yàn)電路圖如圖所示:連線(xiàn)連接孔1連接孔27P1.6喇叭輸入圖:蜂鳴器電路圖6. 降溫風(fēng)扇電路實(shí)驗(yàn)中用到的直流電動(dòng)機(jī)無(wú)法通過(guò)單片機(jī)IO口直接輸出高電平控制,需要通過(guò)驅(qū)動(dòng)電路將電壓放大后才能驅(qū)動(dòng)直流電動(dòng)機(jī)運(yùn)行。直流電動(dòng)機(jī)與驅(qū)動(dòng)電路如下圖:連線(xiàn)連接孔1連接孔28P1.2驅(qū)動(dòng)輸入9驅(qū)動(dòng)輸出直流電機(jī)電壓輸入圖:直流電動(dòng)機(jī)及驅(qū)動(dòng)電路四、 軟件設(shè)計(jì)分析1. 主函數(shù)模塊主程序模塊主要負(fù)責(zé)將各個(gè)子程序調(diào)用并連接在一起,用過(guò)中斷函數(shù)不斷刷新讀取溫度并將數(shù)據(jù)送達(dá)顯示模塊進(jìn)行顯示,驅(qū)動(dòng)數(shù)碼管把實(shí)時(shí)溫度值送出在LED數(shù)碼管顯示查詢(xún)記錄溫
16、度值子程序,將當(dāng)前設(shè)定溫度實(shí)時(shí)顯示在液晶顯示屏,溫度超過(guò)設(shè)定溫度上限,單片機(jī)驅(qū)動(dòng)蜂鳴器報(bào)警,同時(shí)驅(qū)動(dòng)二極管發(fā)光、點(diǎn)陣屏顯示、直流電動(dòng)機(jī)轉(zhuǎn)動(dòng)。當(dāng)溫度再次低于設(shè)定溫度上限,上述裝置取消報(bào)警狀態(tài),程序恢復(fù)正常運(yùn)行。 主函數(shù)部分程序框圖如下:NY開(kāi)始達(dá)到上限?DS18B20讀取溫度初始化檢測(cè)按鍵是否按下?讀取鍵值LCD顯示設(shè)定溫度轉(zhuǎn)換溫度小風(fēng)扇轉(zhuǎn)動(dòng)顯示實(shí)時(shí)溫度NY蜂鳴器報(bào)警點(diǎn)陣屏顯示指示燈顯示圖:主函數(shù)框圖2. 溫度檢測(cè)模塊DSl8B20必須嚴(yán)格按照單總線(xiàn)通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種時(shí)隙類(lèi)型:初始化、應(yīng)答、寫(xiě)1、寫(xiě)0、讀1、讀0。除了應(yīng)答時(shí)隙所有這些時(shí)隙都是有主機(jī)發(fā)出。總線(xiàn)上所傳輸?shù)?/p>
17、所有命令和數(shù)據(jù)都是字節(jié)的低位在前。圖:DS18B20溫度檢測(cè)框圖3. 鍵盤(pán)掃描模塊鍵盤(pán)掃描通過(guò)檢測(cè)按鍵狀態(tài),當(dāng)有按鍵按下時(shí),鍵盤(pán)掃描程序?qū)存I轉(zhuǎn)換成鍵值,將鍵值返回到主函數(shù),并記錄按鍵的數(shù)值,轉(zhuǎn)換成設(shè)定溫度。鍵盤(pán)掃描按鍵為D時(shí),進(jìn)入溫度設(shè)定狀態(tài),連續(xù)輸入三個(gè)數(shù)字設(shè)定溫度完成,通過(guò)這一程序?qū)崿F(xiàn)報(bào)警溫度的設(shè)定。鍵盤(pán)掃描程序框圖如下:圖:鍵盤(pán)掃描程序框圖4. LCD液晶顯示模塊LCD液晶顯示屏初始化時(shí)就開(kāi)始在第一頁(yè)顯示初始設(shè)定的文字(“設(shè)定報(bào)警溫度”),當(dāng)檢測(cè)到程序進(jìn)入溫度設(shè)定程序時(shí),每當(dāng)輸入一個(gè)數(shù)據(jù),液晶顯示屏同步顯示到相應(yīng)的位置,輸入三個(gè)數(shù)字后液晶屏顯示設(shè)定溫度如“36.5”,達(dá)到設(shè)計(jì)的目的。L
18、CD液晶顯示程序框圖如下所示:圖:LCD液晶屏顯示程序框圖5. 中斷模塊中斷采用T0方式1,初始值定時(shí)為1.842ms。中斷模塊包含三部分內(nèi)容,一是進(jìn)行初始溫度的轉(zhuǎn)化,二是進(jìn)行點(diǎn)陣屏的刷新,實(shí)時(shí)顯示需要顯示的內(nèi)容,三是進(jìn)行報(bào)警判斷,根據(jù)需要使蜂鳴器報(bào)警或停止報(bào)警。把這三個(gè)程序放模塊在中斷的原因是,不會(huì)因?yàn)檎{(diào)整報(bào)警溫度或進(jìn)行點(diǎn)陣屏顯示值而停止更新溫度值,更能使蜂鳴器報(bào)警時(shí)不停止其他程序的運(yùn)行。中斷模塊流程圖:五、 課程設(shè)計(jì)體會(huì)本設(shè)計(jì)是以溫度采集及控制過(guò)程設(shè)計(jì)為總目標(biāo),以89C51單片機(jī)最小應(yīng)用系統(tǒng)為總控制中心,輔助設(shè)計(jì)有溫度采樣電路、LED數(shù)碼管動(dòng)態(tài)串行顯示、LCD液晶屏顯示、16X16點(diǎn)陣屏顯
19、示,二極管發(fā)光顯示,蜂鳴器報(bào)警等。本設(shè)計(jì)的重點(diǎn)、難點(diǎn)是:(1) 要掌握溫度傳感器的原理、結(jié)構(gòu)、應(yīng)用等;(2) 考慮從非電量信號(hào)到電量信號(hào)的電路實(shí)現(xiàn)原理以及與單片機(jī)的接口;(3) 熟悉MCS-51編程的技術(shù),實(shí)現(xiàn)單片機(jī)對(duì)溫度的調(diào)節(jié)控制;(4) 整體電路的仿真調(diào)試。經(jīng)過(guò)十天的資料查找和設(shè)計(jì),我已完成了計(jì)算機(jī)控制的課程設(shè)計(jì)。本文設(shè)計(jì)了溫度報(bào)警系統(tǒng),介紹了溫度檢測(cè)等控制器的硬件電路設(shè)計(jì)到軟件設(shè)計(jì)的一系列步驟。本設(shè)計(jì)采用89C51單片機(jī)作為控制芯片,輔助鍵盤(pán)和顯示,實(shí)現(xiàn)了溫度檢測(cè)和報(bào)警的功能??v觀整個(gè)設(shè)計(jì)系統(tǒng),我更加熟悉了對(duì)89C51單片機(jī)的了解與認(rèn)識(shí),深切的將課堂中所學(xué)的理論知識(shí)運(yùn)用到實(shí)踐中,這是一個(gè)
20、非常好的機(jī)會(huì),我也很看重,如果沒(méi)有這次的課程設(shè)計(jì),我對(duì)單片機(jī)的學(xué)習(xí)還是一直是課堂中的認(rèn)識(shí),無(wú)法真真實(shí)實(shí)的了解一個(gè)單片機(jī)的運(yùn)行狀況,這次課程設(shè)計(jì)對(duì)我以后也有很大的影響。在論文完成之際,我要對(duì)各位老師和各位學(xué)長(zhǎng)表示最真摯的謝意。老師工作認(rèn)真、嚴(yán)謹(jǐn)治學(xué),學(xué)長(zhǎng)耐心指導(dǎo),無(wú)私奉獻(xiàn),在老師和學(xué)長(zhǎng)的帶領(lǐng)下,我們圓滿(mǎn)的完成了這次課程設(shè)計(jì),參考文獻(xiàn):【1】鐘曉偉,宋哲存,基于單片機(jī)的實(shí)驗(yàn)是溫濕度控制系統(tǒng)設(shè)計(jì) A 林業(yè)機(jī)械與木工設(shè)備【2】葉景,基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì) 經(jīng)驗(yàn)與交流,2008【3】李丹妮,單片機(jī)溫度控制系統(tǒng)設(shè)計(jì)J九江學(xué)院報(bào)2005【4】劉篤仁,韓保君,傳感器原理及應(yīng)用技術(shù) 西安電子科技大學(xué)出版
21、社,2008【5】李建民.單片機(jī)在溫度控制系統(tǒng)中的應(yīng)用N.湖北:江漢大學(xué)學(xué)報(bào),1996:9.【6】胡漢才.單片機(jī)原理及接口技術(shù)M.北京:清華大學(xué)出版社,1996:5. 【7】邵敏權(quán).單片機(jī)原理實(shí)驗(yàn)及應(yīng)用M.吉林:吉林科學(xué)技術(shù)出版社,1995:3.【8】付家才.單片機(jī)控制工程實(shí)踐技術(shù)M.北京:化學(xué)工業(yè)出版社,2004:12.【9】彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例M.北京:北京航空航天大學(xué)出版社,2010:5.附錄:#include#include#include code unsigned char cod6=1,2,3,4,5,6;unsigned char cod16;unsigned
22、 char cod26=0,0,0,0,0,0;#define PD1 61 / 122/2 分成左右兩半屏(122x32)unsigned char Column;unsigned char Page_ ; / 頁(yè)地址寄存器 D1,DO:頁(yè)地址unsigned char Code_ ; / 字符代碼寄存器unsigned char Command; / 指令寄存器unsigned char LCDData; / 數(shù)據(jù)寄存器xdata unsigned char CWADD1 _at_ 0x9000; / 寫(xiě)指令代碼地址(E1)xdata unsigned char DWADD1 _at_ 0
23、x9001; / 寫(xiě)顯示數(shù)據(jù)地址(E1)xdata unsigned char CRADD1 _at_ 0x9002; / 讀狀態(tài)字地址(E1)xdata unsigned char DRADD1 _at_ 0x9003; / 讀顯示數(shù)據(jù)地址(E1)xdata unsigned char CWADD2 _at_ 0x9004; / 寫(xiě)指令代碼地址(E2)xdata unsigned char DWADD2 _at_ 0x9005; / 寫(xiě)顯示數(shù)進(jìn)地址(E2)xdata unsigned char CRADD2 _at_ 0x9006; / 讀狀態(tài)字地址(E2)xdata unsigned ch
24、ar DRADD2 _at_ 0x9007; / 讀顯示數(shù)據(jù)地址(E2)xdata unsigned char RowLow _at_ 0xb002; /行低八位地址xdata unsigned char RowHigh _at_ 0xb003; /行高八位地址xdata unsigned char ColLow _at_ 0xb000; /列低八位地址xdata unsigned char ColHigh _at_ 0xb001; /列高八位地址#define uchar unsigned char#define uint unsigned intunsigned int CurTemp;s
25、bit IN=P10;sbit WarLed=P12;sbit RUN=P14;sbit WAR = P16;unsigned int b;unsigned int a;unsigned int c;unsigned char w=1;unsigned char v=1;unsigned int bitmask ;/*數(shù)碼表*/unsigned char LEDBUF6= 0x00,0x00,0x00,0x00,0x00,0x00;code unsigned int LEDMAP = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x
26、6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;code uchar CRYSTALTAB32 = /*- 文字: 行 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x40,0x10,0xA0,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xFC,0x11,0x02,0x14,0xFE,0x17,0x00,0x90,0xF8,0x51,0x08,0x31,0xF8,0x11,0x00,0x10,0xFE,0x0B,0x20,0x0C,0x40,0x08,/*- 文字: 停 -*/*- 宋體12; 此字體下對(duì)應(yīng)的
27、點(diǎn)陣為:寬x高=16x16 -*/0x40,0x10,0xA0,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x90,0x20,0x50,0x20,0x30,0xFE,0x1B,0x00,0x0C,0x00,0x88,0x00,0x40,0xFC,0x31,0x00,0x1C,0x00,0x08,;/數(shù)字字庫(kù)code unsigned char NUMTAB16=/*- 文字: 0 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00
28、,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*- 文字: 1 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*- 文字: 2 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*- 文字: 3 -*/*
29、- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*- 文字: 4 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*- 文字: 5 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0xF8,0x08,0x88
30、,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,/*- 文字: 6 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,/*- 文字: 7 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00
31、,0x00,0x00,/*- 文字: 8 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*- 文字: 9 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,/*- 文字: . -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x
32、16 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,/*- 文字: c -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x60,0x60,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,;/ 中文字模庫(kù) 16x16點(diǎn)陣code unsigned char CHARCCTERTAB32 =/*- 文字: 設(shè) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=1
33、6x16 -*/0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,/*- 文字: 定 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x10,0x0C,0xA4,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x14,0x0C,0x04,0x00,0x40,0
34、x20,0x18,0x07,0x08,0x10,0x20,0x7F,0x42,0x42,0x42,0x42,0x40,0x40,0x00,0x00,/*- 文字: 報(bào) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xFF,0xC1,0x41,0x41,0x49,0x51,0xCF,0x00,0x00,0x01,0x41,0x80,0x7F,0x00,0x00,0x00,0xFF,0x40,0x23,0x14,0x1C,0x33,0x60,0x20,0x00,/*- 文字: 警 -*/*- 宋體12
35、; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x20,0x1A,0xFA,0xAF,0xAA,0xEF,0x0A,0xFA,0x10,0x8F,0x54,0x24,0x5C,0x84,0x04,0x00,0x02,0x02,0x02,0xEA,0xAA,0xAA,0xAB,0xAA,0xAB,0xAA,0xAA,0xEA,0x02,0x02,0x03,0x00,/*- 文字: 溫 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x0
36、0,0x00,0x00,0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,/*- 文字: 度 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,;/
37、*數(shù)碼表*/*延時(shí)程序*/void Delay(uchar CNT) uchar i; while (CNT- !=0) for (i=100; i !=0; i-);/*延時(shí)程序*/*DS18B20讀取溫度程序*/unsigned char Ds18b20Init()unsigned int i;IN=0; /將總線(xiàn)拉低480us960usi=70;while(i-);/延時(shí)642usIN=1;/然后拉高總線(xiàn),如果DS18B20做出反應(yīng)會(huì)將在15us60us后總線(xiàn)拉低i=0;while(IN)/等待DS18B20拉低總線(xiàn)i+;if(i5000)/等待5MSreturn 0;/初始化失敗ret
38、urn 1;/初始化成功void Ds18b20WriteByte(unsigned char dat)unsigned int i,j;for(j=0;j=1;unsigned char Ds18b20ReadByte()unsigned char byte,bi;unsigned int i,j;for(j=8;j0;j-)IN=0;/先將總線(xiàn)拉低1usi+;IN=1;/然后釋放總線(xiàn)i+;i+;/延時(shí)6us等待數(shù)據(jù)穩(wěn)定bi=IN; /讀取數(shù)據(jù),從最低位開(kāi)始讀取/*將byte左移一位,然后與上右移7位后的bi,注意移動(dòng)之后移掉那位補(bǔ)0。*/byte=(byte1)|(bi7); i=4;/讀
39、取完之后等待48us再接著讀取下一個(gè)數(shù)while(i-);return byte;void Ds18b20ChangTemp()Ds18b20Init();Delay(1);Ds18b20WriteByte(0xcc);/跳過(guò)ROM操作命令 Ds18b20WriteByte(0x44); /溫度轉(zhuǎn)換命令 void Ds18b20ReadTempCom()Ds18b20Init();Delay(1);Ds18b20WriteByte(0xcc); /跳過(guò)ROM操作命令Ds18b20WriteByte(0xbe); /發(fā)送讀取溫度命令int Ds18b20ReadTemp()int temp=0;
40、unsigned char tmh,tml;Ds18b20ChangTemp();/先寫(xiě)入轉(zhuǎn)換命令Ds18b20ReadTempCom();/然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令tml=Ds18b20ReadByte();/讀取溫度值共16位,先讀低字節(jié)tmh=Ds18b20ReadByte();/再讀高字節(jié)temp=tmh;temp= 1; k = XBYTE0x8001 & 0x0f; while (-i != 0) & (k = 0);/ 鍵值 = 列 x 4 + 行 if (k != 0) i *= 4; if (k & 2) i += 1; else if (k & 4) i += 2;
41、 else if (k & 8) i += 3; XBYTE0x8002 = 0; do Delay(100); while (TestKey(); / 等鍵釋放 return(KeyTablei); / 取出鍵碼 else return(0xff);/*鍵盤(pán)掃描程*/ /*LCD液晶屏顯示程序*/ 1.寫(xiě)指令代碼子程序(E1)void WriteCommandE1() while(CRADD1 & 0x80); CWADD1 = Command;/ 2.寫(xiě)顯示數(shù)據(jù)子程序(E1)void WriteDataE1() while(CRADD1 & 0x80); DWADD1 = LCDData;
42、/ 3.讀顯示數(shù)據(jù)子程序(E1)void ReadDataE1() while(CRADD1 & 0x80); LCDData = DRADD1;/ 4.寫(xiě)指令代碼子程序(E2)void WriteCommandE2() while(CRADD2 & 0x80); CWADD2 = Command;/ 5.寫(xiě)顯示數(shù)據(jù)子程序(E2)void WriteDataE2() while(CRADD2 & 0x80); DWADD2 = LCDData;/ 6.讀顯示數(shù)據(jù)子程序(E2)void ReadDataE2() while(CRADD2 & 0x80); LCDData = DRADD2;/ L
43、CD液晶屏初始化程序void Init() RUN=1; Command = 0xe2; WriteCommandE1(); WriteCommandE2(); Command = 0xa4; WriteCommandE1(); WriteCommandE2(); Command = 0xa9; WriteCommandE1(); WriteCommandE2(); Command = 0xa0; WriteCommandE1(); WriteCommandE2(); Command = 0xc0; WriteCommandE1(); WriteCommandE2(); Command = 0
44、xaf; WriteCommandE1(); WriteCommandE2();/ LCD液晶屏清屏void Clear() unsigned char i,j; i = 0; do Command = (i + 0xb8); / 頁(yè)地址設(shè)置 WriteCommandE1(); WriteCommandE2(); Command = 0x00; / 列地址設(shè)置為0 WriteCommandE1(); WriteCommandE2(); j = 0x50; / 一頁(yè)清 80個(gè)字節(jié) do LCDData = 0x00; / 顯示數(shù)據(jù)為0 WriteDataE1(); WriteDataE2();while(-j !=0); / 頁(yè)內(nèi)字節(jié)清零循環(huán) while(+i !=4); / 頁(yè)地址暫存器加一 / 顯示區(qū)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材用戶(hù)參與度提升策略實(shí)踐考核試卷
- 塑料鞋生產(chǎn)效率統(tǒng)計(jì)與分析考核試卷
- 數(shù)學(xué)空間想象力培養(yǎng)教具考核試卷
- 供應(yīng)鏈大數(shù)據(jù)分析在供應(yīng)鏈中的應(yīng)用案例解析考核試卷
- 北京車(chē)牌借用合同范本
- 蔬菜購(gòu)銷(xiāo)合同范本
- 藥店店員培訓(xùn)課件
- 冷庫(kù)設(shè)備銷(xiāo)售合同范本
- 靜脈輸液的基本操作流程
- 數(shù)據(jù)傳輸網(wǎng)絡(luò)安全合作協(xié)議之?dāng)?shù)據(jù)傳輸保護(hù)服務(wù)合同
- 宮頸癌化療患者的護(hù)理
- 車(chē)間主任考核表實(shí)用文檔
- 提高領(lǐng)導(dǎo)干部的溝通能力
- 《航空公司服務(wù)質(zhì)量改善研究8800字(論文)》
- GB/T 9124-2010鋼制管法蘭技術(shù)條件
- GB/T 4117-2008工業(yè)用二氯甲烷
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 人教PEP版英語(yǔ)五年級(jí)下冊(cè)第四單元全部課件
- 硬筆書(shū)法 社團(tuán)教案
- 中國(guó)膿毒癥及膿毒性休克急診治療指南
- 工序標(biāo)準(zhǔn)工時(shí)及產(chǎn)能計(jì)算表
評(píng)論
0/150
提交評(píng)論