基于51單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)1. 設(shè)計(jì)要求要求設(shè)計(jì)一個(gè)溫度測(cè)量系統(tǒng), 在超過限制值的時(shí)候能進(jìn)行聲光報(bào)警。 具體設(shè) 計(jì)要求如下: 數(shù)碼管或液晶顯示屏顯示室內(nèi)當(dāng)前的溫度; 在不超過最高溫度的情況下, 能夠通過按鍵設(shè)置想要的溫度并顯示; 設(shè)有四個(gè) 按鍵,分別是設(shè)置鍵、加 1 鍵、減 1 鍵和啟動(dòng) /復(fù)位鍵; DS18B20溫度采集; 超過設(shè)置值的C時(shí)發(fā)出超限報(bào)警,采用聲光報(bào)警,上限報(bào)警用紅燈指示,下 限報(bào)警用黃燈指示,正常用綠燈指示。2. 方案論證根據(jù)設(shè)計(jì)要求,本次設(shè)計(jì)是基于單片機(jī)的課程設(shè)計(jì), 由于實(shí)現(xiàn)功能比擬簡(jiǎn)單, 我們學(xué)習(xí)中接觸到的 51 系列單片機(jī)完全可以實(shí)現(xiàn)上述功能,因此可以選用 AT89C

2、51單片機(jī)。溫度采集直接可以用設(shè)計(jì)要求中所要求的DS18B20。報(bào)警和指示模塊中,可以選用 3 種不同顏色的 LED 燈作為指示燈,報(bào)警鳴笛采用蜂鳴 器。顯示模塊有兩種方案可供選擇。方案一:使用 LED 數(shù)碼管顯示采集溫度和設(shè)定溫度;方案二:使用 LCD 液晶顯示屏來顯示采集溫度和設(shè)定溫度。LED 數(shù)碼管結(jié)構(gòu)簡(jiǎn)單,使用方便,但在使用時(shí),假設(shè)用動(dòng)態(tài)顯示那么需要不斷 更改位選和段選信號(hào), 且顯示時(shí)數(shù)碼管不斷閃動(dòng), 使人眼容易疲勞; 假設(shè)采用靜態(tài) 顯示那么又需要更多硬件支持。 LCD 顯示屏可識(shí)別性較好,背光亮度可調(diào),而且 比 LED 數(shù)碼管顯示更多字符, 但是編程要求比 LED 數(shù)碼管要高。綜合考

3、慮之后, 我選用了 LCD 顯示屏作為溫度顯示器件,由于顯示字符多,在進(jìn)行上下限警戒 值設(shè)定時(shí)同樣可以采集并顯示當(dāng)前溫度, 可以直觀的看到實(shí)際溫度與警戒溫度的 比照。 LCD 顯示模塊可以選用 RT1602C。3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)要求,硬件系統(tǒng)主要包含6個(gè)局部,即單片機(jī)時(shí)鐘電路、復(fù)位電路、 鍵盤接口模塊、溫度采集模塊、LCD顯示模塊、報(bào)警與指示模塊。其相互聯(lián)系 如下列圖1所示:圖2單片機(jī)內(nèi)部時(shí)鐘方式電路圖1硬件電路設(shè)計(jì)框圖3.1單片機(jī)時(shí)鐘電路形成單片機(jī)時(shí)鐘信號(hào)的方式有內(nèi)部 時(shí)鐘方式和外部時(shí)鐘方式。本次設(shè)計(jì)米用 內(nèi)部時(shí)鐘方式,如圖2所示。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器 的高增益反相放大器,引腳

4、XTAL1和圖3單片機(jī)按鍵復(fù)位電路XTAL2分別為此放大器的輸入端和輸出 端,其頻率X圍為1.212MHz,經(jīng)由片 外晶體振蕩器或陶瓷振蕩器與兩個(gè)匹配 電容一起形成了一個(gè)自激振蕩電路,為單片機(jī)提供時(shí)鐘源。時(shí)也為了系統(tǒng)調(diào)試方便,需要設(shè)計(jì)一個(gè)復(fù)位電路單片機(jī)的復(fù)位電路有上電復(fù)位和按鍵復(fù)位兩種形式, 因?yàn)楸敬卧O(shè)計(jì)要求需要 有啟動(dòng)/復(fù)位鍵,因此本次設(shè)計(jì)采用按鍵復(fù)位,如圖3。復(fù)位電路主要完成系統(tǒng)的 上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)用戶的按鍵復(fù)位功能。3.3鍵盤接口模塊本次設(shè)計(jì)需要的按鍵有4個(gè),除去 一個(gè)復(fù)位按鍵外,還有3個(gè)功能按鍵, 因此選擇獨(dú)立式鍵盤。如圖 4,將鍵盤 直接與單片機(jī)P1 口的P1.0、P1.1、P

