




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 引言1.1 課題背景在現(xiàn)代工業(yè)現(xiàn)場,隨著科技的進(jìn)步和自動化發(fā)展,溫、濕度監(jiān)測系統(tǒng)在某些行業(yè)中要求越來越高,特別是在大中型倉庫管理系統(tǒng)中,由于溫濕度過高或過低引起的倉庫儲藏物本身的水分過高或連續(xù)的高濕天氣將導(dǎo)致儲藏物新陳代謝加快而放出熱量,放熱引起的溫升又是代謝進(jìn)一步加劇以至發(fā)霉變質(zhì),因此倉庫必須重視對空氣溫濕度精確的而又方便的實時監(jiān)測,長期以來,由于受經(jīng)濟(jì)條件限制,我國倉庫環(huán)境較差,而且管理落后。 倉庫管理的重點之一就是要合理布置測溫點,經(jīng)常檢查溫度變化,以便及時發(fā)現(xiàn)儲藏物發(fā)熱點,減少損失。然而,堆積物的熱傳遞又是那樣的緩慢,使人感知極差,需要管理人員經(jīng)常進(jìn)入悶熱、嗆人的倉庫內(nèi)觀察溫、
2、濕度,不斷進(jìn)行翻倉、加濕、通風(fēng)和降溫設(shè)備來控制溫濕度,這樣不但控制精度低、實時性差,而且操作人員的勞動強度大。這種繁重的體力勞動,不僅對人體有極大的傷害,而且不科學(xué)、不及時。所以,倉庫儲藏物蟲蛀、霉變的情況時有發(fā)生。 我國的儲藏物現(xiàn)均集中存放在地方或國家的倉庫中。按照國家儲藏物保護(hù)法,必須定期抽樣檢查糧食的溫、濕度,以確保儲藏質(zhì)量。這就迫切需要溫濕度監(jiān)控系統(tǒng)來控制倉庫。 本課題即以上述問題為出發(fā)點,設(shè)計倉庫溫、濕度監(jiān)控系統(tǒng),該系統(tǒng)不僅能采集倉庫內(nèi)的溫、濕度值,而且能夠迅速做出相應(yīng)的處理,并將數(shù)據(jù)及處理結(jié)果顯示給用戶,并儲存數(shù)據(jù)以方便以后的對比研究。1.2 倉庫溫、濕度控制技術(shù)的國內(nèi)外研究狀況近
3、年來,由于超大規(guī)模集成電路技術(shù)、網(wǎng)絡(luò)通信技術(shù)和計算機技術(shù)的發(fā)展,是監(jiān)控系統(tǒng)在工農(nóng)業(yè)生產(chǎn)等領(lǐng)域得到廣泛引用,因此,倉庫溫、濕度監(jiān)控技術(shù)的研究在軟、硬件等方面都得到了一定的發(fā)展。1.2.1 硬件技術(shù) 早期倉庫溫濕度檢測主要采用溫度計量算法,它是將溫度計放入特定的插桿中,根據(jù)經(jīng)驗插入倉庫的多個測溫點,工作人員定期拔出讀數(shù),決定采取相應(yīng)的措施。這種方法由于溫度計精度、人工讀數(shù)的人為因素等原因,溫度檢測不僅速度慢而且精度低,抽樣不徹底,局部糧食溫度過高不易被及時發(fā)現(xiàn),局部糧食發(fā)霉變質(zhì)引起大面積壞掉的情況時有發(fā)生。 隨著科技的發(fā)展,溫、濕度檢測系統(tǒng)有了很大的改善和提高,系統(tǒng)在布線上采用矩陣式布線技術(shù),簡化
4、了數(shù)據(jù)采集部分的線路;在傳感器方面應(yīng)用了熱電偶、半導(dǎo)體等器件;在數(shù)據(jù)傳輸方面減少了傳輸線的根數(shù),采用串行傳輸方式,他可對倉庫的各個測試點進(jìn)行巡回檢測,檢測的速度、精度大大提高,但由于電阻傳感器靈敏度低,使檢測精度不夠理想。 然后倉庫使用單板機進(jìn)行溫、濕度監(jiān)控,并采用各種手段提高數(shù)據(jù)傳輸及檢測速度,通過軟硬件技術(shù)的結(jié)合,檢測的精度和可靠性有較大提高,能滿足一般中小型倉庫的需要。 近年來,隨著網(wǎng)絡(luò)通信技術(shù)和微處理器芯片的發(fā)展,為了簡化倉庫溫、濕度監(jiān)控系統(tǒng)的設(shè)計并降低成本,各公司的科研機構(gòu)開始致力于相關(guān)領(lǐng)域的探索,是的倉庫溫濕度監(jiān)控系統(tǒng)數(shù)字化,網(wǎng)絡(luò)化成為可能。其中,美國達(dá)拉斯公司推出的單總線接口協(xié)議
5、采用單根信號線,既可傳輸數(shù)據(jù)又可傳輸時鐘,而且數(shù)據(jù)傳輸是雙向的,因此單總線技術(shù)具有線路簡單,硬件開銷小,便于總線擴(kuò)展和維護(hù)等優(yōu)點。該公司所生產(chǎn)的單總線器件具有無需另附電源、在測試點直接將模擬信號數(shù)字化等特點,一方面減少了系統(tǒng)環(huán)節(jié),另一方面也保證了系統(tǒng)的精度。同時各公司開發(fā)的可視化軟件開發(fā)工具,更是向著效率高、功能強大的方向努力,從而為獲得良好的用戶界面奠定了基礎(chǔ)。 國外倉庫的監(jiān)控技術(shù)已經(jīng)發(fā)展的很成熟,高科技的數(shù)字傳感器廣泛應(yīng)用于倉庫溫、濕度監(jiān)控系統(tǒng)。這種傳感器采用微控制器與半導(dǎo)體集成電路的最新技術(shù),在一個芯片上集成了溫度檢測芯片、數(shù)據(jù)信號轉(zhuǎn)換芯片、計算機接口芯片,存儲芯片等,除完成溫度檢測功能
6、外,還可完成預(yù)置范圍溫度、報警、多路A/D轉(zhuǎn)換、溫度補償?shù)裙δ?。由于?shù)字溫度傳感器直接輸出數(shù)字量,從而解決了溫度信號長距離傳輸問題及傳輸過程中因干擾和衰減而導(dǎo)致的精度降低等問題。 目前,國內(nèi)出現(xiàn)了豐富的數(shù)字傳感器配套產(chǎn)品,如中繼器、分線器、插接器、遠(yuǎn)程控制模塊等。數(shù)字傳感器技術(shù)、通信技術(shù)、計算機已成為當(dāng)今計算機技術(shù)的三大基礎(chǔ),計算機監(jiān)控技術(shù)已成為人們關(guān)注的熱點。軟件技術(shù) 近年來,各種計算機軟件開發(fā)平臺有了很大發(fā)展,特別是基于Windows環(huán)境下的Delphi、Power Builder、Visual Basic、Visual C+的不斷升級,數(shù)據(jù)功能增強,能夠使用ODBC驅(qū)動程序訪問各種數(shù)據(jù)系
7、統(tǒng),并可使用ADO、DAO等各種應(yīng)用程序開發(fā)接口,操縱數(shù)據(jù)庫中的數(shù)據(jù),管理數(shù)據(jù)庫,數(shù)據(jù)庫對象與結(jié)構(gòu)方便地對監(jiān)測系統(tǒng)進(jìn)行顯示、打印、查詢、自動控制等操作,為高性能的測控軟件設(shè)計提供了基礎(chǔ)。1.3 課題設(shè)計目標(biāo) 倉庫溫濕度控制系統(tǒng)是以AT89C52系列單片機為核心構(gòu)成的監(jiān)控系統(tǒng)。本課題提出了一種可以應(yīng)用于中小型糧倉的溫濕度控制系統(tǒng)的設(shè)計方案。 系統(tǒng)主要包括輸入和輸出兩個大的模塊,每個模塊有包括幾個小的功能模塊。其中,輸入模塊主要包括電源模塊、鍵盤設(shè)定模塊、溫濕度檢測模塊;輸出模塊主要包括LCD顯示模塊、報警模塊、控制模塊及串口通信模塊。第二章 系統(tǒng)總體方案設(shè)計2.1 系統(tǒng)功能、組成及工作原理2.1
8、.1 總體方案根據(jù)設(shè)計功能要求,系統(tǒng)可分為以下幾個部分:1) 鍵盤設(shè)定模塊:設(shè)置溫度的上限及下限,濕度的上限及下限來調(diào)整倉庫溫濕度控制范圍。2) 溫濕度檢測模塊:檢測倉庫內(nèi)的溫、濕度。3) 報警模塊:當(dāng)溫度或濕度越限時報警。4) 控制處理模塊:當(dāng)溫度或濕度越限時,采取一定的手段控制。5) 顯示模塊:LCD顯示設(shè)定的溫度的上限及下限、濕度的上限及下限、測得的溫濕度值及各種調(diào)整信息。6) 串口通信:將測得的溫濕度上傳給PC機保存。7) 電源模塊:給系統(tǒng)供電。2.1.2 實施措施1) 鍵盤設(shè)定模塊:因為鍵盤要有輸入溫濕度的范圍、小數(shù)點、百分號,復(fù)位等功能,所以用44矩陣鍵盤。 2) 溫濕度檢測模塊:
9、溫濕度傳感器的選擇見下面的方案論證。3) 報警模塊:當(dāng)溫度或濕度越限時聲音報警,用蜂鳴器實現(xiàn)。4) 控制處理模塊:實際環(huán)境溫度超過設(shè)定的最高溫度時,繼電器控制空調(diào)的加熱設(shè)備工作;實際環(huán)境溫度低于設(shè)定的最低溫度時,繼電器控制空調(diào)的制冷設(shè)備工作;實際環(huán)境濕度超過設(shè)定的最高溫濕度時,繼電器控制風(fēng)機工作降濕;實際環(huán)境濕度低于設(shè)定的最低濕度時,繼電器控制加濕器工作; 5) 顯示模塊:用戶輸入溫濕度的上下限,測得的溫濕度值及各種調(diào)整信息的顯示編程實現(xiàn)。6) 串口通信:用電平轉(zhuǎn)換芯片MAX232實現(xiàn)。7) 電源模塊:采用線性直流穩(wěn)壓電源的設(shè)計方法。2.2 溫濕度傳感器的方案論證和選擇當(dāng)單片機用作測控系統(tǒng)時,
10、系統(tǒng)總要有被測信號進(jìn)入輸入通道,由單片機拾取必要的輸入信息。對于測量系 統(tǒng)而言,如何準(zhǔn)確獲得被測信號是其核心任務(wù);而對測控系統(tǒng)來講,除對被控對象狀態(tài)的信號測試外,還要將測試數(shù)據(jù)與控制條件對比并實時控制相應(yīng)執(zhí)行設(shè)備。 傳感器是實現(xiàn)測量與控制的首要環(huán)節(jié),是測控系統(tǒng)的關(guān)鍵部件,如果沒有傳感器對原始被測信號進(jìn)行準(zhǔn)確可靠的捕捉和轉(zhuǎn)換,一切準(zhǔn)確的測量和控制都將無法實現(xiàn)。工業(yè)生產(chǎn)過程中的自動化測量和控制,幾乎主要依靠各種傳感器來檢測和控制生產(chǎn)過程中的各種參量,使設(shè)備和系統(tǒng)正常運行在最佳狀態(tài),從而保證生產(chǎn)的高效率和高質(zhì)量。數(shù)字式溫度傳感器的類型隨著溫度傳感器集成化、智能化技術(shù)的進(jìn)步,世界上很多公司推出了新型的
11、數(shù)字溫度傳感器,并得到廣泛應(yīng)用。對器件的選擇應(yīng)把握以下幾點:測溫的精度、分辨率要合適,以便減少不必要的電路和軟件開發(fā)成本;外圍電路應(yīng)盡量簡單;溫度傳感器的總線負(fù)載能力如何,能否滿足多點測溫的需要;占用單片機引腳情況如何,因為MCU引腳資源有限,多點測溫時,如果測量的點數(shù)超過輸入通道的個數(shù),就要添加多路復(fù)用電路,這將增加成本;與單片機的通信協(xié)議應(yīng)盡量簡單,成本、溫度測量的軟件開發(fā)難度要盡量小。目前在數(shù)字溫度傳感器中采用的串行總線主要有Motorola公司的SPI總線,Dallas公司的1-wire總線,Phillips公司的I2C總線等。常用的數(shù)字溫度傳感器主要有:1) 數(shù)字溫度傳感器AD741
12、8是件ADI公司推出的單片溫度測量與控制用集成電路。其內(nèi)部包含有帶隙溫度傳感器和10 位模數(shù)轉(zhuǎn)換器,可將感應(yīng)溫度轉(zhuǎn)換為0.25C 量化間隔的數(shù)字信號,測溫范圍為-55C+125C,具有10 位數(shù)字輸出溫度值,分辨率0.25C,精度為2C , 轉(zhuǎn)換時間為1530ms , 工作電壓范圍為+2.7V+5.5V,具有低功耗模式(典型值為1A)。AD7418 片內(nèi)寄存器可以進(jìn)行高/低溫度門限的設(shè)置。當(dāng)溫度超過設(shè)置門限時,過溫漏極開路指示器(OTI)將輸出有效信號??膳c單片機(微控制器)接口,通過I2C 接口對AD7418 的內(nèi)部寄存器進(jìn)行讀/寫操作。該溫度傳感器可廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)中的環(huán)境溫度監(jiān)測、
13、工業(yè)過程控制、電池充電以及個人計算機等系統(tǒng)。2)LM74是美國國家半導(dǎo)體公司推出的集成了帶隙式溫度傳感器、Delta-Sigma型模/數(shù)轉(zhuǎn)換器、并具有SPI/Microwire兼容總線接口的數(shù)字溫度傳感器。在傳感器通電工作后,自動按一定速率對溫度進(jìn)行檢測, 并在片內(nèi)寄存器中存儲轉(zhuǎn)換的溫度值,主機可以在任意時刻讀出傳感器溫度值。LM74具有休眠模式, 在休眠時消耗的電流不超過10mA, 適用于對功耗有嚴(yán)格限制的系統(tǒng)。LM74的模/數(shù)轉(zhuǎn)換器為12位外加符號位,有效工作范圍為-55+155,分辨率可達(dá)0.0625的分辨率。由于采用了SPI/ Microwire兼容總線接口, 可以將多個傳感器掛接在總
14、線上, 通過片選信號對特定器件進(jìn)行讀寫操作。LM74采用3.0V5.5V的供電電壓。 3) DS18b20是Dallas公司推出的新一代數(shù)字溫度傳感器。通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和 DS1820 之間僅需一條連接線(加上地線)。用于讀寫和溫度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部電源。因為每個 DS1820 都有一個獨特的片序列號,所以多只 DS1820 可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在 HVAC 環(huán)境控制、探測建筑物、儀器或機器的溫度以及過程監(jiān)測和控制等方面非常有用2.2.2 數(shù)字濕度傳感器的類型近年來,國內(nèi)外在濕度傳
15、感器研發(fā)領(lǐng)域取得了較大發(fā)。濕敏傳感器正向集成化、智能化、多參數(shù)監(jiān)測的方向迅速發(fā)展。集成濕度傳感器的選擇應(yīng)考慮以下幾點:感濕性能好、響應(yīng)速度快、靈敏度高、測量范圍寬,線性度要好,要有較好的一致性、可重復(fù)性,濕滯小,有較強的抗污染能力,較高的穩(wěn)定性和可靠性,使用壽命長。目前,國外生產(chǎn)濕度傳感器的主要廠家及典型產(chǎn)品主要有:Honeywell公司(HIT3602、HIT3605、HIT3610型),Humeral公司(HM1500、HM1520、HF3223、HTF3223型),Sensirion公司(SHT11、SHT15型)。常用的集成濕度傳感器主要有:1) HIH-3610是Honeywell公
16、司生產(chǎn)的具有信號處理功能的熱固聚酯電容式相對濕度傳感器,線性放大輸出、工廠標(biāo)定,獨特的多層結(jié)構(gòu)能非常有效地抵抗環(huán)境的侵蝕。工作范圍:溫度-40+85,相對濕度0100%RH,精度達(dá)到2%RH,激光修正互換性至5%RH,低功耗驅(qū)動電流設(shè)計為200A,反應(yīng)時間為15s,穩(wěn)定性好,較低的飄移、抗化學(xué)腐蝕性能強。2) HM1500是法國Humeral公司采用Humeral專利濕敏電容HS1101設(shè)計制造的相對濕度傳感器。帶防護(hù)棒式封裝,5VDC恒壓供電,14VDC放大線性電壓輸出,便于用戶使用。濕度測試量程為0100%RH,精度達(dá)到3%RH(1095%RH范圍),防灰塵,可有效抵抗各種腐蝕性氣體物質(zhì),
17、非常低的溫度依賴性,長期穩(wěn)定性好,反應(yīng)時間5s。3) 與傳統(tǒng)的溫濕度傳感器不同,SHT11是瑞士Sensirion公司推出的基于CMOSensTM技術(shù)的新型智能溫濕度傳感器,它將溫濕度傳感器、信號放大調(diào)理、A/D轉(zhuǎn)換、二線串行接口全部集成于一個芯片內(nèi),融合了CMOS芯片技術(shù)與傳感技術(shù),使傳感器具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、極高的性價比、使用方便、接口簡單等優(yōu)點,從而發(fā)揮出它們強大的優(yōu)勢互補作用。(3 ) 溫濕度傳感器的確定 綜上所述,以上介紹的大都是單個的溫、濕度傳感器,而SHT11集溫度傳感器與濕度傳感器于一體,并且采用SHT11進(jìn)行溫濕度實時監(jiān)測的系統(tǒng)具有精度高、成本低、體積小、接
18、口簡單等好處;另外SHT11芯片內(nèi)部集成14位A/D轉(zhuǎn)換器,且采用數(shù)字信號輸出,因此抗干擾能力也比同類芯片高。該芯片在溫濕度監(jiān)測、自動控制等領(lǐng)域均已得到廣泛應(yīng)用,所以選用SHT11。第三章 系統(tǒng)硬件設(shè)計 本系統(tǒng)硬件包括:單片機最小系統(tǒng)、LCD1602液晶顯示、鍵盤、SHT11溫濕度檢測、報警電路、通訊芯片MAX232、通信串口、控制接口(空調(diào)、風(fēng)機、加濕機)、電源模塊。系統(tǒng)整體電路框圖如圖1所示。圖3-1 系統(tǒng)整體電路框圖1 單片機最小系統(tǒng)設(shè)計(1) AT89C52簡介AT89C52 是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)中可編程的Flash 存儲器。使用Atmel 公司
19、高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU和在系統(tǒng)可編程 Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89C52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計
20、數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。具體引腳圖如圖3-2所示。圖3-2 AT89C52引腳圖(2) 時鐘電路和復(fù)位電路時鐘電路:內(nèi)部時鐘方式,在 XTAL1 和 XTAL2 之間跨接晶體振蕩器和微調(diào)電容,組成并聯(lián)諧振電路,構(gòu)成穩(wěn)定的自激振蕩器,如圖3-3所示,晶體振蕩器的振蕩頻率決定單片機的時鐘頻率。外部時鐘方式,在由多片單片機組成的系統(tǒng)中,為了各單片機之間時鐘信號的同步,應(yīng)當(dāng)引入惟一的公用外部脈沖信號作為各單片機的振蕩脈沖。這時,外部的脈沖信號是經(jīng) XTAL2 引腳注入,如圖3-4所示。 復(fù)位電路:常見的
21、復(fù)位電路有下列三種形式,如圖3-5所示。1) 上電自動復(fù)位方式是在單片機接通電源時,對電容充電來實現(xiàn)的。上電瞬間,RST 端的電位與 VCC 相同。只要在 RST 端有足夠長的時間保持閾值電壓,單片機便可自動復(fù)位。2) 按鍵電平復(fù)位方式通過使 RST 端經(jīng)電阻與 VCC 電源接通而實現(xiàn)。圖3-3 89C58RD+的內(nèi)部時鐘電路圖3-4 89C58RD+的外部時鐘電路上電自動復(fù)位方式 (2)按鍵電平復(fù)位 (3)按鍵脈沖復(fù)位圖3-5 常見的復(fù)位電路3. 按鍵脈沖復(fù)位方式利用微分電路產(chǎn)生的正脈沖實現(xiàn)復(fù)位。3.1.3 單片機最小系統(tǒng)電路圖其中時鐘電路為內(nèi)部時鐘電路,復(fù)位電路為上電自動復(fù)位方式與按鍵電平
22、復(fù)位方式的結(jié)合。圖3-6單片機最小系統(tǒng)3.2 LCD1602液晶顯示3.2.1 1602簡介1. 主要技術(shù)參數(shù):表3-3 主要技術(shù)參數(shù)顯示容量162個字符芯片工作電壓4.55.5V工作電流2.0mA(5.0V)模塊最佳工作電壓5.0V字符尺寸2.954.35(WXH)mm2. 接口信號說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,如表3-6所示。表3-4 接口信號說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2Data 1/02VDD電源正極10D3Data 1/03VL液晶顯示偏壓信號11D4Data 1/04RS數(shù)據(jù)/命令選擇端(H/L)12D5Data 1/
23、05R/W讀寫選擇端(H/L)13D6Data 1/06E使能信號14D7Data 1/07D0Data 1/015BLA背光源正極8D1Data 1/016BLK背光源負(fù)極3.2.2 1602與單片機連接圖圖3-9 1602與單片機連接圖3.3 矩陣鍵盤由于控制鍵位較多,方便程序設(shè)計,硬件安全可靠,本設(shè)計采用44矩陣鍵盤,與單片機P1口相連,電路圖如圖所示。圖3-10 矩陣鍵盤與單片機連接圖矩陣鍵盤的工作原理:當(dāng)無按鍵閉合時,P10P13 與 P14P17 之間開路。當(dāng)有鍵閉合時,與閉合鍵相連的兩條 I/O 口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線P14P17 為輸入狀態(tài),從行
24、線 P10P13 輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14P17 讀入數(shù)據(jù),若有某一列為低電平,則對應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進(jìn)行同樣的鍵操作。本設(shè)計矩陣鍵盤的功能圖如圖所示圖3-11 矩陣鍵盤的功能圖3.4 溫濕度檢測3.4.1 SHT11簡介1. 概述SHTxx 系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專利的工業(yè)COMS 過程微加工技術(shù),確保產(chǎn)品具有極高的可靠性
25、與卓越的長期穩(wěn)定性。傳感器包括一個電容式聚合體測濕元件和一個能隙式測溫元件,并與一個 14 位的 A/D 轉(zhuǎn)換器以及串行接口電路在同一芯片上實現(xiàn)無縫連接。因此,該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個 SHTxx傳感器都在極為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在 OTP 內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。兩線制串行接口和內(nèi)部基準(zhǔn)電壓,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品提供表面貼片 LCC(無鉛芯片)或 4 針單排引腳封裝。特殊封裝形式可根據(jù)用戶需求而提供。2
26、.引腳SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,管腳排列如圖1所示圖3-12 SHT11外形及引腳排列(1)GND:接地端;(2)DATA:雙向串行數(shù)據(jù)線;(3)SCK:串行時鐘輸入;(4)VDD電源端:0.45.5V電源端;(58)NC:空管腳。4. 輸出轉(zhuǎn)換為物理量(1)相對濕度為了補償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式修正輸出數(shù)值:(表示傳感器的相對濕度輸出數(shù)值,大約范圍在93400)表3-10 濕度轉(zhuǎn)換系數(shù)12 bit-40.0405-2.810-68 bit-40.648-7.210-4對高于 99%RH 的那些測量值則表示空氣已經(jīng)完全飽和,必須被處
27、理成顯示值均為 100%2RH。濕度傳感器對電壓基本上沒有依賴性。圖3-18 從轉(zhuǎn)換到相對濕度1) 濕度傳感器相對濕度的溫度補償實際測量溫度與25 (77)相差較大時,應(yīng)考慮濕度傳感器的溫度修正系數(shù):表3-11溫度補償系數(shù)12 bit0.010.000088 bit0.010.00128(2)溫度由能隙材料 PTAT (正比于絕對溫度) 研發(fā)的溫度傳感器具有極好的線性。可用如下公式將數(shù)字輸出轉(zhuǎn)換為溫度值:表3-12 溫度轉(zhuǎn)換系數(shù) 5V-40.00-40.0014bit0.010.0184V-39.75-39.5512bit0.040.0723.5V3-39.66-39.393V3-39.60-
28、39.282.5V3-39.55-39.19在極端工作條件下測量溫度時,可使用進(jìn)一步的補償算法以獲取高精度??蓞㈤啈?yīng)用說明“相對濕度與溫度的非線性補償”。3.4.2 SHT11與單片機相連的電路圖圖11 SHT11與單片機連接電路圖3.5 報警電路 報警電路如圖12所示,當(dāng)P2.5口輸出高電平時蜂鳴器響,當(dāng)P2.5口輸出低電平時蜂鳴器不響。圖12報警電路3.6 控制電路 本次設(shè)計以P26控制加熱設(shè)備,P27控制制冷設(shè)備,P36控制加濕設(shè)備,P37控制降濕設(shè)備,它們的控制接口電路相同,就以控制加熱設(shè)備的電路為例講解,下圖為控制加熱設(shè)備的接口電路。圖13 控制加熱設(shè)備的電路P5的1,3引腳接220
29、V交流電源,當(dāng)測得的溫度低于設(shè)定的最低溫度時,P26口為低電平,繼電器線圈得電,P5的1,3接通,加熱設(shè)備工作,同時LED指示燈D8亮,表示當(dāng)前處于加熱狀態(tài);當(dāng)測得的溫度大于設(shè)定的最低溫度時,P26口為高電平,繼電器線圈斷電,P5的1,2接通,加熱設(shè)備停止工作,同時LED指示燈D8滅。其它三個控制接口電路的工作原理與此類似。3.7 單片機與PC之間的通信PC內(nèi)部通常都裝有一個RS-232異步通信適配器版,其主要器件為可編程的UART芯片,如8250等,從而使PC有能力與其他具有標(biāo)準(zhǔn)RS-232串行通信接口的計算機設(shè)備進(jìn)行通信。AT89C52單片機本身具有一個全雙工的串行口,但單片機的串行口為T
30、TL電平,需要外接一個TTL-RS-232電平轉(zhuǎn)換器才能夠與PC的RS-232串行口連接,組成一個簡單可行的通信接口。由于RS-232的邏輯電平與TTL電平不兼容,為了與TTL電平的AT89C52單片機器件連接,必須進(jìn)行電平轉(zhuǎn)換。美國MAXIM公司生產(chǎn)的MAX232系列RS-232收發(fā)器是目前應(yīng)用較為普遍的串行口電平轉(zhuǎn)換器件。3.7.1 電平轉(zhuǎn)換芯片MAX232簡介1.概述MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。圖14所示為MAX232芯片的引腳排列和典型工作電路,芯片內(nèi)部包含兩個收發(fā)器,采用“電荷泵”技術(shù),利用4個外接電容C1
31、C4(通常取值為1F)就可以在單+5V電源供電的條件下,將輸入的+5V電壓轉(zhuǎn)換為RS-232輸出所需要的12V電壓。在實際應(yīng)用中,由于器件對電源噪聲很敏感,因此必須在電源Vcc與地之間加一個去耦電容C5。收發(fā)器在短距離(電纜容量1000pF)通信時,通信速率最高可達(dá)120kbit/s。3.7.2 串口通信電路采用三線制連接串口,即單片機只連接電腦9針串口的3根線;第5腳的GND、第二腳的RXD、第三腳的TXD,具體電路如下圖:圖14 串口通信電路電源電路線性直流穩(wěn)壓電源的基本原理線性穩(wěn)壓電源是指調(diào)整管工作在線性狀態(tài)下的直流穩(wěn)壓電源,該類電源的優(yōu)點是穩(wěn)定性高,紋波小,可靠性高。1. 線性直流穩(wěn)壓
32、電源的組成線性直流穩(wěn)壓電源通常由變壓器、整流電路、濾波電路和穩(wěn)壓電路等幾部分組成如圖3-24所示。圖3-24 直流穩(wěn)壓電源結(jié)構(gòu)框圖變壓器的初級一側(cè)一般為 220V 交流電壓,次級一側(cè)電壓可以根據(jù)所需直流電壓的大小,通過選擇適當(dāng)?shù)淖儔罕葋淼玫?。整流電路利用二極管的單向?qū)щ娦詫⒔涣麟娮儞Q成脈動直流電,利用濾波電路將脈動直流電壓濾為較平滑的直流電壓。由于整流、濾波電路輸出的直流電壓穩(wěn)定性較差,當(dāng)電網(wǎng)電壓波動或負(fù)載變化時輸出電壓也隨之而變化,采用穩(wěn)壓電路后,輸出電壓的穩(wěn)定程度將大為提高。2. 集成穩(wěn)壓器介紹集成穩(wěn)壓器的種類很多,作為小功率的線性直流穩(wěn)壓電源,應(yīng)用最為普遍的是三端集成穩(wěn)壓器。常用的三端集
33、成穩(wěn)壓器有:78XX 系列(正電壓型),79XX 系列(負(fù)電壓型)(實際產(chǎn)品中,XX 用數(shù)字表示,XX 是多少,輸出電壓就是多少。例如 7805,輸出電壓為5V);LM317 系列(可調(diào)正電壓型),LM337 系列(可調(diào)負(fù)電壓型)。另外在使用 78XX 與 79XX 時要注意,采用 TO-3 金屬外殼封裝的 78XX 系列集成電路時,其金屬外殼為地端;而同樣封裝的 79XX 系列的穩(wěn)壓器,金屬外殼是負(fù)電壓輸入端。因此,在由二者構(gòu)成多路穩(wěn)壓電源時,若將 78XX 的外殼接印刷電路板的公共地,79XX 的外殼及散熱器就必須與印刷電路板的公共地絕緣,否則會造成電源短路。 電源原理圖線性直流穩(wěn)壓電源電
34、路原理圖如圖3-25所示,輸入 220V 的交流電壓,經(jīng)變壓器 T1 后輸出為 15V 的交流電壓,經(jīng)整流、濾波、穩(wěn)壓后輸出的12V的直流電壓,又經(jīng)過5V穩(wěn)壓器輸出5V直流電壓。圖3-25 線性直流穩(wěn)壓電源原理圖系統(tǒng)軟件設(shè)計 本系統(tǒng)軟件設(shè)計主要包括:系統(tǒng)初始化程序、按鍵顯示設(shè)定的溫濕度范圍程序、溫濕度測量處理及顯示程序、控制程序,串口通信程序。系統(tǒng)整體工作方式如下框圖所示圖4-1 系統(tǒng)整體流程圖4.1 系統(tǒng)初始化程序系統(tǒng)初始化程序主要是設(shè)定系統(tǒng)的初始化狀態(tài)。本設(shè)計的初始化是設(shè)置蜂鳴器、升溫裝置、降溫裝置、加濕裝置、降濕裝置不工作,并將顯示器件LCD初始化,串口初始化,等待按鍵輸入溫濕度的范圍。
35、初始化流程圖如下圖所示圖4-2 初始化流程圖4.2 按鍵顯示設(shè)定的溫濕度鍵盤功能圖如圖3-11所示,按鍵顯示設(shè)定的溫濕度的過程為:按鍵輸入設(shè)定的溫濕度,如果按錯,按第15個或第16個鍵清屏;并且保證按鍵次數(shù)為17次。具體流程圖如下圖所示圖4-3 按鍵顯示設(shè)定的溫濕度流程圖4.3 溫濕度計算(測量、處理)及顯示計算出的溫濕度是最終顯示在LCD上的溫濕度。計算過程包括兩步:溫濕度的測量,溫濕度的處理。溫濕度的處理過程是為了補償溫濕度傳感器的非線性。溫濕度的計算流程圖如圖4-4,溫濕度的測量流程圖如圖4-5。溫濕度的處理過程就是計算補償溫濕度傳感器非線性的公式,在此不寫流程圖,具體過程見附錄中的程序
36、,溫濕度的顯示過程見附錄中的程序。圖4-4 溫濕度計算流程圖圖4-5 測溫流程圖串口通信串口通信是將測得的溫濕度值上傳給PC保存,其流程圖如圖4-6所示圖4-6 串口通信控制程序控制部分就是將測得的溫濕度與設(shè)定的溫濕度比較,以采取相應(yīng)的控制措施,這些措施包括加熱、降溫、加濕、降濕,當(dāng)測得的溫濕度不在設(shè)定的溫濕度范圍內(nèi)時,聲音報警,控制程序中還包括將采取的措施在LCD上顯示。共有9種控制情況,如下所示,流程圖在此不列寫,可參考附錄中的程序。1. 濕度小于設(shè)定的最低濕度并且溫度小于設(shè)定的最低溫度。這時采取的控制措施是蜂鳴器響、加濕、加溫,并且LCD第二行最后四位的第一位、第三位為1顯示控制狀態(tài)。2
37、. 濕度小于設(shè)定的最低濕度并且溫度符合設(shè)定的溫度范圍。這時采取的控制措施是蜂鳴器響、加濕,并且LCD第二行最后四位的第三位為1顯示控制狀態(tài)。3. 濕度小于設(shè)定的最低濕度并且溫度大于設(shè)定的最高溫度。這時采取的控制措施是蜂鳴器響、加濕、降溫,并且LCD第二行最后四位的第二位、第三位為1顯示控制狀態(tài)。4. 濕度符合設(shè)定的濕度范圍并且溫度小于設(shè)定的最低溫度。這時采取的控制措施是蜂鳴器響、加溫,并且LCD第二行最后四位的第一位為1顯示控制狀態(tài)。5. 濕度符合設(shè)定的濕度范圍并且溫度符合設(shè)定的濕度范圍。這時不采取控制措施,并且LCD第二行最后四位什么都不顯示。6. 濕度符合設(shè)定的濕度范圍并且溫度大于設(shè)定的最
38、高溫度。這時采取的控制措施是蜂鳴器響、降溫,并且LCD第二行最后四位的第二位為1顯示控制狀態(tài)。7. 濕度大于設(shè)定的最高濕度并且溫度小于設(shè)定的最低溫度。這時采取的控制措施是蜂鳴器響、降濕、加溫,并且LCD第二行最后四位的第一位、第四位為1顯示控制狀態(tài)。8. 濕度大于設(shè)定的最高濕度并且溫度符合設(shè)定的溫度范圍。這時采取的控制措施是蜂鳴器響、降濕,并且LCD第二行最后四位的第四位為1顯示控制狀態(tài)。9. 濕度大于設(shè)定的最高濕度并且溫度大于設(shè)定的最高溫度。這時采取的控制措施是蜂鳴器響、降濕、降溫,并且LCD第二行最后四位的第二位、第四位為1顯示控制狀態(tài)。附錄資料:不需要的可以自行刪除 C語言圖形模式速成第
39、一節(jié) 圖形模式的初始化Turbo C 提供了非常豐富的圖形函數(shù),所有圖形函數(shù)的原型均在graphics. h 中,本節(jié)主要介紹圖形模式的初始化、獨立圖形程序的建立、基本圖形功能、圖形窗口以及圖形模式下的文本輸出等函數(shù)。另外,使用圖形函數(shù)時要確保有顯示器圖形驅(qū)動程序*.BGI,同時將集成開發(fā)環(huán)境options/Linker中的Graphics lib選為on,只有這樣才能保證正確使用圖形函數(shù)。 不同的顯示器適配器有不同的圖形分辨率。即是同一顯示器適配器,在不同模式下也有不同分辨率。因此,在屏幕作圖之前,必須根據(jù)顯示器適配器種類將顯示器設(shè)置成為某種圖形模式,在未設(shè)置圖形模式之前,微機系統(tǒng)默認(rèn)屏幕為
40、文本模式(80列,25行字符模式),此時所有圖形函數(shù)均不能工作。設(shè)置屏幕為圖形模式,可用下列圖形初始化函數(shù):void far initgraph(int far *gdriver, int far *gmode,char *path);其中g(shù)driver和gmode分別表示圖形驅(qū)動器和模式,path是指圖形驅(qū)動程序所在的目錄路徑。有關(guān)圖形驅(qū)動器、圖形模式的符號常數(shù)及對應(yīng)的分辨率見graphics. h。圖形驅(qū)動程序由Turbo C出版商提供,文件擴(kuò)展名為.BGI。 根據(jù)不同的圖形適配器有不同的圖形驅(qū)動程序。例如對于EGA、 VGA 圖形適配器就調(diào)用驅(qū)動程序EGAVGA.BGI。#include
41、 stdio.h#include graphics.hint main()int gdriver, gmode;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver, &gmode, C:TC2.0BGI);bar3d(100, 100, 300, 250, 50, 1); /*畫一長方體*/getch();closegraph();return 0;有時編程者并不知道所用的圖形顯示器適配器種類,或者需要將編寫的程序用于不同圖形驅(qū)動器,Turbo C 提供了一個自動檢測顯示器硬件的函數(shù),其調(diào)用格式為:void far detectgraph(int *gdriv
42、er, *gmode);其中g(shù)driver和gmode的意義與上面相同。 自動進(jìn)行硬件測試后進(jìn)行圖形初始化:#include stdio.h#include graphics.hint main()int gdriver, gmode;detectgraph(&gdriver, &gmode); /*自動測試硬件*/printf(the graphics driver is %d, mode is %dn,gdriver,gmode); /*輸出測試結(jié)果*/getch();initgraph(&gdriver, &gmode, C:TC2.0BGI);/* 根據(jù)測試結(jié)果初始化圖形*/bar3d
43、(100, 100, 300, 250, 50, 1); /*畫一長方體*/getch();closegraph();return 0;上例程序中先對圖形顯示器自動檢測,然后再用圖形初始化函數(shù)進(jìn)行初始化設(shè)置,但Turbo C提供了一種更簡單的方法, 即用gdriver=DETECT 語句后再跟initgraph()函數(shù)就行了。采用這種方法后,上例可改為:#include stdio.h#include graphics.hint main()int gdriver=DETECT, gmode;initgraph(&gdriver, &gmode, C:TC2.0BGI);bar3d(50, 5
44、0, 150, 30, 50, 1);getch();closegraph();return 0;另外,Turbo C 提供了退出圖形狀態(tài)的函數(shù)closegraph(),其調(diào)用格式為:void far closegraph(void);第二節(jié) 屏幕顏色的設(shè)置和清屏函數(shù)對于圖形模式的屏幕顏色設(shè)置,同樣分為背景色的設(shè)置和前景色的設(shè)置。在Turbo C中分別用下面兩個函數(shù): 設(shè)置背景色: void far setbkcolor(int color);設(shè)置作圖色: void far setcolor(int color);其中color 為圖形方式下顏色的規(guī)定數(shù)值,對EGA,VGA顯示器適配器,有關(guān)顏
45、色的符號常數(shù)及數(shù)值見graphics.h。清除圖形屏幕內(nèi)容但不清除圖形背景使用清屏函數(shù),其調(diào)用格式如下: voide far cleardevice(void);#include stdio.h#include graphics.hint main()int gdriver, gmode, i,aa;gdriver=DETECT;initgraph(&gdriver, &gmode, C:TC2.0BGI); /*圖形初始化*/setbkcolor(0); /*設(shè)置圖形背景*/cleardevice();for(i=0; i=15; i+)setcolor(i); /*設(shè)置不同作圖色*/cir
46、cle(320, 240, 20+i*10); /*畫半徑不同的圓*/getch();for(i=0; i=15; i+)setbkcolor(i); /*設(shè)置不同背景色*/cleardevice();circle(320, 240, 20+i*10);getch();aa=getmaxcolor();printf(maxcolor=%d,aa);getch();closegraph();return 0;另外,TURBO C也提供了幾個獲得現(xiàn)行顏色設(shè)置情況的函數(shù)。 int far getbkcolor(void); 返回現(xiàn)行背景顏色值。int far getcolor(void); 返回現(xiàn)行
47、作圖顏色值。int far getmaxcolor(void); 返回最高可用的顏色值。第三節(jié) 基本畫圖函數(shù)基本圖形函數(shù)包括畫點,線以及其它一些基本圖形的函數(shù)。本節(jié)對這些函數(shù)作一全面的介紹。 、畫點. 畫點函數(shù) void far putpixel(int x, int y, int color); 該函數(shù)表示有指定的象元畫一個按color 所確定顏色的點。對于顏色color的值可從表3中獲得而對x, y是指圖形象元的坐標(biāo)。在圖形模式下,是按象元來定義坐標(biāo)的。對VGA適配器,它的最高分辨率為640 x480,其中640為整個屏幕從左到右所有象元的個數(shù),480為整個屏幕從上到下所有象元的個數(shù)。屏幕
48、的左上角坐標(biāo)為(0,0),右下角坐標(biāo)為(639, 479),水平方向從左到右為x 軸正向,垂直方向從上到下為y軸正向。TURBO C的圖形函數(shù)都是相對于圖形屏幕坐標(biāo),即象元來說的。關(guān)于點的另外一個函數(shù)是: int far getpixel(int x, int y); 它獲得當(dāng)前點(x, y)的顏色值。 II、有關(guān)坐標(biāo)位置的函數(shù) int far getmaxx(void);返回x軸的最大值。int far getmaxy(void);返回y軸的最大值。int far getx(void); 返回游標(biāo)在x軸的位置。void far gety(void); 返回游標(biāo)有y軸的位置。void far
49、moveto(int x, int y); 移動游標(biāo)到(x, y)點,不是畫點,在移動過程中亦畫點。void far moverel(int dx, int dy); 移動游標(biāo)從現(xiàn)行位置(x, y)移動到(x+dx, y+dy)的位置,移動過程中不畫點。、畫線I. 畫線函數(shù)TURBO C提供了一系列畫線函數(shù): void far line(int x0, int y0, int x1, int y1); 畫一條從點(x0, y0)到(x1, y1)的直線。void far lineto(int x, int y); 畫一作從現(xiàn)行游標(biāo)到點(x, y)的直線。void far linerel(int
50、 dx, int dy); 畫一條從現(xiàn)行游標(biāo)(x,y)到按相對增量確定的點(x+dx, y+dy)的直線。void far circle(int x, int y, int radius); 以(x, y)為圓心,radius為半徑,畫一個圓。void far arc(int x, int y, int stangle, int endangle,int radius); 以(x,y)為圓心,radius為半徑,從stangle開始到endangle結(jié)束(用度表示)畫一段圓弧線。在TURBO C中規(guī)定x軸正向為0 度,逆時針方向旋轉(zhuǎn)一周, 依次為90,180, 270和360度(其它有關(guān)函數(shù)也
51、按此規(guī)定,不再重述)。 void ellipse(int x, int y, int stangle, int endangle,int xradius,int yradius);以(x, y)為中心,xradius,yradius為x軸和y軸半徑,從角stangle 開始到endangle結(jié)束畫一段橢圓線,當(dāng)stangle=0,endangle=360時, 畫出一個完整的橢圓。void far rectangle(int x1, int y1, int x2, inty2); 以(x1, y1)為左上角,(x2, y2)為右下角畫一個矩形框。 void far drawpoly(int nu
52、mpoints, int far *polypoints); 畫一個頂點數(shù)為numpoints,各頂點坐標(biāo)由polypoints給出的多邊形。polypoints整型數(shù)組必須至少有2 倍頂點數(shù)個無素。每一個頂點的坐標(biāo)都定義為x,y,并且x在前。值得注意的是當(dāng)畫一個封閉的多邊形時,numpoints 的值取實際多邊形的頂點數(shù)加一,并且數(shù)組polypoints中第一個和最后一個點的坐標(biāo)相同。下面舉一個用drawpoly()函數(shù)畫箭頭的例子。#include stdio.h#include graphics.hint main()int gdriver, gmode, i;int arw16=200
53、,102,300,102,300,107,330,100,300,93,300,98,200,98,200,102;gdriver=DETECT;initgraph(&gdriver, &gmode, C:TC2.0BGI);setbkcolor(BLUE);cleardevice();setcolor(12); /*設(shè)置作圖顏色*/drawpoly(8, arw); /*畫一箭頭*/getch();closegraph();return 0;II、設(shè)定線型函數(shù)在沒有對線的特性進(jìn)行設(shè)定之前,TURBO C 用其默認(rèn)值,即一點寬的實線,但TURBO C 也提供了可以改變線型的函數(shù)。線型包括:寬度
54、和形狀。其中寬度只有兩種選擇:一點寬和三點寬。而線的形狀則有五種。下面介紹有關(guān)線型的設(shè)置函數(shù)。void far setlinestyle(int linestyle,unsigned upattern,int thickness);該函數(shù)用來設(shè)置線的有關(guān)信息,其中l(wèi)inestyle是線形狀的規(guī)定,見graphics.h。對于upattern,只有l(wèi)inestyle選USERBIT_LINE 時才有意義 (選其它線型,uppattern取0即可)。此時uppattern的16位二進(jìn)制數(shù)的每一位代表一個象元,如果那位為1,則該象元打開,否則該象元關(guān)閉。 void far getlinesettin
55、gs(struct linesettingstypefar *lineinfo);該函數(shù)將有關(guān)線的信息存放到由lineinfo 指向的結(jié)構(gòu)中,表中l(wèi)inesettingstype的結(jié)構(gòu)如下:struct linesettingstypeint linestyle;unsigned upattern;int thickness;例如下面兩句程序可以讀出當(dāng)前線的特性 struct linesettingstype *info;getlinesettings(info);void far setwritemode(int mode);該函數(shù)規(guī)定畫線的方式。如果mode=0,則表示畫線時將所畫位置的原
56、來信息覆蓋了(這是TURBO C的默認(rèn)方式)。如果mode=1, 則表示畫線時用現(xiàn)在特性的線與所畫之處原有的線進(jìn)行異或(XOR)操作,實際上畫出的線是原有線與現(xiàn)在規(guī)定的線進(jìn)行異或后的結(jié)果。因此,當(dāng)線的特性不變,進(jìn)行兩次畫線操作相當(dāng)于沒有畫線。有關(guān)線型設(shè)定和畫線函數(shù)的例子如下所示。#include stdio.h#include graphics.hint main()int gdriver, gmode, i;gdriver=DETECT;initgraph(&gdriver, &gmode, C:TC2.0BGI);setbkcolor(BLUE);cleardevice();setcolo
57、r(GREEN);circle(320, 240, 98);setlinestyle(0, 0, 3); /*設(shè)置三點寬實線*/setcolor(2);rectangle(220, 140, 420, 340);setcolor(WHITE);setlinestyle(4, 0 xaaaa, 1);/*設(shè)置一點寬用戶定義線*/line(220, 240, 420, 240);line(320, 140, 320, 340);getch();closegraph();return 0;第四節(jié) 基本圖形的填充填充就是用規(guī)定的顏色和圖模填滿一個封閉圖形。 一般是先畫輪廓再填充。TURBO C提供了一
58、些先畫出基本圖形輪廓, 再按規(guī)定圖模和顏色填充整個封閉圖形的函數(shù)。在沒有改變填充方式時,TURBO C 以默認(rèn)方式填充。 void far bar(int x1, int y1, int x2, int y2);確定一個以(x1,y1)為左上角,(x2,y2)為右下角的矩形窗口,再按規(guī)定圖模和顏色填充。說明:此函數(shù)不畫出邊框,所以填充色為邊框。void far bar3d(int x1, int y1, int x2, int y2,int depth,int topflag);當(dāng)topflag為非0時, 畫出一個三維的長方體。當(dāng)topflag為0時,三維圖形不封頂,實際上很少這樣使用。說明:
59、 bar3d()函數(shù)中,長方體第三維的方向不隨任何參數(shù)而變,即始終為45度的方向。void far pieslice(int x,int y,int stangle,int endangle,int radius);畫一個以(x, y)為圓心,radius為半徑,stangle為起始角度,endangle 為終止角度的扇形,再按規(guī)定方式填充。當(dāng)stangle=0,endangle=360 時變成一個實心圓,并在圓內(nèi)從圓點沿X軸正向畫一條半徑。void far sector(int x, int y,int stanle,intendangle,int xradius, int yradius)
60、;畫一個以(x, y)為圓心分別以xradius, yradius為x軸和y軸半徑,stangle 為起始角,endangle為終止角的橢圓扇形,再按規(guī)定方式填充。第五節(jié) 設(shè)定填充方式TURBO C有四個與填充方式有關(guān)的函數(shù)。下面分別介紹: void far setfillstyle(int pattern, int color); color的值是當(dāng)前屏幕圖形模式時顏色的有效值。pattern的值及與其等價的符號常數(shù)見graphics.h。除USER_FILL(用戶定義填充式樣)以外,其它填充式樣均可由setfillstyle() 函數(shù)設(shè)置。當(dāng)選用USER_FILL時,該函數(shù)對填充圖模和顏色
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理售賣設(shè)備合同范例
- 供銷社租賃合同范例
- 個人抵押合同范例
- 業(yè)務(wù)員項目合作合同范例
- 不含稅銷售合同范例
- 交通工程合同范例版
- 產(chǎn)品設(shè)備代理合同范例
- 2025年高導(dǎo)磁、高功率軟磁鐵氧體項目合作計劃書
- 光纜回收銷售合同范例
- 減肥簽約協(xié)議合同范例
- 成品保護(hù)及文明施工措施
- 高校人才隊伍建設(shè)考核評價標(biāo)準(zhǔn)
- 一年級美術(shù)下冊五彩的泡泡
- 土建施工員培訓(xùn)課件
- 結(jié)膜炎課件完整版
- 初中英語中考總復(fù)習(xí)
- 學(xué)習(xí)弘揚楓橋精神與楓橋經(jīng)驗PPT楓橋經(jīng)驗蘊含的精神和內(nèi)涵PPT課件(帶內(nèi)容)
- 鈑金噴漆承包協(xié)議書
- 煤礦瓦斯防治八招及釋義
- (6.4)-6.4和聲性吹奏樂器-笙
- GB/T 27903-2011電梯層門耐火試驗完整性、隔熱性和熱通量測定法
評論
0/150
提交評論