畢業(yè)設(shè)計(jì)---飲水機(jī)水溫控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  飲水機(jī)水溫控制系統(tǒng)設(shè)計(jì)</p><p>  學(xué) 生 姓 名: </p><p>  學(xué) 號(hào): </p><p>  專 業(yè) 班 級(jí): 09電子信息工程技術(shù)(3)班 </p><p>  指 導(dǎo) 教 師

2、: </p><p><b>  摘 要</b></p><p>  溫度是表征物體冷卻程度的物理量,也是一種最基本的環(huán)境參數(shù)。在農(nóng)工業(yè)生產(chǎn)及日常生活中,對(duì)溫度的測(cè)量及控制始終占據(jù)著極其重要的地位。目前以DS18B20 為代表的新型單總線數(shù)字式溫度傳感器集溫度測(cè)量和A/D轉(zhuǎn)換于一體,直接輸出數(shù)字量,與單片機(jī)接口電

3、路結(jié)構(gòu)簡(jiǎn)單,廣泛使用于距離遠(yuǎn)、節(jié)點(diǎn)分布多的場(chǎng)合,具有較強(qiáng)的推廣應(yīng)用價(jià)值。 基于單片機(jī)的飲水機(jī)溫度控制,也就是要符合人們需求的生活用水,先要把水燒開,然后使水溫保持一定的溫度,此溫度可由用戶自由設(shè)定,方便人們飲用。本文介紹了DS18B20型數(shù)組溫度傳感器內(nèi)部結(jié)構(gòu)以及工作時(shí)序,并提出了以DS18B20和AT89C51為主要器件設(shè)計(jì)的數(shù)字溫度計(jì)審計(jì)方案,時(shí)間證明該數(shù)字溫度計(jì)的測(cè)溫范圍為-50到+110°精度誤差在0.5以內(nèi),

4、具有測(cè)溫精度高,控制性能良好等特點(diǎn)。飲水機(jī)溫控系統(tǒng)是以單片機(jī)(AT89C51)為核心,使用DS18B20對(duì)溫度采進(jìn)行采集、并且控制加熱管進(jìn)行加熱,從而達(dá)到對(duì)溫度的控制,然后使用LED數(shù)碼管顯示。 </p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C51;LED數(shù)碼管;溫度采集芯片DS18B20;PWM</p><p><b>  目錄</b></p>&

5、lt;p><b>  摘 要I</b></p><p><b>  第一章 緒論1</b></p><p>  1.1 題目來(lái)源及意義1</p><p>  1.2 設(shè)計(jì)任務(wù)1</p><p>  第二章 硬件電路設(shè)計(jì)3</p><p>  2.1 系統(tǒng)硬件設(shè)

6、計(jì)總體框架3</p><p>  2.2 AT89C51介紹3</p><p>  2.3 測(cè)溫模塊7</p><p>  2.3.1 DS18B20介紹7</p><p>  2.3.2 DS18B20與AT89C51的連接9</p><p>  2.4 顯示模塊10</p><p&g

7、t;  2.4.1 LED介紹10</p><p>  2.4.2 LED動(dòng)態(tài)顯示原理及與單片機(jī)的連接12</p><p>  2.5 按鍵模塊13</p><p>  2.6 電源模塊14</p><p>  2.6.1 系統(tǒng)供電整體框架14</p><p>  2.6.2 穩(wěn)壓電路的設(shè)計(jì)14</p

8、><p>  2.7 PWM控制模塊15</p><p>  2.8 擴(kuò)展電路17</p><p>  第三章 軟件部分設(shè)計(jì)18</p><p>  3.1 系統(tǒng)整體結(jié)構(gòu)流程18</p><p>  3.2 測(cè)溫部分結(jié)構(gòu)流程20</p><p>  3.3 顯示部分結(jié)構(gòu)流程23</

9、p><p>  3.4 鍵掃子程序結(jié)構(gòu)流程25</p><p>  3.5 加一子程序流程26</p><p>  3.6 PWM控制軟件實(shí)現(xiàn)子程序27</p><p><b>  結(jié) 論28</b></p><p>  附錄一 整體設(shè)計(jì)電路圖29</p><p>

10、  附錄二 程序清單30</p><p><b>  參考文獻(xiàn)36</b></p><p><b>  第一章 緒論</b></p><p>  1.1 題目來(lái)源及意義</p><p>  隨著電子技術(shù)的發(fā)展,特別是大規(guī)模集成電路的產(chǎn)生,給人們的生活帶來(lái)了根本性的變化,如果說(shuō)微型計(jì)算機(jī)的出現(xiàn)使

11、現(xiàn)代的科學(xué)研究得到了質(zhì)的飛躍,那么單片機(jī)技術(shù)的出現(xiàn)則是給現(xiàn)代工業(yè)控制測(cè)控領(lǐng)域帶來(lái)了一次新的革命。目前,單片機(jī)在工業(yè)控制系統(tǒng)諸多領(lǐng)域得到了極為廣泛的應(yīng)用。特別是其中的C51系列單片機(jī)的出現(xiàn),由于它具有極好的穩(wěn)定性,更快和更準(zhǔn)確的運(yùn)算精度。因此,它的出現(xiàn)不但推動(dòng)了工業(yè)的生產(chǎn),也影響著人們的生活、工作和學(xué)習(xí)。</p><p>  基于單片機(jī)的飲水機(jī)溫度控制系統(tǒng),正是順應(yīng)社會(huì)科技發(fā)展的潮流、出于方便人們更舒適的使用飲水機(jī)

12、而設(shè)計(jì)的。它能夠?qū)崟r(shí)監(jiān)控水溫并使用數(shù)碼顯示,給用戶以直接的視覺反饋,而且可以根據(jù)喜好設(shè)置其恒定的溫度,使用簡(jiǎn)單,節(jié)約資源,更具個(gè)性化及人性化,定能得到用戶的喜愛,較之傳統(tǒng)的飲水機(jī)有更廣闊的發(fā)展前景。</p><p><b>  1.2 設(shè)計(jì)任務(wù)</b></p><p>  設(shè)計(jì)一個(gè)基于單片機(jī)的飲水機(jī)的溫度控制系統(tǒng),該系統(tǒng)可以加熱飲用水至沸騰,實(shí)時(shí)檢測(cè)飲水機(jī)水箱的水溫,