5、1.2 相連。3個(gè)鍵設(shè)計(jì)思路如下:當(dāng)按下S1 鍵時(shí),系統(tǒng)進(jìn)入上下限警戒值調(diào)整狀 態(tài);當(dāng)?shù)谝淮伟聪耂1鍵時(shí),進(jìn)行上限 警戒值設(shè)定,當(dāng)?shù)诙伟聪?S1鍵時(shí), 進(jìn)行下限警戒值設(shè)定,當(dāng)?shù)谌伟聪?S1鍵時(shí),回到正常工作狀態(tài)。在警戒值調(diào) 整狀態(tài)下,按下S2鍵,上下限警戒值加1,按下S3鍵,上下限警戒值減1,正 常工作狀態(tài)下,按下S2和S3鍵無作用。GND三1o aS2oS33457P10 P11P12卩口P14圖4鍵盤接口模塊3.4溫度采集模塊本次設(shè)計(jì)中的溫度傳感器使用的是 DALLAS公司的單總線數(shù)字溫度傳感器DS18B20,這是一種常用的溫度傳感器,具有體積小、硬件開銷低、抗干擾能力 強(qiáng)、精度高的特

6、點(diǎn)。DS18B20采用獨(dú)特的一線接口,具有只需要一條口線通信多點(diǎn)的能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用,無需外部元件??捎脭?shù)據(jù)總線供電,電壓X圍為3.0V至5.5V,測(cè)量溫度的X圍為-55C至+125 C,在-10C至+85CX圍內(nèi)精度為 )5C。溫度傳感器可編程的分辨率為912位,溫度轉(zhuǎn)換為12位數(shù)字格式最大值為 750毫秒,用戶可定義的非易失性溫度報(bào)警設(shè)置,應(yīng)用X圍包括恒溫控制、工業(yè)系統(tǒng)、消費(fèi)電子產(chǎn)品溫度計(jì)、或任何熱敏感系統(tǒng)。由于DS18B20是一條口線通信,所以中央微處理器與DS18B20只有一個(gè)一條口線連接。因?yàn)槊恳粋€(gè)DS18B20 的包含一個(gè)獨(dú)特的序號(hào),多個(gè) DS18B20可以同時(shí)存在于一

7、條總線,這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測(cè)建筑物 內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過程監(jiān)測(cè)和控制。DALLAS DSW20DS IKB20 To-yiNC LU NG ! vM czn dq m功能GND接地?cái)?shù)將輸入/輸出,對(duì)于單線操 作:漏極開路。當(dāng)工作在寄生 電源模式時(shí)用來提供電源。VDD可選的VDD弓IH1。工作于寄 生電源按式時(shí)VDD必須接地心B NC 7 II NC6 | I NC 5 hl 1 GhlD圖6 DS18B20外部電源連接方式圖5 DS18B20封裝與引腳DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶可編程的9

8、、10、11或12位,分別以05C, 0.25C, 0.125C和0.0625C 增量遞增。在上電狀態(tài)下默認(rèn)的精度為 12位。DS18B20啟動(dòng)后保持低功耗等待 狀態(tài);當(dāng)需要執(zhí)行溫度測(cè)量和 AD轉(zhuǎn)換時(shí),總線控制器必須發(fā)出44h命令。在 那之后,產(chǎn)生的溫度數(shù)據(jù)以兩個(gè)字節(jié)的形式被存儲(chǔ)到高速暫存器的溫度存放器 中,DS18B20繼續(xù)保持等待狀態(tài)。當(dāng)DS18B20由外部電源供電時(shí),總線控制器 在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)序 ,DS18B20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié) 束返回1。如果DS18B20由寄生電源供電,除非在進(jìn)入溫度轉(zhuǎn)換時(shí)總線被一個(gè) 強(qiáng)上拉拉高,否那么將不會(huì)由返回值。在硬件上,DS18B20

