版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課題實(shí)踐</b></p><p> 類 別: 項(xiàng)目承接與技術(shù)服務(wù) </p><p> 題 目: 快熱式家用電熱水器的設(shè)計(jì) </p><p> 系 名 稱: 電氣工程系 </p><p&
2、gt; 專業(yè)及班級(jí): 電氣自動(dòng)化技術(shù)電氣S2008-8班 </p><p> 完成時(shí)間 2010 年 12 月 21 日</p><p><b> 課題實(shí)踐課題及任務(wù)</b></p><p><b> 開題報(bào)告書</b></p><p> 電氣工程 系
3、 電氣自動(dòng)化技術(shù) 專業(yè) </p><p> 快熱式家用電熱水器的設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 熱水器已成為日常生活中不可缺少的家用電器,設(shè)計(jì)制造更實(shí)用、更方便、更安全、更節(jié)能的熱水器是產(chǎn)品設(shè)計(jì)師和生產(chǎn)廠家不斷追求的目標(biāo)??鞜崾诫姛崴髋c普通電熱水
4、器最大的區(qū)別在于它取消了儲(chǔ)水罐,熱水隨開隨用,無(wú)須預(yù)熱,減少了電能浪費(fèi)。另外,它還具有體積小,使用安全,安裝方便等優(yōu)點(diǎn)。本設(shè)計(jì)要求用2位數(shù)碼管顯示出水溫度和功率檔位,設(shè)置3個(gè)按鍵分別為電源開關(guān)鍵、檔位上調(diào)和下調(diào)鍵,出水溫度超過(guò)65℃時(shí)停止加熱,并蜂鳴報(bào)警,溫度降低到45℃以下時(shí)恢復(fù)加熱。內(nèi)膽溫度超過(guò)105℃時(shí)停止加熱,防止干燒。</p><p> 本文首先介紹了系統(tǒng)的總體組成,硬件中先描述了整體結(jié)構(gòu)和各模塊的相
5、互關(guān)系。對(duì)于較新的可編程芯片又進(jìn)一步介紹了其內(nèi)部結(jié)構(gòu)及外部特征。</p><p> 本軟件采用模塊化設(shè)計(jì)。在主程序模塊下分成若干彼此獨(dú)立的分模塊,在各模塊適當(dāng)位置設(shè)置軟件陷阱,進(jìn)行冗余設(shè)計(jì),在信號(hào)采集與處理程序中采用多種數(shù)字濾波的方法,以消除隨機(jī)的尖脈沖千擾。</p><p> 本系統(tǒng)可以實(shí)現(xiàn)對(duì)熱水器水溫的實(shí)時(shí)控制,程序的可移植性強(qiáng),有很好的推廣、應(yīng)用價(jià)值。性能達(dá)到目前國(guó)內(nèi)的同類設(shè)備水
6、平,且價(jià)格低廉。</p><p> 關(guān)鍵字: 51系列單片機(jī)控制,LED數(shù)碼顯示,單片機(jī),溫度傳感器,熱敏傳感器</p><p><b> 目 錄</b></p><p> 第一章 熱水器功能介紹2</p><p> 1.1 功能要求2</p><p> 第二章 方案論證3&l
7、t;/p><p> 第三章 系統(tǒng)硬件電路的設(shè)計(jì)5</p><p> 3.1 加熱控制電路5</p><p> 3.2 溫度檢測(cè)電路6</p><p> 3.3 鍵盤與顯示電路7</p><p> 3.4 核心部件單片機(jī)8</p><p> 3.5 整流和穩(wěn)壓電路8</p
8、><p> 3.6 報(bào)警電路9</p><p> 第四章 系統(tǒng)程序的設(shè)計(jì)10</p><p> 4.1 主程序10</p><p> 4.2 顯示掃描子程序10</p><p> 4.3 按鍵掃描處理子程序13</p><p> 4.4 加熱控制程序13</p>
9、<p> 4.5溫度檢測(cè)程序16</p><p> 第五章 調(diào)試及性能分析20</p><p> 第六章 系統(tǒng)的抗干擾措施21</p><p> 6.1 系統(tǒng)干擾的來(lái)源21</p><p> 6.2 硬件方面的抗干擾措施21</p><p> 6.3 軟件方面的抗干擾措施22<
10、/p><p> 6.3.1 數(shù)字濾波消除數(shù)據(jù)采集誤差22</p><p> 6.3.2 利用“看門狗”技術(shù)來(lái)實(shí)現(xiàn)PC的快恢復(fù)22</p><p> 6.3.3 指令冗余22</p><p><b> 心得與總結(jié)24</b></p><p><b> 參考文獻(xiàn)25</
11、b></p><p> 附錄一 快熱式電熱水器硬件原理圖26</p><p> 附錄二 程 序27</p><p> 第一章 熱水器功能介紹</p><p><b> 1.1 功能要求</b></p><p> 當(dāng)前,熱水器已成為日常生活中﹑不可缺少的家用電器,設(shè)
12、計(jì)制造更實(shí)用﹑更方便﹑更安全﹑更節(jié)能的熱水器是產(chǎn)品設(shè)計(jì)師和生產(chǎn)廠家不斷追求的目標(biāo)??鞜崾诫姛崴髋c普通電熱水器最大的區(qū)別在與它取消了儲(chǔ)水罐,熱水隨開隨用,無(wú)需預(yù)熱,減少了電能浪費(fèi)。另外,它還具有體積小,使用安全,安裝方便等優(yōu)點(diǎn)。</p><p><b> 其設(shè)計(jì)要求如下:</b></p><p> 溫度檢測(cè)顯示范圍為00~99℃,精確度為±1℃。<
13、/p><p> 設(shè)置3個(gè)功率檔位指示燈,1~4檔1個(gè)燈亮,5~8檔2個(gè)燈亮,9檔3個(gè)燈全亮。0檔無(wú)功率輸出,檔位燈不亮。</p><p> 設(shè)置3個(gè)輕觸按鈕,分別為電源開關(guān)鍵、“+”鍵和“-”鍵。加熱功率分0~9檔,按“+”鍵依次遞增至9檔,按“-”鍵依次遞減至0。0~9檔功率依次為0﹑1∕9P∕、2∕9P、3∕9P、4∕9P、5∕9P、6∕9P、7∕9P、8∕9P、和P。</p&g
14、t;<p> 出水溫度超過(guò)65℃時(shí)停止加熱,并蜂鳴報(bào)警,溫度降到45℃以下時(shí)恢復(fù)。</p><p> 內(nèi)膽溫度超過(guò)105℃時(shí)停止加熱,防止干燒。</p><p><b> 第二章 方案論證</b></p><p> 按快熱式電熱水器的功能要求,決定采用如圖2.1所示的模塊組成系統(tǒng),主要包括電源電路、單片機(jī)控制器、溫度檢測(cè)
15、電路、按鍵輸入電路、LED數(shù)碼管及指示燈電路、報(bào)警電路和加熱控制電路。</p><p> 圖2.1 快熱式電熱水器系統(tǒng)組成框</p><p> 快熱式電熱水器為了達(dá)到“快熱”的效果,取消了儲(chǔ)水罐,使冷水在進(jìn)入加熱管有較大的功率。家用電熱水器一般采用方便、可靠的電熱絲加熱方法。根據(jù)熱學(xué)及流體力學(xué)原理,結(jié)合實(shí)際實(shí)驗(yàn)室測(cè)試,可以得到水溫與流量、加熱功率之間的關(guān)系如表1.1所例。</p
16、><p> 表1.1中所列水溫值和流量值可以滿足大多數(shù)家庭用戶使用要求。當(dāng)最大的加熱功率為7.5KW時(shí),按220V供電計(jì)算,電流約為34A,所示要求專線供電。</p><p> 對(duì)于加熱功率的控制,最簡(jiǎn)單的方法是由若干不同功率的電熱絲組合得到幾種加熱功率,但由于快熱式熱水器的加熱功率較普遍的大,且檔位設(shè)置較多,用電熱絲組合的方法需要幾組電熱絲和蓄電器,成本增高且工作可靠性降低,所以比較理想
17、的是采用可控硅控制功率,電路簡(jiǎn)單又控制方便。</p><p> 溫度檢測(cè)的方法較多,最經(jīng)典的方法就是用熱敏電阻(或熱敏傳感器)組成電橋來(lái)采集信號(hào),再經(jīng)放大、A/D轉(zhuǎn)換后送單片機(jī)。目前比較先進(jìn)的方法是采用專門的集成測(cè)溫傳感器(如DS18B20),直接將溫度轉(zhuǎn)換成數(shù)字信號(hào)傳送給單片機(jī)。為了簡(jiǎn)化電路,降低成本,本文采用了溫度/頻率轉(zhuǎn)換測(cè)溫法,直接將溫度信息轉(zhuǎn)換成頻率信號(hào),用單片機(jī)測(cè)出頻率大小,從而間接測(cè)出溫度值,溫度
18、/頻率轉(zhuǎn)換電路簡(jiǎn)單可靠,成本低廉。</p><p> 第三章 系統(tǒng)硬件電路的設(shè)計(jì)</p><p> 快熱式熱水器控制系統(tǒng)電路(附錄一)是由7部分電路組成:?jiǎn)纹瑱C(jī)系統(tǒng)及外圍電路、電源電路、按鍵輸入電路、LED數(shù)碼管及指示燈電路、報(bào)警電路、加熱控制電路和溫度檢測(cè)電路。 控制器采用成本低廉且工作可靠的AT89S52單片機(jī)和12MHZ的晶振。</p><p>
19、 AT89S52對(duì)電源要求不甚嚴(yán)格,電源電路采用普通的市電降壓整流,然后經(jīng)集成穩(wěn)壓器7805穩(wěn)壓輸出+5V電壓。按鍵采用輕觸小按鈕。顯示電路采用兩位共陽(yáng)數(shù)碼管,由兩個(gè)三極9012驅(qū)動(dòng)。3個(gè)LED指示燈用于指示加熱功率。報(bào)警電路采用3V的自鳴器。</p><p> 3.1 加熱控制電路</p><p> 圖3.1所示為加熱加熱控制電路原理圖,電熱絲的加熱功率由雙向可控控制,單片機(jī)遇光耦給
20、可控硅觸發(fā)信號(hào),控制可控硅的導(dǎo)通角,從而控制電熱絲的有效加熱功率。為了在和超溫保護(hù)的狀態(tài)下能可靠的關(guān)斷加熱電源,電路中加入了蓄電器來(lái)控制加熱電源。其中聯(lián)在繼電器線圈回路的熔絲為105℃的熱保險(xiǎn)絲,當(dāng)溫度超過(guò)105℃時(shí),熱保險(xiǎn)絲會(huì)熔斷阻止加熱管干燒。于電熱絲并聯(lián)的LED發(fā)光管用來(lái)指示電熱絲的工作狀態(tài)。</p><p> 圖3.1 加熱控制電路圖</p><p> 可控硅觸發(fā)信號(hào)中需要對(duì)
21、市電進(jìn)行過(guò)零檢測(cè)的,電路如圖3.2所示。</p><p> 圖3.2 過(guò)零檢測(cè)電路圖</p><p> 3.2 溫度檢測(cè)電路</p><p> 溫度檢測(cè)電路如圖3.3所示,溫度/頻率變換電路中利用反相器組成RC振蕩器,其中的R24是一個(gè)電敏電阻,當(dāng)溫度變化時(shí)引起熱敏電阻的阻值變化,從而改變了振蕩器輸出的方波頻率。</p><p>
22、該頻率的估算可用如下公式:</p><p><b> f≈1.1RC</b></p><p> 圖3.3 溫度檢測(cè)電路圖</p><p> 3.3 鍵盤與顯示電路</p><p> 鍵盤接口電路(圖3.4)由按鍵SB1-SB3組成,這3個(gè)按鍵分別接到單片機(jī)的輸入引腳P1.2, P1.3 和Pl.4, 按鍵SB
23、1作為整個(gè)控制系統(tǒng)的啟/停鍵,按鍵SB2、SB3作為設(shè)定鍵,用于設(shè)置溫度的增減。當(dāng)按鍵未按下時(shí),相應(yīng)的輸入引腳上只能檢測(cè)到高電平。而當(dāng)按鍵按下時(shí),相應(yīng)的引腳上便會(huì)檢測(cè)到低電平。因此,通過(guò)軟件檢測(cè)輸入引腳上的電平值,便可檢測(cè)到是否有按鍵按下。</p><p> 顯示接口電路(圖3.5)由2個(gè)LED7段數(shù)碼顯示管、2個(gè)三極管和限流電阻組成。在軟件上采用動(dòng)態(tài)輪流掃描方式,來(lái)控制數(shù)碼管的顯示。單片機(jī)的輸出端口P0口通過(guò)
24、限流電阻與數(shù)碼管的陰極相連,用于控制7段數(shù)碼管的字形顯示。單片機(jī)的輸出引腳P2.0和P2.1分別通過(guò)限流電阻和三極管與數(shù)碼管的陽(yáng)極相連,用于向它們提供選通信號(hào)。當(dāng)端口輸出低電平時(shí),相應(yīng)的三極管導(dǎo)通,從而使相應(yīng)的7段數(shù)碼管選通。當(dāng)端口輸出高電平時(shí),相應(yīng)的三極管截止,從而使相應(yīng)的7段數(shù)碼管關(guān)閉。</p><p> 圖3.4 鍵盤接口電路</p><p> 圖3.5 顯示電路圖</p&
25、gt;<p> 3.4 核心部件單片機(jī)</p><p> 系統(tǒng)采用ATMEL公司生產(chǎn)的單片機(jī)AT89S52作為模糊處理的核心,該芯片是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8k Bytes ISP(In-systemprogrammable)的可反復(fù)</p><p> 圖3.6 單片機(jī)復(fù)位與晶振電路</p><p> 擦寫1000次的F
26、lash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元。AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM), 32個(gè)外部雙向輸入了輸出(v0)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口
27、,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p> 其晶振電路與復(fù)位電路如圖3.6所示</p><p> 由于需要對(duì)芯片的供電電壓VDD隨時(shí)進(jìn)行檢測(cè),一旦發(fā)現(xiàn)VDD電壓下降到一個(gè)門檻值時(shí)就使芯片復(fù)位以免系統(tǒng)失控,采樣如圖3.17所示的復(fù)位電路。</p><p><b> 其門檻值計(jì)算如下:</b></p><p
28、> 3.5 整流和穩(wěn)壓電路</p><p> 在本控制器中使用了三種電源,它們分別是系統(tǒng)電源+5V,測(cè)溫放大電路中UA741的供電電源和PWM輸出電源±12V。</p><p> 采用如圖3.7所示的穩(wěn)壓電路。</p><p> 圖3.7 整流與穩(wěn)壓電路</p><p><b> 3.6 報(bào)警電路</
29、b></p><p> 報(bào)警電路如圖3.8所示</p><p><b> 圖3.8 報(bào)警電路</b></p><p> 第四章 系統(tǒng)程序的設(shè)計(jì)</p><p> 按快熱式熱水器的功能,系統(tǒng)程序必須實(shí)現(xiàn)顯示掃描、按鍵掃描處理、加熱控制和溫度檢測(cè)(包括超溫報(bào)警)4項(xiàng)任務(wù)。51系列單片機(jī)實(shí)現(xiàn)多任務(wù)運(yùn)行的方法就是
30、分時(shí)復(fù)用,在程序設(shè)計(jì)時(shí)更要相應(yīng)地分配好各任務(wù)的CPU占用時(shí)間。對(duì)于以上幾個(gè)任務(wù)稍加分析可以看出,顯示掃描、按鍵掃描和加熱控制任務(wù)相對(duì)而言有實(shí)時(shí)要求,而溫度檢測(cè)任務(wù)則可用定時(shí)(0.5~1S)實(shí)現(xiàn)。</p><p><b> 4.1 主程序</b></p><p> 系統(tǒng)在上電復(fù)位后,先對(duì)溫度寄存器、檔位寄存器賦默認(rèn)值,并進(jìn)行清除超溫標(biāo)志,設(shè)置定時(shí)器及中斷系統(tǒng)的工作方
31、式等初始化工作,圖4.1所示為主程序流程圖。</p><p> 由于51系列單片機(jī)沒有停機(jī)指令,所以可以利用主程序設(shè)置死循環(huán)反復(fù)運(yùn)行各個(gè)任務(wù)。把有實(shí)時(shí)要求的子程序(顯示掃描、按鍵掃描、加熱控制)放在最內(nèi)層的循環(huán)中,計(jì)算其運(yùn)行一次占用的CPU時(shí)間,然后根據(jù)溫度檢測(cè)定時(shí)的間隔時(shí)間,計(jì)算出該循環(huán)的循環(huán)次數(shù)。本例中每運(yùn)行一次有實(shí)時(shí)要求的子程序(即顯示掃描、按鍵掃描、加熱控制)約占用5msCPU時(shí)間,運(yùn)行測(cè)溫程序的時(shí)間間
32、隔為0.5s,那么循環(huán)次數(shù)應(yīng)為100次。</p><p> 4.2 顯示掃描子程序</p><p> 顯示掃描子程序完成兩位共陽(yáng)數(shù)碼管的掃描顯示任務(wù)。圖4.2所示為顯示掃描子程序流程圖。</p><p> 圖4.1 主程序流程圖</p><p> 圖 4.2 顯示掃描子程序流程圖</p><p> 4.
33、3 按鍵掃描處理子程序</p><p> 按鍵掃描子程序負(fù)責(zé)逐個(gè)掃描檔位“+”鍵、檔位“-”鍵和開關(guān)鍵是否被按下,若有鍵下,則作出相應(yīng)處理。圖4.3 所示為按鍵掃描子程序流程圖。</p><p> 圖4.3 按鍵掃描子程序流程圖</p><p> 4.4 加熱控制程序</p><p> 加熱控制程序根據(jù)用戶設(shè)定的加熱檔位和當(dāng)前的狀態(tài)
34、,決定是否加熱和控制加熱功率并點(diǎn)亮相應(yīng)的指示燈。若有超溫標(biāo)志,還應(yīng)打開蜂鳴器報(bào)警。圖4.4所示為加熱控制程序流程圖。</p><p> 圖4.4 加熱控制程序流程圖</p><p> 加熱控制程序通過(guò)控制繼電器的通斷來(lái)決定是否給電熱絲通電加熱,而加熱的功率由雙向可控硅的導(dǎo)通角決定。系統(tǒng)程序利用外中斷INT1檢測(cè)市電的過(guò)零點(diǎn),檢測(cè)到過(guò)零立即根據(jù)設(shè)定的加熱檔位給定時(shí)器T1賦一個(gè)延時(shí)參數(shù)
35、,并打開定時(shí)器T1,允許其中斷。定時(shí)器T1計(jì)滿溢出后觸發(fā)中斷,T1中斷程序就會(huì)給可控硅發(fā)一個(gè)觸發(fā)信號(hào),使其導(dǎo)通。圖4.6 所示分別為過(guò)零檢測(cè)程序流程圖和可控硅觸發(fā)信號(hào)控制程序流程圖。</p><p> 圖4.5 過(guò)零檢測(cè)程序流程圖</p><p> 圖4.6 可控硅觸發(fā)信號(hào)控制程序流程圖</p><p><b> 4.5溫度檢測(cè)程序</b&g
36、t;</p><p> 溫度檢測(cè)程序的基本原理就是將溫度/頻率轉(zhuǎn)換電路測(cè)得的頻率與事先建立好的溫度/頻率表進(jìn)行比較,查找出與該頻率相應(yīng)的溫度值。在實(shí)驗(yàn)測(cè)試后建立的溫度/頻率表式0~100℃溫度所對(duì)應(yīng)的頻率值。它是一個(gè)頻率對(duì)應(yīng)于溫度遞減的非線性函數(shù),在C語(yǔ)言中用一個(gè)一維組Tab[101]表示,下標(biāo)為溫度,數(shù)組元素為頻率值。計(jì)算溫度的方法采用高效、準(zhǔn)確的二分法查表,查表的過(guò)程如下:</p><p
37、> ?、傧冉o定查找的溫度最大值Tmax和最小值Tmin,即確定查找的范圍,根據(jù)已有的溫度表默認(rèn)最大值Tmax=100,最小值Tmin=0。</p><p> ?、诩俣y(cè)得溫度Temp為最大值與最小值的中間值,即Temp=(Tmax+Tmin)/2。</p><p> ?、蹖?shí)際測(cè)得的頻率值T0rig與假定溫度Temp在表格中對(duì)應(yīng)的頻率Tab[temp]相比較,如果相等,那么假定溫度就
38、是當(dāng)前實(shí)際溫度,即完成查找。</p><p> ④若T0rig>Tab[temp],說(shuō)明實(shí)際溫度應(yīng)該在Tmin與Tmep之間(因?yàn)檫f減函數(shù)特性),則修改查找范圍,令Tmax=Temp;同理,若T0rig<Tab[temp],說(shuō)明實(shí)際溫度應(yīng)該在Temp與Tmax之間,則令Tmin=Temp;</p><p> ?、輽z查查找范圍,若Tmax-Tmin≤1,則斷定T0rig更接近最
39、大值對(duì)應(yīng)的頻率Tab[Tmax]還是最下值對(duì)應(yīng)的頻率Tab[Tmin],實(shí)際溫度值取頻率更接近的那個(gè)值即完成查找。</p><p> ?、奕鬞max-Tmin>1,則重復(fù)第①、②、③、④、⑤步驟、直到完成查找。</p><p> 溫度檢測(cè)程序完成溫度計(jì)算后,便刷新系統(tǒng)當(dāng)前溫度寄存器,并判斷有無(wú)超溫、置位或清除相應(yīng)的標(biāo)志位。</p><p> 圖4.7所示為
40、溫度檢測(cè)程序流程圖。</p><p> 圖 4.7溫度檢測(cè)程序流程圖</p><p> 單片機(jī)使用中斷INT0和計(jì)時(shí)器T0檢測(cè)輸入頻率的大小。為了減少測(cè)量的系統(tǒng)誤差相對(duì)值和隨機(jī)誤差對(duì)測(cè)量精度的影響,程序中取100個(gè)方波周期的和作為測(cè)量結(jié)果。程序中使用靜態(tài)變量px0count進(jìn)行外中斷的計(jì)數(shù),在測(cè)量開始時(shí),給px0count賦值2是為了讓頻率測(cè)量有準(zhǔn)確的起點(diǎn)。</p>&l
41、t;p> 另外,為了區(qū)分測(cè)頻的開始和結(jié)束,還使用了測(cè)頻開始標(biāo)志位T0tst和測(cè)頻完成標(biāo)志位Testok.</p><p> 圖4.8 所示為頻率測(cè)試程序流程圖。</p><p> 4.8 頻率測(cè)試程序流程圖</p><p> 第五章 調(diào)試及性能分析</p><p> 快熱式熱水器硬件電路不包含任務(wù)可調(diào)節(jié)元件,因此只要器
42、件質(zhì)量可靠,引腳焊接正確,硬件電路無(wú)需調(diào)試。</p><p> 該電路中測(cè)溫部分的振蕩電路對(duì)電容C1的容量比較敏感,若此電路要批量化生產(chǎn),可在熱敏電阻R24上再串一個(gè)可變電阻,以補(bǔ)償C1的容量變化。</p><p> 在初次試做本電路或關(guān)鍵硬件參數(shù)有調(diào)整事,應(yīng)對(duì)系統(tǒng)軟件中控制加熱功率的可控硅導(dǎo)通延時(shí)參數(shù)表和溫度/頻率轉(zhuǎn)換表這兩部分進(jìn)行調(diào)試。</p><p>
43、可控硅導(dǎo)通延時(shí)參數(shù)主要由市電的頻率和過(guò)零檢測(cè)電路的脈沖寬度決定,可以先根據(jù)市電頻率,按等功率的要求計(jì)算理論值,再根據(jù)過(guò)零檢測(cè)電路的脈沖寬度加以調(diào)整。</p><p> 溫度/頻率轉(zhuǎn)換表可以用對(duì)照標(biāo)準(zhǔn)溫度計(jì)實(shí)測(cè)的辦法進(jìn)行測(cè)試。</p><p> 用這個(gè)方案設(shè)計(jì)的快熱式家用電熱水器,電路簡(jiǎn)單,成本較低,經(jīng)試驗(yàn)運(yùn)行證明工作穩(wěn)定可靠,在無(wú)需改變硬件的條件下,如加入PID等自動(dòng)控制程序還可以升級(jí)
44、成自動(dòng)控溫的電熱水器。</p><p> 第六章 系統(tǒng)的抗干擾措施</p><p> 干擾就是有用信號(hào)以外的噪聲以及造成計(jì)算機(jī)等設(shè)備不能正常工作的破壞因素??刂葡到y(tǒng)的好壞往往取決于其抗干擾能力的強(qiáng)弱。好的控制系統(tǒng)不僅要求其各環(huán)節(jié)的設(shè)計(jì)和配置具有完備的功能,而且要求其具有良好的抗干擾性和穩(wěn)定性,否則再完善的系統(tǒng)和功能設(shè)計(jì),抗干擾性能不好,亦將前功盡棄。</p><p
45、> 6.1 系統(tǒng)干擾的來(lái)源</p><p> 干擾的來(lái)源一般可以來(lái)源分為內(nèi)部干擾和外部干擾。內(nèi)部干擾通常是由于系統(tǒng)自身結(jié)構(gòu)設(shè)計(jì)的不合理、制造工藝的缺陷等造成的,比如系統(tǒng)分布電容、分布電感引起的藕合感應(yīng),電磁場(chǎng)輻射感應(yīng),長(zhǎng)線傳輸?shù)牟ǚ瓷?,?duì)點(diǎn)接地造成電位差引起的干擾等。而外部干擾都是由外界環(huán)境因素決定的,諸如空間電或磁的影響,典型的有輸電線和電氣設(shè)備發(fā)出的電磁場(chǎng),通信廣播發(fā)出的無(wú)線電波,太陽(yáng)或其它天體輻
46、射出的電磁波,空中雷電,火花放電、弧光放電、輝光放電等放電現(xiàn)象,甚至氣溫、濕度等氣象條件。</p><p> 在抗干擾技術(shù)方面,根據(jù)以往的經(jīng)驗(yàn),主要有硬件抗干擾和軟件抗干擾,采取硬件措施一般可以將絕大部分干擾拒之門外,但仍然可能有少數(shù)干擾進(jìn)入系統(tǒng)中,引起不良后果,所以,作為系統(tǒng)抗干擾的第二道防線,軟件措施是必不可少的。通常硬件抗干擾效率高,但需要增加系統(tǒng)的硬件投資和擴(kuò)大設(shè)備的體積,而軟件抗干擾投資低,但由于軟件
47、抗干擾措施是以CPU的開銷為代價(jià)的,可能影響到系統(tǒng)的工作效率和實(shí)時(shí)性,因此,在實(shí)際應(yīng)用中,多半是軟硬件抗干擾措施相結(jié)合,最終才能形成一個(gè)完整成功的抗干擾系統(tǒng)。在本文中,我們主要使用了軟硬件抗干擾技術(shù),下面主要來(lái)講述抗干擾的一些措施。</p><p> 6.2 硬件方面的抗干擾措施</p><p> 在電源設(shè)計(jì)中采用多級(jí)濾波和多級(jí)穩(wěn)壓的方法來(lái)消除瞬態(tài)干擾,減小紋波電壓,提高直流輸出電壓
48、的穩(wěn)定性,以消除電源電壓波動(dòng)和浪涌沖擊產(chǎn)生的干擾。在信號(hào)的采集與信號(hào)的傳送過(guò)程中采用帶有光電耦合器的接口電路,實(shí)現(xiàn)單片機(jī)系統(tǒng)與外設(shè)之間的電隔離,以消除來(lái)自外部的各個(gè)方面的干擾。</p><p> 6.3 軟件方面的抗干擾措施</p><p> 6.3.1 數(shù)字濾波消除數(shù)據(jù)采集誤差</p><p> 生產(chǎn)現(xiàn)場(chǎng)由傳感器檢測(cè)到的信號(hào)不可避免地要混雜一些干擾信號(hào),特
49、別是傳輸線較長(zhǎng)時(shí)更是如此。在模擬控制系統(tǒng)里,都是由硬件組成的各種各樣濾波器干擾信號(hào)。在數(shù)字控制系統(tǒng)里,除一些必要的硬件濾波器很多濾波任務(wù)可以由數(shù)字濾波器承擔(dān)。數(shù)字濾波器的實(shí)質(zhì)上是一種數(shù)字處理方法,是由計(jì)算機(jī)程序?qū)崿F(xiàn)的數(shù)學(xué)運(yùn)算。數(shù)字濾波也稱為軟件濾波。數(shù)字濾波在數(shù)字控制系統(tǒng)里得到成功的應(yīng)用,因?yàn)榕c硬件濾波相比,數(shù)字濾波有很多優(yōu)點(diǎn):</p><p> 1. 數(shù)字濾波器是由程序?qū)崿F(xiàn)的,不需增加硬設(shè)備,而且可以多個(gè)輸入
50、通道共用(使用時(shí)調(diào)用濾波子程序即可),因而成本低。</p><p> 2.由于數(shù)字濾波是由程序?qū)崿F(xiàn)的,不需硬設(shè)備,因而可靠性好,穩(wěn)定性高,不存在阻抗匹配問(wèn)題。</p><p> 3.使用靈活,修改方便。</p><p> 4.可以實(shí)現(xiàn)硬件濾波無(wú)法實(shí)現(xiàn)或難以實(shí)現(xiàn)的濾波任務(wù)。</p><p> 6.3.2 利用“看門狗”技術(shù)來(lái)實(shí)現(xiàn)PC的快
51、恢復(fù)</p><p> 當(dāng)“跑飛”的PC指向程序區(qū),且在執(zhí)行到軟件陷阱之前己經(jīng)形成了一個(gè)死循環(huán),在這種倩況下只能采用“看門狗”技術(shù)來(lái)實(shí)現(xiàn)PC的快速自恢復(fù)。具體做法是為系統(tǒng)設(shè)置一個(gè)程序運(yùn)行監(jiān)視系統(tǒng),利用它使系統(tǒng)復(fù)位而重新初始化,重新執(zhí)行主控程序或進(jìn)入出錯(cuò)處理程序.程序運(yùn)行監(jiān)控系統(tǒng)有多種,實(shí)現(xiàn)方法各不相同,本控制器是利用單片機(jī)內(nèi)置的“看門狗”來(lái)完成,程序中每各隔一段時(shí)間訪問(wèn)WATCHDOG一次,利用其一級(jí)溢出和二級(jí)
52、溢出功能實(shí)現(xiàn)程序跑飛后的自動(dòng)返回。</p><p> 6.3.3 指令冗余</p><p> 計(jì)算機(jī)控制系統(tǒng)在受到某種干擾后,CPU可能將部分操作數(shù)當(dāng)作指令代碼來(lái)執(zhí)行,此時(shí)將引起程序混亂。在計(jì)算機(jī)指令中,有單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令等,當(dāng)程序彈飛在單字節(jié)指令的時(shí)候,它將自動(dòng)納入正常程序軌道,當(dāng)彈飛到雙字節(jié)指令時(shí),程序可能落在其操作數(shù)上,從而繼續(xù)出錯(cuò),當(dāng)程序彈飛到三字節(jié)指令時(shí),程
53、序可能落在其兩個(gè)操作數(shù)中的任一個(gè),出錯(cuò)的機(jī)會(huì)更大。因此,在程序中應(yīng)當(dāng)多采用單字節(jié)指令,特別是在一些關(guān)鍵的地方,人為的插入一些單字節(jié)指令或者將有效單字節(jié)指令重復(fù)書寫,即指令冗余。指令冗余會(huì)適當(dāng)?shù)脑黾覥PU的負(fù)荷,降低系統(tǒng)運(yùn)行效率,但能夠很好的保證系統(tǒng)在特定環(huán)境下的具有較高的穩(wěn)定性和容錯(cuò)性。</p><p><b> 心得與總結(jié)</b></p><p> 好快啊,一轉(zhuǎn)
54、眼我們就快要畢業(yè)了,還有幾個(gè)月的時(shí)間我們就要畢業(yè),走上社會(huì)這個(gè)大家庭了。在這段時(shí)間里,大家都在準(zhǔn)備畢業(yè)實(shí)踐。這個(gè)畢業(yè)實(shí)踐既是對(duì)理論知識(shí)的檢驗(yàn),也是動(dòng)手能力的表現(xiàn)。畢業(yè)實(shí)踐是為我們即將步入社會(huì)工作前的熱身鍛煉,讓我們把書本上的知識(shí)和實(shí)踐相結(jié)合。在老師的細(xì)心指導(dǎo)下,為期兩個(gè)月的畢業(yè)實(shí)踐即將結(jié)束,在設(shè)計(jì)的過(guò)程中學(xué)了很多東西,進(jìn)一步對(duì)本專業(yè)知識(shí)的加深和了解。</p><p> 當(dāng)老師把課題和要求下發(fā)后,我們就開始查閱相
55、關(guān)的資料,并寫開題報(bào)告,做好畢業(yè)實(shí)踐的前期準(zhǔn)備工作,好的開端是成功的一半。也對(duì)后面的設(shè)計(jì)有幫助。我所做的課題是快熱式電熱水器的設(shè)計(jì),老師給了我們比較多的參考資料,由于平時(shí)所學(xué)甚少,在此設(shè)計(jì)時(shí)我感到很吃力,還好現(xiàn)在互聯(lián)網(wǎng)技術(shù)發(fā)達(dá)、以及信息比較廣發(fā),這才使得我這個(gè)設(shè)計(jì)順利完成。其實(shí),我的這個(gè)課題接近我們的生活,在我們身邊隨處可見,我們也經(jīng)常會(huì)碰見,只是有時(shí)候很匆忙沒有來(lái)得急去想其工作原理。</p><p> 在做此
56、畢業(yè)實(shí)踐時(shí)我得出一個(gè)結(jié)論:知識(shí)必須通過(guò)應(yīng)用才能實(shí)現(xiàn)其價(jià)值。有些東西自以為學(xué)會(huì)了,但是用到它時(shí)才知道是兩回事。所以我認(rèn)為,能夠熟練地運(yùn)用所學(xué)的知識(shí)的時(shí)候才是真正意義上的學(xué)會(huì)了這方面的知識(shí)。</p><p> 這次畢業(yè)實(shí)踐使我在處理實(shí)際問(wèn)題上,有了很好的鍛煉。在考慮問(wèn)題方面,也有了一定的進(jìn)步。因?yàn)橐粋€(gè)畢業(yè)實(shí)踐是要綜合各方面知識(shí)才能完成,在學(xué)習(xí)的時(shí)候,很多課程都是相對(duì)獨(dú)立的,有的課程有聯(lián)系,但是我們想不到從何處把它們
57、聯(lián)系到一起來(lái)。而在畢業(yè)實(shí)踐中,許多問(wèn)題必須綜合起來(lái)考慮,單獨(dú)的哪一門課程是解決不了問(wèn)題,這就提高了我們綜合各方面知識(shí)運(yùn)用的能力,將各方面問(wèn)題與所學(xué)的專業(yè)知識(shí)聯(lián)系起來(lái),這樣更容易解決所出現(xiàn)的問(wèn)題。首先要從大局出發(fā),每個(gè)工程都是由幾個(gè)模塊組成,所以我們要把這些模塊確定好,每個(gè)模塊的設(shè)計(jì)都不一樣,模塊設(shè)計(jì)完成后,就是要很好的把這些模塊連接起來(lái),組成整體。連接后,就要對(duì)其進(jìn)行調(diào)試,這個(gè)調(diào)試是個(gè)很復(fù)雜的過(guò)程。就相當(dāng)于把畢業(yè)實(shí)踐各個(gè)方面都要聯(lián)系起來(lái)
58、,一個(gè)一個(gè)問(wèn)題的解決,使其達(dá)到最佳狀態(tài)。畢業(yè)實(shí)踐可以檢驗(yàn)出我們對(duì)所學(xué)的知識(shí)掌握能力,哪些地方已經(jīng)掌握了,哪些地方還沒掌握。通過(guò)畢業(yè)實(shí)踐就可以清楚的知道自己在大學(xué)三年里是否學(xué)到了,還是在學(xué)校玩了三年。在此,我非常感謝指導(dǎo)本次畢業(yè)實(shí)踐的彭志剛和羅紅老師。</p><p> 同時(shí),在做本畢業(yè)實(shí)踐的過(guò)程中,一些其他的老師和同學(xué)還給了我建議與幫助。在此,同時(shí)感謝所有在畢業(yè)實(shí)踐中給我?guī)椭睦蠋熀屯瑢W(xué)們,謝謝!</p&
59、gt;<p><b> 參考文獻(xiàn)</b></p><p> 單片機(jī)原理及接口技術(shù)/李朝青-杭州:北京航空航天大學(xué)出版社,1998</p><p> 單片機(jī)基礎(chǔ)【M】/李廣第—北京:北京航空航天大學(xué)出版社,1994</p><p> 數(shù)字電子技術(shù)基礎(chǔ)(第三版)/閻石一北京:高等教育出版社,1989</p>&l
60、t;p> 電子技術(shù)基礎(chǔ)(第五版)/康華光—北京:高等教育出版社,2006</p><p> 例說(shuō)8051/張義禾,陳敵北—北京:人民郵電出版社,2006</p><p> 8051單片機(jī)數(shù)據(jù)傳輸接口與擴(kuò)展技術(shù)及應(yīng)用實(shí)例/楊金巖,鄭應(yīng)強(qiáng),張振仁—北京:人民郵電出版社,2005</p><p> 單片機(jī)工程實(shí)訓(xùn)指導(dǎo)/樓蘭苗,李光飛—北京:北京航空航天大學(xué)出
61、版社,2007</p><p> 電力電子技術(shù)/ 石新春,楊京燕,王毅—北京:中國(guó)電力出版社,2006</p><p> 單片機(jī)原理及應(yīng)用[M]/李建中—西安:西安電子科技大學(xué)出版社,2003</p><p> 附錄一 快熱式電熱水器硬件原理圖</p><p><b> :</b></p><
62、;p> 附錄二 程 序</p><p><b> 快熱式熱水器程序</b></p><p> MCU ATAT89S52 XAL 12MHz</p><p> Build by Gavin Hu, 2005.3.18</p><p> ------------------------------
63、--------*/</p><p> //#pragma src</p><p> #include <reg51.h></p><p> #include <intrins.h></p><p> #include <math.h></p><p> void del
64、ay(unsigned int); //延時(shí)函數(shù)</p><p> void display(void); //顯示函數(shù)</p><p> unsigned char keyscan(void); //按鍵掃描處理函數(shù)</p><p> void heatctrl(void); //加熱控制函數(shù)&
65、lt;/p><p> void temptest(void); //測(cè)溫函數(shù)</p><p> sbit swkey=P1^0; //開關(guān)鍵</p><p> sbit upkey=P1^1; //加熱檔位“+”鍵</p><p> sbit downkey
66、=P1^2; //加熱檔位“-”鍵</p><p> sbit buzz=P1^05; //蜂鳴器輸出端</p><p> sbit triac=P1^6; //可控硅觸發(fā)信號(hào)輸出端</p><p> sbit relay=P1^7; //繼電器
67、控制信號(hào)輸出端</p><p> sbit led1=P2^5; //加熱檔位指示燈1</p><p> sbit led2=P2^6; //加熱檔位指示燈2</p><p> sbit led3=P2^7; //加熱檔位指示燈3</p><p&
68、gt; signed char data ctemp; //當(dāng)前測(cè)得水溫寄存器</p><p> unsigned char data dispram[2]={0x10,0x10}; //顯示區(qū)緩存</p><p> unsigned char data heatpower,px0count; //加熱檔位寄存器、外中斷0計(jì)數(shù)器</p>&l
69、t;p> bit tempov,t0tst,testok; //超溫標(biāo)志、測(cè)溫開始標(biāo)志、測(cè)溫完成標(biāo)志</p><p> /*----------------------------------------------</p><p> 主函數(shù) void main(void)</p><p><b> 無(wú)參數(shù),無(wú)返回值</b
70、></p><p> 循環(huán)調(diào)用顯示、鍵掃描、溫度檢測(cè)、加熱控制函數(shù)</p><p> ----------------------------------------------*/</p><p> void main(void)</p><p><b> { </b></p><p&
71、gt; unsigned char i,j;</p><p> ctemp=15; //初始化水溫寄存器</p><p> heatpower=5; //初始化加熱檔位為5當(dāng)</p><p> tempov=0; //清除超溫標(biāo)志&l
72、t;/p><p> swkey=0; //默認(rèn)開關(guān)鍵被按下,進(jìn)入待機(jī)狀態(tài)</p><p> TMOD=0x11; //設(shè)定T0和T1工作方式為16位定時(shí)器</p><p> TCON=0x05; //設(shè)置外中斷0和1為下降沿觸發(fā)<
73、/p><p> IP=0x01; //設(shè)置外中斷0優(yōu)先</p><p> IE=0x80; //打開總中斷</p><p><b> while (1)</b></p><p><b> {</b><
74、;/p><p><b> i=1;</b></p><p><b> do{</b></p><p> for (j=0;j<100;j++) //循環(huán)100次約0.5s</p><p><b> {</b></p><p>
75、 if (keyscan()) i=6; //如果有鍵按下,顯示當(dāng)前檔位3s</p><p> display(); //調(diào)用顯示函數(shù)一次約4ms</p><p> heatctrl(); //調(diào)用加熱控制函數(shù)</p><p> }//end for (b=0;b<100;b++)&l
76、t;/p><p> temptest(); //每0.5s進(jìn)行一次測(cè)溫</p><p> } while (--i); //通過(guò)改變循環(huán)次數(shù)i的大小決定是否刷新顯示</p><p> j=abs(ctemp); //取溫度絕對(duì)值</p><p> d
77、ispram[1]=j%10; //取個(gè)位數(shù)送顯示</p><p> j/=10; //取十位數(shù)</p><p> dispram[0]=j?j:0x11; //送顯示(帶滅零)</p><p> }//end while (1)</p><p>
78、<b> } </b></p><p> /*--------------------------------------</p><p> 延時(shí)函數(shù) void delay(unsigned int dt)</p><p> 參數(shù):dt,無(wú)返回值</p><p> 延時(shí)時(shí)間=dt*500機(jī)器周期</p&g
79、t;<p> --------------------------------------*/</p><p> void delay(unsigned int dt)</p><p><b> {</b></p><p> register unsigned char bt; //定義寄存器變量</p&g
80、t;<p> for (; dt; dt--)</p><p> for (bt=250; --bt; ); //此句編譯時(shí)以“DJNZ”實(shí)現(xiàn),250*2=500機(jī)器周期</p><p><b> }</b></p><p> /*--------------------------------------
81、</p><p> 顯示函數(shù) void display(void)</p><p><b> 無(wú)參數(shù),無(wú)返回值</b></p><p> 兩位共陽(yáng)數(shù)碼管掃描顯示</p><p> --------------------------------------*/</p><p> void
82、 display(void)</p><p><b> {</b></p><p> unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,\</p><p> 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xf
83、f};</p><p> unsigned char i,a;</p><p> a=0xfe; //位選賦初值</p><p> for (i=0; i<2; i++) //循環(huán)掃描兩位數(shù)碼管</p><p><b> {</b>&l
84、t;/p><p> P2|=0x1f; //清除位選</p><p> P0=table[dispram[i]]; //送顯示段碼</p><p> P2&=a; //選通一位</p><p> delay(4);
85、 //延時(shí)2ms</p><p> a=_crol_(a,1); //改變位選字</p><p> P0=0xff; //消影</p><p><b> }</b></p><p><b> }</b&
86、gt;</p><p> /*----------------------------------------------------------</p><p> 按鍵掃描處理函數(shù) unsigned char keyscan(void)</p><p> 無(wú)參數(shù),返回值:無(wú)符號(hào)字符型,無(wú)鍵按下為0,有鍵按下為其它</p><p>
87、影響全局變量:heatpower</p><p> ----------------------------------------------------------*/</p><p> unsigned char keyscan(void)</p><p><b> {</b></p><p> unsig
88、ned char i,ch;</p><p> if (upkey==0) //“+”鍵</p><p><b> {</b></p><p> buzz=0; //打開蜂鳴器(發(fā)出按鍵音)</p><p> for (i=0;i&l
89、t;5;i++) display(); //延時(shí)消抖</p><p> buzz=1; //關(guān)閉蜂鳴器</p><p> if (heatpower<9) heatpower++; //檔位加一</p><p> dispram[0]=0;</p><p> dispram[1]=h
90、eatpower; //顯示當(dāng)前檔位</p><p> while (upkey==0) display(); //等待鍵釋放</p><p> return (1); //返回有鍵按下</p><p><b> }</b></p><p> else if
91、 (downkey==0) //“-”鍵</p><p><b> {</b></p><p> buzz=0; //打開蜂鳴器(發(fā)出按鍵音)</p><p> for (i=0;i<5;i++) display(); //延時(shí)消抖</p><p&g
92、t; buzz=1; //關(guān)閉蜂鳴器</p><p> if (heatpower>0) heatpower--; //檔位減一</p><p> dispram[0]=0;</p><p> dispram[1]=heatpower; //顯示當(dāng)前檔位</p><p>
93、; while (downkey==0) display(); //等待鍵釋放</p><p> return (2); //返回有鍵按下</p><p><b> }</b></p><p> else if (swkey==0) //開關(guān)鍵</p><p&
94、gt;<b> {</b></p><p> buzz=0; //打開蜂鳴器(發(fā)出按鍵音)</p><p> for (i=0;i<30;i++) display(); //延時(shí)消抖</p><p> buzz=1; //關(guān)閉蜂鳴器</p
95、><p> swkey=1; //置位開關(guān)鍵</p><p> while (swkey==0) display(); //等待鍵釋放</p><p> ch=IE; //暫存中斷控制字IE</p><p> IE=0x00;
96、 //禁止中斷</p><p><b> P0=0xff;</b></p><p><b> P1=0xff;</b></p><p> P2=0xff; //清除端口輸出</p><p> dispram[0]=0x10;<
97、;/p><p> dispram[1]=0x10; //顯示“--”</p><p> display();</p><p><b> while (1)</b></p><p><b> {</b></p><p> while (swkey
98、) display(); //等待開關(guān)鍵按下</p><p> buzz=0; //打開蜂鳴器(發(fā)出按鍵音)</p><p> for (i=0;i<10;i++) display();//延時(shí)消抖</p><p> buzz=1; //關(guān)閉蜂鳴器</p&g
99、t;<p> if (swkey==0) break; //確認(rèn)開關(guān)鍵被按下</p><p><b> }</b></p><p> while (swkey==0) display(); //等待鍵釋放</p><p> IE=ch; //還原中斷控制
100、字IE</p><p> return (0); //返回?zé)o鍵按下</p><p><b> }</b></p><p> else return (0); //無(wú)任何鍵按下時(shí)由此返回</p><p><b> }</b>&l
101、t;/p><p> /*--------------------------------------</p><p> 加熱控制函數(shù) void heatctrl(void)</p><p><b> 無(wú)參數(shù),無(wú)返回值</b></p><p> 判斷是否加熱、加熱功率及檔位指示燈處理</p><p&
102、gt; --------------------------------------*/</p><p> void heatctrl(void)</p><p><b> {</b></p><p> if (!tempov) //當(dāng)沒有超溫標(biāo)志時(shí)</p><p><
103、;b> {</b></p><p> relay=0; //接通繼電器</p><p> buzz=1; //關(guān)閉蜂鳴器</p><p> switch (heatpower) //判斷加熱檔位</p><p
104、><b> {</b></p><p> case 0: {EX1=0;ET1=0;triac=1;led1=1;led2=1;led3=1;break;}//0檔不加熱,指示燈不亮</p><p><b> case 1:</b></p><p><b> case 2:</b><
105、;/p><p><b> case 3:</b></p><p> case 4: {led1=0;led2=1;led3=1;EX1=1;break;} //1~4檔1號(hào)指示等亮</p><p><b> case 5:</b></p><p><b> case 6:</b&
106、gt;</p><p><b> case 7:</b></p><p> case 8: {led1=0;led2=0;led3=1;EX1=1;break;} //5~8檔1號(hào)、2號(hào)指示燈亮</p><p> case 9: {EX1=0;ET1=0;led1=0;led2=0;led3=0;triac=0;break;} //9檔全
107、功率,指示燈全亮</p><p><b> }</b></p><p><b> }</b></p><p> else //當(dāng)有超溫標(biāo)志時(shí)</p><p><b> {</b></p><p>
108、; relay=1; //斷開繼電器</p><p> EX1=0; ET1=0; triac=1; //關(guān)閉可控硅</p><p> buzz=0; //蜂鳴報(bào)警</p><p><b> }</b></p><
109、;p><b> }</b></p><p> /*--------------------------------------</p><p> 測(cè)溫函數(shù) void temptest(void)</p><p><b> 無(wú)參數(shù),無(wú)返回值,</b></p><p> 影響全局變量:c
110、temp,tempov</p><p> 測(cè)量并查表計(jì)算溫度,判斷是否超溫</p><p> --------------------------------------*/</p><p> void temptest(void)</p><p><b> {</b></p><p>
111、 signed char temp,tempmin,tempmax;</p><p> unsigned int t0rig;</p><p> unsigned int code temptab[]={0x6262,0x61eb,0x6171,0x60f7,0x6047,0x5ff7,0x5f6e,0x5eef,0x5e53,0x5dbe,0x5d4b,0x5ca5,0x5c17,\
112、</p><p> 0x5b6b,0x5ada,0x5a5c,0x599b,0x58ff,0x5869,0x57b0,0x570d,0x5663,0x55c6,0x550e,0x5444,0x5396,\</p><p> 0x52dd,0x5240,0x5189,0x50b0,0x5005,0x4f20,0x4e69,0x4db1,0x4cef,0x4c42,0x4b64,0x4aa
113、a,0x49e1,\</p><p> 0x48fc,0x4847,0x476c,0x46b1,0x4604,0x4503,0x4449,0x4356,0x4299,0x41c0,0x40ce,0x3ff0,0x3f2b,\</p><p> 0x3e33,0x3d86,0x3ca6,0x3bd2,0x3b26,0x3a39,0x3973,0x38a6,0x37ef,0x373f,0x
114、3687,0x35c3,0x3507,\</p><p> 0x3487,0x33bc,0x32ed,0x324f,0x319e,0x3106,0x3053,0x2fa6,0x2f2a,0x2e88,0x2e00,0x2d63,0x2cd6,\</p><p> 0x2c65,0x2bae,0x2b28,0x2a97,0x2a07,0x298e,0x2914,0x287a,0x280d
115、,0x278a,0x2703,0x2687,0x2626,\</p><p> 0x25e5,0x256d,0x24ee,0x2489,0x2414,0x23bc,0x2356,0x22d9,0x2278,0x2203}; //溫度頻率表</p><p> px0count=2; //測(cè)頻中斷函數(shù)參數(shù)</p><p>
116、 t0tst=1; //置測(cè)頻程序開始標(biāo)志</p><p> EX0=1; //打開測(cè)頻外中斷</p><p> testok=0; //清除測(cè)頻程序完成標(biāo)志</p><p> while (!testok) dis
117、play(); //等待測(cè)試完成</p><p> t0rig=(unsigned int)TH0<<8|TL0; //字節(jié)合成字</p><p> tempmin=0; //以下是二分查表法計(jì)算溫度值</p><p> tempmax=100; //
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---快熱式家用電熱水器的設(shè)計(jì)
- 快熱式家用電熱水器的設(shè)計(jì)
- 課題實(shí)踐快熱式家用電熱水器的設(shè)計(jì)
- 家用電熱水器的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)控制的快熱式家用電熱水器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)控制的快熱式家用電熱水器的設(shè)計(jì)
- 智能家用電熱水器控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 【課程設(shè)計(jì)】-基于單片機(jī)的快熱式家用電熱水器的設(shè)計(jì)
- 家用電熱水器控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于51單片機(jī)的家用電熱水器設(shè)計(jì)
- 智能家用電熱水器控制器
- 智能家用電熱水器控制器
- 家用電熱水器控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 電氣工程及其自動(dòng)化畢業(yè)設(shè)計(jì)快熱式電熱水器的設(shè)計(jì)
- 家用電熱水器控制系統(tǒng)的設(shè)計(jì)【開題報(bào)告】
- 電熱水器畢業(yè)設(shè)計(jì)開題報(bào)告
- 智能家用電熱水器控制器.pdf
- 智能家用電熱水器控制器.pdf
- 外文翻譯-----智能家用電熱水器控制器
- 畢業(yè)論文----基于51單片機(jī)的家用電熱水器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論