13、并且可以通過(guò)數(shù)碼管顯示飲水機(jī)水箱水溫度數(shù),可以通過(guò)鍵盤或開關(guān)設(shè)置水的溫度的上下限,如加熱,當(dāng)溫度在設(shè)定的范圍內(nèi)時(shí)正常工作,當(dāng)?shù)陀谒疁叵孪迺r(shí)控制加熱器加熱;溫度檢測(cè)范圍-50到+110°,精度誤差在0.5以內(nèi),當(dāng)溫度超過(guò)設(shè)定值時(shí)具有示警功能.。</p><p><b>  功能介紹:</b></p><p><b>  將水加熱到沸騰;</b&

14、gt;</p><p><b>  溫度實(shí)時(shí)顯示;</b></p><p>  鍵盤設(shè)定水溫恒定值;</p><p>  根據(jù)水溫與設(shè)定值的差值選擇加熱方式;</p><p><b>  水開、恒溫示警等。</b></p><p>  為完成以上設(shè)計(jì)目標(biāo),主要進(jìn)行的工作有:&

15、lt;/p><p>  介紹系統(tǒng)整體結(jié)構(gòu)及工作原理;</p><p>  對(duì)單片機(jī)、溫度傳感器、數(shù)碼管等硬件電路模塊進(jìn)行調(diào)研學(xué)習(xí);</p><p>  對(duì)硬件開發(fā)板進(jìn)行一系列的功能測(cè)試;</p><p>  編寫系統(tǒng)流程圖及各個(gè)模塊的子程序;</p><p><b>  系統(tǒng)的仿真與調(diào)試。</b>&l

16、t;/p><p>  第二章 硬件電路設(shè)計(jì)</p><p>  基于單片機(jī)的飲水機(jī)溫度控制系統(tǒng)是由硬件和軟件兩大部分組成的。硬件是整個(gè)設(shè)計(jì)的基礎(chǔ),是軟件得以運(yùn)行的載體,主要包括單片機(jī)、測(cè)溫芯片、顯示和按鍵裝置及電源等部分。系統(tǒng)的整體設(shè)計(jì)電路圖參見附錄一,以下對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行詳細(xì)闡述。</p><p>  2.1 系統(tǒng)硬件設(shè)計(jì)總體框架</p><p

17、>  系統(tǒng)主要是由單片機(jī)最小系統(tǒng),測(cè)溫模塊,顯示模塊,按鍵模塊,電源模塊, PWM控制模塊組成。單片機(jī)是核心,單片機(jī)控制并協(xié)調(diào)各個(gè)器件,處理數(shù)據(jù),并最終顯示。 其系統(tǒng)框圖如圖2-1所示:</p><p><b>  圖2- 1系統(tǒng)框圖</b></p><p>  結(jié)合此框圖,其工作流程為:首先由單片機(jī)對(duì)系統(tǒng)進(jìn)行初始化,然后飲水機(jī)開始加熱,至水沸騰,此時(shí)可

18、以設(shè)置給出報(bào)警提示。通過(guò)按鍵模塊設(shè)置用戶希望保持的水的溫度,溫度傳感器DS18B20實(shí)時(shí)監(jiān)測(cè)水溫,并把其監(jiān)測(cè)水溫與設(shè)定值比較,當(dāng)溫度偏離設(shè)定值時(shí),單片機(jī)對(duì)PWM控制模塊發(fā)出控制信號(hào),然后執(zhí)行加熱或不加熱的動(dòng)作,保證水溫始終穩(wěn)定在設(shè)定值附近。整個(gè)過(guò)程,顯示模塊會(huì)實(shí)時(shí)顯示水溫。</p><p>  2.2 AT89C51介紹</p><p>  AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓、

19、性能CMOSS 8位單片機(jī),器件采用ATMEL公司的高度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng)。片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲(chǔ)單元,含4K bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通行接口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,

20、并支持兩種軟件可選的節(jié)電工作模式,空閑方式停止CPU的工作,但允許RAM、定時(shí)/計(jì)數(shù)器、串行通行接口、中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其他所用部件工作直到下一個(gè)硬件復(fù)位。</p><p>  其引腳圖如圖2-2所示:</p><p>  圖2- 2 AT89C51引腳圖</p><p><b>  引腳說(shuō)明:</b

21、></p><p><b>  VCC:供電電壓。</b></p><p><b>  VSS:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng) P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位

22、。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng) FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p>

23、<p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能

24、寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示

25、:</p><p><b>  口管腳 備選功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p>&

26、lt;p>  P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>

27、;  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁

28、止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p>  /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /EA:當(dāng)

29、/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加 12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來(lái)自反向振蕩器的輸出

30、。</p><p><b>  振蕩器特性:</b></p><p>  AT89C51中有一個(gè)構(gòu)成內(nèi)部振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端,這個(gè)放大器與作為反饋原件的片外石英晶體一起構(gòu)成自激振蕩器。振蕩電路參見圖2-3:</p><p>  圖2- 3 單片機(jī)振蕩電路</p><

31、;p>  外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1、C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定。此處使用石英晶體,推薦電容使用30pF+10pF。</p><p><b>  2.3 測(cè)溫模塊</b></p><p>  測(cè)溫模塊采用一種新型的可編程

32、溫度傳感器DS18B20,它能代替模擬溫度傳感器和信號(hào)處理電路,直接與單片機(jī)溝通,完成溫度采集和數(shù)據(jù)處理。DS18B20與AT89C51結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。</p><p>  2.3.1 DS18B20介紹</p><p>  DS18B20是美國(guó)DALLAS公司推出的單總線數(shù)字測(cè)溫芯片。他具有獨(dú)特的