9、與單片機(jī)的連接有兩種方法:一種是VDD接外部電源, GND接地,DQ與單片機(jī)的I/O 口相連;另一種是用寄生電源供電,此時(shí),VDD、 GND接地,DQ接單片機(jī)的I/O 口。無論 是接外部電源還是用內(nèi)部寄生電源,I/O口線要接5kQ左右的上拉電阻。本次設(shè)計(jì)中,采用外部電源方式,其連接方式如圖6所示。單總線DQ端接單 片機(jī)的P1.7 口,DQ端接一個(gè)4.7k Q的上 拉電阻,這樣單總線DQ在閑置狀態(tài)時(shí)為 高電平。3.5LCD顯示模塊在本次設(shè)計(jì)中,使用 RT1602C字符型液晶顯示模塊(LCM)來設(shè)計(jì)當(dāng)前溫度 和上下限警戒值的顯示電路。RT1602C字符型液晶顯示模塊是16字X 2行的采用5X 7點(diǎn)

10、陣圖形來顯示字 符的液晶顯示器,采用標(biāo)準(zhǔn)的16腳接口,其引腳定義如圖7所示。引腳號(hào)引腳名說明引腳號(hào)引腳名說明1GND/V ss電源地7D08位雙向數(shù)據(jù)線2Vdd+5V電源8D13Vl液晶顯示偏壓信號(hào)9D24RS數(shù)據(jù)/命令控制,H/L10D35R/W讀/寫控制,H/L11D46E使能端12D515BLA背光源正極13D616BLK背光源負(fù)極14D7圖7 RT1602C的引腳定義RT1602C的內(nèi)部結(jié)構(gòu)可以分為3個(gè)局部:LCD控制器、LCD驅(qū)動(dòng)器、LCD顯示器,其中LCD控制器采用的是HD44780。RT1602C與單片機(jī)的連線如圖8所示。圖8RT1602C與單片機(jī)連線LCM的數(shù)據(jù)總線與單片機(jī)的P

11、0 口通過一個(gè)上拉電阻排相連,LCM的三條 控制線RS、RW、EN分別與單片機(jī)的I/O 口 P2.0 P2.1、P2.2相連,第1、2引 腳分別與地、電源相連,第3引腳使用一個(gè)10kQ的可調(diào)電阻對(duì)顯示屏的明亮進(jìn) 行調(diào)整。3.6報(bào)警與指示模塊在本次設(shè)計(jì)中,采用 LED發(fā)光二極管作為系統(tǒng)指 示燈,采用蜂鳴器作為報(bào)警 鳴笛。當(dāng)溫度高于上限警戒 值時(shí),點(diǎn)亮紅色發(fā)光二極管, 蜂鳴器發(fā)出響聲;當(dāng)溫度低 于下限警戒值時(shí),點(diǎn)亮黃色 發(fā)光二極管,蜂鳴器發(fā)出響聲;溫度在正常X圍內(nèi)時(shí),圖9報(bào)警與指示模塊點(diǎn)亮黃色發(fā)光二極管。整個(gè)報(bào)警與指示電路如圖 9所示,其中綠、紅、黃色指示 燈分別接單片機(jī)P2.0、P2.1、P2.

12、2 口,電平拉低時(shí)點(diǎn)亮 LED,蜂鳴器電路接單 片機(jī)的P2.7 口,電平拉高時(shí)蜂鳴器響。至此便完成了整個(gè)硬件電路的設(shè)計(jì)工作,整個(gè)系統(tǒng)的原理圖見附錄二,系統(tǒng)I/O分配表如下:I/O 口功能說明I/O 口功能說明P0.0P0.7LCM數(shù)據(jù)口P2.1LCM讀/寫控制P1.0P1.3鍵盤輸入P2.2LCM使能P1.7DS18B20溫度米集P2.4P2.6LED信號(hào)輸出P2.0LCM數(shù)據(jù)/命令控制P2.7報(bào)警信號(hào)輸出4軟件設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,軟件設(shè)計(jì)占有重要的位置。在本次設(shè)計(jì)中,根據(jù) 功能要求,可以把系統(tǒng)程序劃分為5個(gè)模塊,即主程序模塊、顯示模塊、溫度測(cè) 量模塊、鍵盤掃描模塊、其它子程序模塊,如

