版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 智能熱水器設(shè)計(jì)</b></p><p> 學(xué)院(系): </p><p> 專(zhuān)業(yè)班級(jí): </p><p> 學(xué)生姓名:
2、</p><p> 指導(dǎo)教師: </p><p><b> 目 錄</b></p><p><b> 摘 要V</b></p><p> AbstractVI</p><p><b> 緒論1</b>&
3、lt;/p><p> 1 主要器件和編程語(yǔ)言簡(jiǎn)介2</p><p> 1.1本設(shè)計(jì)所用到的主要元器件2</p><p><b> 1.2器件簡(jiǎn)介2</b></p><p> 1.2.1FPGA簡(jiǎn)介2</p><p> 1.2.2單片機(jī)簡(jiǎn)介3</p><p&g
4、t; 1.2.3DS1302簡(jiǎn)介3</p><p> 1.2.4DS18B20簡(jiǎn)介5</p><p> 1.3編程語(yǔ)言簡(jiǎn)介6</p><p> 1.3.1VHDL簡(jiǎn)介6</p><p> 1.3.2C51語(yǔ)言簡(jiǎn)介6</p><p> 2 系統(tǒng)方案選擇和論證8</p>&l
5、t;p><b> 2.1設(shè)計(jì)要求8</b></p><p> 2.2各模塊方案論證和選擇8</p><p> 2.2.1控制器模塊方案的論證和選擇8</p><p> 2.2.2水位控制模塊方案的論證和選9</p><p> 2.2.3水溫控制模塊方案的論證和選擇9</p>&
6、lt;p> 2.2.4定時(shí)開(kāi)關(guān)控制模塊方案的論證和選擇10</p><p> 2.2.5時(shí)鐘模塊方案的論證和選擇10</p><p> 2.2.6鍵盤(pán)模塊方案的論證和選擇11</p><p> 2.2.7顯示模塊方案的論證和選擇11</p><p> 2.3硬件系統(tǒng)框圖和總體軟件系統(tǒng)流程圖11</p&g
7、t;<p> 2.4硬系統(tǒng)總體電路圖14</p><p> 2.4.1FPGA模塊電路圖14</p><p> 2.4.2單片機(jī)控制模塊電路圖15</p><p> 3 .硬件電路組裝調(diào)試17</p><p> 3.1各模塊的硬件組裝17</p><p> 3.1.1FPGA模塊
8、17</p><p> 3.1.2單片機(jī)模塊18</p><p> 3.2組裝和改進(jìn)系統(tǒng)硬件電路19</p><p> 3.3各硬件電路調(diào)試方法20</p><p> 3.3.1FPGA調(diào)試方法20</p><p> 3.3.2繼電器電路的調(diào)試方法21</p><p>
9、; 4 .軟件調(diào)試及仿真22</p><p> 4.1各模塊的軟件調(diào)試、仿真和實(shí)物測(cè)試22</p><p> 4.1.1 FPGA軟件調(diào)試、仿真和實(shí)物測(cè)試22</p><p> 4.1.2DS1302軟件調(diào)試、仿真和實(shí)物測(cè)試23</p><p> 4.1.3DS18B20軟件調(diào)試、仿真和實(shí)物測(cè)試23</p>
10、<p> 4.2整個(gè)系統(tǒng)軟件調(diào)試、仿真和實(shí)物測(cè)試24</p><p> 4.2.1主程序的調(diào)試、仿真和實(shí)物測(cè)試24</p><p> 4.2.2水位調(diào)節(jié)子程序的調(diào)試、仿真和實(shí)物測(cè)試26</p><p> 4.2.3水溫調(diào)節(jié)子程序的調(diào)試、仿真和實(shí)物測(cè)試26</p><p> 4.2.4定時(shí)開(kāi)關(guān)子程序的調(diào)試、仿真和
11、實(shí)物測(cè)試28</p><p> 4.2.5校時(shí)程序仿真29</p><p> 4.2.6按鍵功能提示界面的程序仿真30</p><p> 4.2.7沒(méi)有實(shí)現(xiàn)的第二定時(shí)功能提示界面的程序仿真30</p><p> 5 .總體設(shè)計(jì)電路的優(yōu)缺點(diǎn)總結(jié)及改進(jìn)意見(jiàn)和展望31</p><p><b>
12、5.1優(yōu)點(diǎn)31</b></p><p><b> 5.2缺點(diǎn)31</b></p><p> 5.3改進(jìn)意見(jiàn)和展望31</p><p><b> 結(jié) 論32</b></p><p><b> 參考文獻(xiàn)33</b></p><p&
13、gt; 附錄A:VHDL語(yǔ)言源程序34</p><p> 附錄B: C51語(yǔ)言程序主程序名及頭文件名35</p><p><b> 致 謝36</b></p><p><b> 插圖索引</b></p><p> 圖1 DS1302封裝圖4</p><p>
14、; 圖2 KEIL uVision2 C51 編譯器所支持的數(shù)據(jù)類(lèi)型7</p><p> 圖3 智能熱水器系統(tǒng)設(shè)計(jì)總體框圖12</p><p> 圖4 FPGA控制器設(shè)計(jì)總體框圖12</p><p> 圖5 MCU控制器設(shè)計(jì)總體框圖12</p><p> 圖6 矩陣鍵盤(pán)特征值分布圖13</p><p&g
15、t; 圖7 總體程序流程圖13</p><p> 圖8 校時(shí)、調(diào)溫功能按鍵分布圖及對(duì)應(yīng)特征值14</p><p> 圖9 FPGA控制模塊電路圖15</p><p> 圖10 單片機(jī)控制模塊電路圖16</p><p> 圖11 自制水位傳感器17</p><p> 圖12 繼電器驅(qū)動(dòng)電路17&l
16、t;/p><p> 圖13 矩陣鍵盤(pán)電路18</p><p> 圖14 LCD12864的顯示電路18</p><p> 圖15 DS1302電路19</p><p> 圖16 DS18B20電路19</p><p> 圖17 改進(jìn)后的繼電器驅(qū)動(dòng)電路20</p><p> 圖1
17、8 自制水位傳感器20</p><p> 圖19 自頂向下的設(shè)計(jì)流程22</p><p> 圖20 FPGA控制器的時(shí)序仿真圖22</p><p> 圖21 FPGA控制器結(jié)構(gòu)圖22</p><p> 圖22 DS1302仿真圖23</p><p> 圖23 DS18B20仿真圖23</p&
18、gt;<p> 圖24 主程序流程圖24</p><p> 圖25 主程序仿真圖25</p><p> 圖26 提示功能界面仿真圖25</p><p> 圖27 水位調(diào)節(jié)程序的流程圖26</p><p> 圖28 水位調(diào)節(jié)程序仿真圖(a)26</p><p> 圖29 水位調(diào)節(jié)程序仿
19、真圖(b)26</p><p> 圖30 水溫調(diào)節(jié)子程序流程圖27</p><p> 圖31 水溫調(diào)節(jié)仿真圖27</p><p> 圖32 按確定鍵后的水溫調(diào)節(jié)界面28</p><p> 圖33 定時(shí)開(kāi)關(guān)子程序流程圖28</p><p> 圖34 定時(shí)開(kāi)關(guān)功能仿真圖28</p>&l
20、t;p> 圖35 按確定鍵后的仿真圖29</p><p> 圖36 校時(shí)功能界面仿真29</p><p> 圖37 按確定鍵后的校時(shí)功能界面仿真29</p><p> 圖38 提示功能界面仿真30</p><p> 圖39 沒(méi)實(shí)現(xiàn)的定時(shí)功能提示界面仿真30</p><p><b>
21、 摘 要</b></p><p> 智能化的熱水器一般的用單片機(jī)作為控制器,能實(shí)現(xiàn)恒溫和水位的自動(dòng)調(diào)節(jié)的功能,本設(shè)計(jì)是以FPGA和單片共同作為控制器件設(shè)的智能化熱水器,在減少了一些外圍器件的同時(shí)實(shí)現(xiàn)了恒溫和水位的自動(dòng)調(diào)節(jié)控制,還能實(shí)施時(shí)間監(jiān)控,根據(jù)不同的月份,不同的日期,不同的時(shí)間而自動(dòng)開(kāi)啟和關(guān)斷熱水器的電源,從而使得熱水使用更加方便,設(shè)定后不需要人的干預(yù),同時(shí)能節(jié)約電能。本設(shè)計(jì)編程語(yǔ)言使用VHD
22、L 語(yǔ)言和C51,運(yùn)行環(huán)境分別是MAX+plus II 10.0和Keil uVision3,用Proteus 7 Professional畫(huà)系統(tǒng)的電路圖并進(jìn)行仿真調(diào)試,F(xiàn)PGA芯片使用Altera公司的EPF10K10TC144-4,單片機(jī)使用STC89C52RC.</p><p> 關(guān)鍵詞: 智能、熱水器 、FPGA 、EDA 、VHDL、單片機(jī)89C51、 C51、恒溫控制、液位控制、時(shí)鐘控制、鍵盤(pán)控制、
23、液晶顯示</p><p><b> Abstract</b></p><p> Water heaters are generally use MCU as the controller.This kind of water heaters could achieve to constant temperature and water level automati
24、clly, The design of intelligent water heater is based on FPGA and MCU control, reducing the number of peripheral devices while achieving the automatic adjustment of temperature and water level control, and also monitor t
25、he implementation of the time, according to a different month, different days, different times and automatic turned on and off the power </p><p> The design of programming language uses VHDL language and C5
26、1, operating environment are MAX + plus II 10.0 and Keil uVision3, with Proteus 7 Professional painting system and the simulation circuit debug, FPGA chip use Altera's EPF10K10TC144-4, microcontroller use STC89C52RC.
27、</p><p> Key words: Smart, water heaters, FPGA, EDA, VHDL, MCU 89C51, C51, temperature control, water level control, clock control, keyboard control, liquid crystal display</p><p><b> 緒論
28、</b></p><p><b> 選題的背景及目的</b></p><p> 市場(chǎng)上適合家庭使用的熱水器有兩類(lèi),一類(lèi)是燃?xì)馐?,另一?lèi)是電熱式,而購(gòu)買(mǎi)熱水器主要考慮價(jià)格、安全性,方便性、壽命、成本等因素,一般來(lái)說(shuō),燃?xì)鉄崴鞯膬?yōu)點(diǎn)是價(jià)格低、加熱快、出水量大、溫度穩(wěn)定,缺點(diǎn)是必須分室安裝,不易調(diào)溫,需定期除垢,在使用中易產(chǎn)生有害氣體,因此其使用受到一定限
29、制;儲(chǔ)水式電熱水器的優(yōu)點(diǎn)是干凈、衛(wèi)生,不必分室安裝,不產(chǎn)生有害氣體,調(diào)溫方便,高檔產(chǎn)品還有到達(dá)設(shè)定溫度后自動(dòng)斷電、自動(dòng)補(bǔ)溫等功能。本設(shè)計(jì)是基于已有的儲(chǔ)水式電熱水器基礎(chǔ)上實(shí)現(xiàn)時(shí)鐘定時(shí)開(kāi)關(guān)的控制和高溫?cái)嗦繁Wo(hù)功能,同時(shí)用FPGA作為數(shù)據(jù)采集器,使得液位和溫度的實(shí)時(shí)性更強(qiáng),液位和溫度的精準(zhǔn)度更高,同時(shí)可手動(dòng)調(diào)節(jié)液位和溫度,用LCD顯示相關(guān)信息,整個(gè)系統(tǒng)外圍器件少,穩(wěn)定性高,同時(shí)安裝使用方便。</p><p><b
30、> 研究現(xiàn)狀分析</b></p><p> 目前大多數(shù)智能熱水器都是基于單片機(jī)控制的智能熱水器,利用EDA技術(shù)和單片機(jī)技術(shù),設(shè)計(jì)的基于FPGA電熱式熱水器控制器,實(shí)現(xiàn)系統(tǒng)的硬件電路及相關(guān)配套軟件的設(shè)計(jì),使系統(tǒng)能完成熱水器定時(shí)開(kāi)關(guān)、熱水器溫度、水位參數(shù)的采集、對(duì)采集數(shù)據(jù)實(shí)時(shí)記錄、處理、分析、顯示和控制等功能。</p><p> 此設(shè)計(jì)將FPGA和單片機(jī)結(jié)合使用,既發(fā)揮
31、了FPGA高速數(shù)據(jù)采集的特點(diǎn),有發(fā)揮了單片機(jī)在控制方便的優(yōu)點(diǎn),因此整個(gè)系統(tǒng)的實(shí)時(shí)性比一般的僅用單片機(jī)設(shè)計(jì)的系統(tǒng)的實(shí)時(shí)性強(qiáng),但在其性價(jià)比低,因而,此設(shè)計(jì)僅適用于練習(xí)FPGA與單片機(jī)的通信功能,練習(xí)用FPGA和單片機(jī)完成一個(gè)具體系統(tǒng)的具體功能的設(shè)計(jì),如果希望此產(chǎn)品能具有一定的實(shí)用價(jià)值和市場(chǎng)競(jìng)爭(zhēng)力,可以用單片機(jī)單獨(dú)完成此設(shè)計(jì),用DS1302時(shí)鐘芯片完成時(shí)鐘的嵌入和定時(shí)控制的功能。 </p><p><b>
32、 研究方法</b></p><p> 通過(guò)分析現(xiàn)有電熱式熱水器的功能和結(jié)構(gòu)的和查閱相關(guān)文獻(xiàn)、資料,總結(jié)現(xiàn)了市場(chǎng)上現(xiàn)有的熱水器的種類(lèi)、結(jié)構(gòu)和功能特點(diǎn),在已有產(chǎn)品的功能基礎(chǔ)上加入了定時(shí)開(kāi)關(guān)功能,使得此產(chǎn)品更人性化也符合社會(huì)提倡的節(jié)能的需要,此設(shè)計(jì)先通過(guò)Proteus 和MasplusII等軟件仿真,然后在系統(tǒng)板上進(jìn)行逐個(gè)的功能調(diào)試,在逐個(gè)功能完成的基礎(chǔ)上進(jìn)行系統(tǒng)總體功能調(diào)試。</p>&l
33、t;p> 主要器件和編程語(yǔ)言簡(jiǎn)介</p><p> 1.1本設(shè)計(jì)所用到的主要元器件</p><p> FPGA芯片 EPF10K10TC144-4 一片</p><p> 單片機(jī) STC89C52RC 一片</p><p> 時(shí)鐘芯片
34、 DS1302 一片</p><p> 溫度傳感器 DS18B20 一個(gè)</p><p> 液晶顯示器 LCD12864 一片</p><p> 繼電器 HLS8L-DC5V-S-C
35、 三個(gè)</p><p> 電平轉(zhuǎn)換芯片 MAX232 一片</p><p><b> 1.2器件簡(jiǎn)介</b></p><p> 1.2.1FPGA簡(jiǎn)介</p><p> FPGA是英文Field Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可
36、編程門(mén)陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。
37、 </p><p> FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IO
38、B(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有:</p><p> (1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。( 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。</p><p> (3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。</p><p> (
39、4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。</p><p> (5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。</p><p> 可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。</p><p> 目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALT
40、ERA公司的FLEX系列等。</p><p> FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。</p><p> 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA
41、的編程無(wú)須專(zhuān)用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。</p><p> FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將
42、FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。</p><p> 1.2.2單片機(jī)簡(jiǎn)介</p><p> 單片機(jī)STC89C52RC和89C51單片機(jī)基本相同,具體資料參照參考教科書(shū)《單片微型計(jì)算機(jī)原理及應(yīng)用》,張毅坤、陳善久、裘學(xué)紅編著。</p><p> 1.2.3DS1302簡(jiǎn)介</p><p> DS1302 是美國(guó)DA
43、LLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行
44、涓細(xì)電流充電的能力。 </p><p><b> 引腳功能及結(jié)構(gòu) </b></p><p> DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vc
45、c1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5
46、V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK為時(shí)鐘輸入端。 DS1302的引腳功能圖如下圖:</p><p><b> DS1302封裝圖</b></p><p> DS1302的控制字節(jié) </p><p> DS1302 的控制字如圖2所示。
47、控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出。 </p><p> 數(shù)據(jù)輸入輸出(I/O) </p><p> 在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)
48、據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 </p><p> DS1302的寄存器 </p><p> DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表1。</p><p&g
49、t; 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě)
50、)、FFH(讀)。 </p><p> 為了實(shí)現(xiàn)系統(tǒng)報(bào)警計(jì)時(shí)等功能,此設(shè)計(jì)采用了DS302實(shí)時(shí)時(shí)鐘芯片。DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8
51、的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 2.1 引腳功能及結(jié)構(gòu) DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小
52、于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST</p><p> 1.2.4DS18B20簡(jiǎn)介</p><p> DS18B20的數(shù)字溫度計(jì)提供9至12位(可編程設(shè)備溫度讀數(shù)。信息被發(fā)送到/從DS18B20 通過(guò)1線接口,所以中央微處理
53、器與DS18B20只有一個(gè)一條口線連接。為讀寫(xiě)以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。 因?yàn)槊恳粋€(gè)DS18B20的包含一個(gè)獨(dú)特的序號(hào),多個(gè)ds18b20s可以同時(shí)存在于一條總線。這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測(cè)建筑物內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過(guò)程監(jiān)測(cè)和控制。</p><p><b> 存儲(chǔ)器</b></p><p>
54、; DS18B20的存儲(chǔ)器包括高速暫存器RAM和可電擦除RAM,可電擦除RAM又包括溫度觸發(fā)器TH和TL,以及一個(gè)配置寄存器。存儲(chǔ)器能完整的確定一線端口的通訊,數(shù)字開(kāi)始用寫(xiě)寄存器的命令寫(xiě)進(jìn)寄存器,接著也可以用讀寄存器的命令來(lái)確認(rèn)這些數(shù)字。當(dāng)確認(rèn)以后就可以用復(fù)制寄存器的命令來(lái)將這些數(shù)字轉(zhuǎn)移到可電擦除RAM中。當(dāng)修改過(guò)寄存器中的數(shù)時(shí),這個(gè)過(guò)程能確保數(shù)字的完整性。</p><p> 高速暫存器RAM是由8個(gè)字節(jié)的存
55、儲(chǔ)器組成;第一和第二個(gè)字節(jié)是溫度的顯示位。第三和第四個(gè)字節(jié)是復(fù)制TH和TL,同時(shí)第三和第四個(gè)字節(jié)的數(shù)字可以更新;第五個(gè)字節(jié)是復(fù)制配置寄存器,同時(shí)第五個(gè)字節(jié)的數(shù)字可以更新;六、七、八三個(gè)字節(jié)是計(jì)算機(jī)自身使用。用讀寄存器的命令能讀出第九個(gè)字節(jié),這個(gè)字節(jié)是對(duì)前面的八個(gè)字節(jié)進(jìn)行校驗(yàn)。</p><p><b> 溫度的讀取</b></p><p> DS18B20在出廠時(shí)以
56、配置為12位,讀取溫度時(shí)共讀取16位,所以把后11位的2進(jìn)制轉(zhuǎn)化為10進(jìn)制后在乘以0.0625便為所測(cè)的溫度,還需要判斷正負(fù)。前5個(gè)數(shù)字為符號(hào)位,當(dāng)前5位為1時(shí),讀取的溫度為負(fù)數(shù);當(dāng)前5位為0時(shí),讀取的溫度為正數(shù)。</p><p> 1.3編程語(yǔ)言簡(jiǎn)介</p><p> 1.3.1VHDL簡(jiǎn)介</p><p> VHDL語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。V
57、HDL的英文全寫(xiě)是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,即超高速集成電路硬件描述語(yǔ)言。其主要用于描述數(shù)字系統(tǒng)的行為、結(jié)構(gòu)、功能和接口。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。在使用VHDL等高級(jí)語(yǔ)言時(shí),有專(zhuān)用的工具來(lái)實(shí)現(xiàn)將語(yǔ)言描述的電路功能轉(zhuǎn)換為
58、實(shí)際的電路,所以使用者就用不著對(duì)底層的電路很熟悉,也用不著對(duì)CPLD/FPGA的結(jié)構(gòu)很熟悉。</p><p> 除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),即涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)
59、實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的。 (1)與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。 </p><p> (2)V
60、HDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。 </p><p> ?。?)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效、高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。</p><p> ?。?)對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用
61、EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門(mén)級(jí)網(wǎng)表。 </p><p> ?。?)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。</p><p> 1.3.2C51語(yǔ)言簡(jiǎn)介</p><p> 語(yǔ)言數(shù)據(jù)結(jié)構(gòu) 每寫(xiě)一個(gè)程序,
62、總離不開(kāi)數(shù)據(jù)的應(yīng)用,在學(xué)習(xí) C51語(yǔ)言的過(guò)程中掌握理解數(shù)據(jù)類(lèi)型也是很關(guān)鍵的。先看表 2-1,表中列出了 KEIL uVision2 C51 編譯器所支持的數(shù)據(jù)類(lèi)型。在標(biāo)準(zhǔn) C 語(yǔ)言中基本的數(shù)據(jù)類(lèi)型為 char, int, short, long, float 和 double,而在 C51 編譯器中int 和short相同,float和 double 相同,這里就不列出說(shuō)明了。下面來(lái)看看它們的具體定義:</p><p
63、> KEIL uVision2 C51 編譯器所支持的數(shù)據(jù)類(lèi)型</p><p><b> 系統(tǒng)方案選擇和論證</b></p><p><b> 2.1設(shè)計(jì)要求</b></p><p> 1、基本功能要求:實(shí)現(xiàn)溫度自動(dòng)調(diào)節(jié)控制,使得溫度能維持在某個(gè)一定的范圍之內(nèi);液位自動(dòng)調(diào)節(jié)控制,使得液位能維持某個(gè)范圍之內(nèi);
64、定時(shí)開(kāi)啟和關(guān)斷控制,根據(jù)不同日期和時(shí)間,開(kāi)啟和關(guān)斷熱水器電源;鍵盤(pán)設(shè)定溫度及時(shí)間校正功能,能設(shè)定維持溫度的范圍的最大值和最小值,同時(shí)可以用鍵盤(pán)校正時(shí)間。</p><p> 2、擴(kuò)展功能要求:實(shí)現(xiàn)恒溫控制,使得溫度能溫度在具體的某個(gè)值,而不是維持在某個(gè)范圍之內(nèi),即實(shí)現(xiàn)溫度的實(shí)時(shí)監(jiān)控;實(shí)現(xiàn)水位的調(diào)節(jié)功能,能使水位維持在某個(gè)具體的數(shù)值,而不是維持在某個(gè)范圍之內(nèi),即實(shí)現(xiàn)水位的實(shí)時(shí)監(jiān)控。</p><p
65、> 3、本設(shè)計(jì)軟件部分主要采用VHDL硬件描述語(yǔ)言編程實(shí)現(xiàn)FPGA的數(shù)據(jù)采集和控制功能,用C51語(yǔ)言實(shí)現(xiàn)單片機(jī)的控制功能,并利用MAX+PLUSⅡ和Keil uVision3軟件開(kāi)發(fā)平臺(tái)進(jìn)行編程調(diào)試。對(duì)于VHDL語(yǔ)言程序要調(diào)試等待準(zhǔn)確的仿真時(shí)序圖,對(duì)于C51程序,要用Keil編譯,并用Proteus 7 Professional得到準(zhǔn)確的仿真結(jié)果。其中FPGA和MCU的通信的的程序則直接用實(shí)物進(jìn)行調(diào)試,并要求得到與理論分析相一致
66、的結(jié)果。</p><p> 4、本設(shè)計(jì)由控制器模塊、水位控制模塊、水溫控制模塊、定時(shí)開(kāi)關(guān)控制模塊、時(shí)鐘模塊、鍵盤(pán)模塊和顯示模塊七大硬件模塊構(gòu)成,各模塊相互關(guān)聯(lián),控制器是各模塊相互聯(lián)系溝通的橋梁。 </p><p> 2.2各模塊方案論證和選擇</p><p> 2.2.
67、1控制器模塊方案的論證和選擇</p><p> 方案A:?jiǎn)为?dú)使用FPGA作為控制器。如果單獨(dú)使用FPGA作為控制器件,優(yōu)勢(shì)是大大的簡(jiǎn)化了外圍電路,提高了整個(gè)系統(tǒng)的穩(wěn)定性和可靠性,控制引腳能足夠的滿足我們的設(shè)計(jì)要求,且不需要外部EEPROM和時(shí)鐘芯片,可以直接使用FPGA內(nèi)部的高速ROM,也可以編寫(xiě)時(shí)鐘模塊的程序,且FPGA速度要比單片機(jī)快的多,但是要完成LCD顯示、溫度數(shù)據(jù)的采集、鍵盤(pán)控制等眾多控制功能,F(xiàn)P
68、GA與單片機(jī)相比沒(méi)有優(yōu)勢(shì)。FPGA的主要優(yōu)勢(shì)是能實(shí)現(xiàn)片上系統(tǒng),大大簡(jiǎn)化外圍電路,且能完成數(shù)據(jù)的高速采集;單片機(jī)的主要優(yōu)勢(shì)是控制簡(jiǎn)單方便。在此設(shè)計(jì)中單獨(dú)使用FPGA不能很好的體現(xiàn)它在高速數(shù)據(jù)采集方面的優(yōu)勢(shì)。</p><p> 方案B:?jiǎn)为?dú)使用單片機(jī)作為控制器。如果單獨(dú)使用單片機(jī)使用作為控制器,優(yōu)勢(shì)是能較簡(jiǎn)單方便實(shí)現(xiàn)水位控制模塊、水溫控制模塊、定時(shí)開(kāi)關(guān)控制模塊、時(shí)鐘模塊、鍵盤(pán)模塊和顯示模塊等各個(gè)功能模塊的控制功能,
69、同時(shí)成本大大降低,但是增加了一些外圍元件,如需要增加時(shí)鐘芯片和EEPROM芯片,外圍電路的復(fù)雜性增加,這使得電路的穩(wěn)定性和可靠性與方案A相比有所降低。</p><p> 方案C:同時(shí)使用FPGA和單片作為控制器件。這樣的方案主要是綜合兩種控制器件的優(yōu)勢(shì),但是成本提高。</p><p> 本設(shè)計(jì)采用方案C,原因是為了探索FPGA在控制功能方面的應(yīng)用領(lǐng)域,利用低端FPGA實(shí)現(xiàn)一些控制功能,
70、不僅電路大大簡(jiǎn)化,而且成本也與單片機(jī)相當(dāng)。</p><p> 2.2.2水位控制模塊方案的論證和選擇</p><p><b> 方案A</b></p><p> 采用超聲波。用超聲波實(shí)時(shí)監(jiān)測(cè)水位的高度,因?yàn)楸驹O(shè)計(jì)用到DS18B20,可以根據(jù)溫度用軟件補(bǔ)償因?yàn)闇囟茸兓鸬某暡ㄋ俣鹊淖兓?,這樣能較準(zhǔn)確的實(shí)時(shí)監(jiān)控?zé)崴鲀?nèi)水位的高度,因而
71、可以使等水位維持在某個(gè)值附近。</p><p><b> 方案B</b></p><p> 采用壓力傳感器。用壓力傳感器測(cè)量出熱水器不裝水時(shí)的重量,再測(cè)量出裝入水后的重量(即先要用壓力傳感器設(shè)計(jì)成一個(gè)電子稱),根據(jù)這個(gè)差值可以計(jì)算出液位的高度,此方式能十分準(zhǔn)確的測(cè)出液位高度,因此可以通過(guò)電磁閥將水位穩(wěn)定在某個(gè)值,但是傳感器的成本較高,一般的壓力傳感器一直在負(fù)重之下
72、,時(shí)間長(zhǎng)了誤差增大,最終損壞。</p><p><b> 方案C</b></p><p> 自制傳感器。自己制作一個(gè)傳感器測(cè)量出一個(gè)水位的最低值、測(cè)量出一個(gè)水位的最高值,當(dāng)水位低于最低值時(shí)打開(kāi)電磁閥,熱水器進(jìn)水;當(dāng)水位達(dá)到水位的最高時(shí),關(guān)閉電磁閥。這樣能將水位維持在某個(gè)范圍之內(nèi)。同時(shí)自制的傳感器簡(jiǎn)單,而且成本很低。</p><p> 比較
73、上述幾種方案,本設(shè)計(jì)采用方案C。成本低,同時(shí)能滿足設(shè)計(jì)要求。</p><p> 2.2.3水溫控制模塊方案的論證和選擇</p><p><b> 溫度采集模塊</b></p><p><b> 方案A</b></p><p> 采用AD590。AD590的測(cè)溫范圍為-55℃~+150℃。A
74、D590的電源電壓范圍為4V~30V。電源電壓可在4V到6V范圍變化,電流變化1mA,相當(dāng)于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會(huì)被損壞。但是AD590需要放大電路和A/D轉(zhuǎn)換電路,電路較為復(fù)雜。</p><p><b> 方案B</b></p><p> 采用DS18B20。DS18B20能測(cè)量-55攝氏度到125攝氏
75、度的溫度值,采用“一線總線”,內(nèi)嵌A/D轉(zhuǎn)換,可直接與控制器件連接外圍電路簡(jiǎn)單。</p><p> 兩種方案比較,方案B能很好的滿足我們的設(shè)計(jì)要求,而且電路比方案A簡(jiǎn)單,同時(shí)成本較方案A要低的多,因此本設(shè)計(jì)采用方案B。</p><p><b> 熱電阻絲控制方式</b></p><p><b> 方案A</b><
76、;/p><p> 采用用PWM控制方式,通過(guò)改變MOS管或電力開(kāi)關(guān)三極管的控制級(jí)信號(hào)的占空比來(lái)調(diào)整輸出端電壓的有效值,這種控制方式能使得溫度穩(wěn)定在某個(gè)值附近,當(dāng)時(shí)需要將交流電轉(zhuǎn)換成直流電,即需要設(shè)計(jì)市電壓的整流電路,還需要耦合器件和電力開(kāi)關(guān)管,電路較為復(fù)雜,成本較高。</p><p> 方案B:采用繼電器。使用繼電器控制熱電阻絲的電源的開(kāi)和關(guān),當(dāng)溫度值低于最低值是繼電器閉合,熱電阻絲通電工
77、作,當(dāng)溫度高于最高值是繼電器斷開(kāi),熱電阻絲斷電停止工作。這種方式的缺點(diǎn)是繼電器斷開(kāi)和吸合的瞬間存在電弧,存在安全隱患,而且對(duì)繼電器的壽命有影響,但是這種方式電路簡(jiǎn)單,實(shí)現(xiàn)方便,而且能很好的滿足設(shè)計(jì)要求。</p><p> 綜合考慮,本設(shè)計(jì)采用方案B,方案B簡(jiǎn)單易行,可實(shí)現(xiàn)性強(qiáng),但在實(shí)際設(shè)計(jì)時(shí)應(yīng)注意做好絕緣保護(hù)的工作。</p><p> 2.2.4定時(shí)開(kāi)關(guān)控制模塊方案的論證和選擇<
78、;/p><p><b> 方案A</b></p><p> 采用可控硅。將可控硅串入電路,通過(guò)控制的高低電平,來(lái)接通和斷開(kāi),熱水器的系統(tǒng)的電源,這樣不存在電弧和電火花的現(xiàn)象,而且響應(yīng)速度很快。</p><p><b> 方案B</b></p><p> 采用繼電器。將繼電器接入系統(tǒng)電路,通過(guò)控制
79、端來(lái)開(kāi)啟和關(guān)斷電源,這樣相對(duì)與可控硅而言,高壓區(qū)和低壓區(qū)的隔離效果好,但存在電弧和電火花。</p><p> 因?yàn)闇囟瓤刂齐娐芬呀?jīng)采用了繼電器控制的方式,在這個(gè)模塊中可以和水溫控制模塊共用繼電器,以簡(jiǎn)化電路,節(jié)約成本,因此在這個(gè)模塊的方案選擇方案B。</p><p> 2.2.5時(shí)鐘模塊方案的論證和選擇</p><p><b> 方案A</b
80、></p><p> 在FPGA中嵌入時(shí)鐘。這樣電路簡(jiǎn)化了電路,但還有要實(shí)現(xiàn)記錄年月日的信息,這樣用FPGA實(shí)現(xiàn)起來(lái)軟件工作量大大的增加了。</p><p><b> 方案B</b></p><p> 直接選用一種時(shí)鐘芯片。選用時(shí)鐘芯片DS1302接在單片機(jī)上,能十分方便準(zhǔn)確的記錄年月日信息,而且電路也比較簡(jiǎn)單,這樣用簡(jiǎn)單的硬件電路
81、使得軟件工作量大大減少了,而且節(jié)約的控制器的資源,有利于整個(gè)系統(tǒng)的進(jìn)一步擴(kuò)展。</p><p> 綜上,本設(shè)計(jì)采用方案B。</p><p> 2.2.6鍵盤(pán)模塊方案的論證和選擇</p><p><b> 方案A</b></p><p> 使用獨(dú)立鍵盤(pán)。使用四個(gè)獨(dú)立鍵盤(pán),這樣電路十分的簡(jiǎn)單,但是軟件的工作量有所增
82、加。</p><p><b> 方案B</b></p><p> 使用用4x4鍵盤(pán)。電路也十分簡(jiǎn)單,軟件工作量有所減少,但是設(shè)計(jì)的成本提高。</p><p> 鑒于本設(shè)計(jì)用于實(shí)驗(yàn)探索研究,選用方案B,在系統(tǒng)調(diào)試成功后或產(chǎn)品需要實(shí)際使用時(shí)則改用方案A。</p><p> 2.2.7顯示模塊方案的論證和選擇<
83、/p><p><b> 方案A</b></p><p> 使用LED顯示。用LED顯示亮度高,顯示字跡清楚顯眼,但是LED不能顯示漢字,而且數(shù)碼管多了,占用控制器件很多的端口,同時(shí)本設(shè)計(jì)中顯示的內(nèi)容較多,利用LED很難達(dá)到本設(shè)計(jì)要求的顯示效果。</p><p><b> 方案B</b></p><p&
84、gt; 使用LCD12864或LCD1602。使用LCD12864或LCD1602都能滿足本設(shè)計(jì)的要求,如果考慮成本因素,則選用LCD1602,如果注重人性化,使得整個(gè)系統(tǒng)的操作和使用更加的方便,則選用LCD12864。</p><p> 考慮到本設(shè)計(jì)是實(shí)驗(yàn)研究,因此選用方案B中的LCD12864,如過(guò)要批量生產(chǎn)、實(shí)際應(yīng)用這種產(chǎn)品,怎選用LCD1602或其他能滿足設(shè)計(jì)要求的更經(jīng)濟(jì)顯示器件。</p>
85、<p> 2.3硬件系統(tǒng)框圖和總體軟件系統(tǒng)流程圖</p><p> 系統(tǒng)總體設(shè)計(jì)框圖如下所示,本系統(tǒng)主要由兩個(gè)大的模塊構(gòu)成,F(xiàn)PGA控制模塊和MCU控制模塊。</p><p> 智能熱水器系統(tǒng)設(shè)計(jì)總體框圖</p><p> 下面是FPGA控制器的設(shè)計(jì)框圖,編程時(shí)器件端口就是根據(jù)這個(gè)圖設(shè)計(jì)的。</p><p> FPGA
86、控制器設(shè)計(jì)總體框圖</p><p> 單片機(jī)的控制器的設(shè)計(jì)框圖如下圖所示,下面的框圖已經(jīng)將MCU的I/O資源進(jìn)行了分配,有關(guān)單片機(jī)模塊的具體的電子線路就是根據(jù)這個(gè)系統(tǒng)框圖設(shè)計(jì)的。</p><p> MCU控制器設(shè)計(jì)總體框圖</p><p> 本系統(tǒng)使用了4X4的掃描鍵盤(pán),下圖是按鍵掃描程序所得到的特征值,每個(gè)按鍵都有唯一對(duì)應(yīng)的一個(gè)特征值,根據(jù)這個(gè)唯一的特征值,
87、可以確定是哪個(gè)按鍵被按下,并進(jìn)行相應(yīng)的按鍵處理。</p><p> 矩陣鍵盤(pán)特征值分布圖</p><p> 程序流程圖時(shí)編寫(xiě)程序時(shí)不能缺少的一個(gè)步驟,本系統(tǒng)在設(shè)計(jì)前,經(jīng)分析設(shè)計(jì)了如下圖所示的程序流程圖,并根據(jù)此圖編寫(xiě)單片機(jī)模塊的C51程序,成功完成了設(shè)計(jì)要求實(shí)現(xiàn)的功能。</p><p> 系統(tǒng)上電進(jìn)入主界面,進(jìn)行按鍵掃描和相應(yīng)的顯示,當(dāng)掃描到按鍵時(shí)進(jìn)行相關(guān)的按
88、鍵處理,如當(dāng)掃描到的按鍵的特征值為0x71時(shí),程序進(jìn)入了校時(shí)界面,這個(gè)子程序的循環(huán)中依然進(jìn)行按鍵掃描和相應(yīng)的顯示,當(dāng)掃描的按鍵的特征值為0xe8時(shí),程序從新回到主界面的狀態(tài)。</p><p><b> 總體程序流程圖</b></p><p> 當(dāng)程序進(jìn)入校時(shí)、定時(shí)和溫度調(diào)節(jié)的界面時(shí),按鍵的特征值分布如下右圖所示,“ ”和“ ”分別表示調(diào)節(jié)量左移和右移,每按一下
89、實(shí)現(xiàn)調(diào)節(jié)量左移或右移一個(gè)單位;“ ”和“ ”分別表示增大和減少調(diào)節(jié)量,沒(méi)按以下實(shí)現(xiàn)加一或減一。</p><p> 校時(shí)、調(diào)溫功能按鍵分布圖及對(duì)應(yīng)特征值</p><p> 2.4硬系統(tǒng)總體電路圖</p><p> 2.4.1FPGA模塊電路圖</p><p> FPGA控制模塊電路圖</p><p> 2.4
90、.2單片機(jī)控制模塊電路圖</p><p> 單片機(jī)控制模塊電路圖</p><p><b> .硬件電路組裝調(diào)試</b></p><p> 3.1各模塊的硬件組裝</p><p> 3.1.1FPGA模塊</p><p> 外圍電路有自制傳感器電路、繼電器驅(qū)動(dòng)電路(驅(qū)動(dòng)電磁閥、控制電熱
91、阻絲的電源)、與單片機(jī)通信控制口。</p><p> 自制傳感器傳感器如下圖一所示,前端是兩導(dǎo)體,后面是絕緣的導(dǎo)線。當(dāng)A、B之間有水時(shí),就相當(dāng)于用一根導(dǎo)線將A、B連接起來(lái),再通過(guò)如圖二所示的電路就能將可以將A、B之間是否導(dǎo)通轉(zhuǎn)換成高低電平:當(dāng)A、B導(dǎo)通是輸出端Uo為低電平,當(dāng)A、B導(dǎo)通斷開(kāi)時(shí)Uo為高電平。</p><p><b> 自制水位傳感器</b></
92、p><p><b> 繼電器電路</b></p><p><b> 繼電器驅(qū)動(dòng)電路</b></p><p> LED只是電路的通道狀態(tài),當(dāng)電熱阻絲通電時(shí)LED點(diǎn)亮。</p><p> 與單片機(jī)通信控制口:FPGA和單片機(jī)的電平可以兼容,因此FPGA的I/O可以直接與MCU的I/O口連接,不需要另
93、外附加電平轉(zhuǎn)換電路。但是兩者間如果是用導(dǎo)線相連接的話,導(dǎo)線不宜過(guò)長(zhǎng)。</p><p> 3.1.2單片機(jī)模塊</p><p> 單片機(jī)除了必備的保證系統(tǒng)正常工作電路外,還有4x4按鍵電路、LCD12864的顯示電路、與時(shí)鐘芯片的連接電路、與傳感器DS18B20的連接電路、與FPGA的通信口。</p><p><b> 矩陣鍵盤(pán)電路</b&g
94、t;</p><p> 鍵盤(pán)的8個(gè)口接單片機(jī)的P1口。</p><p> LCD12864的顯示電路</p><p> 與時(shí)鐘芯片的連接電路:</p><p><b> DS1302電路</b></p><p> 注意:這個(gè)電路中的上拉電阻不能少,實(shí)際電路中VCC2接4.2V的紐扣電池。
95、</p><p><b> DS18B20電路</b></p><p> DS18B20在Proteus中仿真時(shí)數(shù)據(jù)線DQ不需要接上拉電阻,如果接了上電阻,不能實(shí)現(xiàn)仿真,而實(shí)際電路中必須接入一個(gè)上拉電阻,阻值通常為10K.</p><p> 與FPGA的通信口:FPGA和單片機(jī)的電平可以兼容,因此單片機(jī)的I/O可以直接與FPGA的I/O口
96、連接. </p><p> 3.2組裝和改進(jìn)系統(tǒng)硬件電路</p><p> 按照上面所描述的各個(gè)模塊,顯設(shè)計(jì)好每個(gè)模塊電路,并逐個(gè)的調(diào)試.因?yàn)殡娐分袥](méi)有比較復(fù)雜的模擬電路,因此整個(gè)硬件的制作過(guò)程中沒(méi)有遇到大的問(wèn)題。</p><p> 單片機(jī)系統(tǒng)直接用已有的開(kāi)發(fā)上面的最小系統(tǒng),這個(gè)系統(tǒng)上有DS1302、DS18B20和LCD12864,電路圖與上面各模塊所給出的
97、電路圖一致。</p><p> FPGA系統(tǒng)直接用我們系實(shí)驗(yàn)室的實(shí)驗(yàn)箱上面的最小系統(tǒng)。</p><p> 繼電器電路電路和自制的傳感器的電路較簡(jiǎn)單,為節(jié)約設(shè)計(jì)實(shí)時(shí)沒(méi)有制作PCB板,而是設(shè)計(jì)好電路圖之后,直接用萬(wàn)用板焊接出相關(guān)電路。繼電器模塊焊接好后發(fā)現(xiàn)用電源的+5V能驅(qū)動(dòng),而用單片機(jī)或FPGA的高低電平無(wú)法驅(qū)動(dòng),因此檢查硬件電路,經(jīng)過(guò)分析知道是驅(qū)動(dòng)電流不夠,于是將電路改成如下形式,并調(diào)
98、試檢測(cè)電路能正常工作。</p><p> 改進(jìn)后的繼電器驅(qū)動(dòng)電路</p><p> 在前面設(shè)計(jì)的自制傳感器在用導(dǎo)體直接斷路時(shí)能得到準(zhǔn)確結(jié)果,而在水中調(diào)試時(shí)行不通,因此將之做如下改正,并調(diào)試成功。</p><p><b> 自制水位傳感器</b></p><p> 這是改進(jìn)后的檢測(cè)水位傳感器,浮標(biāo)知識(shí)液面的高度,當(dāng)
99、液面低于A1、A2時(shí),浮標(biāo)下降到A1、A2的水平位置,導(dǎo)體棒將A1、A2接通;當(dāng)液面高于B1、B2時(shí),浮標(biāo)上升到B1、B2的水平位置,導(dǎo)體棒將B1、B2接通。注意導(dǎo)體棒的電阻很小可以忽略,整個(gè)裝置能承受100攝氏度的溫度,也就是能在沸水中正常工作,而且此傳感器能檢測(cè)出一個(gè)高水位和一個(gè)低水位。</p><p> 在完成了各模塊電路的設(shè)計(jì)并經(jīng)過(guò)調(diào)試確認(rèn)沒(méi)有問(wèn)題后,再按照系統(tǒng)總體電路圖連接實(shí)際電路。</p>
100、;<p> 3.3各硬件電路調(diào)試方法</p><p> 3.3.1FPGA調(diào)試方法</p><p> 先測(cè)試系統(tǒng)能否載入程序,能否工作,直接給一些I/O高電平,通過(guò)LED驗(yàn)證是否符合邏輯。</p><p> 測(cè)試自制傳感器電路的方法:將A、B端直接用導(dǎo)線或者其他導(dǎo)體短接,比較A、B導(dǎo)通前與導(dǎo)通后輸出端Uo的電平變化,如果按照分析得到變化規(guī)律變
101、化則說(shuō)明電路沒(méi)有問(wèn)題。為使得電路測(cè)試條件與本設(shè)計(jì)的其實(shí)際工作環(huán)境更加接近,這里在實(shí)際電路調(diào)試將自制傳感器放入水中和從水中拿出觀察輸出端的電平變化是否符合邏輯。</p><p> 3.3.2繼電器電路的調(diào)試方法</p><p> 直接用高低電平接控制端,觀察繼電器的負(fù)載端是否接通或斷開(kāi)。這樣測(cè)試沒(méi)有問(wèn)題后,在繼電器的負(fù)載端接入熱電阻絲,用高低電平控制,觀察熱電阻絲的的電源能否按高低電平
102、接通和斷開(kāi),如果能則說(shuō)明此電路沒(méi)有問(wèn)題。</p><p> 單片機(jī)調(diào)試方法:測(cè)試法和先測(cè)試系統(tǒng)能否載入程序,能否工作,直接給一些I/O高電平,通過(guò)LED驗(yàn)證是否符合邏輯。</p><p> 測(cè)試DS1302電路方法:先寫(xiě)入數(shù)據(jù)到DS1302相關(guān)寄存器,用Proteus仿真,觀察能否寫(xiě)入,再?gòu)腄S1302相關(guān)寄存器讀取剛好寫(xiě)入的數(shù)據(jù),并將數(shù)據(jù)所的單片機(jī)I/O口,用Proteus仿真,觀察
103、數(shù)據(jù)是否和剛好寫(xiě)入的數(shù)據(jù)相符合。值得注意的是在測(cè)試之前一定要保證測(cè)試程序沒(méi)有問(wèn)題,最好用已經(jīng)驗(yàn)證了的又非常簡(jiǎn)單的程序,這樣便于于確保程序的準(zhǔn)確性和可靠性。</p><p> 3.3.3測(cè)試DS18B20電路方法</p><p> 讀取其中相關(guān)寄存器數(shù)據(jù),并將數(shù)據(jù)送至單片機(jī)的I/O口,用LED檢測(cè)各位的高低電平,觀察與仿真中顯示的值是否相同,同時(shí)分析是否符合芯片資料中介紹的相關(guān)信息相符
104、合。要注意的問(wèn)題是在測(cè)試之前一定要保證測(cè)試程序沒(méi)有問(wèn)題,最好用已經(jīng)驗(yàn)證了的又非常簡(jiǎn)單的程序,這樣便于于確保程序的準(zhǔn)確性和可靠性。</p><p> 整個(gè)系統(tǒng)硬件調(diào)試方法:連接好所有模塊后,再單獨(dú)用簡(jiǎn)單的程序測(cè)試各個(gè)模塊能否正常,如果各個(gè)模塊都能單獨(dú)正常工作,則整個(gè)系統(tǒng)的電路沒(méi)有問(wèn)題。</p><p><b> .軟件調(diào)試及仿真</b></p><
105、;p> 4.1各模塊的軟件調(diào)試、仿真和實(shí)物測(cè)試</p><p> 4.1.1FPGA軟件調(diào)試、仿真和實(shí)物測(cè)試</p><p> VHDL語(yǔ)言編程采取的是自上而下的設(shè)計(jì)思路,設(shè)計(jì)流程如下圖所示:</p><p><b> 自頂向下的設(shè)計(jì)流程</b></p><p> 按前面的FPGA系統(tǒng)框圖編寫(xiě)VHDL語(yǔ)
106、言程序,并按上面的流程操作,并將程序下載到FPGA芯片EPF10K10TC144-4中,得到的時(shí)序仿真圖如下圖所示:</p><p> FPGA控制器的時(shí)序仿真圖</p><p> 時(shí)序圖與設(shè)計(jì)中所預(yù)期的邏輯相符合,而且實(shí)物調(diào)試也能實(shí)現(xiàn)設(shè)計(jì)中要求實(shí)現(xiàn)的功能。</p><p> 下面是編譯VHDL語(yǔ)言程序后生產(chǎn)的器件系統(tǒng)結(jié)構(gòu)圖:</p><p
107、> FPGA控制器結(jié)構(gòu)圖</p><p> 注:圖左邊的全部是輸入口,圖 右邊的全部是輸出口。</p><p> 4.1.2DS1302軟件調(diào)試、仿真和實(shí)物測(cè)試</p><p><b> DS1302仿真圖</b></p><p> 這是用于測(cè)試單片機(jī)能否正確讀寫(xiě)DS1302的數(shù)據(jù)的仿真圖形,對(duì)應(yīng)的調(diào)試
108、程序的如下所示:</p><p> void main(void)</p><p> { write_ds1302data();//寫(xiě)入相應(yīng)數(shù)據(jù)到DS1302中,即DS1302初始化</p><p><b> while(1)</b></p><p><b> {</b></p>
109、<p> read_ds1302data();//從DS1302中讀取數(shù)據(jù)</p><p> P1=minute;//將分鐘的信息送到P1端口</p><p><b> }</b></p><p><b> }</b></p><p> 這個(gè)程序是向DS1302中寫(xiě)入數(shù)據(jù),再
110、讀出數(shù)據(jù)。向DS1302寫(xiě)入的數(shù)據(jù)是0x12,讀出送到P1端口的數(shù)據(jù)也是0x12,顯然此程序是正確的,能正確讀寫(xiě)DS1302的數(shù)據(jù)。</p><p> 4.1.3DS18B20軟件調(diào)試、仿真和實(shí)物測(cè)試</p><p> DS18B20仿真圖</p><p> 這是用于測(cè)試單片機(jī)能否正確讀出DS18B20中的數(shù)據(jù)的仿真圖形,對(duì)應(yīng)的調(diào)程序的如下所示:</p
111、><p> void main()</p><p><b> { </b></p><p><b> while(1)</b></p><p><b> { </b></p><p> ds18b20_start();//啟動(dòng)轉(zhuǎn)換得到ds18b20
112、_datah和ds18b20_datal的值</p><p> P1=ds18b20_datah;</p><p> P2=ds18b20_datal;</p><p><b> }</b></p><p><b> }</b></p><p> 這個(gè)程序是啟動(dòng)DS
113、18B20的A/D轉(zhuǎn)換后,在從中讀出數(shù)據(jù),并將這個(gè)數(shù)據(jù)送到P1和P2端口。根據(jù)ds18b20的資料知道當(dāng)溫度為85攝氏度時(shí),DS18B20經(jīng)A/D轉(zhuǎn)換后得到的二進(jìn)制數(shù)值時(shí)00000101 0101000這與仿真結(jié)果一致,說(shuō)明程序正確。</p><p> 4.2整個(gè)系統(tǒng)軟件調(diào)試、仿真和實(shí)物測(cè)試</p><p> 4.2.1主程序的調(diào)試、仿真和實(shí)物測(cè)試</p><p&
114、gt;<b> 主程序流程圖</b></p><p><b> 主程序仿真圖</b></p><p> 這個(gè)界面顯示日期、時(shí)間、水溫、水位和提示鍵的信息。當(dāng)按下提示鍵2以后進(jìn)入了提示鍵的界面,仿真圖如下所示:</p><p><b> 提示功能界面仿真圖</b></p><
115、p> 將所有模塊程序整合編譯后,下載到單片機(jī),VHDL語(yǔ)言程序編譯后下載的FPGA,檢查無(wú)誤后開(kāi)機(jī)觀察,因?yàn)楸驹O(shè)計(jì)用到的FPGA和LCD12864,無(wú)法用仿真軟件仿真,所以綜合調(diào)試直接在硬件系統(tǒng)上實(shí)現(xiàn)。</p><p> 4.2.2水位調(diào)節(jié)子程序的調(diào)試、仿真和實(shí)物測(cè)試</p><p> 水位調(diào)節(jié)程序的流程圖</p><p> 注:圖28是水位正常時(shí)的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能電熱水器設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文范文——太陽(yáng)能熱水器智能控制設(shè)計(jì)
- 空氣源熱泵熱水器畢業(yè)論文
- 畢業(yè)論文范文——太陽(yáng)能熱水器智能控制設(shè)計(jì)
- 畢業(yè)論文范文——電熱水器智能控制系統(tǒng)硬件設(shè)計(jì)
- 太陽(yáng)能熱水器畢業(yè)論文
- 畢業(yè)論文范文——電熱水器智能控制系統(tǒng)硬件設(shè)計(jì)
- 太陽(yáng)能熱水器畢業(yè)論文
- 太陽(yáng)能熱水器畢業(yè)論文
- 太陽(yáng)能熱水器控制器設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)設(shè)計(jì)熱水器
- 220l空氣源熱泵熱水器設(shè)計(jì)——畢業(yè)論文
- 畢業(yè)論文太陽(yáng)能熱水器控制器設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))太陽(yáng)能熱水器控制器設(shè)計(jì)
- 基于單片機(jī)的熱水器控制器設(shè)計(jì)【畢業(yè)論文】
- 直膨式太陽(yáng)能熱泵熱水器設(shè)計(jì) ——畢業(yè)論文
- 直膨式太陽(yáng)能熱泵熱水器設(shè)計(jì) ——畢業(yè)論文
- 課程設(shè)計(jì)--智能家用熱水器設(shè)計(jì)
- 100kw空氣源熱泵熱水器——畢業(yè)論文
- 【畢業(yè)論文】基于單片機(jī)的家用熱水器控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論