33、單總線接口方式,僅需使用1個(gè)端口就能實(shí)現(xiàn)與單片機(jī)的雙向通訊。采用數(shù)字信號(hào)輸出提高了信號(hào)抗干擾能力和溫度測(cè)量精度。他的工作電壓使用范圍寬(3.0~5.5 V),可以采用外部供電方式,也可以采用寄生電源方式,即當(dāng)總線DQ為高電平時(shí),竊取信號(hào)能量給DS18B20供電。他還有負(fù)壓特性,電源極性接反時(shí),DS18B20不會(huì)因接錯(cuò)線而燒毀,但不能正常工作??梢酝ㄟ^(guò)編程實(shí)現(xiàn)9~12位的溫度轉(zhuǎn)換精度設(shè)置。由表2-1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)

34、轉(zhuǎn)換時(shí)間就越長(zhǎng),在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。 </p><p>  表2-1 DS18B20分辨率與溫度轉(zhuǎn)換的關(guān)系</p><p>  DS18B20采用3腳TO-92封裝,形如三極管,同時(shí)也有8腳SOIC封裝,還有6腳的TSOC封裝,見圖2-4。</p><p>  圖2- 4 DS18B20封裝</p><p>  其測(cè)溫

35、范圍為-55~+125℃,在-10~85℃范圍內(nèi),精度為±0.5℃。每一個(gè)DS18B20芯片的ROM中存放了一個(gè)64位ID號(hào):前8位是產(chǎn)品類型編號(hào),隨后48位是該器件的自身序號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。因此,一條總線上可以同時(shí)掛接多個(gè)DS18B20,實(shí)現(xiàn)多點(diǎn)測(cè)溫系統(tǒng)。另外用戶還可根據(jù)實(shí)際情況設(shè)定非易失性溫度報(bào)警上下限值TH和TL。DS18B20檢測(cè)到溫度值經(jīng)轉(zhuǎn)換為數(shù)字量后,自動(dòng)存入存儲(chǔ)器中,并與設(shè)定值TH或TL進(jìn)

36、行比較,當(dāng)測(cè)量溫度超出給定范圍時(shí),就輸出報(bào)警信號(hào),并自動(dòng)識(shí)別是高溫超限還是低溫超限。</p><p>  DS18B20的5個(gè)功能指令:</p><p> ?。?)溫度轉(zhuǎn)換指令(44H)。這個(gè)命令用于啟動(dòng)溫度轉(zhuǎn)換,無(wú)實(shí)質(zhì)的數(shù)據(jù)要求。如果微控制器在該命令之后輸出讀操作命令,那么DS18B20將使DQ端為低電平,表示DS18B20正忙于溫度轉(zhuǎn)換,不能響應(yīng)該命令。</p><

37、p> ?。?)寫便箋式存儲(chǔ)器(4EH)。寫便箋式存儲(chǔ)器從TH存儲(chǔ)單元開始,三個(gè)字節(jié)的數(shù)據(jù)將被定位在2到4號(hào)便箋式存儲(chǔ)器單元。所有的三個(gè)字節(jié)必須在復(fù)位鉗寫入便箋式存儲(chǔ)器。</p><p> ?。?)讀便箋式存儲(chǔ)器(BEH)。該指令讀取便箋式存儲(chǔ)器的內(nèi)容,讀出的數(shù)據(jù)將從Byte0(存儲(chǔ)器的0號(hào)單元)開始直到第9字節(jié)(CRC校驗(yàn)字)被讀走。但如果不想讀完所有字節(jié),微控制器可以再任何時(shí)候輸出復(fù)位信號(hào)中斷其傳輸。&l

38、t;/p><p>  (4)復(fù)制便箋式存儲(chǔ)器指令(48H)。把2、3、4號(hào)存儲(chǔ)單元的內(nèi)容存儲(chǔ)到非易失性SRAM中去。復(fù)制期間,如果有讀指令,DS18B20將把DQ置為低電平,直到轉(zhuǎn)換結(jié)束,把DQ置為高電平。</p><p> ?。?)回讀SRAM(B8H)。將存儲(chǔ)在SRAM中的溫度報(bào)警上下限、分別率配置的內(nèi)容寫回相應(yīng)的便箋式存儲(chǔ)器。</p><p> ?。?)讀電源配置

39、結(jié)構(gòu)指令(B4H)。主控制設(shè)備發(fā)出該指令后在輸出讀時(shí)序,器件即會(huì)送出所使用的電源信息:0為寄生電源,1為外接電源。</p><p>  在進(jìn)行DS18B20操作時(shí)一般有以下步驟:1,初始化DS18B20。2,ROM操作指令操作。3,便箋式存儲(chǔ)器功能指令操作。4處理或數(shù)據(jù)傳送。每一次DS18B20的操作都必須滿足以上步驟,若是缺少或順序混亂,期間將不會(huì)返回值。</p><p>  2.3.2

40、 DS18B20與AT89C51的連接</p><p>  DS18B20與單片機(jī)連接的結(jié)構(gòu)圖如圖2-5所示:</p><p>  圖2- 5 DS18B20與單片機(jī)的連接圖</p><p>  這里通過(guò)上拉電阻直接驅(qū)動(dòng)LED顯示,以增加線路復(fù)雜度為代價(jià),減少芯片數(shù)量。其中,P0口的P0.0連接DS18B20的 數(shù)字輸入輸出位DQ,P0口的P0.1~P0.7連接三個(gè)

41、數(shù)碼管,控制其數(shù)碼顯示;由P2口的P2.0,P2.1,P2.2分別用于選擇LED1,LED2,LED3 三個(gè)數(shù)碼管。</p><p><b>  2.4 顯示模塊</b></p><p>  單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器主要有LED和LCD兩種。近年來(lái)也有用CRT顯示的。前者價(jià)格低廉,配置靈活,與單片機(jī)接口方便;后者可進(jìn)行圖形顯示,但接口較復(fù)雜,成本也較高。LED(L

42、ing Emiting Diode)是發(fā)光二極管的縮寫。實(shí)際應(yīng)用非常普遍的是八段LED顯示器。LED顯示器在大型報(bào)時(shí)屏幕,銀行利率顯示,城市霓虹燈建設(shè)中,得到廣泛應(yīng)用。在這些需要多位LED顯示的場(chǎng)合,怎樣實(shí)現(xiàn)系統(tǒng)穩(wěn)定,價(jià)格低廉的顯示,成為決定其成本的關(guān)鍵所在。</p><p>  2.4.1 LED介紹</p><p>  七段LED顯示器(數(shù)碼管)系發(fā)光器件的一種。常用的LED發(fā)光器件有