13、圖 10所示。圖10軟件設(shè)計(jì)框圖4.1主程序設(shè)計(jì)主程序的內(nèi)容包括單片機(jī)初始化、相關(guān)部件初始化和一些其它子程序的調(diào)用等。主程序清單如下,程序流程圖如圖11所示主程序開始初始化單片機(jī)/LCD初始化初始化顯示模塊1r鍵盤掃描讀取溫度J1顯示字形轉(zhuǎn)換顯示初始化溫度傳感器圖11主程序流程圖void ma in (void)P仁 Oxff;P2|=0x70;P2&=0x7f;Temp_set 仁90;Temp_set2=10;Delay(500); ini t_LCD();in it_18B20();Display_str(0,0,str2);Display_str(0,1,str2);Delay(200

14、0);/初始化P1 口以便讀入/上限報(bào)警溫度初值90/下限報(bào)警溫度初值10/延時(shí)500ms啟動(dòng)/DS18B20初始化/開機(jī)界面/開機(jī)界面Display_str(0,0,str0);Display_str(0,1,str1);while(1)Key_sca n();/掃描鍵盤Read_temp();讀取溫度Cha nge();Display();/顯示Alarm();/指示燈與報(bào)警程序Delay(1000);4.2顯示模塊顯示程序主要完成的功能是模式、上下限警戒值和測(cè)量溫度值的顯示,模塊 中包含LCD初始化、顯示單個(gè)字符子函數(shù)、顯示一個(gè)字符串子函數(shù)。程序流程 圖如圖12所示,LCD初始化程序如下

15、,其它子函數(shù)程序詳見附錄一。*LCD初始化void ini t_LCD(void)P0=0;Delay(15);LCD_Comma nd(0x38,0);Delay(5);LCD_Comma nd(0x38,0);Delay(5);LCD_Comma nd(0x38,0);圖12顯示程序流程圖Delay(5);LCD_Command(0x38,1); 8位數(shù)據(jù)傳送,2行顯示,5*7字形LCD_Comma nd(0x08,1); / 關(guān)閉顯示LCD_Comma nd(OxO1,1); / 清屏LCD_Comma nd(0x06,1); /顯示光標(biāo)右移設(shè)置LCD_Comma nd(0x0c,1);

16、 /顯示屏翻開,光標(biāo)不顯示不閃爍 4.3溫度測(cè)量模塊溫度測(cè)量程序主要功能是讀出數(shù)字溫度傳感器的溫度值。要正確地讀出溫度值必須嚴(yán)格遵守單總線器件的命令序列,否那么單總線器件不會(huì)響應(yīng)主機(jī)。單總線器件 的命令序列如圖13所示。溫度測(cè)量模塊程序流程圖如圖14所示,DS18B20初始化程序如下,其它子程序詳見附錄DS18B20初始化*/圖14溫度測(cè)量程序流程圖圖13單總線命令序列void in it_18B20(void) uchar x=0;DQ=1;/DQ 復(fù)位Delay_us(4);延時(shí)DQ=0;/將DQ拉低Delay_us(250);精確延時(shí)大于 480usDQ=1;/拉高總線Delay_us(

17、40);x=DQ;Delay_us(20);4.4鍵盤掃描模塊本次設(shè)計(jì)中使用了 4個(gè)按鍵,除了 1個(gè)復(fù)位鍵還有3個(gè)功能鍵,具體功能前 面已介紹。鍵盤掃描程序如下,其它子程序詳見附錄一,相關(guān)流程圖如圖 15所 示。鍵盤掃描void Key_sca n(v oid)uchar temp;P仁 Oxff;if(P1!=Oxff)Delay(20); /延時(shí)消抖if(P1!=0xff)temp=P1;switch(temp) case 0xfe:Key_set();break;/P1.0按下,功能選擇case 0xfd:Key_i nc();break;/P1.1按下,數(shù)字加一case 0xfb:Ke

