




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 PAGE28 / NUMPAGES29引言我們的地球被一層大氣包圍著,其中氧氣占21,78是氮氣,1是其它氣體。這1氣體當(dāng)中,就有只有一小部分為二氧化碳?xì)怏w,約為300ppm(百萬分之一,即0.03)。雖然含量較少,但是二氧化碳的作用缺越來越受到高度的重視。大氣二氧化碳持續(xù)增加,從而對整個地球的氣候產(chǎn)生重大影響,讓人們對二氧化碳這一微量氣體有了新的認(rèn)識。另一方面,做為植物光和作用的原料氣體,二氧化碳的應(yīng)用技術(shù)水平對農(nóng)業(yè)大國來說也是至關(guān)重要。在辦公室的公共場合,二氧化碳測量也十分必須。二氧化碳在空氣中的含量越高,對人體的影響就越大,當(dāng)二氧化碳含量高出0.7時,人體就會感到不舒服,當(dāng)二氧化碳含量
2、超過10時,人體就會出現(xiàn)昏迷和死亡。達(dá)到20,人就會在幾秒死亡。因此在人群比較密集的地方,二氧化碳含量是一個非常重要的參數(shù),直接關(guān)系到人體舒適度和安全。當(dāng)代電子技術(shù)飛速發(fā)展,大規(guī)模集成電路不斷普與應(yīng)用,給人們的生活帶來巨大的變化。同時人們對于自己的生活質(zhì)量要求也不斷提高。如何根據(jù)實際需求設(shè)計二氧化碳濃度測量系統(tǒng)就成為一個具有現(xiàn)實意義的課題。傳感技術(shù)應(yīng)用的領(lǐng)域越來越廣泛,同時對其的要求也越來越高,需求越來越迫切。二氧化碳傳感器的技術(shù)研究也越來越成熟,產(chǎn)品的性能也越來越高。同時,語音芯片應(yīng)用不斷普與,語音芯片產(chǎn)品的發(fā)展也十分迅速,新型號的語音芯片的功能更加強(qiáng)大。這使得設(shè)計一個二氧化碳濃度測量系統(tǒng)在
3、技術(shù)層面上的難度逐漸降低。本文中設(shè)計的系統(tǒng),正是針對人群密集公共場所對二氧化碳濃度測量需求而設(shè)計。該系統(tǒng)能夠?qū)矆龊系亩趸紳舛冗M(jìn)行測量,并且能將測得濃度顯示和語音播報,當(dāng)濃度過高時還可以向辦公室等公共場所的人員進(jìn)行報警提示,使得能與時提醒人員通風(fēng)以降低二氧化碳濃度。公共場所二氧化碳濃度播報器圍繞AT89S52來作為核心控制元件設(shè)計整個系統(tǒng),通過外圍電路的設(shè)計,利用液晶和語音芯片實現(xiàn)對二氧化碳濃度的現(xiàn)實以與播報。本系統(tǒng),具有成本低,技術(shù)開發(fā)難度小,適用性、靈活性較好,具有一定得應(yīng)用性。1設(shè)計方案二氧化碳語音播報器,顧名思義,即該系統(tǒng)實現(xiàn)的功能為對二氧化碳濃度的測試同時對其濃度進(jìn)行播報。二氧
4、化碳濃度通過傳感器轉(zhuǎn)化成電量信號,再通過單片機(jī)進(jìn)行采集處理。系統(tǒng)中的核心控制單元為單片機(jī),圍繞單片機(jī)設(shè)計相應(yīng)系統(tǒng)需求功能模塊。系統(tǒng)需求分析:系統(tǒng)需求分析主要是通過系統(tǒng)要現(xiàn)的功能對各個模塊部分應(yīng)該所具備的功能進(jìn)行分析。本系統(tǒng)基于AT89S52單片機(jī),實現(xiàn)對于室二氧化碳的濃度測量與與時播報。系統(tǒng)的所需要的功能有:實現(xiàn)對二氧化碳濃度的測量;語音播放功能;按鍵控制;LCD顯示功能。對于各部分性能有以下4點要求。(1)LCD顯示器正確測量結(jié)果,測量結(jié)果動態(tài)變化,并且可以控制切換設(shè)置界面菜單;(2)二氧化碳濃度定時播報,可以通過按鍵控制進(jìn)行播報,可以實現(xiàn)對濃度值的正確播報 ;(3)系統(tǒng)出現(xiàn)異常可以復(fù)位;(
5、4)系統(tǒng)具有按鍵控制功能。1.2方案設(shè)計1.2.1數(shù)據(jù)采集通過信號采集電路,主要是將二氧化碳的濃度值這一非電量信號轉(zhuǎn)化為模擬電信號再轉(zhuǎn)化為能通過單片機(jī)處理的數(shù)字量。因此前向通道由傳感器、信號放大電路和AD轉(zhuǎn)化電路組成。1.2.2控制部分本系統(tǒng)中控制信號主要是用來設(shè)置定時播報時間和報警濃度限值以與按鍵控制語音播報,根據(jù)實際功能的需求,可以通過軟件使按鍵的功能靈活使用,僅需獨立按鍵即可以達(dá)到控制功能。1.2.3顯示部分因為有不同的設(shè)置功能要實現(xiàn),用LCD顯示比較方便,可以切換不同設(shè)置界面和二氧化碳濃度顯示界面。1.2.4語音播報單片機(jī)控制語音芯片來進(jìn)行語音播報。每次播報的容中有很多是重復(fù)的,只有二
6、氧化碳的濃度值是變動的。因此通過單片機(jī)來動態(tài)調(diào)動語音芯片的語音容實現(xiàn)相應(yīng)的播報容。1.3設(shè)計框圖基于以上的功能分析和設(shè)計的方案。單片機(jī)輸入端接收傳感器的測量信號和鍵盤控制信號,輸出端控制液晶顯示和音樂芯片音樂芯片驅(qū)動揚聲器放音。設(shè)計框圖如下:LCD顯示(二氧化碳濃度與各設(shè)置菜單的顯示)二氧化碳?xì)怏w傳感器C51單片機(jī)控制系統(tǒng)按鍵控制揚聲器語音芯片 圖1.1 系統(tǒng)總體框圖 二氧化碳濃度為非電量信號,不能由單片機(jī)直接處理,要先經(jīng)過傳感器,將二氧化碳濃度(非電量信號)轉(zhuǎn)化電壓信號(電量信號)。然后由單片機(jī)進(jìn)行數(shù)據(jù)處理,將采集到得電壓信號轉(zhuǎn)化成對應(yīng)的二氧化碳濃度值。再通過單片機(jī)控制液晶顯示濃度值,并控制
7、語音芯片進(jìn)通過揚聲器進(jìn)行語音播報。按鍵向單片機(jī)提供控制信號,控制單片機(jī)實現(xiàn)報警濃度設(shè)置功能。2硬件設(shè)計本應(yīng)用系統(tǒng)的硬件電路設(shè)計包含4部分容:一是信號采集部分;二是控制單元部分;三是液晶顯示電路;四是語音電路。系統(tǒng)的擴(kuò)展和模塊設(shè)計應(yīng)遵循下列原則:(1)盡可能選擇標(biāo)準(zhǔn)化、模塊化的典型電路,提高設(shè)計的成功率和結(jié)構(gòu)的靈活性;(2)外圍電路配置的水平應(yīng)充分滿足應(yīng)用系統(tǒng)的功能要求;(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。硬件結(jié)果與軟件方案會產(chǎn)生相互影響,考慮的原則是:軟件能實現(xiàn)的功能盡可能由軟件來實現(xiàn),以簡化硬件結(jié)構(gòu)。但必須注意,由軟件實現(xiàn)的硬件功能,其響應(yīng)時間要比直接用硬件響應(yīng)來的長,而且占用CPU時
8、間。所以,選擇軟件方案時,要考慮到這些因素;(4)整個系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配;(5)單片機(jī)外接電路較多時,必須考慮其驅(qū)動能力。驅(qū)動能力不足時,系統(tǒng)工作不可靠,解決的辦法是增加驅(qū)動能力,增設(shè)線驅(qū)動器或減少芯片功耗,降低總線負(fù)載。2.1傳感器選擇與信號采集部分= 1 * GB2傳感器選擇與其性能測量二氧化碳濃度,傳感器的選擇十分重要。傳感器的性能直接決定后續(xù)電路的設(shè)計以與整個系統(tǒng)設(shè)計的難度。因此了解二氧化碳傳感器的種類,加以選擇十分重要。 目前,國際成熟的二氧化碳傳感器有電化學(xué)式、半導(dǎo)體瓷式、固體電解質(zhì)式、紅外吸收式等四種原理產(chǎn)品。半導(dǎo)體瓷式二氧化碳傳感器以其制作簡單、成本低廉、抗惡
9、劣環(huán)境等特點,受到業(yè)人士的重視。但是,這種類型的二氧化碳傳感器市場上不多,可能技術(shù)還不夠成熟。紅外吸收式的CO2傳感器的精度與穩(wěn)定性能都很好,但是由于它需要與光學(xué)系統(tǒng)組裝在一起成為一個完整的裝置。而這種裝置體積大,價格高,因此,在一般的公共場合中不方便使用。電化學(xué)式與熱傳導(dǎo)式的CO2傳感器雖然體積小,但是其精度、穩(wěn)定性與對氣體的選擇性都不太理想。且電化學(xué)式的CO2傳感器還存在著必須在電解質(zhì)溶液中使用的缺點。本系統(tǒng)采用的傳感器MS4100為固態(tài)電解質(zhì)測量方式,具有對二氧化碳反應(yīng)靈敏,受溫度和濕度影響小,成本低。二氧化碳傳感器相對于其他一般的煙霧傳感價格較為昂貴,而且技術(shù)相對成熟的產(chǎn)品大多為進(jìn)口,
10、MS4100在眾多二氧化碳傳感器中,價格適中,性能比較穩(wěn)定,器采用原理是固態(tài)電解質(zhì)測量方式,使用時需要預(yù)熱。本產(chǎn)品預(yù)熱時間為1個小時。工作電壓5伏,與系統(tǒng)其它芯片可以統(tǒng)一供電,同時量程可以滿足公共場合測量二氧化碳濃度的需求。 相應(yīng)時間較快只需5秒,輸出電壓易于放大,可以使測量電路簡化。而且輸出電壓與二氧化碳?xì)怏w濃度成線性關(guān)系,使得數(shù)據(jù)處理較為簡單主要參數(shù):量程:030,000ppm工作電壓:5VDC0.5%功耗:至少800mW輸出電勢:430540mV(0ppm CO2)準(zhǔn)確性: 5%;圖2.1 MS4100 二氧化碳傳感器 輸出電壓與氣體濃度關(guān)系曲線,以與部原理可見圖2.2和圖2.3所示。圖
11、2.2 傳感器靈敏度曲線圖 圖2.3 傳感器部結(jié)構(gòu)圖圖2.2中濃度與輸出電動勢(EMF)關(guān)系表達(dá)式為:EMF=EMF0-RLog(Concentration) (21)其中EMF0為co2為0ppm時,輸出的電壓,一般為470540mv之間。R為曲線的斜率,一般在5575之間。Concentration代表二氧化碳濃度,單位為PPM。EMF為實際電壓,即為1腳和6腳電壓差。在圖2.3中可以知道,傳感器電源供電端為3腳和4腳。此傳感器的電源端為加熱器供電,電源接入方向沒有要求。當(dāng)加熱器加熱到一定溫度時,電解質(zhì)部分才能和空氣中的二氧化碳產(chǎn)生反應(yīng),此時1腳和6腳產(chǎn)生電動勢。1腳和6腳的電壓滿足式(2
12、1)。電路中我們可以測得的1腳和6腳的電動勢即為EMF。而公式(2-1)中R和EMF0中都為參數(shù),所以要求的二氧化碳濃度Concentration可從以下公式中求得: (22)其中EMF0=534,R=65為廠商提供的在溫度為25攝氏度,濕度為65%時的標(biāo)定值。由于沒有標(biāo)準(zhǔn)的二氧化碳濃度測量儀來進(jìn)行標(biāo)定,系統(tǒng)中數(shù)據(jù)處理將采用廠商提供的標(biāo)準(zhǔn)。二氧化碳傳感器的測量濃度單位為:百萬分單位或ppm。600 ppm濃度的二氧化碳意味著:每1,000,000 公升的空氣中有600 公升的二氧化碳(或在1公升的空氣中有0.6 毫升的二氧化碳)。= 2 * GB2放大電路設(shè)計傳感器的輸出電動勢為1腳和6腳的差
13、值,因此選擇用差分放大電路實現(xiàn)對電量信號的放大,同時,AD轉(zhuǎn)換采用ADC0809,其參考電壓為正5伏,因此要把信號放大到電壓圍,根據(jù)傳感器靈敏特性曲線知輸出電壓圍為(0540mv),所以電路放大十倍就可以。放大電路設(shè)計如下: 圖2.4 差分放大電路若設(shè)1腳輸出電壓為,6腳輸出電壓為,放大電路輸出電壓為,運放正極電壓,運放負(fù)極電壓,則根據(jù)虛短和虛斷概念有:(vi1-vn)/R4=(vn-vo)/R5 (23)(vi2-vp)/R1=vp/R2 (24) 當(dāng)R4/R1=R3/R2時, Vo=R4*(vi2-vi1)/R1 (25)本電路要放大信號十倍,所以R4、R3取20k,R1、R2取2k。運放
14、6腳輸出電壓接ADC0809模擬輸入端。本電路選用op07運算放大器,op07是高精度低失調(diào)電壓的精密運放集成電路,用于微弱信號的放大,如果使用雙電源.能達(dá)到最好的放大效果。給op07提供正負(fù)12伏電壓,而系統(tǒng)中其他部分供電電壓為+5伏,通過7805將+12伏電壓轉(zhuǎn)化成+5伏,這樣外部供電就只需提供正負(fù)12伏電壓即可。圖2.5 電壓轉(zhuǎn)化電路= 3 * GB2模數(shù)轉(zhuǎn)化 模數(shù)轉(zhuǎn)化采用ADC0809將模擬信號轉(zhuǎn)化成數(shù)字信號,提供給單片機(jī)處理。 本系統(tǒng)中ADC0809只有一路輸入,即二氧化碳傳感器的放大信號,所以芯片三條地址選擇線直接接地,即只選中IN0通道。數(shù)據(jù)端接P0口,其他控制端連接如下圖: 圖
15、2.6 ADC0809接口電路ADC0809控制端口直接接單片機(jī)普通I/O口,通過I/O口模擬ADC0809時序,實現(xiàn)對ADC0809的控制,從而獲得最終數(shù)模轉(zhuǎn)換后的數(shù)據(jù)。ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0809時鐘由單片機(jī)ALE端4分頻后得到,單片機(jī)的晶振為12MHz,ALE端為晶振頻率的1/6,即2MHz,所以ADC0809的時鐘信號頻率為5
16、00KHz。4分頻信號可由兩級D觸發(fā)器獲得。2.2控制單元電路 = 1 * GB2 單片機(jī)最小系統(tǒng)AT89S52單片機(jī)是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52單片機(jī)為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。本系統(tǒng)主要通過IO口來控制個部分電路以與接受信號,32位I/O口控制線足以滿足系統(tǒng)功能需求。 AT89S
17、52具有P0、P1、P2、P3四個I/O口。由于外圍電路比較多,所以要合理的利用端口,同一個器件盡量使用同一個I/O端口。根據(jù)這個原則,各模塊之間因合理分配。 P0口接ADC0809數(shù)據(jù)端口,P2口用來控制ADC0809和語音芯片(語音芯片采用端口模擬SPI控制,需要4條I/O口控制線,ADC0809需要3條),P1接液晶數(shù)據(jù)端,而液晶使能端和鍵盤控制接P3口。如圖2.7所示。需要注意的是,P0口作為普通I/0口時需要增加上拉電阻。 = 2 * GB2 鍵盤控制根據(jù)系統(tǒng)功能考慮,系統(tǒng)的按鍵控制有以下5個功能。= 1 * GB2啟動語音播報;= 2 * GB2進(jìn)入播報定時時間設(shè)置菜單;= 3 *
18、 GB2修改時間;= 4 * GB2進(jìn)入報警限值設(shè)置菜單;= 5 * GB2修改報警數(shù)值。 基于以上功能設(shè)置鍵盤按鍵的功能。語音播報可以用以個獨立按鍵控制。關(guān)于播報間隔時間和設(shè)置報警限值,可以采用一個按鍵進(jìn)行功能切換:按第一次,進(jìn)入播報時間間隔設(shè)置;按第二次,進(jìn)入設(shè)置報警限值;按第三次,退出設(shè)置菜單。然后再用2個鍵控制數(shù)值的增減即可?;谝陨瞎δ茉O(shè)計,可以不必使用44鍵盤,只用獨立按鍵即可,即3個按鍵直接接單片機(jī)I/O口。這樣的好處是可以使得布局簡單。硬件功能的設(shè)計要根據(jù)具體功能需要,而不是全部都是標(biāo)準(zhǔn)設(shè)置。按鍵與接口連接如圖2.8所示。圖2.7 單片機(jī)控制電路圖2.8 按鍵接口電路 3個按鍵
19、接單片機(jī)I/O口,通過對I/O口的電位判斷判斷否有鍵按下。在顯示濃度值時,可以通過P34的按鍵控制語音播報。在進(jìn)入設(shè)置菜單時,可以通過P33口按鍵切換菜單,通過P36和P34來上調(diào)和下調(diào)設(shè)置。2.3液晶顯示部分字符與數(shù)字顯示部分才用LCD1602液晶顯示模塊,1602液晶模塊部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,足夠系統(tǒng)需求的功能要求。每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”
20、。1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。根據(jù)引腳對應(yīng)功能,將雙向數(shù)據(jù)端接單片機(jī)P1口,控制端
21、接到P3口(使液晶模塊與單片機(jī)端口連接全部處于同側(cè)),接口連接設(shè)計如下: 圖2.9 液晶模塊接口電路2.4語音電路本系統(tǒng)中語音播報的容的特點是有很多容是一樣的,只有每次測量到得數(shù)據(jù),即二氧化碳的濃度是動態(tài)測量不斷變化。其他的播報容中的文字信息也有重復(fù)容,因此要充分利用單片機(jī)的控制能力,實現(xiàn)動態(tài)控制自動調(diào)用語音容組合成播報容。本系統(tǒng)選擇了ISD1720語音芯片,是華邦公司新推出的ISD1700系列芯片中的一種。改系列芯片提供多種功能而且音質(zhì)較好。芯片部包含自動增益控制、麥克風(fēng)前置擴(kuò)大器、揚聲器驅(qū)動線路、振蕩器與存等的全方位整合系統(tǒng)功能。芯片特點:可錄、放音十萬次,存儲容可以斷點保留一百年。兩種控
22、制方式,兩種錄音輸入方式,兩種放音輸出方式。工作電壓在2.4V-5.5V之間,最高不能超過6V。用戶可以自己根據(jù)需求在芯片中在任意地址空間錄入所需的播放容,同時也可以按地址直接調(diào)用錄好的容進(jìn)行播放。這樣就可以滿足系統(tǒng)的播報要求。而語音芯片的外圍電路比較簡單,僅需一些電阻、電容,電容主要是起到濾波的作用。本系統(tǒng)中單片機(jī)通過SPI模式控制語音芯片。主控單片機(jī)主要通過四線(SCLK,MOSI,MISO,/SS)SPI協(xié)議對ISD1720進(jìn)行串行通信,本系統(tǒng)過I/O口模擬串行通信,與單片機(jī)的連接僅需4個端口。系統(tǒng)中將其與P2.0-P2.3連接。 語音芯片接口電路如圖2.10所示。 圖2.10 語音芯片
23、接口電路語音芯片的語音輸出端SP+輸出的信號強(qiáng)度有限,所以要通過LM386設(shè)計一個放大電路來驅(qū)動揚聲器工作。LM386電壓增益置為20,當(dāng)在1腳和8腳之間加一只外接電阻和電容,可使電壓增益最大增益到200。如圖2.11所示,可以通過R12,10k的電位器來控制輸出音頻的大小5腳作為輸出腳與1.25W的喇叭相連,為了濾掉低頻濾波,減少雜音以與儲存能量,在5腳和喇叭之間需加上一個220UF的極性電容。為了使喇叭發(fā)出的聲音柔和動聽,要在5腳和地之間接上一個0.047UF和10歐的電阻。在7腳和地之間接上一個10U的電容能濾除噪聲。在這里只選3腳作為輸入端,所以另一反相輸入端2腳接地。語音放大電路如圖
24、2.11所示。圖2.11語音放大電路3 軟件設(shè)計應(yīng)用系統(tǒng)中的應(yīng)用軟件是根據(jù)系統(tǒng)功能要求設(shè)計的,應(yīng)該可靠地實現(xiàn)系統(tǒng)的各種功能。一個優(yōu)秀的應(yīng)用系統(tǒng)的軟件應(yīng)具有下列特點:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干個相對獨立的部分。設(shè)計出軟件的總體結(jié)構(gòu),使其結(jié)構(gòu)清晰、簡捷、流程合理。(2)要樹立結(jié)構(gòu)化程序設(shè)計風(fēng)格,各功能程序?qū)崿F(xiàn)模塊化、子程序化。既便于調(diào)試、,又便于移植、修正。(3)建立正確的數(shù)學(xué)模型。即根據(jù)功能要求,描繪出各個輸入和輸出變量之間的數(shù)學(xué)關(guān)系,它是關(guān)系到系統(tǒng)性能好壞的重要因素。(4)為提高軟件設(shè)計的總體效率,以簡明、直觀的方法對任務(wù)進(jìn)行描述,在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。(5)
25、注意在程序的有關(guān)位置處寫上功能注釋,提高程序的可讀性。(6)加強(qiáng)軟件抗干擾設(shè)計,它是提高計算機(jī)應(yīng)用系統(tǒng)可靠性的有利措施。本系統(tǒng)的軟件包括以下幾個程序模塊:(1)按鍵識別程序與處理程序;(2)ADC0809驅(qū)動程序;(3)LCD顯示程序;(4)語音播報程序;(5)數(shù)據(jù)處理部分。3.1 主程序流程圖 程序主要要實現(xiàn)的功能:啟動ADC0809進(jìn)行模數(shù)轉(zhuǎn)化,并將所得數(shù)據(jù)轉(zhuǎn)化成實際的二氧化碳濃度,并且控制液晶顯示,控制語音芯片進(jìn)行語音播報。 程序主流程如圖3.1.設(shè)置菜單按鍵是否按下播報鍵是否按下設(shè)置菜單按鍵是否按下開始系統(tǒng)初始化啟動AD0809數(shù)模轉(zhuǎn)化是否結(jié)束數(shù)據(jù)處理液晶顯示二氧化碳濃度設(shè)置報警時間限
26、值設(shè)置菜單按鍵是否按下顯示時間設(shè)置菜單設(shè)置時間否否是是顯示設(shè)置報警限 菜單是否否是是語音播報 否圖3.1 系統(tǒng)主程序流程圖3.2 ADC0809程序設(shè)計 ADC0809是典型的逐次比較A/D轉(zhuǎn)換器,通常都是以二進(jìn)制碼輸出的,數(shù)據(jù)的輸出符合微處理器數(shù)據(jù)總線的要求??刂艫DC0809要按照其時序進(jìn)行。START為啟動轉(zhuǎn)換信號,該信號的上升沿使逐次逼近寄存器復(fù)位,從它的下降沿開始進(jìn)行A/D轉(zhuǎn)換。ALE是地址鎖存信號,在 ALE的上升沿,A,B,C被鎖入地址鎖存器。OE為允許輸出信號:當(dāng)OE=1時,三態(tài)輸出鎖存器重的數(shù)據(jù)被送上數(shù)據(jù)總線。EOC為轉(zhuǎn)換結(jié)束信號:當(dāng)A/D轉(zhuǎn)換結(jié)束時,EOC變?yōu)楦汶娖?,并將結(jié)
27、果送入三態(tài)輸出鎖存器。硬件電路所有控制端口直接接普通I/O口,通過I/O置高和置低來模擬ADC0809時序。ADC0809程序流程圖開始AlE和START置低AlE和START置高AlE和START置低查詢EOC是否高電平?否是OE置高讀取端口數(shù)據(jù)結(jié)束圖3.2 ADC0809程序流程圖ADC0809程序代碼主要如下:AD0809_ST=0;delay_ms(10); AD0809_ST=1;delay_ms(10);AD0809_ST=0; while(!AD0809_EOC); AD0809_OE=1; DigitalData=GetResult();其中GetResult()子程序為讀取A
28、DC數(shù)據(jù)端端口的轉(zhuǎn)化數(shù)值 。DigitalData保存所得數(shù)據(jù)提供單片機(jī)處理。3.3液晶顯示程序 顯示采用 LCD1602模塊。數(shù)據(jù)與命令都通過D0D7傳入;讀寫操作時序由使能信號E完成;對讀寫操作的識別時對R/W信號上的電平判斷,R/W的信號的寬度要大于E ;RS信號用于識別數(shù)據(jù)總線的數(shù)據(jù)是屬于指令代碼還是屬于顯示數(shù)據(jù)。接口端的信號邏輯功能如下表:表3.1 接口端邏輯功能RSR/WEDB7DB0功能00高脈沖指令碼寫指令01高電平狀態(tài)字讀狀態(tài)10高脈沖數(shù)據(jù)寫數(shù)據(jù)11高電平數(shù)據(jù)讀數(shù)據(jù)表3.2狀態(tài)字輸出口STA7STA6STA5STA4STA3STA2STA1STA0D7D6D5D4D3D2D1
29、D0表3.3 狀態(tài)字功能說明STA0-6當(dāng)前數(shù)據(jù)地址指針的數(shù)值STA7讀寫操作使能1:禁止 0:允許 上述是基本時序和狀態(tài)字的功能,其他指令的格式還有很多不一一列舉,僅介紹本系統(tǒng)中用到得顯示方法。 本系統(tǒng)中無論是二氧化碳的濃度顯示還是設(shè)置界面的菜單顯示,都是只有中間的數(shù)字是變化的。因此可以在初始化液晶顯示后,編寫一個顯示字符串的子程序。顯示容送字符串?dāng)?shù)組中,然后送顯示,每次只要將字符串里的數(shù)值改變即可。如圖3.3所示。開始顯示內(nèi)容輸入緩沖區(qū)bufferi=0bufferi送液晶顯示bufferi是否為終止符?否 i+是結(jié)束 圖3.3 液晶顯示流程圖各部分主要程序如下:= 1 * GB4液晶初始
30、化程序如下:void LCD_init(void) delay(10); WriteCode(0 x80);/顯示數(shù)據(jù)指針初始化; WriteCode(0 x01);/ 顯示清屏; WriteCode(0 x38);/ 設(shè)置162顯示,57點陣,8位數(shù)據(jù)接口; WriteCode(0 x0C);/ 開顯示,不顯示光標(biāo); WriteCode(0 x06);/ 寫字符后地址指針加一;= 2 * GB4字符串顯示子程序:void LCD_Showstring(uchar line , uchar str)uchar i , j; i=line*0 x10; for(j=0;strj!=0;j+) L
31、CD_Showchar(i+,strj);void LCD_Showchar(uchar position,uchar z ) uchar p; if(position16) p=position+0 x80; else; p=position+0 xB0; WriteCode(p); WriteData(z); = 3 * GB4字符串處理程序:DigitalData=GetResult();sprintf(buffer,co2 concentration :%d ppm,DigitalData); 利用sprintf將數(shù)值打印到buffer數(shù)據(jù)緩沖區(qū)中,其中buffer就是字符串緩沖區(qū),可
32、以直接傳到字符串顯示子程序中送顯示。 不同的菜單容可以通過傳不同的數(shù)據(jù)緩沖區(qū)的容得以調(diào)用。3.4數(shù)據(jù)處理傳感器輸出電壓為毫伏級,AD采集到得是輸出電壓的10倍電壓。轉(zhuǎn)換公式中,傳感器電壓為毫伏級時的數(shù)值,AD轉(zhuǎn)化后的數(shù)字量為傳感器實際值的1/100,所以先對AD轉(zhuǎn)換后的數(shù)值100倍放大,再利用公式處理所得數(shù)據(jù)。數(shù)據(jù)處理程序:DigitalData=GetResult(); DigitalData=DigitalData*100; DigitalData=(534-DigitalData)/65; temp1=pow(10,DigitalData);其中534對應(yīng)式(22)中的EMF0,65對應(yīng)
33、式(22)中R ,pow為指數(shù)函數(shù)。DigitalData為ADC0809轉(zhuǎn)化得到的數(shù)字量。3.5語音播報 語音播報采用ISD1720語音芯片,可以播放20s的語音容,芯片部有部存儲單元,存儲預(yù)先輸入的語音信息。存儲單元可以尋址訪問,因此用戶可以自行設(shè)置語音存放的空間以與播放任意錄制空間的語音容。芯片存儲地址從第一個提示音的地址0 x0000開始計算,但0 x000-0 x00F地址平均保留給了4個提示音。從0 x010地址開始,才是非保留的存儲區(qū)域,即真正的錄音區(qū),最高地址為0 x09F。 本系統(tǒng)中對語音芯片主要通過SPI模式進(jìn)行控制,實現(xiàn)語音播報。ISD1720作為從機(jī),幾乎所有的操作都可
34、以通過這個協(xié)議來完成。兼容獨立按鍵模式,有PLAY,REC,ERASE,F(xiàn)WD,RESET和GLOBAL_ERASE的運行類似于形影的獨立按鍵模式的操作。另外,SET_PLAY,SET_REC,SET_ERASE命令允許用戶指定錄音、放音和擦除的開始和結(jié)束地址。 ISD1720SPI串行接口操作遵照以下協(xié)議:一個SPI 處理開始于/SS管腳的下降沿;在一個完整的SPI指令傳輸周期,/SS管腳必須保持低電平;數(shù)據(jù)在SCLK的上升沿鎖存在芯片的MOSI管腳,在SCLK的下降沿從MISO 管腳輸出,并且首先移出低位;SPI指令操作碼包括命令字節(jié),數(shù)據(jù)字節(jié)和地址字節(jié),這決定于1720的指令類型;當(dāng)命令
35、字與地址數(shù)據(jù)輸入到MOSI管腳時,同時狀態(tài)寄存器和當(dāng)前行地址信息從MISO管腳移出;一個SPI 處理再/SS變高后啟動;再完成一個SPI命令的操作后,會啟動一個中斷信息,并且保持為低,直到芯片收到CLR_INT命令或者芯片復(fù)位。 圖3.4 語音芯片時序圖 在SPI命令輸入到ISD1720前,SPI端口的狀態(tài)應(yīng)該保持如下狀態(tài):/SS=HIGH;CLK=HIGH;OSI=LOW。ISD1700芯片部寄存器可以返回1700芯片的部狀態(tài),其中SR0為2個字節(jié),SR1為一個字節(jié)。SR0第一個字節(jié)的0為與SR1的0位用來判斷上條命令是否正確執(zhí)行與執(zhí)行完畢。具體的功能實現(xiàn)播報數(shù)據(jù)中要實現(xiàn)對數(shù)字的動態(tài)播報。例
36、如:當(dāng)數(shù)據(jù)為1234是,要播報的容為“二氧化碳濃度為一千二百三十四PPM(PPM二氧化碳單位)” 。這就需要在軟件上處理。數(shù)字播報流程圖如圖3.5。 錄音空間為0 x09F-0 x010=0 x08F,即816+15=143,143+1=144段空間,每段空間20144=0.14秒,09,萬,千,百,十各用0.5秒,各占0.50.14=4段空間 QUOTE 。在0 x0100 x013存放讀音“0” ,以此類推“9”存放在0 x0340 x034,“萬”存放在0 x0380 x03B,“十”存放在0 x0440 x047。 通過以下判斷順序可以正確報數(shù)值:先判斷數(shù)字位數(shù),然后從最高位播起,每播
37、一位追加單位播報;數(shù)字播報可以用每一位數(shù)字本身做偏移量,尋址播放;單位在最初判斷數(shù)字位后,設(shè)定起始單位地址,然后逐一增加。開始播放bufferi數(shù)字壓入buffer播放單位確定數(shù)字位數(shù)di+i=0dBufferi為終止符? 結(jié)束 圖3.5 數(shù)字播報流程圖 4調(diào)試過程整個調(diào)試過程包括硬件調(diào)試、軟件調(diào)試和系統(tǒng)測試三部分。每個模塊在功能上相互聯(lián)系又各自獨立,所以在每個部分調(diào)試的過程中也要分模塊進(jìn)行。這樣做的好處是,可以將出現(xiàn)的問題進(jìn)行具有針對性的處理,避免出現(xiàn)問題時找不到真正原因。調(diào)試過程是對原理進(jìn)一步理解和對原理中的不足改進(jìn)的重要步驟。 4.1硬件調(diào)試硬件正常是整個系統(tǒng)正常運轉(zhuǎn)的基礎(chǔ),所以硬件調(diào)試
38、就格外重要。硬件調(diào)試主要是對制版的電氣特性進(jìn)行檢測,逐個排查電路布線問題,使器件在能正常工作。前期的電路特性檢查必須十分耐心,硬件電路的細(xì)小問題都可能對軟件的工作是否正常產(chǎn)生影響。硬件的調(diào)試主要經(jīng)行了以下測試:第一,對于電路布線中容易短路和斷路的地方進(jìn)行檢測。因為在印制板子的過程中難免出現(xiàn)細(xì)微問題,比如布線比較近的地方就可能出現(xiàn)短路,然后在焊接好以后,對容易焊接短路的地方進(jìn)行檢測。這部分檢測較為容易用萬用表測量短路檔來檢測即可。第二,在焊好板子后先不安裝芯片上電。檢測芯片底座供電電壓是否正常。如果不正常,由于已經(jīng)排除掉焊接短路、斷路的問題,可以重點懷疑電路原理的問題。第三,安裝芯片分模塊檢測電
39、路是否正常,這時先檢測單片機(jī)是否正常工作,然后通過單片機(jī)向各模塊發(fā)送一些簡單命令測試模塊是否能正常工作。4.1.1單片機(jī)硬件電路檢測 單片機(jī)最小系統(tǒng)檢測主要是檢測單片機(jī)是否能正常啟動。方法為用示波器檢測單片機(jī)30腳,即ALE管腳是否有方波輸出,且方波的頻率因為晶振的1/6,即2M(晶振使用的是12M的)。檢測到2M方波,說明單片機(jī)能正常啟動。4.1.2液晶模塊調(diào)試 液晶模塊檢測主要是檢測能否正常顯示字符。 利用前面提到的送字符串顯示測試。當(dāng)然首先要保證液晶初始化程序和子程序都是正確的,在此前提下查看液晶的硬件電路連接。注意要保證對比度適合。 開始測試 沒有看到字符,就是因為對比度調(diào)節(jié)不合適。4
40、.1.3 ADC0809和語音電路調(diào)試 檢測ADC0809首先要檢測ADC0809的時鐘是否正確。本系統(tǒng)采用500Hz,可以用示波器加以檢測。 語音芯片保留了按鍵部分用來測試芯片是否正常工作和芯片電源供電是否正常。工作正常后,可以通過控制端口模擬SPI時序,用示波器觀測各控制端是否有正常信號輸出。 在檢測語音芯片控制端的時候發(fā)現(xiàn)信號有異常,不能對芯片進(jìn)行控制,最后發(fā)現(xiàn)P2口的上拉排阻裝反了。4.1.4放大電路檢測 放大電路主要是對傳感器信號的放大。檢測放大電路主要是檢測放大電路能不能調(diào)零。將差分輸入端同時接地,然后調(diào)整調(diào)零電阻,看是否能調(diào)零。放大電路放大倍數(shù)產(chǎn)生的誤差也是主要要考慮的。為后面的
41、數(shù)據(jù)處理可能導(dǎo)致較大誤差。4.2軟件調(diào)試本系統(tǒng)軟件部分采用C語言編寫,系統(tǒng)硬件電路比較簡單,主要通過軟件來實現(xiàn)各個模塊之間的協(xié)調(diào)運作。由于軟件運行的基礎(chǔ)是硬件,所以在調(diào)試軟件的過程中如果發(fā)現(xiàn)問題,應(yīng)該同時考慮軟件和硬件的問題。調(diào)試可以通過使用偉福仿真器來仿真調(diào)試。4.2.1液晶顯示程序調(diào)試 液晶顯示在開始測試電路是否正常時,通過送字符串可以正常顯示。但實際系統(tǒng)要求要顯示的濃度值是動態(tài)變化的。開始曾想過,整個顯示容分段顯示,數(shù)字單獨顯示,發(fā)現(xiàn)程序比較繁瑣。所以想到如果可以將這個顯示的容看做一個整體的字符串,而其中的數(shù)字可以動態(tài)改變就可以了。通過使用scanf函數(shù)就可以達(dá)到目的。4.2.2語音播報
42、程序調(diào)試 語音播報主要是模擬SPI時序傳輸命令與數(shù)據(jù)。主要出現(xiàn)問題是開始播報數(shù)字,用每位數(shù)字作偏移量尋址播報,所播數(shù)字與實際不符。用編譯器仿真查看程序中變量,發(fā)現(xiàn)問題為當(dāng)數(shù)字量轉(zhuǎn)化成字符放到字符串中時,值就轉(zhuǎn)化成其對應(yīng)的ASC碼。因此想用數(shù)字做便宜量,要對其處理,即減掉30H即可。 同時在分段播放時,沒次播放前都要加入判斷是否播放完畢,這樣才能正常運行。調(diào)試初期,沒有加入判斷語句,導(dǎo)致分段播放混亂。 還有要注意的是,當(dāng)使用SPI 模式不按照嚴(yán)格要求進(jìn)行錄音的時候,按鍵模式無效,此時不能通過按鍵來判斷芯片是否正常。 4.2.3其他程序調(diào)試 模數(shù)轉(zhuǎn)化程序比較簡單,就是模擬其時序即可。數(shù)據(jù)處理部分,
43、根據(jù)其線性關(guān)系可以得到求值公式,但是其斜率和輸出的電壓隨溫度變化,沒能得到很好的解決,可以通過多次求值求平均值來減小誤差,但室空氣檢測,要求不是很精確,只要誤差圍在允許圍即可。4.3系統(tǒng)測試 在各個模塊軟件功能基本實現(xiàn)的時候,其實也就是硬件與軟件能配套實現(xiàn)的過程。在各個模塊程序?qū)崿F(xiàn)功能的時候,在整合整個系統(tǒng)的軟件時要注意不要出現(xiàn)死循環(huán)。各功能單獨測試時,可以實現(xiàn)并不意味著這個系統(tǒng)的功能可以正常實現(xiàn)。在軟件上根據(jù)流程圖,合理設(shè)置個功能的連接方式十分重要。 以上調(diào)試經(jīng)過以后可以,進(jìn)行系統(tǒng)整體測試。 由于傳感器正常輸出信號需要預(yù)熱一個小時,系統(tǒng)在一個小時候才能正常測量。 傳感器預(yù)熱后可以看到,液晶屏
44、能夠顯示二氧化碳濃度。 由于沒有標(biāo)準(zhǔn)的二氧化碳濃度檢測儀進(jìn)行比較,沒法進(jìn)行自行標(biāo)定。只能根據(jù)傳感器芯片中所標(biāo)定來處理傳感器輸出信號。所得濃度與實際值存在一些偏差,但是公共場合二氧化碳濃度測量本身精度要求并不高,只要偏差圍不是太大即可。 然后可以經(jīng)行按鍵功能測試。按設(shè)置菜單建,可以進(jìn)入設(shè)置菜單,按一次是進(jìn)行報警值的設(shè)置,按兩次是進(jìn)入報警間隔時間的設(shè)置。其他兩個按鍵可以對數(shù)值進(jìn)行增減設(shè)置。 在顯示濃度時,按下語音播放鍵,可以對濃度進(jìn)行語音播報。在設(shè)置菜單時不能通過按鍵播放語音,這時播放按鍵用來經(jīng)行設(shè)置相應(yīng)數(shù)值。 系統(tǒng)整體設(shè)計功能基本能夠?qū)崿F(xiàn),能夠?qū)Χ趸紳舛冗M(jìn)行實時顯示和語音播報。5結(jié)論 本系統(tǒng)設(shè)計過程中遇到一些問題,有些已經(jīng)解決有些還有待改善。系統(tǒng)中主要應(yīng)用了AT89S52單片機(jī),ADC0809模數(shù)轉(zhuǎn)化芯片,液晶LCD1602以與語
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單面窗戶采購合同范本
- 司機(jī)協(xié)議合同范例
- 業(yè)務(wù)員簡單辭職報告
- 通信網(wǎng)絡(luò)管理員高級考試模擬題含參考答案
- 辦卡會員合同范本
- 農(nóng)村固體廢物處理合同范本
- 一周總結(jié)30篇模板
- 壓路機(jī)租用合同范本
- 公司出售寫合同范例
- 2014旅游協(xié)議合同范本
- DB31-T 255-2020 集中式空調(diào)(中央空調(diào))系統(tǒng)節(jié)能運行和管理技術(shù)要求
- 【核心素養(yǎng)目標(biāo)】浙教版勞動七下項目一任務(wù)一《學(xué)做小籠包》課件
- 豐田的全面質(zhì)量管理
- 嚴(yán)重精神障礙患者管理培訓(xùn)課件
- 2024甘肅路橋建設(shè)集團(tuán)招聘專業(yè)技術(shù)人員199人管理單位遴選500模擬題附帶答案詳解
- 中建混凝土工程專項施工方案
- 機(jī)電一體化(專業(yè)畢業(yè)論文)
- 小學(xué)2年級心理健康教育課件《智斗“攔路虎”-人人都會有困難》
- 2024年新疆區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- 焊工(初級)考試題庫及答案
- 2024年云南省中考物理試題含答案
評論
0/150
提交評論