43、兩類:數(shù)碼管和點(diǎn)陣。數(shù)碼管內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。常見數(shù)碼管有10根管腳,管腳排列如下圖圖2-6所示。</p><p>  圖2- 6 LED管腳排列</p><p>  其中COM為公共端,根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽(yáng)極兩種。使用時(shí),共陰極數(shù)碼管公共端接地,共陽(yáng)極數(shù)碼管公共端接電源。每段發(fā)光二極管需5~10mA的驅(qū)動(dòng)

44、電流才能正常發(fā)光,一般需加限流電阻控制電流的大小。 </p><p>  其顯示原理為:LED數(shù)碼管的a~g七個(gè)發(fā)光二極管。加正電壓的發(fā)光,加零電壓的不能發(fā)光,不同亮暗的組合就能形成不同的字型,這種組合稱為字型碼。共陽(yáng)極和共陰極的字型碼是不同的,如表2-2所示。</p><p>  表2-2 LED顯示字形及字符串對(duì)應(yīng)關(guān)系</p><p>  可采用硬件譯碼輸出字型

45、碼控制顯示內(nèi)容,如采用74LS48、CD4511(共陰極)或74LS46(74LS47)、CD4513(共陽(yáng)極)。也可用單片機(jī)I/O口直接輸出字型碼控制數(shù)碼管的顯示內(nèi)容。本設(shè)計(jì)出于對(duì)片選的需要,采用I/O口直接輸出字型碼的方式進(jìn)行顯示。</p><p>  2.4.2 LED動(dòng)態(tài)顯示原理及與單片機(jī)的連接</p><p>  由于本設(shè)計(jì)最高要顯示100℃(出于小數(shù)位的溫度對(duì)人們使用影響不大的

46、考慮,不顯示小數(shù)位),故需要三個(gè)LED,顯示位數(shù)較多時(shí),采用動(dòng)態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡(jiǎn)單。</p><p>  動(dòng)態(tài)掃描方法是用其接口電路把所有數(shù)碼管的7個(gè)筆劃段a~g同名端連在一起,而每一個(gè)數(shù)碼管的公共極COM各自獨(dú)立地受I/O線控制,用作片選信號(hào)位。CPU向字段輸出口送出字形碼時(shí),所有數(shù)碼管接收到相同的字形碼。但究竟是哪個(gè)數(shù)碼管亮,則取決于COM端,COM端與單片機(jī)的I/O口相連接,

47、由單片機(jī)輸出位碼到I/O控制何時(shí)哪一位數(shù)碼管亮。</p><p>  動(dòng)態(tài)掃描用分時(shí)的方法輪流控制各個(gè)數(shù)碼管的COM端,使各個(gè)數(shù)碼管輪流點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的掃描過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫。但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。</p><p>  LED與AT89C51的連接圖見圖2-7:</p><p>  圖2

48、- 7 LED與單片機(jī)的連接圖</p><p>  LED與單片機(jī)的連接按上圖示一一對(duì)應(yīng),采用串行連接,由于每段發(fā)光二極管需5~10mA的驅(qū)動(dòng)電流才能正常發(fā)光,故采用300歐的限流電阻控制電流的大小。 用P0口作為L(zhǎng)ED數(shù)碼輸出口,由P2口的P2.0,P2.1,P2.2發(fā)出片選信號(hào)以實(shí)現(xiàn)動(dòng)態(tài)掃描。</p><p><b>  2.5 按鍵模塊</b></p>

49、;<p>  在一些智能化儀表中,人機(jī)接口通常是LED顯示和小型鍵盤。LED顯示器在上一節(jié)已經(jīng)介紹過(guò),至于鍵盤,其常見的工作方式有兩種:一是直接使用系統(tǒng)中的CPU對(duì)鍵盤進(jìn)行檢測(cè),為鍵盤的及時(shí)響應(yīng),CPU需要頻繁的執(zhí)行動(dòng)態(tài)掃描程序;二是采用專用的顯示、鍵盤芯片,如8279、SAA1064等。結(jié)合本系統(tǒng)的具體情況,CPU的工作強(qiáng)度并不大,故采用第一種方式進(jìn)行鍵盤設(shè)計(jì),其價(jià)格低廉,使用方便,能較充分的利用資源。</p>

50、;<p>  本設(shè)計(jì)采用中斷方式來(lái)檢測(cè)鍵盤是否被按下,使用了三個(gè)按鍵A、B、C,第一次按下A鍵,表示開始調(diào)整溫度設(shè)定值,同時(shí)將溫度顯示值初始化為80℃,設(shè)置完溫度設(shè)定值后再按下A鍵,表示溫度設(shè)定完成;B、C鍵用于數(shù)值調(diào)整,每按B鍵一下,數(shù)值加1,每按C一下,數(shù)值減1,在調(diào)整狀態(tài)下B、C鍵允許連擊。</p><p>  基于單片機(jī)的按鍵電路如圖2-8所示:</p><p>  

51、圖2- 8 按鍵電路與單片機(jī)的連接</p><p>  將P1口用作鍵盤控制接口,S1、S2、S3分別對(duì)應(yīng)A、B、C鍵,連接到單片機(jī)的P1.0、P1.1、P1.2。工作時(shí),按下A鍵開始調(diào)整設(shè)定值,同時(shí)給CPU一個(gè)中斷信號(hào),對(duì)LED顯示器進(jìn)行初始化,然后按B或C鍵調(diào)整數(shù)值,完成后再按下A鍵,中斷返回。</p><p><b>  2.6 電源模塊</b></p&g