18、y_dec();break;圖15鍵盤掃描程序流程圖default:break;/P1.2按下,數(shù)字減一4.5其它子程序程序中使用的其它子程序,包括延時(shí)子程序、顯示字符轉(zhuǎn)換子程序等,具體 詳見附錄一。5. 仿真分析在本次的設(shè)計(jì)中,使用了 Proteus仿真軟件進(jìn)行了功能測(cè)試,具體仿真步驟 與分析如下。(1)按照原理圖,從Proteus元件庫(kù)中找出對(duì)應(yīng)元件,搭建硬件仿真電路,將程序 燒寫到單片機(jī)中,仿真圖見附錄三。(2)點(diǎn)擊運(yùn)行按鈕開始仿真,初始上下限值為90C和10C,當(dāng)前溫度為25C,當(dāng)前模式為N正常工作,綠燈亮,蜂鳴器不響,如圖 16iPbrn * 謁lPl j!ku WAl rn su-

19、nr l-l鼻卄pg* 肝“A#中眸“曲砂ra fst 沖鼻ThFi tJJTT hfc w Ml 內(nèi) rgviri z、Hihr$0C LOWT IOC nodfreh D:25CRF1圖16正常模式下仿真圖也色邨H按下S1鍵,進(jìn)入上限警戒值設(shè)置模式 H,此時(shí)按S2、S3鍵可以進(jìn)行上限值圖17上限值設(shè)定仿真圖設(shè)定,同時(shí)溫度正常顯示,設(shè)置上限值 80C,如圖17(4)再次按下S1鍵,進(jìn)入下限警戒值設(shè)置模式 L,此時(shí)按S2、S3鍵可以進(jìn)行下限值設(shè)定,同時(shí)溫度正常顯示,設(shè)置下限值20C,如圖18J 1 - 1 J S-T.p d H “口氣 X* T 夢(mèng)需幫 :f;smDiLEEELLOW圖18下

20、限值設(shè)定仿真圖(5)再次按下S1鍵,返回正常模式N,調(diào)節(jié)DS18B20溫度,測(cè)量溫度隨之改變,降低溫度,超過下限值5C以下時(shí),黃燈亮,蜂鳴器報(bào)警,如圖 19。巧F 3 J JFTI d J mlr7 ! 宀 III id* PS rj iri圖19下限報(bào)警仿真圖(6)升高溫度,超過上限值5C以上時(shí),黃燈亮,蜂鳴器報(bào)警,如圖20。圖20上限報(bào)警仿真圖(7)按下 S4 鍵,單片機(jī)復(fù)位。在本次仿真中, 可以看出, 本次設(shè)計(jì)的硬件電路和軟件程序均能成功仿真出 來,設(shè)計(jì)要求的各種功能均已到達(dá)。6. 總結(jié)本次課程設(shè)計(jì)為期一周, 到此已全部結(jié)束。 回想一周中的設(shè)計(jì)過程, 我深深 感覺收獲良多。 由于從前只是

21、在理論上學(xué)習(xí)了單片機(jī)以與各種其它知識(shí), 即使是 實(shí)驗(yàn)也只是按照實(shí)驗(yàn)指導(dǎo)書進(jìn)行操作, 并沒有實(shí)際的獨(dú)立設(shè)計(jì)一個(gè)系統(tǒng), 因此在 剛開始接觸本次課程設(shè)計(jì)時(shí),有一點(diǎn)無從下手的感覺。后來通過查閱相關(guān)資料, 漸漸開始了解課程設(shè)計(jì)的一般過程, 開始明白一些元器件的相關(guān)作用與編程實(shí)現(xiàn) 方法,并在此期間通過不斷深入的學(xué)習(xí)和鍛煉, 開始漸漸能熟練運(yùn)用和熟練編程 起來。通過本次計(jì)算機(jī)控制技術(shù)的課程設(shè)計(jì), 我更深層次的把理論知識(shí)和實(shí)際設(shè)計(jì) 結(jié)合在一起,鍛煉了我的綜合運(yùn)用所學(xué)的專業(yè)根底知識(shí)和解決實(shí)際工程問題的能 力。同時(shí)也提升了我查閱文獻(xiàn)資料、設(shè)計(jì)手冊(cè)、設(shè)計(jì)規(guī) X 以與電腦制圖等其他 知識(shí)能力水平。 對(duì)各種系統(tǒng)的適用條

