版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 集成電路工程化考試</b></p><p><b> 設(shè)計(jì)說(shuō)明書</b></p><p> 課題名稱:基于組態(tài)網(wǎng)的光照、溫度和濕度的采集、傳輸、顯示和控制</p><p> 學(xué)院名稱:西昌學(xué)院汽車與電子工程學(xué)院</p><p><b> 年級(jí)專業(yè):
2、 </b></p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)老師: </p><p> 日 期: </p><p><b> 摘 要</b></p><
3、;p> 隨著大棚技術(shù)的普及,溫室大棚不斷增加,溫室大棚的溫濕度控制變得十分重要。該設(shè)計(jì)以STC89C51單片機(jī)為核心,通過(guò)溫度傳感DS18B20采集溫度,濕度傳感器采集濕度,光敏電阻采集光照,通過(guò)ACD0832和MAX232實(shí)現(xiàn)對(duì)溫度、光照和濕度的顯示(LCD129864)、傳輸和控制,然后通過(guò)組態(tài)網(wǎng)顯示在電腦。</p><p> 關(guān)鍵詞:大棚溫,濕,光監(jiān)控,便捷,組態(tài)顯示</p><
4、;p> With the popularity of greenhouse technology, the increasing number of greenhouse, greenhouse temperature and humidity control is becoming a very important. The design with STC89C51 microcontroller as the core, t
5、hrough the temperature sensor DS18B20 collecting temperature, photosensitive resistance acquisition light, humidity sensors humidity, through ACD0832 and MAX232 to achieve temperature, illumination and humidity display (
6、 LCD129864), transmission and control, then through network configur</p><p> Keywords: greenhouse temperature, humidity, light monitoring, convenient configuration display</p><p><b> 目錄&
7、lt;/b></p><p> 第一章 緒論........................................................4</p><p> 1.1 選題的背景和目的..........................................4</p><p> 第二章系統(tǒng)硬件部分.............
8、...................................4</p><p> 2.1 硬件框圖.................................................4</p><p> 2.2 單片機(jī)的選擇..............................................4</p><p>
9、 2.21 STC89C51單片機(jī)的引腳說(shuō)明..............................4</p><p> 2.22 STC89C51單片機(jī)的最小系統(tǒng)..............................5</p><p> 2.3 濕敏傳感器模塊............................................5</p>
10、;<p> 2.4 光敏電阻模塊..............................................6</p><p> 2.41 光敏電阻主要參數(shù)......................................6</p><p> 2.5 溫度傳感器DS18B20模塊..............................
11、......6</p><p> 2.51 DS18B20引腳說(shuō)明.......................................7</p><p> 2.52 DS18B20電路圖.........................................7</p><p> 2.53 DS18B20溫度采集............
12、...........................7</p><p> 2.6 ADC0832模塊...............................................8</p><p> 2.61 ADC0832的引腳說(shuō)明....................................8</p><p> 2.62
13、ADC0832光照和濕度的采集..............................9</p><p> 2.63 ADC0823電路圖........................................9</p><p> 2.7 液晶顯示模塊LCD12864......................................9</p>&
14、lt;p> 2.71 LCD12864引腳說(shuō)明......................................9</p><p> 2.72 LCD12864電路圖.......................................10</p><p> 2.8 MAX485傳輸模塊..................................
15、.........10</p><p> 2.81 MAC485引腳說(shuō)明.......................................10</p><p> 2.82 MAC485電路圖.........................................11</p><p> 2.9繼電器控制模塊...............
16、..............................11</p><p> 第三章系統(tǒng)軟件部分...............................................12</p><p> 3.1 軟件框圖.................................................12</p><p>
17、3.2 Keil軟件的概述............................................12</p><p> 3.3 Fame View簡(jiǎn)介.............................................13</p><p> 3.4 系統(tǒng)程序..........................................
18、.... ...14</p><p> 使用說(shuō)明..........................................................25</p><p> 參考文獻(xiàn)..........................................................25</p><p> 附錄...........
19、...................................................26</p><p> ①電路原理圖...................................................26 </p><p> ?、赑CB電路圖...................................................26
20、</p><p> ?、蹖?shí)物圖.......................................................27 </p><p> ?、芙M態(tài)設(shè)置、傳輸數(shù)據(jù)和組態(tài)顯示圖...............................28</p><p><b> 第一章 緒 論</b></p>&
21、lt;p> 1.1 課程的背景和目的</p><p> 隨著大棚技術(shù)的普及,溫室大棚數(shù)量不斷增多,溫室大棚的溫濕度控制便成為一個(gè)十分重要的課題。傳統(tǒng)的溫濕度控制操作都是在人工情況下進(jìn)行的,耗費(fèi)了大量的人力物力?,F(xiàn)在,隨著國(guó)家經(jīng)濟(jì)的快速發(fā)展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的不斷提高,農(nóng)產(chǎn)品在大棚中培育的品種越來(lái)越多,對(duì)于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局限性。溫室大棚的建設(shè)對(duì)溫濕度檢測(cè)與控制技術(shù)也提出了
22、越來(lái)越高的要求。</p><p> 采集需要監(jiān)控的農(nóng)業(yè)區(qū)域的溫度、濕度、光照,并顯示、傳輸和自動(dòng)控制。工作人員不僅可以在農(nóng)業(yè)區(qū)域通過(guò)配套的顯示器了解現(xiàn)在的溫度、濕度和光照,而且還可以在家里通過(guò)電腦了解現(xiàn)在農(nóng)業(yè)區(qū)域的溫度、濕度和光照,讓人們更輕松和高效的種植和管理,促進(jìn)農(nóng)作物的生長(zhǎng),從而提高溫室大棚的畝產(chǎn)量,以帶來(lái)很好的經(jīng)濟(jì)效益和社會(huì)效益。</p><p><b> 系統(tǒng)硬件部
23、分</b></p><p><b> 2.1 硬件框圖</b></p><p> 圖1 硬件電路框圖 </p><p> 2. 2 單片機(jī)的選擇</p><p> 2.21 STC89C51單片機(jī)的引腳說(shuō)明</p><p><b> ?、?電源:</b>
24、;</p><p> ?、?VCC - 芯片電源,接+5V;</p><p> ⑵ VSS - 接地端;</p><p><b> ?、?時(shí)鐘:</b></p><p> XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。</p><p><b> 3. I/O線<
25、/b></p><p> 80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。</p><p> P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。</p><p> P0口輸入時(shí)需要接上拉電阻才能置1;</p><p><b> 4. 控制線:</b></
26、p><p><b> 控制線共有4根,</b></p><p> ?、?ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖① ALE功能:用來(lái)鎖存P0口送出的低8位地址② PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。</p><p> ?、?PSEN:外ROM讀選通信號(hào)。</p><
27、p> ?、?RST/VPD:復(fù)位/備用電源。</p><p> ?、?RST(Reset)功能:復(fù)位信號(hào)輸入端。</p><p> ?、?VPD功能:在Vcc掉電情況下,接備用電源。</p><p> ?、?EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> ?、?EA功能:內(nèi)外ROM選擇端。</p>
28、<p> ?、?Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。</p><p> 2. 22 STC89C51單片機(jī)的最小系統(tǒng)</p><p> 圖2 STC89C51單片機(jī)的最小系統(tǒng)</p><p> 2.3 濕敏傳感器模塊</p><p> 濕度傳感器(電阻型):輸出電阻信號(hào)
29、,阻值隨著相對(duì)濕度的變化而變化,根據(jù)濕度的變化阻值產(chǎn)生指數(shù)關(guān)數(shù)的變化的濕度感知元件。當(dāng)空氣中的水蒸氣吸附在感濕膜上時(shí),元件的電阻率和電阻值都發(fā)生變化,利用這一特性即可測(cè)量濕度。濕敏電阻的優(yōu)點(diǎn)是靈敏度高,主要缺點(diǎn)是線性度和產(chǎn)品的互換性差。</p><p> 本設(shè)計(jì)用到了濕敏電阻隨濕度升高,電阻值降低</p><p> 2.4 光敏電阻模塊</p><p> 光
30、敏電阻又稱光導(dǎo)管,在特定波長(zhǎng)的光照射下,其阻值迅速減小。光敏電阻器一般用于光的測(cè)量、光的控制和光電轉(zhuǎn)換。光敏電阻器的阻值隨入射光線(可見(jiàn)光)的強(qiáng)弱變化而變化,在黑暗條件下,它的阻值(暗阻)可達(dá)1~10M歐,在強(qiáng)光條件(100LX)下,它阻值(亮阻)僅有幾百至數(shù)千歐姆。光敏電阻器對(duì)光的敏感性(即光譜特性)與人眼對(duì)可見(jiàn)光(0.4~0.76)um的響應(yīng)很接近,只要人眼可感受的光,都會(huì)引起它的阻值變化。</p><p>
31、 2.41 光敏電阻的主要參數(shù):</p><p><b> ?。?) </b></p><p> 光電流、亮電阻。光敏電阻器在一定的外加電壓下,當(dāng)有光照射時(shí),流過(guò) 的電流稱為光電流,外加電壓與光電流之比稱為亮電阻,常用“100LX”表示。</p><p> (2)暗電流、暗電阻。光敏電阻在一定的外加電壓
32、下,當(dāng)沒(méi)有光照射的時(shí)候,流過(guò)的電流稱為暗電流。外加電壓與暗電流之比稱為暗電阻,常用“0LX”表示。(3)靈敏度。靈敏度是指光敏電阻不受光照射時(shí)的電阻值(暗電阻)與受光照射時(shí)的電阻值(亮電阻)的相對(duì)變化值。</p><p> (4)光譜響應(yīng)。光譜響應(yīng)又稱光譜靈敏度,是指光敏電阻在不同波長(zhǎng)的單色光照射下的靈敏度。若將不同波長(zhǎng)下的靈敏度畫成曲線,就可以得到光譜響應(yīng)的曲線。</p><p>
33、(5)光照特性。光照特性指光敏電阻輸出的電信號(hào)隨光照度而變化的特性。從光敏電阻的光照特性曲線可以看出,隨著的光照強(qiáng)度的增加,光敏電阻的阻值開(kāi)始迅速下降。若進(jìn)一步增大光照強(qiáng)度,則電阻值變化減小,然后逐漸趨向平緩。在大多數(shù)情況下,該特性為非線性。</p><p> (6)伏安特性曲線。伏安特性曲線用來(lái)描述光敏電阻的外加電壓與光電流的關(guān)系,對(duì)于光敏器件來(lái)說(shuō),其光電流隨外加電壓的增大而增大。</p>&l
34、t;p> ?。?)溫度系數(shù)。光敏電阻的光電效應(yīng)受溫度影響較大,部分光敏電阻在低溫下的光電靈敏較高,而在高溫下的靈敏度則較低。</p><p> ?。?)額定功率。額定功率是指光敏電阻用于某種線路中所允許消耗的功率,當(dāng)溫度升高時(shí),其消耗的功率就降低。 </p><p> 本設(shè)計(jì)用到了光敏電阻的伏安特性,暗電流,和亮電流</p><p> 2. 5 溫度傳感
35、器DS18B20模塊</p><p> DS18B20數(shù)字溫度傳感器接線方便,獨(dú)特的單線接口方式,在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;測(cè)溫范圍 -55℃~+125℃,固有測(cè)溫分辨率0.5℃;支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定;工作電源: 3~5V/DC;在
36、使用中不需要任何外圍元件;測(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送。</p><p> 2.51 DS18B20引腳說(shuō)明 </p><p> 1 GND為電源地;</p><p> 2 DQ為數(shù)字信號(hào)輸入/輸出端;</p><p> 3 VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。</p><
37、p> 2.52 DS18B20電路圖</p><p> 圖3 溫度傳感器DS18B20</p><p> 2.53 DS18B20溫度采集</p><p> DS18B20的讀寫時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖2-6-1所示。圖中
38、低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器。1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫
39、度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。</p><p><b> 1.復(fù)位</b></p><p><b> 圖4</b></p><p> 單片機(jī)t0時(shí)刻發(fā)送一復(fù)位脈沖(最短為480us的低電平</p><p> 信號(hào)),接著在tl時(shí)刻釋放總線并進(jìn)入接收狀態(tài),</p&
40、gt;<p> DS18B20 在檢測(cè)到總線的上升沿之后,等待1560us,</p><p> 接著DS18B20在t2時(shí)刻發(fā)出存在脈沖(低電平</p><p> 持續(xù)60240us),</p><p><b> 如圖中虛線所示。</b></p><p> 換句話說(shuō)如果t2~t3之間信號(hào)電平如果為
41、低,則說(shuō)明</p><p> DS18B20復(fù)位成功;否則失敗。</p><p><b> 2.寫操作</b></p><p><b> 寫0時(shí)序</b></p><p><b> 圖5</b></p><p><b> 寫1時(shí)序&l
42、t;/b></p><p><b> 圖6</b></p><p> 當(dāng)單片機(jī)將總線t0時(shí)刻從高拉至低電平時(shí),總線只須</p><p> 保持低電平4us之后,在t1時(shí)刻將總線拉高,產(chǎn)生讀</p><p> 時(shí)間隙,讀時(shí)間在t1時(shí)刻后t2時(shí)刻前有效,t2距t0為</p><p>
43、15us,也就是說(shuō),t2時(shí)刻前主機(jī)必須完成讀位 并在t0</p><p> 后的60us~120us內(nèi)釋放總線。</p><p><b> 4.讀取溫度</b></p><p> 1、復(fù)位DS18B20</p><p> 2、發(fā)出Skip ROM命令(CCH)</p><p> 3、發(fā)出
44、Read命令(BEH)</p><p><b> 4、讀兩字節(jié)的溫度</b></p><p><b> 5、溫度格式轉(zhuǎn)換</b></p><p><b> 5.溫度格式</b></p><p> 2. 6 ADC0832模塊</p><p>
45、 2.61 ADC0832的引腳說(shuō)明:</p><p> 引腳1:CS 片選使能,低電平芯片使能</p><p> 引腳2:CH0 模擬輸入通道0,或作為IN+/-適用</p><p> 引腳3:CH1 模擬輸入通道1,或作為IN+/-適用</p><p> 引腳4:GND 芯片參考
46、0電位(地)</p><p> 引腳5:DI 數(shù)據(jù)信號(hào)輸入,選擇通道控制</p><p> 引腳6:DO 數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出</p><p> 引腳7:CLK 芯片時(shí)鐘輸入</p><p> 引腳8: VCC/REF 電源輸入及參考電壓輸入(復(fù)用)</p><p>
47、 2.62 ADC0832光照和濕度的采集</p><p> ?、俟庹盏牟杉翰捎霉饷綦娮?,將模擬信號(hào)輸入ADC0832的通道0,轉(zhuǎn)換成數(shù)字信號(hào)傳入單片機(jī)處理。</p><p> ②濕度的采集:采用濕敏電阻,將模擬信號(hào)輸入ADC0832的通道1,轉(zhuǎn)換成數(shù)字信號(hào)傳入單片機(jī)處理。</p><p> 2.63 ADC0832電路圖</p><
48、p> 圖7 ACD0832電路圖</p><p> 2.7 液晶顯示模塊LCD12864</p><p> 12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器、列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成。</p><p> 2.71 LCD12864引腳說(shuō)明</p><p> 1 VSS 0V 電源地&
49、lt;/p><p> 2 VDD 5.0V 電源電壓</p><p> 3 V0 – 液晶顯示器驅(qū)動(dòng)電壓</p><p> 4 D/I H/L D/I=“H”,表示DB7~DB0為顯示數(shù)據(jù)</p><p> D/I=“L”,表示DB7~DB0為顯示指令數(shù)據(jù)</p><p> 5 R/W H/L R/W=“H”,E
50、=“H”,數(shù)據(jù)被讀到DB7~DB0 R/W=“L”,E=“H→L”, DB7~DB0的數(shù)據(jù)被寫到IR或DR</p><p> 6 E H/L 使能信號(hào):R/W=“L”,E信號(hào)下降沿鎖存DB7~DB0</p><p> R/W=“H”,E=“H” DRAM數(shù)據(jù)讀到DB7~DB0(使能端,高電平有效)7 DB0 H/L 數(shù)據(jù)線</p><p> 8 DB1
51、 H/L 數(shù)據(jù)線</p><p> 9 DB2 H/L 數(shù)據(jù)線</p><p> 10 DB3 H/L 數(shù)據(jù)線</p><p> 11 DB4 H/L 數(shù)據(jù)線</p><p> 12 DB5 H/L 數(shù)據(jù)線</p><p> 13 DB6 H/L 數(shù)據(jù)線</p><p> 14 DB
52、7 H/L 數(shù)據(jù)線</p><p> 15 CS1 H/L 左半屏片選信號(hào),低電平有效</p><p> 16 CS2 H/L 右半屏片選信號(hào),低電平有效</p><p> 17 RESET H/L 復(fù)位信號(hào),低電平復(fù)位</p><p> 18 VEE -10V LCD驅(qū)動(dòng)負(fù)電壓</p><p> 19 IE
53、D+ DC+5V 背光板電源</p><p> 20 IED- DC0V 背光板電源</p><p> 2.72 LCD12864電路圖</p><p> 圖8 液晶顯示模塊LCD12864電路圖</p><p> 2. 8 MAX485傳輸模塊</p><p> 2.81 MAX485的引腳說(shuō)明
54、:</p><p> 引腳1: RO 接收端</p><p> 引腳2: RE 接收端使能</p><p> 引腳3: DE 發(fā)送端使能</p><p> 引腳4: DI 發(fā)送端</p><p> 引腳5: GND 接地</p>
55、<p> 引腳6: A 差分正輸入端</p><p> 引腳7: B 差分負(fù)輸入端</p><p> 引腳8: VCC 電源</p><p> 2.82 MAX485電路圖</p><p> 圖9 MAX485電路圖</p><p> 2.9
56、繼電器控制模塊</p><p> 繼電器是一種電控制器件。它具有控制系統(tǒng)和被控制系統(tǒng)之間的互動(dòng)關(guān)系。在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用?!‰姶爬^電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過(guò)一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈
57、簧的反作用力返回原來(lái)的位置,使動(dòng)觸點(diǎn)與原來(lái)的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對(duì)于繼電器的“常開(kāi)、常閉”觸點(diǎn),可以這樣來(lái)區(qū)分:繼電器線圈未通電時(shí)處于斷開(kāi)狀態(tài)的靜觸點(diǎn),稱為“常開(kāi)觸點(diǎn)”;處于接通狀態(tài)的靜觸點(diǎn)稱為“常閉觸點(diǎn)”。</p><p> 圖10 繼電器圖</p><p><b> 系統(tǒng)軟件部分</b></p
58、><p><b> 軟件框圖</b></p><p><b> 圖11軟件框圖</b></p><p> 3.2 Keil軟件的概述</p><p> Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可
59、維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。</p&g
60、t;<p> Keil C51開(kāi)發(fā)系統(tǒng)基本知識(shí)Keil C51開(kāi)發(fā)系統(tǒng)基本知識(shí) </p><p><b> 1. 系統(tǒng)概述 </b></p><p> Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句
61、生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹Keil C51開(kāi)發(fā)系統(tǒng)各部分功能和使用。 </p><p> 2. Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu) </p><p> C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等
62、整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 </p>
63、<p> 使用獨(dú)立的Keil仿真器時(shí),注意事項(xiàng) </p><p> 1、 仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 </p><p> 2、 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。 </p><p> 3、 仿真芯片的31腳(/EA)已接至高電平,所以仿真時(shí)只能使用片內(nèi)ROM,不能使
64、用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。</p><p><b> 3.優(yōu)點(diǎn) </b></p><p> 1、Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p&g
65、t;<p> 2、與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。 Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。</p><p> 3. 3 Fame View軟件的概述</p><p> 組態(tài)軟件,又稱組態(tài)監(jiān)控軟件系統(tǒng)軟件。組態(tài)軟件大都支持各種主
66、流工控設(shè)備和標(biāo)準(zhǔn)通信協(xié)議,并且通常應(yīng)提供分布式數(shù)據(jù)管理和網(wǎng)絡(luò)功能。對(duì)應(yīng)于原有的HMI(人機(jī)接口軟件,Human Machine Interface)的概念,組態(tài)軟件還是一個(gè)使用戶能快速建立自己的HMI的軟件工具或開(kāi)發(fā)環(huán)境。在組態(tài)軟件出現(xiàn)之前,工控領(lǐng)域的用戶通過(guò)手工或委托第三方編寫HMI應(yīng)用,開(kāi)發(fā)時(shí)間長(zhǎng),效率低,可靠性差;或者購(gòu)買專用的工控系統(tǒng),通常是封閉的系統(tǒng),選擇余地小,往往不能滿足需求,很難與外界進(jìn)行數(shù)據(jù)交互,升級(jí)和增加功能都受到嚴(yán)
67、重的限制。組態(tài)軟件的出現(xiàn)使用戶可以利用組態(tài)軟件的功能,構(gòu)建一套最適合自己的應(yīng)用系統(tǒng)。A) 3D:系統(tǒng)除了具有傳統(tǒng)的二維平面組態(tài)、監(jiān)控功能,還具有真實(shí)三維立體組態(tài)、監(jiān)控功能,畫面逼真。該功能利用DirectX/OpenGL開(kāi)發(fā),在國(guó)內(nèi)應(yīng)該是首創(chuàng),國(guó)際上也極其少見(jiàn)。</p><p> B) 跨平臺(tái):跨PC、嵌入式、平板電腦、智能移動(dòng)等平臺(tái),該特點(diǎn)組態(tài)領(lǐng)域全球首創(chuàng)。</p><p> 1)
68、系統(tǒng)的圖形/控件、驅(qū)動(dòng)/模塊支持源代碼級(jí)跨平臺(tái),即所有平臺(tái)的圖形、驅(qū)動(dòng)代碼一致,經(jīng)過(guò)不同平臺(tái)編譯器編譯鏈接后,即可在該平臺(tái)上運(yùn)行。</p><p> 2) 所有平臺(tái)的所有文件格式都一致,因此工程無(wú)需修改就可以在不同平臺(tái)間移植、運(yùn)行,而且不同平臺(tái)開(kāi)發(fā)環(huán)境(目前只有Windows開(kāi)發(fā)環(huán)境)可以開(kāi)發(fā)其它平臺(tái)的工程。</p><p> 3) 所有平臺(tái)間的網(wǎng)絡(luò)通訊協(xié)議一致,平臺(tái)之間可以相互訪問(wèn)。
69、參見(jiàn)“網(wǎng)絡(luò)分布式”特點(diǎn)說(shuō)明。</p><p><b> C) 網(wǎng)絡(luò)分布式</b></p><p> 1) 所有平臺(tái)(包括嵌入式、平板電腦、智能移動(dòng)等平臺(tái))的網(wǎng)絡(luò)版本都內(nèi)置微小、高效的網(wǎng)絡(luò)/WEB模塊,因此天生具備網(wǎng)絡(luò)/WEB服務(wù)功能,組態(tài)文件無(wú)須發(fā)布,通過(guò)WEB瀏覽器或者組態(tài)瀏覽器即可遠(yuǎn)程監(jiān)控該設(shè)備工程。</p><p> 2) 由于所有
70、平臺(tái)間的網(wǎng)絡(luò)通訊協(xié)議一致,所以利用網(wǎng)絡(luò)共享模塊,不同工程、不同平臺(tái)間的變量、資源都可以通過(guò)網(wǎng)絡(luò)互相訪問(wèn),實(shí)現(xiàn)真正意義上的跨平臺(tái)網(wǎng)絡(luò)分布式系統(tǒng)。</p><p> 3) 利用“內(nèi)核訪問(wèn)開(kāi)發(fā)包”(參見(jiàn)“強(qiáng)大開(kāi)放性”),也可以與其它系統(tǒng)、其它平臺(tái)組成網(wǎng)絡(luò)分布式系統(tǒng)。</p><p> 4) 系統(tǒng)對(duì)網(wǎng)絡(luò)協(xié)議和通訊采用了大量的優(yōu)化技術(shù),通訊實(shí)時(shí)性高,響應(yīng)迅速,網(wǎng)絡(luò)往返包少,大大提高了網(wǎng)絡(luò)性能。&
71、lt;/p><p> D) 強(qiáng)大開(kāi)放性:系統(tǒng)提供了如下的開(kāi)發(fā)包,隨開(kāi)發(fā)包發(fā)布的還有很多例子源碼,而且系統(tǒng)封裝了大量的基類和宏,因此開(kāi)發(fā)擴(kuò)展極其容易:</p><p> 1) IO驅(qū)動(dòng)開(kāi)發(fā)包:一般組態(tài)軟件都提供(原先我以為他們提供,不過(guò)后來(lái)我跟一些網(wǎng)友了解到他們不一定提供),所以本系統(tǒng)也提供。</p><p> 2) 圖形開(kāi)發(fā)包:一般組態(tài)軟件都不提供,但本系統(tǒng)也提供
72、。用戶通過(guò)該開(kāi)發(fā)包可以根據(jù)項(xiàng)目情況靈活增加特殊圖形。</p><p> 3) 系統(tǒng)模塊:用戶可以根據(jù)實(shí)際需求增加系統(tǒng)模塊對(duì)變量、事務(wù)、算法等的處理,大大擴(kuò)展了系統(tǒng)的應(yīng)用領(lǐng)域。</p><p> 4) 內(nèi)核訪問(wèn)開(kāi)發(fā)包:外部程序和系統(tǒng)、無(wú)論是遠(yuǎn)程或者本地、任何平臺(tái),都可以通過(guò)該開(kāi)發(fā)包訪問(wèn)、管理、讀寫任何平臺(tái)的態(tài)神組態(tài)數(shù)據(jù)庫(kù)內(nèi)核。例如:利用該開(kāi)發(fā)包的WINCE版本開(kāi)發(fā)成的一個(gè)WINCE系統(tǒng)可
73、以訪問(wèn)一個(gè)Windows平臺(tái)態(tài)神系統(tǒng),利用該開(kāi)發(fā)包的Windows版本開(kāi)發(fā)成的一個(gè)Windows系統(tǒng)也可以訪問(wèn)一個(gè)Linux平臺(tái)態(tài)神系統(tǒng)。</p><p> 3. 4 系統(tǒng)程序</p><p> #include <reg51.H> </p><p> #include <intrins.h></p><p>
74、; #include<stdlib.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> /******************************</p><p><b> DS18B20引腳
75、</b></p><p> ******************************/</p><p> sbit DQ=P1^3; //13</p><p> uchar data temp_data[2] = {0x00,0x00} ;</p><p> uchar data display[5] = {
76、0x00,0x00,0x00,0x00,0x00} ;</p><p> bit presence;</p><p> /******************************</p><p><b> 繼電器開(kāi)關(guān)</b></p><p> ******************************/&l
77、t;/p><p> sbit guang=P3^5;</p><p> sbit shi=P3^6;</p><p> sbit wen=P3^7;</p><p> /******************************</p><p><b> 定義12864引腳</b><
78、/p><p> ******************************/</p><p> #define LCD_data P0</p><p> sbit LCD_RS=P2^4;</p><p> sbit LCD_RW=P2^3;</p><p> sbit LCD_EN=P2^2;</p&g
79、t;<p> sbit LCD_PSB=P2^5;</p><p> /******************************</p><p> 定義ADC0832引腳</p><p> ******************************/</p><p> sbit ADCS =P1^4; //AD
80、C0832 chip seclect</p><p> sbit ADDI =P1^6; //ADC0832 k in</p><p> sbit ADDO =P1^6; //ADC0832 k out</p><p> sbit ADCLK =P1^5; //ADC0832 clock signal</p><p> /***
81、***************************</p><p> 12864顯示各個(gè)參數(shù)</p><p> ******************************/</p><p> uchar code dis1[]={"濕度:"};</p><p> uchar code dis2[]={&quo
82、t;光照:"};</p><p> uchar code dis3[]={"溫度: ."};</p><p> uchar code dis4[]={"王波2012/6/16"};</p><p> uchar dispbuf[3];</p><p> /**********
83、********************</p><p><b> 顯示中間變量</b></p><p> ******************************/</p><p> uint temp;</p><p> uint dat0=0; </p><p> uchar
84、disp[]={"0123456789"};//顯示數(shù)組</p><p> uchar adc[4];</p><p> uchar abc[6];</p><p> //uchar abc_1[3];</p><p> uchar bijiao[5];</p><p> uchar ua
85、rt[2];</p><p> /******************************</p><p><b> 12864驅(qū)動(dòng)</b></p><p> ******************************/</p><p> void delay_1ms(uint x)//延遲時(shí)間函數(shù)<
86、;/p><p><b> {</b></p><p> uchar i,j;</p><p> for(i=0;i<x;i++)</p><p> for(j=0;j<110;j++);</p><p><b> }</b></p><p
87、> void write_cmd(uchar cmd)</p><p><b> {</b></p><p><b> LCD_RS=0;</b></p><p><b> LCD_RW=0;</b></p><p><b> LCD_EN=0;<
88、;/b></p><p><b> P0=cmd;</b></p><p> delay_1ms(10);</p><p><b> LCD_EN=1;</b></p><p> delay_1ms(10);</p><p><b> LCD_EN=
89、0;</b></p><p><b> }</b></p><p> void write_dat(uchar dat)</p><p><b> {</b></p><p><b> LCD_RS=1;</b></p><p>&l
90、t;b> LCD_RW=0;</b></p><p><b> LCD_EN=0;</b></p><p><b> P0=dat;</b></p><p> delay_1ms(6);</p><p><b> LCD_EN=1;</b></
91、p><p> delay_1ms(6);</p><p><b> LCD_EN=0;</b></p><p><b> }</b></p><p> void lcd_pos(uchar x,uchar y)</p><p><b> {</b>
92、</p><p> uchar pos;</p><p><b> if(x==0)</b></p><p><b> {x=0x80;}</b></p><p><b> if(x==1)</b></p><p><b> {x=0
93、x90;}</b></p><p><b> if(x==2)</b></p><p><b> {x=0x88;}</b></p><p><b> if(x==3)</b></p><p><b> {x=0x98;}</b><
94、;/p><p><b> pos=x+y;</b></p><p> write_cmd(pos);</p><p><b> }</b></p><p> /******************************</p><p><b> 12864初
95、始化</b></p><p> ******************************/</p><p> void lcd_init()</p><p><b> {</b></p><p> LCD_PSB=1;</p><p> write_cmd(0x30);&
96、lt;/p><p> delay_1ms(5);</p><p> write_cmd(0x0c);</p><p> delay_1ms(5);</p><p> write_cmd(0x01);</p><p> delay_1ms(5);</p><p><b> }&l
97、t;/b></p><p> /******************************</p><p><b> 顯示名稱</b></p><p> ******************************/</p><p> void display_nm() </p><
98、;p><b> {</b></p><p><b> uchar i;</b></p><p> lcd_pos(0,0);</p><p><b> i=0;</b></p><p> while(dis1[i]!='\0')</p>
99、;<p><b> {</b></p><p> write_dat(dis1[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> lcd_pos(1,0);</p><p&g
100、t;<b> i=0;</b></p><p> while(dis2[i]!='\0')</p><p><b> {</b></p><p> write_dat(dis2[i]);</p><p><b> i++;</b></p>
101、<p><b> }</b></p><p> lcd_pos(2,0);</p><p><b> i=0;</b></p><p> while(dis3[i]!='\0')</p><p><b> {</b></p>
102、<p> write_dat(dis3[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> lcd_pos(3,0);</p><p><b> i=0;</b></p><p&g
103、t; while(dis4[i]!='\0')</p><p><b> {</b></p><p> write_dat(dis4[i]);</p><p><b> i++;</b></p><p><b> }</b></p>&l
104、t;p><b> }</b></p><p> /******************************</p><p><b> 18B20程序模塊</b></p><p> ******************************/</p><p> unsigned
105、char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,</p><p> 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ;///*小數(shù)位表,四舍五入*/</p><p> void Delay(unsigned int num)</p><p><
106、b> {</b></p><p> while( --num ) ;</p><p><b> }</b></p><p> /*初始化ds1820 */</p><p> /**********************
107、*********************************************/</p><p> Init_DS18B20(void)</p><p><b> {</b></p><p> DQ = 1 ; //DQ復(fù)位</p><p> Delay(8) ; //稍做延時(shí)<
108、/p><p> DQ = 0 ; //單片機(jī)將DQ拉低</p><p> Delay(90) ; //精確延時(shí) 大于 480us</p><p> DQ = 1 ; //拉高總線</p><p> Delay(8) ;</p><p> presence = DQ ; //如果=0
109、則初始化成功 =1則初始化失敗</p><p> Delay(100) ;</p><p><b> DQ = 1 ;</b></p><p> return(presence) ; //返回信號(hào),0=presence,1= no presence</p><p><b> }</b><
110、;/p><p> /* 讀一個(gè)字節(jié) */</p><p> /*******************************************************************/</p><p> ReadOneChar(void)</p><p><b> {<
111、/b></p><p> unsigned char i = 0 ;</p><p> unsigned char dat = 0 ;</p><p> for (i = 8 ; i > 0 ; i--)</p><p><b> {</b></p><p> DQ = 0
112、; // 給脈沖信號(hào)</p><p> dat >>= 1 ;</p><p> DQ = 1 ; // 給脈沖信號(hào)</p><p><b> if(DQ)</b></p><p> dat |= 0x80 ;</p><p> Delay(4) ;</p>&
113、lt;p><b> }</b></p><p> return (dat) ;</p><p><b> }</b></p><p> /* 寫一個(gè)字節(jié) */</p><p> /************
114、*******************************************************/</p><p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i = 0 ;</p><p&
115、gt; for (i = 8 ; i > 0 ; i--)</p><p><b> {</b></p><p><b> DQ = 0 ;</b></p><p> DQ = dat&0x01 ;</p><p> Delay(5) ;</p><p&g
116、t;<b> DQ = 1 ;</b></p><p><b> dat>>=1 ;</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 讀取溫度
117、 */</p><p> /*******************************************************************/</p><p> void Read_Temperature(void)</p><p><b> {</b></p><p>
118、 Init_DS18B20() ;</p><p> WriteOneChar(0xCC) ; // 跳過(guò)讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0x44) ; // 啟動(dòng)溫度轉(zhuǎn)換</p><p> Init_DS18B20() ;</p><p> WriteOneChar(0xCC) ; //跳過(guò)讀序
119、號(hào)列號(hào)的操作</p><p> WriteOneChar(0xBE) ; //讀取溫度寄存器</p><p> temp_data[0] = ReadOneChar() ; //溫度低8位</p><p> temp_data[1] = ReadOneChar() ; //溫度高8位</p><p><b> }&
120、lt;/b></p><p> /* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示 */</p><p> /*******************************************************************/</p><p> void Disp_Tem
121、perature()</p><p><b> {</b></p><p> display[4]=temp_data[0]&0x0f ;</p><p> display[0]=ditab[display[4]]+0x30 ; //查表得小數(shù)位的值</p><p> display[4]=((t
122、emp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ;</p><p> display[3]=display[4]/100+0x30 ;</p><p> display[1]=display[4]%100 ;</p><p> display[2]=display[1]/10
123、+0x30 ;</p><p> display[1]=display[1]%10+0x30 ;</p><p> bijiao[4]=ditab[display[4]];</p><p> bijiao[3]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);</
124、p><p> bijiao[2]=bijiao[3]/100;//比較百位</p><p> bijiao[0]=bijiao[3]%100;</p><p> bijiao[1]=bijiao[0]/10;//比較十位</p><p> bijiao[0]=bijiao[0]%10;//比較個(gè)位</p><p>
125、 if(display[3]==0x30) //高位為0,不顯示</p><p><b> {</b></p><p> display[3]=0x20 ;</p><p> if(display[2]==0x30) //次高位為0,不顯示</p><p> display[2]=0x2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫濕度集成控制環(huán)境艙
- 課程設(shè)計(jì)--溫濕度傳感器
- 基于cc2530溫濕度采集系統(tǒng)課程設(shè)計(jì)報(bào)告
- 單片機(jī)大棚溫濕度控制的課程設(shè)計(jì)
- 單片機(jī)大棚溫濕度控制的課程設(shè)計(jì)
- 集成電路課程設(shè)計(jì)
- 集成電路課程設(shè)計(jì)
- 溫濕度的采集和數(shù)據(jù)的無(wú)線傳輸畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)溫濕度控制的課程設(shè)計(jì)
- 基于 cc2530 溫濕度采集與傳輸系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
- 集成電路課程設(shè)計(jì)報(bào)告
- 集成電路課程設(shè)計(jì)報(bào)告
- 集成電路綜合課程設(shè)計(jì)
- 集成電路課程設(shè)計(jì)_new
- 基于si4432的溫濕度采集電路設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)字集成電路課程設(shè)計(jì)報(bào)告——通訊集成電路
- 基于si4432的溫濕度采集電路設(shè)計(jì)與實(shí)現(xiàn)
- 集成電路課程設(shè)計(jì)報(bào)告 (2)
- 基于arm的溫濕度采集系統(tǒng)
- 草莓大棚光照及溫濕度無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論