52、t;<p>  電源提供整個(gè)系統(tǒng)的能源,一個(gè)穩(wěn)定的電源模塊是系統(tǒng)能夠正常工作的基礎(chǔ),電源的設(shè)計(jì)是十分關(guān)鍵的。</p><p>  2.6.1 系統(tǒng)供電整體框架</p><p>  需要供電的部分有:?jiǎn)纹瑱C(jī)、測(cè)溫模塊、顯示模塊和按鍵模塊。它們都需要直流電壓供電,供電電壓為5V ,但考慮到電壓的波動(dòng)及損耗,本設(shè)計(jì)選用7.2V的電池作為總的電源,穩(wěn)壓后為各模塊供電。 如圖2-9給出

53、了系統(tǒng)供電的結(jié)構(gòu)圖:</p><p>  圖2- 9 系統(tǒng)供電結(jié)構(gòu)圖</p><p>  2.6.2 穩(wěn)壓電路的設(shè)計(jì)</p><p>  穩(wěn)壓管穩(wěn)壓電路的設(shè)計(jì)首先選定輸入電壓和穩(wěn)壓二極管,然后確定限流電阻R。</p><p> ?。?)輸入電壓ui 的確定:考慮電路電壓的變化,ui 可按下式選擇:</p><p>  

54、Ui = (2~3)Uo </p><p> ?。?)穩(wěn)壓管的選取:穩(wěn)壓管的參數(shù)可按下式選?。?lt;/p><p><b>  Uz = Uo</b></p><p>  Izmax = (2~3)Iomax</p><p> ?。?)限流電阻的確定:當(dāng)輸入電壓Ui 上升10%,且負(fù)載電流為零時(shí),流過(guò)穩(wěn)壓管

55、的電流不超過(guò)穩(wěn)壓管的最大允許電流Izmax。</p><p>  根據(jù)以上要求,并結(jié)合使用情況,選擇了78L05作為5V電壓的穩(wěn)壓芯片,它是一款壓差輸出800mA電流時(shí)壓差只有1.2V的三端穩(wěn)壓器,輸出規(guī)格有2.5V、3.0V、5.0V等規(guī)格,在這里我們選用5.0V規(guī)格的。穩(wěn)壓設(shè)計(jì)電路如圖2-10所示:</p><p>  圖2- 10 穩(wěn)壓供電電路</p><p>

56、;  圖中開關(guān)S1用來(lái)控制整個(gè)系統(tǒng)的開啟或停止。穩(wěn)壓后,電路右端連接各個(gè)系統(tǒng)模塊,為它們提供穩(wěn)定的電源,保證系統(tǒng)平穩(wěn)、良好運(yùn)行。</p><p>  2.7 PWM控制模塊</p><p>  PWM 即脈寬調(diào)制,脈寬調(diào)制波是一種可用程序來(lái)控制波形、占空比、周期、相位的波形。</p><p>  根據(jù)測(cè)溫電路測(cè)得的溫度與設(shè)定值的差值,發(fā)出不同占空比的PWM脈沖信號(hào)。

57、這個(gè)脈沖是一種方波,在一個(gè)周期內(nèi),此方波信號(hào)的高電平時(shí)段占整個(gè)周期的比例,我們稱之為占空比。如圖2-11所示。如果PWM的方波脈沖信號(hào)的占空比可以做到多種級(jí)別,那么加熱的速度也可以做到多種級(jí)別。</p><p>  圖2- 11 PWM波形圖</p><p>  圖2-11顯示了三種不同的PWM信號(hào)。圖a是一個(gè)占空比為10%的PWM輸出,即在信號(hào)周期中,10%的時(shí)間通,其余90%的時(shí)間斷。

58、圖b和圖c顯示的分別是占空比為50%和90%的PWM輸出。這三種PWM輸出編碼的分別是強(qiáng)度為滿度值的10%、50%和90%的三種不同模擬信號(hào)值。例如,假設(shè)供電電源為9V,占空比為10%,則對(duì)應(yīng)的是一個(gè)幅度為0.9V的模擬信號(hào)。</p><p>  AT89C51單片機(jī)具有兩個(gè)定時(shí)器T0和T1,通過(guò)控制定時(shí)器初值可以實(shí)現(xiàn)輸出不同占空比的脈沖波形。如果單片機(jī)的時(shí)鐘頻率為f(12MHz),定時(shí)器/計(jì)數(shù)器為N位,則定時(shí)器

59、的定時(shí)初值和定時(shí)時(shí)間之間的關(guān)系為:</p><p>  式中 ——定時(shí)器的定時(shí)初值;</p><p>  N——一個(gè)機(jī)器周期的時(shí)鐘數(shù)。</p><p>  若T0工作模式0,初始值為0,則定時(shí)時(shí)間</p><p>  PWM控制電路如圖2-12所示:</p><p>  圖2- 12 PWM控制電路</p>

60、<p>  圖中MOC3041為光耦元件,輸入的電信號(hào)驅(qū)動(dòng)發(fā)光二極管(LED),使之發(fā)出一定波長(zhǎng)的光,被光探測(cè)器接收而產(chǎn)生光電流,再經(jīng)過(guò)進(jìn)一步放大后輸出。這就完成了電—光—電的轉(zhuǎn)換,從而起到輸入、輸出、隔離的作用。由于光耦合器輸入輸出間互相隔離,電信號(hào)傳輸具有單向性等特點(diǎn),因而具有良好的電絕緣能力和抗干擾能力。當(dāng)PWM輸入高電平信號(hào)時(shí),光電耦合器MOC3041工作,置點(diǎn)A處為高電平,即雙向可控硅B的觸發(fā)極為高電平,可控硅導(dǎo)

61、通,加熱器開始加熱;當(dāng)PWM輸入低電平信號(hào)時(shí),光耦不工作,雙向可控硅不會(huì)導(dǎo)通,加熱器處于冷卻狀態(tài)。</p><p><b>  2.8 擴(kuò)展電路 </b></p><p>  (1)擴(kuò)展一個(gè)揚(yáng)聲器,用于水開報(bào)警和恒溫值報(bào)警。其電路如圖2-13所示:</p><p>  圖2- 13 揚(yáng)聲器電路</p><p>  由上圖