22、件, 各種設(shè)備的選用標(biāo)準(zhǔn), 各種管道的安裝 方式,我都是隨著設(shè)計(jì)的不斷深入而逐漸熟悉并學(xué)會(huì)應(yīng)用的。 并且,通過對(duì)整體 的掌控,對(duì)局部的取舍, 對(duì)細(xì)節(jié)的斟酌處理, 以與繪圖的技巧都使我在設(shè)計(jì)領(lǐng)域 的能力得到了鍛煉,得到了較豐富經(jīng)驗(yàn)。 最后,通過這次的課程設(shè)計(jì),我也深 刻地認(rèn)識(shí)到, 只有將書本與具體的實(shí)踐相結(jié)合, 才會(huì)有真正的收獲, 才能穩(wěn)固自 己的所學(xué), 認(rèn)識(shí)到自己的缺乏, 同時(shí)我們也要有一種積極學(xué)習(xí)的態(tài)度, 時(shí)代在進(jìn) 步我們也要跟著時(shí)代前進(jìn), 要不斷學(xué)習(xí), 不斷創(chuàng)新, 用自己的知識(shí)與行動(dòng)來證明 自己的價(jià)值。本次課程設(shè)計(jì)以單片機(jī)為核心,介紹了用 DS18B20 溫度傳感器進(jìn)行溫度采 集,并將其傳

23、輸給AT89C51單片機(jī)進(jìn)行處理再送到LCD顯示屏顯示。在此期間 可以通過按鍵進(jìn)行上下限警戒值設(shè)置,通過 LED 和蜂鳴器進(jìn)行指示和報(bào)警。本 文是采用模塊化的方式進(jìn)行表達(dá), 對(duì)各模塊的設(shè)計(jì)進(jìn)行了比擬詳細(xì)地闡述, 并著 重分析硬件搭建過程和系統(tǒng)軟件的設(shè)計(jì)過程,使用單片機(jī) C 語言進(jìn)行程序沒計(jì)。 本次設(shè)計(jì)的基于 DS18B20 的溫度測(cè)量系統(tǒng)是一個(gè)分布式的溫度測(cè)量系統(tǒng),它可 以遠(yuǎn)程對(duì)溫度實(shí)現(xiàn)測(cè)量和監(jiān)控,廣泛應(yīng)用于電力工業(yè)、煤礦、森林、火災(zāi)、高層 建筑等場(chǎng)合。本設(shè)計(jì)應(yīng)用性比擬強(qiáng),可以應(yīng)用在倉(cāng)庫(kù)溫度、大棚溫度、機(jī)房溫度、水池等 的監(jiān)控。當(dāng)然,本次設(shè)計(jì)還存在一些缺乏,例如在本次設(shè)計(jì)中,由于時(shí)間較短, 警

24、戒值只是在199C之間,沒有能夠擴(kuò)展到負(fù)溫度和100C以上;在本次設(shè)計(jì)中 只是用了 4 個(gè)獨(dú)立按鍵, 實(shí)現(xiàn)簡(jiǎn)單的上下限警戒值設(shè)定, 操作較麻煩, 如果能夠 設(shè)計(jì)出多按鍵的矩陣式鍵盤, 那么能夠?qū)囟冗M(jìn)行很方便的設(shè)定。 此外如果把本設(shè) 計(jì)方案擴(kuò)展為多點(diǎn)溫度控制, 加上上位機(jī), 那么可以實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)控系統(tǒng), 將具 有更大的應(yīng)用價(jià)值。7. 參考文獻(xiàn)1 潘新民,王燕芳 . 微型計(jì)算機(jī)控制技術(shù) M. :電子工業(yè), 20212 王迎旭 . 單片機(jī)原理與應(yīng)用 M. :機(jī)械工業(yè), 20213 康華光 . 電子技術(shù)根底 M. :高等教育, 20214 周正華,唐寧 RT1602C 與 FPGA 接口技術(shù) J.