62、可知,用P1口的P1.3來(lái)實(shí)現(xiàn)報(bào)警功能。當(dāng)P1.3傳來(lái)高電位信號(hào)時(shí),NPN導(dǎo)通,揚(yáng)聲器報(bào)警。</p><p>  (2)擴(kuò)展兩個(gè)指示燈,當(dāng)水處于加熱狀態(tài)時(shí)紅燈亮,處于保溫狀態(tài)時(shí)綠燈亮。其電路圖類似于圖2-13,只需將speaker換為L(zhǎng)ED,然后接口分別連接到P1.4和P1.5。</p><p>  第三章 軟件部分設(shè)計(jì)</p><p>  系統(tǒng)的軟件設(shè)計(jì)是建立在硬

63、件設(shè)計(jì)基礎(chǔ)之上的,軟件賦予了硬件靈魂,使得系統(tǒng)能夠按照我們期望的要求工作。</p><p>  系統(tǒng)中的軟件部分應(yīng)該完成系統(tǒng)初始化、控制過(guò)程的實(shí)現(xiàn)等功能,是一個(gè)控制系統(tǒng)的核心部分,軟件設(shè)計(jì)的好壞直接影響到系統(tǒng)的性能。單片機(jī)系統(tǒng)需要接收測(cè)溫模塊電路的信號(hào)、溫度設(shè)定值的信號(hào),采用編程方法實(shí)現(xiàn)PWM的電壓控制從而高效的實(shí)現(xiàn)加熱功能。</p><p>  3.1 系統(tǒng)整體結(jié)構(gòu)流程</p>

64、;<p>  根據(jù)本設(shè)計(jì)的功能要求,該系統(tǒng)主要包括系統(tǒng)初始化、溫度保持、按鍵中斷和溫度預(yù)設(shè)調(diào)整幾個(gè)部分。其整體結(jié)構(gòu)流程見圖3-1:</p><p>  圖3- 1 系統(tǒng)整體結(jié)構(gòu)流程</p><p>  圖中初始化部分包括:</p><p> ?。?)LED初始化:</p><p>  系統(tǒng)啟動(dòng)時(shí),三個(gè)LED均初始化為0,以指示系

65、統(tǒng)開始工作。</p><p>  MOV P0, #00H </p><p> ?。?)中斷設(shè)置初始化:</p><p>  定時(shí)器T0的設(shè)置為:</p><p>  MOV TMOD, #00H ;T0工作方式0</p><p>  MOV TH,#0E0H</p><p>  MOV TL

66、,#18H ;T0初值,定時(shí)時(shí)間為1ms</p><p>  外部中斷1(INTI1)的設(shè)置為:</p><p>  MOV TCON,#04H ;外部有負(fù)跳變時(shí),申請(qǐng)中斷</p><p><b>  中斷設(shè)置:</b></p><p>  MOV IP,#02H ;IP初始化,優(yōu)先定時(shí)器T0</

67、p><p>  MOV IE,#82H ;IE初始化,開中斷,允許T0中斷響應(yīng)</p><p>  3.2 測(cè)溫部分結(jié)構(gòu)流程</p><p>  DS18B20的測(cè)溫部分結(jié)構(gòu)流程如圖3-2所示:</p><p>  圖3- 2 測(cè)溫部分流程圖</p><p>  圖中0050H用于存放DS18B20側(cè)得的溫度數(shù)值

68、,0051H存放溫度預(yù)設(shè)值。</p><p>  與DS18B20的所有通訊都是由一個(gè)單片機(jī)的復(fù)位脈沖和一個(gè)DS18B20的應(yīng)答脈沖開始的。單片機(jī)先發(fā)一個(gè)復(fù)位脈沖,保持低電平時(shí)間最少480μs,最多不能超過(guò)960μs。然后,單片機(jī)釋放總線,等待DS18B20的應(yīng)答脈沖。DS18B20在接受到復(fù)位脈沖后等待15~60μs才發(fā)出應(yīng)答脈沖。應(yīng)答脈沖能保持60~240μs。單片機(jī)從發(fā)送完復(fù)位脈沖到再次控制總線至少要等待4

69、80 μs。</p><p>  (1)圖中初始化部分代碼如下:</p><p>  RESET:CLR DQ ;發(fā)送復(fù)位脈沖</p><p>  MOV R7,#33 ;延時(shí)497us</p><p>  LCALL DELAY1</p><p>  SETB DQ

70、 </p><p>  MOV R7,#4 ;延時(shí)62us</p><p>  LCALL DELAY1</p><p>  CLR FLAG ;DS18B20應(yīng)答標(biāo)志</p><p>  JB DQ,RET1 ;判斷DS18B20應(yīng)答</p><

71、p>  LCALL DELAY1</p><p><b>  SETB DQ</b></p><p><b>  RET1: RET</b></p><p>  (2)DS18B20 WRITE子程序:   寫時(shí)隙需要15~75 μs,且在2次獨(dú)立的寫時(shí)隙之間至少需要1μs的恢復(fù)時(shí)間。寫時(shí)隙起始于單片機(jī)拉低總線。以

72、要把單片機(jī)A中的數(shù)據(jù)發(fā)給DS18B20為例,程序代碼如下: </p><p>  WR18B20:CLR C ;發(fā)送一個(gè)字節(jié)數(shù)據(jù)</p><p>  MOV R1, #8</p><p>  WR1: CLR DQ ;產(chǎn)生寫信號(hào)</p><p>  MOV R

73、7, #1</p><p>  LCALL DELAY17us ;延時(shí)17us</p><p><b>  RRC A</b></p><p>  MOV DQ, C ;發(fā)送一位數(shù)據(jù)給DS18B20</p><p>  MOV R7, #1</p>&l

74、t;p>  LCALL DELAY17us ;延時(shí)17us</p><p>  SETB DQ</p><p><b>  NOP</b></p><p>  DJNZ R1, WR1 ;字節(jié)是否發(fā)送完</p><p>  SETB DQ</p><

75、;p><b>  RET</b></p><p>  (3)DS18B20 READ子程序   讀時(shí)隙需15~60 μs,且在2次獨(dú)立的讀時(shí)隙之間至少需要1 μs的恢復(fù)時(shí)間。讀時(shí)隙起始于單片機(jī)拉低總線至少1 μs。DSl8B20在讀時(shí)隙開始15μs后開始采樣總線電平。以單片機(jī)讀取2 B的數(shù)據(jù)為例。程序代碼如下: </p><p>  RD18B20:CLR

76、 C</p><p>  MOV R1, #2</p><p>  MOV R0, #TEMLSB ;存放數(shù)據(jù)的地址</p><p>  RD1: MOV R2, #8</p><p>  RD2: SETB DQ</p><p><b>

77、  NOP</b></p><p><b>  NOP</b></p><p>  CLR DQ</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R7,

78、 #1</p><p>  LCALL DELAY17us ;延時(shí)17us</p><p>  MOV C, DQ</p><p>  RRC A</p><p>  MOV R7, #3</p><p>  LCALL DELAY42US ;延時(shí)42us<

79、/p><p>  DJNZ R2, RD2 ;判斷字節(jié)是否讀完</p><p>  MOVX @R0, A ;保存結(jié)果</p><p>  DEC R0</p><p>  DJNZ R1, RD1 ;判斷兩個(gè)字節(jié)是否讀完</p><p><b&

80、gt;  RET </b></p><p>  3.3 顯示部分結(jié)構(gòu)流程</p><p>  LED顯示部分的結(jié)構(gòu)流程如圖3-3所示:</p><p>  圖3- 3 顯示部分結(jié)構(gòu)流圖</p><p>  在該子系統(tǒng)中,初始化為000后需要延時(shí)一段時(shí)間,一方面指示系統(tǒng)已工作,另一方面顯示器在復(fù)位之前也得有足夠的時(shí)間充電。當(dāng)

81、檢測(cè)到A鍵按下后,將顯示器初始化為080,以便于對(duì)設(shè)定值上下調(diào)整。</p><p>  3.4 鍵掃子程序結(jié)構(gòu)流程</p><p>  鍵盤部分運(yùn)行流程如圖3-4所示:</p><p>  圖3- 4 鍵盤運(yùn)行流程圖</p><p>  圖中用延時(shí)去抖動(dòng)子程序確保沒(méi)有誤按,保證按鍵的準(zhǔn)確性。這里需要用一個(gè)延時(shí)程序?qū)崿F(xiàn)該功能,其程序代碼如下:&

82、lt;/p><p>  DELAY: MOV R6, #50 ;延時(shí)10ms</p><p>  DELAY1: MOV R7, #100</p><p>  DJNZ R7, $</p><p>  DJNZ R6, DELAY1</p><

83、p><b>  RET</b></p><p>  3.5 加一子程序流程</p><p>  加一子程序流程圖如圖3-5所示:</p><p>  圖3- 5 加一子程序結(jié)構(gòu)流程</p><p>  設(shè)LED1、LED2和LED3顯示的數(shù)值分別存放于0053H、0054H和0055H,其程序代碼為:</p&

84、gt;<p>  CLR A</p><p>  MOV R0, #54H</p><p>  ADD1: MOV A,@R0 ;取十位</p><p>  INC R0 </p><p>  SWAP A

85、 ;十位與個(gè)位互換</p><p>  ORL A,@R0 ;組合十位與個(gè)位</p><p>  ADD A,#01H ;加1</p><p>  DAA ;十進(jìn)制調(diào)整</p><p>  MOV R3,A ;暫存</p&g

86、t;<p>  ANL A,#0FH ;屏蔽十位</p><p>  MOV @R0,A ;放入個(gè)位單元</p><p>  MOV A,R3 ;取值</p><p>  INC R0 </p><p><b>  SWAP A </b>&

87、lt;/p><p>  ANL A,#0FH ;屏蔽個(gè)位</p><p>  MOV @R0,A ;放入十位單元</p><p>  MOV A, R3 ;數(shù)值放入A中等待判斷</p><p><b>  RET</b></p>

88、<p>  3.6 PWM控制軟件實(shí)現(xiàn)子程序</p><p>  本設(shè)計(jì)實(shí)現(xiàn)4個(gè)等級(jí)的PWM脈沖控制,占空比分別為25%、50%、75%和100%。設(shè)實(shí)時(shí)水溫與設(shè)定值差值為e,當(dāng)0<e≤3時(shí),采用占空比25%的PWM控制加熱;3<e≤5時(shí),采用50%的PWM控制加熱;5<e≤8時(shí),采用75%的PWM控制加熱;e>8時(shí),采用100%的PWM控制加熱。</p><p>  使用定

89、時(shí)器T0實(shí)現(xiàn)占空比為50%的PWM脈沖程序如下:</p><p>  SETB P1.7</p><p>  LOOP:MOV TMOD, #00H ;T0工作方式0</p><p>  MOV TH, #0E0H</p><p>  MOV TL, #18H ;T0初值,定時(shí)時(shí)間為

90、1ms</p><p>  SETB TR0 ; 啟動(dòng)定時(shí)器T0</p><p>  JNB TF0, $ ;查詢定時(shí)時(shí)間是否到</p><p>  CLR TF0</p><p>  CPL P1.7</p><p>  SJMP LOOP&

91、lt;/p><p>  實(shí)現(xiàn)占空比為25%的PWM波,只需使P1.7置高電平1ms,低電平3ms。T0定時(shí)定時(shí)3ms的設(shè)置為:</p><p>  MOV TMOD, #00H ;T0工作方式0</p><p>  MOV TH, #48H</p><p>  MOV TL, #14H ;T

92、0初值,定時(shí)時(shí)間為3ms</p><p><b>  結(jié) 論</b></p><p>  本設(shè)計(jì)以AT89C51單片機(jī)為核心,由單片機(jī)、溫度監(jiān)測(cè)、LED顯示和鍵盤等幾部分組成,文中給出了它的具體實(shí)現(xiàn)方案,對(duì)每一個(gè)模塊,包括硬件和軟件都做了詳盡的介紹。該系統(tǒng)采用了DS18B20“一線總線”數(shù)字化溫度傳感器,省卻了溫度數(shù)模轉(zhuǎn)換,簡(jiǎn)化了電路。更為重要的是,本系統(tǒng)設(shè)置了3個(gè)按