25、 中國(guó)科技信息, 2021(10) 廖琪梅,韓彬等基于DS18B20的溫度測(cè)量?jī)xJ.國(guó)外電子元器件,2021(2)附錄一:程序清單 #include #include #include #define uchar unsigned char #define uint unsigned int #define BUSY 0x80 void Delay(uint); void init_LCD(void); void LCD_Command(uchar,uchar); void LCD_Data(uchar); void ReadyLCD(void); void Display_char(ucha

26、r,uchar,uchar); void Display_str(uchar,uchar,uchar code *Data); void Change(void); void Display(void); void init_18B20(void); uchar Read_18B20(void); void Write_18B20(uchar); void Read_temp(void); void Delay_us(uchar i); void Key_scan(void); void Key_set(void); void Key_inc(void); void Key_dec(void)

27、; void Alarm(void);sbit LCD_RS=P2P;sbit LCD_RW=P2M;sbit LCD_EN=P2A2;sbit DQ=P1A7;sbit Normal=P2A4;sbit Alarm_H=P2A5;sbit Alarm_L=P2A6;sbit Alarm_BEEP=P2A7;uchar Set_flag=0;uchar Temp_mea,Temp_set1,Temp_set2;uchar Temp_high_1,Temp_high_2;uchar Temp_low_1,Temp_low_2;uchar Temp_true_1,Temp_true_2;exter

28、n uchar code str0=High: C Low: C; extern uchar code str1=Mode:Deg: C;extern uchar code str2= Hellow! ; extern uchar code str3=0123456789; extern uchar code mode=NHL;主程序/ 上限報(bào)警溫度初值 90/ 下限報(bào)警溫度初值 10/ 延時(shí) 500ms 啟動(dòng)void main(void)P1=0xff;P2|=0x70;P2&=0x7f;Temp_set1=90;Temp_set2=10;Delay(500);init_LCD();/LCD

29、 初始化init_18B20();/DS18B20 初始化Display_str(0,0,str2);/ 開機(jī)界面Display_str(0,1,str2);/ 開機(jī)界面Delay(2000);Display_str(0,0,str0);Display_str(0,1,str1);while(1)延時(shí) kmsKey_scan();/ 掃描鍵盤Read_temp();/ 讀取溫度Change();Display();/ 顯示Alarm();/ 指示燈與報(bào)警程序Delay(1000);void Delay(uint k)uint i,j;for(i=0;ik;i+)for(j=0;j60;j+)*

30、顯示模塊*LCD初始化void init_LCD(void)P0=0;Delay(15);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,1); /8 位數(shù)據(jù)傳送, 2 行顯示, 5*7 字形LCD_Command(0x08,1); / 關(guān)閉顯示LCD_Command(0x01,1); / 清屏LCD_Command(0x06,1); / 顯示光標(biāo)右移設(shè)置LCD_Command(0x0c,1); / 顯示屏翻開,光標(biāo)不顯示不閃爍寫指令數(shù)

31、據(jù)到 LCD*/void LCD_Command(uchar LC,uchar BC) if(BC) ReadyLCD();P0=LC;LCD_RS=0; / 選中指令存放器LCD_RW=0; / 寫模式LCD_EN=1;_nop_();_nop_();_nop_();LCD_EN=0;寫顯示數(shù)據(jù)到 LCD*/void LCD_Data(uchar LD)ReadyLCD();P0=LD;LCD_RS=1; / 選中數(shù)據(jù)存放器LCD_RW=0; / 寫模式LCD_EN=1;_nop_();_nop_();_nop_();LCD_EN=0;檢測(cè)LCD忙狀態(tài)*/void ReadyLCD(void

32、)P0=0xff;LCD_EN=1;LCD_RS=0;LCD_RW=1;_nop_();while(P0&BUSY)LCD_EN=0;_nop_();_nop_();LCD_EN=1;_nop_(); _nop_();LCD_EN=0;顯示個(gè)字符*/void Display_char(uchar X,uchar Y,uchar Data) Y&=0x01;X&=0x0f;if(Y) X|=0x40;X|=0x80;LCD_Command(X,0); LCD_Data(Data);顯示一串字符 */void Display_str(uchar X,uchar Y,uchar code *Data) uchar List=0;Y&=0x01;X&=0x0f; while(X0;i-)DQ=0;_nop_();dat=1;DQ=1;Delay_us(1);if(DQ) dat|=0x80;Delay_us(10);return(dat);/*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論