93、鍵,使用戶可以以個(gè)人喜愛設(shè)置水溫的恒定溫度,突出個(gè)性化與人性化,更方便人們使用。與傳統(tǒng)飲水機(jī)相比,它具有以下優(yōu)點(diǎn):</p><p>  1、良好的人機(jī)交互,溫度實(shí)時(shí)顯示及按鍵設(shè)定;</p><p>  2、水溫恒定,用戶可即時(shí)飲用,不需要冷卻或等待加熱;</p><p>  3、可以根據(jù)水溫與設(shè)定值的差值智能調(diào)節(jié)加熱速度;</p><p> 

94、 4、節(jié)約資源,易用性強(qiáng),操作簡(jiǎn)便,成本低廉。</p><p>  最終設(shè)計(jì)的系統(tǒng)能穩(wěn)定運(yùn)行,工作精度高,有良好的實(shí)用性。</p><p>  附錄一 整體設(shè)計(jì)電路圖</p><p><b>  附錄二 程序清單</b></p><p>  ORG 0000H</p><p>  A

95、JMP MAIN</p><p>  ORG 000BH</p><p>  LJMP INTT0</p><p>  ORG 0030H</p><p>  MAIN: MOV SP, #60H;確立堆棧區(qū)</p><p>  MOV PSW,

96、 #00H ;</p><p>  MOV R0, #20H ;RAM區(qū)首地址</p><p>  MOV R7, #5FH ;RAM區(qū)單元個(gè)數(shù)</p><p>  QL: MOV @R0, #00H

97、;RAM清零</p><p>  INC R0</p><p>  DJNZ R7, QL</p><p>  MOV IP, #02H ;IP初始化,優(yōu)先定時(shí)器0</p><p>  MOV IE, #82H ;IE初始

98、化, </p><p>  MOV TMOD, #01H ;定時(shí)器0方式1工作</p><p>  LCALL ZONE ;LED初始化為000</p><p>  NEXT: LCALL ANYKEY ;按鍵檢測(cè)子程序</p>&

99、lt;p>  JBACC.0, RUNF ;A鍵按下運(yùn)行</p><p>  LCALL DISP ;調(diào)用顯示子程序</p><p>  SJMP NEXT</p><p>  RUNF: LCALL OUTT;調(diào)傳送子程序</

100、p><p>  LCALL TIME</p><p>  JK: LCALL DISP;調(diào)用顯示子程序</p><p>  LCALL ANYKEY ;按鍵檢測(cè)子程序</p><p>  JZ JK</p><p>  LCALL

101、 ANKEY</p><p>  LCALL DISP ;調(diào)用顯示子程序</p><p>  SJMP JK</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ;;;;;;;;;;; 初始化顯示000 ;;;

102、;;;;;;;;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ZONE: MOV 53H, #00 ;0編碼送各個(gè)顯示寄存器</p><p>  MOV 54H, #00</p><p>  MOV

103、55H, #00</p><p>  LCALL DISP</p><p>  MOV R7, #100 ;延時(shí)1s</p><p>  WAIT: LCALL DELAY</p><p>  DJNZ R7, WAIT</p

104、><p><b>  RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ;;;;;;;;;;; 鍵掃子程序 ;;;;;;;;;;;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

105、</p><p>  KEY: LCALL KEYS ;調(diào)鍵值處理子程序</p><p>  JZ EXIT ;沒(méi)有鍵按下轉(zhuǎn)到返回</p><p>  LCALL DISP</p><p>  LCALL KEYS </p><p>  JZ E

106、XIT</p><p>  MOV B, 20H ;保存鍵值</p><p>  KEYSF: LCALL KEYS ;調(diào)鍵值處理子程序</p><p>  JZ KEYY ;鍵釋放,轉(zhuǎn)到恢復(fù)鍵值</p><p>  LCALL DISP ;調(diào)顯示子程序

107、延時(shí)</p><p>  AJMP KEYSF ;等到鍵釋放</p><p>  KEYY: MOV A, B ;鍵值送20H單元保存</p><p>  EXIT: RET ;返回</p><p>  KEYS: MOV P1, #0FFH

108、 ;先向P1口寫1</p><p>  MOV A, P1 ;P1口值送累加器A</p><p>  CPL A ;A值取反</p><p>  ANL A, #0FH ;保存P1口的低4位</p><p>  MOV 20H,

109、A ;A值送20H保存</p><p><b>  RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ;;;;;;;;;;; 鍵功能子程序 ;;;;;;;;;;;</p><p>  ;;;;;;;;;;;;;;;;;;

110、;;;;;;;;;;;;;;;;;;;;;</p><p>  ANKEY: CLR EA;關(guān)中斷</p><p>  CHECK: JB TR0, YXZ;判斷是否運(yùn)行</p><p>  MOV A, P1 ;判斷是否有按鍵按下</p><

111、p>  MOV B, 07H</p><p>  ANL A, B</p><p>  K0: CJNE A, #00H, YXZ</p><p>  AJMP RUN ;轉(zhuǎn)運(yùn)行</p><p>  ANJIAN

112、:MOV C, P1.0</p><p>  JC DELAY ;延時(shí)去抖動(dòng)</p><p>  JC TIAOZHENG</p><p><b>  RET</b></p><p>  YXZ: JB ACC.0,

113、 STOP</p><p>  AJMP OUT</p><p>  TIAOZHENG:</p><p>  MOV 53H, #00H ;調(diào)整前將LED初始化為080</p><p>  MOV 54H, #80H</p><p>  M

114、OV 55H, #00H</p><p>  AJMP DISP</p><p>  MOV C, P1.1</p><p>  JC DELAY</p><p>  JC ADD1</p><p>  JB P1.2, D

115、ELAY</p><p>  JB P1.2, SUB1</p><p><b>  OUT: RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ;;;;;;;;;;; PWM 子程序 ;;;;;;;;;;

116、;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  PWM0: MOV R1, 51H</p><p>  MOV A, 50H</p><p>  SUBB A, @R1</

117、p><p>  PAN0: CJNE A, #0 , LING</p><p>  PAN3: CJNE A, #3, SAN</p><p>  SJMP PWM1</p><p>  PAN5: CJNE A,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論