1 前言
1.1一氧化碳的特性及危害
一氧化碳是無(wú)色、無(wú)臭、無(wú)味、有毒的氣體,熔點(diǎn)﹣199℃,沸點(diǎn)﹣191.5℃。標(biāo)準(zhǔn)狀況下氣體密度為l.25g/L,和空氣密度(標(biāo)準(zhǔn)狀況下1.293g/L)相差很小,這也是容易發(fā)生煤氣中毒的因素之一。
一氧化碳分子中碳元素的化合價(jià)是+2價(jià),能進(jìn)一步被氧比成+4價(jià),從而使一氧化碳具有可燃性和還原性,一氧化碳能夠在空氣中或氧氣中燃燒,生成二氧化碳。
一氧化碳中毒(carbon monoxide poisoning),亦稱煤氣中毒。一氧化碳是無(wú)色、無(wú)臭、無(wú)味的氣體,故易于忽略而致中毒。常見(jiàn)于家庭居室通風(fēng)差的情況下,煤爐產(chǎn)生的煤氣或液化氣管道漏氣或工業(yè)生產(chǎn)煤氣以及礦井中的一氧化碳吸入而致中毒。
中毒原理:一氧化碳會(huì)與肺部的血紅蛋白結(jié)合,造成機(jī)體缺氧。
一是輕度中毒。患者可出現(xiàn)頭痛、頭暈、失眠、視物模糊、耳鳴、惡心、嘔吐、全身乏力、心動(dòng)過(guò)速、短暫昏厥。血中碳氧血紅蛋白含量達(dá)10%-20%。
二是中度中毒。除上述癥狀加重外,口唇、指甲、皮膚粘膜出現(xiàn)櫻桃紅色,多汗,血壓先升高后降低,心率加速,心律失常,煩躁,一時(shí)性感覺(jué)和運(yùn)動(dòng)分離(即尚有思維,但不能行動(dòng))。癥狀繼續(xù)加重,可出現(xiàn)嗜睡、昏迷。血中碳氧血紅蛋白約在30%-40%。經(jīng)及時(shí)搶救,可較快清醒,一般無(wú)并發(fā)癥和后遺癥。
三是重度中毒。患者迅速進(jìn)入昏迷狀態(tài)。初期四肢肌張力增加,或有陣發(fā)性強(qiáng)直性痙攣;晚期肌張力顯著降低,患者面色蒼白或青紫,血壓下降,瞳孔散大,最后因呼吸麻痹而死亡。經(jīng)搶救存活者可有嚴(yán)重合并癥及后遺癥。
一氧化碳的后遺癥。中、重度中毒病人有神經(jīng)衰弱、震顫麻痹、偏癱、偏盲、失語(yǔ)、吞咽困難、智力障礙、中毒性精神病。部分患者可發(fā)生繼發(fā)性腦病。
1.2 一氧化碳檢測(cè)儀的種類
目前,市場(chǎng)上一氧化碳檢測(cè)儀的種類是多種多樣,目前應(yīng)用得較為廣泛的是熱催化監(jiān)測(cè)方式,但由于多種可熱性氣體都能催化氧化燃燒,導(dǎo)致檢測(cè)精度下降,另外,采用這種方式的檢測(cè)儀體積和功率都較大,不便于隨身攜帶,本設(shè)計(jì)提出的一種采用點(diǎn)調(diào)制非光紅外(NDIR)氣體成分分析技術(shù)檢測(cè)一氧化碳?xì)怏w的方法,該方法提高了檢測(cè)精度,大大降低了檢測(cè)儀的尺度和功耗,延長(zhǎng)了電池供給時(shí)間,體積和功耗的有效降低。
1.3課題的背景和意義
在當(dāng)今社會(huì)發(fā)展中,現(xiàn)代化的發(fā)展給人類帶了很大的方便,但與此同時(shí),人生安全越來(lái)越受到人們的重視,一氧化碳在工業(yè)領(lǐng)域所給我們帶來(lái)的方便不言而喻,但它對(duì)人體的危害也是顯而易見(jiàn)的。所以我們?cè)O(shè)計(jì)一款基于單片機(jī)控制的一氧化碳檢測(cè)儀,對(duì)一氧化碳進(jìn)行檢測(cè),為人們提供了安全的保障。
2一氧化碳檢測(cè)儀系統(tǒng)總體設(shè)計(jì)
本論文主要完成一氧化碳檢測(cè)儀軟件和硬件仿真設(shè)計(jì),設(shè)計(jì)內(nèi)容包括:A/D轉(zhuǎn)換器程序、控制程序、超標(biāo)報(bào)警、鍵盤(pán)檢測(cè)、數(shù)據(jù)顯示等。
本系統(tǒng)采用單片機(jī)為控制核心,以實(shí)現(xiàn)一氧化碳檢測(cè)儀的基本控制功能。系統(tǒng)主要功能內(nèi)容包括:數(shù)據(jù)處理、時(shí)間設(shè)置、開(kāi)始測(cè)量、超標(biāo)報(bào)警、鍵盤(pán)檢測(cè)、自動(dòng)休眠,儀器若不進(jìn)行測(cè)量操作,5分鐘后自動(dòng)進(jìn)入休眠模式,以降低電源消耗。本系統(tǒng)設(shè)計(jì)采用功能模塊化的設(shè)計(jì)思想,系統(tǒng)主要分為總體方案設(shè)計(jì)、硬件和軟件的設(shè)計(jì)三大部分。根據(jù)任務(wù)書(shū)上的要求進(jìn)行綜合分析,總設(shè)計(jì)方案分為以下幾個(gè)步驟:
(1)硬件系統(tǒng)電路的設(shè)計(jì);
(2)軟件系統(tǒng)主程序及其相關(guān)子程序的編寫(xiě);
(3)系統(tǒng)電路及軟件的調(diào)試;
(4)結(jié)論。
3一氧化碳檢測(cè)儀硬件設(shè)計(jì)
3.1硬件結(jié)構(gòu)設(shè)計(jì)
硬件設(shè)計(jì)部分主要包括:?jiǎn)纹瑱C(jī)、A/D轉(zhuǎn)換器、時(shí)鐘芯片、LCD、外圍擴(kuò)展數(shù)據(jù)RAM等芯片的選擇;硬件主電路設(shè)計(jì)、數(shù)據(jù)采集、模數(shù)轉(zhuǎn)換電路設(shè)計(jì)、液晶顯示電路設(shè)計(jì)、外圍擴(kuò)充存儲(chǔ)器接口電路、時(shí)鐘電路、復(fù)位電路、鍵盤(pán)接口電路等功能模塊電路設(shè)計(jì)。硬件結(jié)構(gòu)框圖3-1。

圖3-1 硬件結(jié)構(gòu)框圖
3.2硬件選擇和設(shè)計(jì)
3.2.1AT89C52單片機(jī)的選擇
本系統(tǒng)采用AT89C52單片機(jī)。而目前世界上較為著名的8位單片機(jī)的生產(chǎn)廠家和主要機(jī)型如下:
美國(guó)Intel公司:MCS—51系列及其增強(qiáng)型系列;
美國(guó)Motorola公司:6801系列和6805系列;
美國(guó)Atmel公司:89C51等單片機(jī);
美國(guó)Zilog公司:Z8系列及SUPER8;
美國(guó)Fairchild公司:F8系列和3870系列;
美國(guó)Rockwell公司:6500/1系列;
美國(guó)TI(德克薩司儀器儀表)公司:TMS7000系列;
NS(美國(guó)國(guó)家半導(dǎo)體)公司:NS8070系列等等。
盡管單片機(jī)的品種很多,但是在我國(guó)使用最多的還是Intel公司的MCS—52系列單片機(jī)和美國(guó)Atmel公司的89C52單片機(jī)。
MCS—51系列單片機(jī)包括三個(gè)基本型8031、8051、8751。
本系統(tǒng)采用AT89C52單片機(jī)為控制核心。而相比之下52型功能更為強(qiáng)大,ROM和RAM存儲(chǔ)空間更大,52還兼容51指令系統(tǒng)。基于本系統(tǒng)設(shè)計(jì)內(nèi)容的需要,綜合考慮后,我們選擇單片機(jī)ATME公司的AT89C52為控制核心;主要基于考慮AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8KB的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)、6個(gè)中斷源;時(shí)鐘頻率0~24MHz;器件采用高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),并兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),功能強(qiáng)大。
AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8K bytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和256K bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器和FLASH存儲(chǔ)單元,功能強(qiáng)大,AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。

圖3-2 引腳圖
主要性能參數(shù):
與MCS-51產(chǎn)品指令和引腳完全兼容;
8K字節(jié)可重擦寫(xiě)FLASH閃存存儲(chǔ)器;
1000次寫(xiě)/擦循環(huán);
時(shí)鐘頻率:0Hz~24MHz;
三級(jí)加密存儲(chǔ)器;
256字節(jié)內(nèi)部RAM;
32個(gè)可編程I/O口線;
3個(gè)16位定時(shí)/計(jì)數(shù)器;
6個(gè)中斷源;
可編程串行UART通道。
3.2.2單片機(jī)最小系統(tǒng)的設(shè)計(jì)
采用AT89C52來(lái)設(shè)計(jì)一個(gè)單片機(jī)系統(tǒng)能運(yùn)行起來(lái)的需求最小的系統(tǒng),電路圖見(jiàn)圖3-3:
圖3-3 單片機(jī)最小系統(tǒng)圖
上圖的最小單片機(jī)系統(tǒng)包含有晶振電路和復(fù)位電路,AT89C52芯片組成。
(1)晶振電路
晶振電路在各種指令的微操作在時(shí)間上有嚴(yán)格的次序,這種微操作的時(shí)間次序稱作時(shí)序, AT89C52的時(shí)鐘產(chǎn)生方式有兩種,一種是內(nèi)部時(shí)鐘方式,一種是外部時(shí)鐘方式。
本系統(tǒng)中采用了內(nèi)部時(shí)鐘方式,為了盡量降低功耗的原則。電路圖見(jiàn)圖3-4。
圖3-4 晶振電路圖
在89C52單片機(jī)的內(nèi)部有一個(gè)震蕩電路,只要在單片機(jī)的XTAL1和XTAL2引腳外接石英晶體(簡(jiǎn)稱晶振)就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào),圖中電容器C1和C2穩(wěn)定頻率和快速起振,晶振CRY選擇的是12MHz。
(2)復(fù)位電路
①?gòu)?fù)位的意義
復(fù)位電路在單片機(jī)工作中仍然是不可缺少的主要部件中,單片機(jī)工作時(shí)必須處于一種確定的狀態(tài)。端口線電平和輸入輸出狀態(tài)不確定可能使外圍設(shè)備誤動(dòng)作,導(dǎo)致嚴(yán)重事故的發(fā)生;內(nèi)部一些控制寄存器(專用寄存器)內(nèi)容不確定可能導(dǎo)致定時(shí)器溢出、程序尚未開(kāi)始就要中斷及串口亂傳向外設(shè)發(fā)送數(shù)據(jù)。
②復(fù)位電路原理
圖3-5 上電復(fù)位電路圖
本設(shè)計(jì)中復(fù)位電路采用的是上電復(fù)位與手動(dòng)復(fù)位電路,開(kāi)關(guān)未按下是上電復(fù)位電路,上電復(fù)位電路在上電的瞬間,由于電容上的電壓不能突變,電容處于充電(導(dǎo)通)狀態(tài),故RST腳的電壓與VCC相同。隨著電容的充電,RST腳上的電壓才慢慢下降。選擇合理的充電常數(shù),就能保證在開(kāi)關(guān)按下時(shí)是RST端有兩個(gè)機(jī)器周期以上的高電平從而使AT89C52內(nèi)部復(fù)位。開(kāi)關(guān)按下時(shí)是按鍵手動(dòng)復(fù)位電路,RST端通過(guò)電阻與VCC電源接通,通過(guò)電阻的分壓就可以實(shí)現(xiàn)單片機(jī)的復(fù)位。電路圖見(jiàn)圖3-6:

圖3-6 復(fù)位電路圖
3.2.3數(shù)據(jù)采集系統(tǒng)的選擇與設(shè)計(jì)
(1)一氧化碳傳感器的選擇:
一氧化碳傳感器選用CO/CF-1000探頭組成,如下表3-1。
表3-1傳感器參數(shù)
(2)從傳感器過(guò)來(lái)的電壓信號(hào),必須采集,濾波,放大,轉(zhuǎn)換才能被MCU識(shí)別和處理。由于假若每一路都設(shè)置放大、濾波等器件,那么成本會(huì)很大,所以信號(hào)的采集一般用多路模擬通路進(jìn)行選擇。然而選擇多路模擬開(kāi)關(guān)時(shí)必須考慮以下的幾個(gè)因素:通道數(shù)量、切換速度、開(kāi)關(guān)電阻和器件的封裝形式。總之?dāng)?shù)據(jù)采集與硬件的選擇有很大的關(guān)系。
(3)測(cè)量電路
測(cè)量電路由CO/CF-1000一氧化碳傳感器、ADC0832組成。當(dāng)空氣被內(nèi)部的采樣系統(tǒng)接收后,產(chǎn)生一個(gè)與一氧化碳濃度成正比的電壓信號(hào),該電壓信號(hào)經(jīng)ADC0832與AT89C52單片機(jī)相連,在顯示器上顯示出一氧化碳的濃度值,當(dāng)超過(guò)國(guó)家規(guī)定的標(biāo)準(zhǔn)時(shí)報(bào)警。
3.2.4模數(shù)轉(zhuǎn)換器的選擇與簡(jiǎn)介
(1)由于ADC0832模數(shù)轉(zhuǎn)換器具有8位分辨率、雙通道A/D轉(zhuǎn)換、輸入輸出電平與TTL/CMOS相兼容、5V電源供電時(shí)輸入電壓在0~5V之間、工作頻率為250KHZ 、轉(zhuǎn)換時(shí)間為32微秒、一般功耗僅為15MW等優(yōu)點(diǎn),適合本系統(tǒng)的應(yīng)用,所以我們采用ADC0832為模數(shù)轉(zhuǎn)換器件。電路圖見(jiàn)圖3-7如下:
圖3-7 模數(shù)轉(zhuǎn)換電路圖
(2)ADC0832 具有以下特點(diǎn):
①8位分辨率;
②雙通道A/D轉(zhuǎn)換;
③輸入輸出電平與TTL/CMOS相兼容;
④5V電源供電時(shí)輸入電壓在0~5V之間;
⑤工作頻率為250KHZ,轉(zhuǎn)換時(shí)間為32μS;
⑥一般功耗僅為15mW;
⑦8P、14P—DIP(雙列直插)、PICC 多種封裝;
⑧商用級(jí)芯片溫寬為0℃到+70℃,工業(yè)級(jí)芯片溫寬為−40℃到+85℃;
芯片接口說(shuō)明:
①CS_片選使能,低電平芯片使能;
②CH0模擬輸入通道0,或作為IN+/-使用;
③CH1模擬輸入通道1,或作為IN+/-使用;
④GND芯片參考0電位(地);
⑤DI數(shù)據(jù)信號(hào)輸入,選擇通道控制;
⑥D(zhuǎn)O數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出;
⑦CLK芯片時(shí)鐘輸入;
⑧Vcc/REF電源輸入及參考電壓輸入(復(fù)用)。
單片機(jī)對(duì)ADC0832的控制原理:
正常情況下ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,CLK和DO/DI的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。同時(shí)由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。
(3)測(cè)量量程
由于ADC0832模數(shù)轉(zhuǎn)換器的位數(shù)為8位,所以ADC0832模數(shù)轉(zhuǎn)換器的精度為:10ppm/256=0.039ppm。
3.2.5按鍵選擇與簡(jiǎn)介
(1)本系統(tǒng)選擇獨(dú)立式按鍵。鍵盤(pán)分為:獨(dú)立式和矩陣式兩類,每一類按其編碼方法又可以分為編碼和非編碼兩種。本系統(tǒng)具有人機(jī)對(duì)話功能,該功能即能隨時(shí)發(fā)出各種控制命令和數(shù)據(jù)輸入以及和LCD連接顯示運(yùn)行狀態(tài)和運(yùn)行結(jié)果。由于本系統(tǒng)只有UP、DOWN、OK、CANCEL4個(gè)控制命令,所需按鍵較少,所以本系統(tǒng)選擇獨(dú)立式按鍵。電路圖見(jiàn)圖3-8。
圖3-8 按鍵電路圖
(2)獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路。每個(gè)獨(dú)立式按鍵占有一根I/O口線。各根I/O口線之間不會(huì)相互影響。在此電路中,按鍵輸入部采用低電平有效,上拉電阻保證了按鍵斷開(kāi)時(shí),I/O口線有確定的高電平,(AT89C52.P1口內(nèi)部接有上拉電阻)所以就不需要再外接上拉電阻。
(3)鍵盤(pán)抖動(dòng)的消除:抖動(dòng)的消除大致可以分為硬件削抖和軟件削抖。
硬件削抖是采用硬件電路的方法對(duì)鍵盤(pán)的按下抖動(dòng)及釋放抖動(dòng)進(jìn)行削抖,經(jīng)過(guò)削抖電路后使按鍵的電平信號(hào)只有兩種穩(wěn)定狀態(tài)。
3.2.6外圍擴(kuò)充存儲(chǔ)器的選擇
由于考慮AT89C52單片機(jī)具有8KB的程序存儲(chǔ)器(ROM),256B的數(shù)據(jù)存儲(chǔ)器(RAM),由于考慮到本系統(tǒng)的數(shù)據(jù)處理與存儲(chǔ)所需的容量,現(xiàn)在需要擴(kuò)充存儲(chǔ)器的容量。在應(yīng)用中要保存一些參數(shù)和狀態(tài),本系統(tǒng)選用AT24C128存儲(chǔ)器。電路圖見(jiàn)圖3-9。

圖3-9 外圍擴(kuò)充存儲(chǔ)電路圖
3.2.7時(shí)鐘芯片選擇與設(shè)計(jì)
在本系統(tǒng),我們選擇了DS1302時(shí)鐘芯片。因?yàn)榇讼到y(tǒng)需要記錄測(cè)量發(fā)生的時(shí)間,所以需要時(shí)鐘芯片來(lái)記錄不同時(shí)間的監(jiān)測(cè)數(shù)據(jù),因此我們?cè)谙到y(tǒng)中加入了時(shí)鐘芯片。
(1)我們時(shí)鐘電路選擇的芯片是DS1302,其內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,可以通過(guò)串行接口與單片機(jī)通信。而通信時(shí),僅需要3個(gè)口線:①RES(復(fù)位),②I/O數(shù)據(jù)線,③SCLK(串行時(shí)鐘)。時(shí)鐘/RAM的讀/寫(xiě)數(shù)據(jù)以一字節(jié)或多達(dá)31字節(jié)的字符組方式通信。
(2)DS1302主要性能有:時(shí)鐘能計(jì)算2100年之前的秒、分、時(shí)、日、日期、星期、月、年的能力,還有閏年的調(diào)整能力;讀/寫(xiě)時(shí)鐘或RAM數(shù)據(jù)時(shí),有單字節(jié)和多字節(jié)傳送兩種方式,與DS1202/TTL兼容。
(3)DS1302引腳概述:X1,X2;振蕩源,外接32.768KHZ晶振;SCLK:串行時(shí)鐘輸入端。見(jiàn)表3-2。
表3-2時(shí)鐘控制字對(duì)照表
(4)DS1302數(shù)據(jù)輸入/輸出時(shí)序
數(shù)據(jù)輸入是在輸入寫(xiě)命令字的8個(gè)SCLK周期之后,在接下來(lái)的8個(gè)SCLK周期中的每個(gè)脈沖的上升沿輸入數(shù)據(jù),數(shù)據(jù)從0位開(kāi)始。如果有額外的SCLK周期,它們將被忽略。

圖3-10 時(shí)鐘電路圖
數(shù)據(jù)輸出是在輸出命令字的8個(gè)SCLK周期之后,在接下來(lái)的8個(gè)SCLK周期中的每個(gè)脈沖的下降沿輸出數(shù)據(jù),數(shù)據(jù)從0位開(kāi)始。需要注意的是,第一個(gè)數(shù)據(jù)位在命令字節(jié)的最后一位之后的第一個(gè)下降沿被輸出。只要RST保持高電平,如
果有額外的SCLK周期,將重新發(fā)送數(shù)據(jù)字節(jié),即多字節(jié)傳送。其電路圖見(jiàn)圖3-10。
3.2.8上拉電阻的選擇
在主電路圖中接在P0口處有一個(gè)排阻RP1,由于P0口沒(méi)有內(nèi)接上拉電阻,為了為P0口外接線路有確定的高電平,所以要接上排阻RP1,以確保有P0口有穩(wěn)定的電平。電路連接圖見(jiàn)圖3-11。
圖3-11 上拉電阻電路圖
3.2.9液晶顯示器選擇
我們選用了AMPIRE128X64液晶顯示模塊,是由于本系統(tǒng)要有顯示裝置完成顯示功能,顯示器最好能夠顯示數(shù)據(jù)、圖形,考慮到同種LCD顯示器的屏幕越大體積越大,功耗越大的特點(diǎn),該型號(hào)顯示器消耗電量比較低,可以滿足系統(tǒng)要求。該類液晶顯示模塊采用動(dòng)態(tài)的液晶驅(qū)動(dòng),可用5V供電。AMPIRE128X64液晶共有22個(gè)引腳。如表3-3所示。
表3-3引腳說(shuō)明表
AMPIRE128X64液晶顯示模塊與計(jì)算機(jī)的接口電路有兩種方式。分為直接訪問(wèn)方式和間接控制方式。直接訪問(wèn)方式是把液晶模塊作為存儲(chǔ)器或I/O設(shè)備直接接在單片機(jī)的總線上,單片機(jī)以訪問(wèn)存儲(chǔ)器或I/O設(shè)備的方式操作液晶顯示模塊的工作。間接控制方式則不使用單片機(jī)的數(shù)據(jù)系統(tǒng),而是利用它的I/O口來(lái)實(shí)與顯示模塊的聯(lián)系。即將液晶顯示模塊的數(shù)據(jù)線與單片機(jī)的Pl口連接作為數(shù)據(jù)總線,另外三根時(shí)序控制信號(hào)線通常利用單片機(jī)的P3口中未被使用的I/O口來(lái)控制。這種訪問(wèn)方式不占用存儲(chǔ)器空間,它的接口電路與時(shí)序無(wú)關(guān),其時(shí)序完全靠軟件編程實(shí)現(xiàn)。本系統(tǒng)采用間接控制方式。液晶顯示電路連接原理圖見(jiàn)圖下:

(2)LCD按其顯示方式通常可以分為斷式、點(diǎn)字符式、點(diǎn)陣式等。還有黑白、多灰度、彩色顯示等。
①字符顯示:字符顯示比較復(fù)雜,一個(gè)字符由16x8點(diǎn)陣組成,即要找到和顯示屏是某幾個(gè)位置對(duì)應(yīng)的RAM區(qū)的字節(jié),再使不同的位置為“1”其他的為“0”;為“1”的點(diǎn)亮,為“0”的不亮,這樣就顯示出一個(gè)字符。
②漢字顯示:漢字顯示和字符顯示的原理差不多,就是一個(gè)漢字一般采用圖形方式,事先從微機(jī)中用字模軟件提取要顯示的漢字的點(diǎn)陣碼,每個(gè)漢字占32B,分為兩部分,各16B。根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)就可以找出顯示RAM的對(duì)應(yīng)地址,送上漢字要顯示的第一字節(jié),以此類推,最后送完32B,這樣漢字就顯示出來(lái)了。
系統(tǒng)的液晶顯示字體和字母的顯示就是按照上述的原理顯示的,點(diǎn)陣碼是用字模軟件在相同的設(shè)置區(qū)域找出的。然后把提取的點(diǎn)陣碼放入編寫(xiě)的LCD軟件程序里。
(3)陣碼獲取過(guò)程簡(jiǎn)介:首先,打開(kāi)軟件,然后新建文件,因?yàn)闈h字占32B所以設(shè)置其為高度和寬度16x16。取模方式選擇C51格式在文字輸入?yún)^(qū)輸入漢字,在點(diǎn)陣區(qū)生成點(diǎn)陣碼,例如在文字輸入?yún)^(qū)輸入“歡”字,其點(diǎn)陣碼生成如下:

圖3-13 點(diǎn)陣生成截圖
3.2.10報(bào)警電路的選擇
圖3-14 單頻音報(bào)警電路圖
圖3-14 報(bào)警電路接線圖
在單片機(jī)應(yīng)用系統(tǒng)中,一般的工作狀態(tài)可以通過(guò)指示燈或數(shù)碼顯示來(lái)指示,供操作人員參考,了解系統(tǒng)的工作狀況。但對(duì)于緊急狀態(tài),比如系統(tǒng)檢測(cè)到的錯(cuò)誤狀態(tài)等,往往還需要有某種更能引人注意,及時(shí)采取措施,往往還需要有某種更能引人注意,提起警覺(jué)的報(bào)警信號(hào)。這種報(bào)警信號(hào)通常有三種類型:一是閃光報(bào)警,因?yàn)殚W動(dòng)的指示燈更能提醒人們注意;二是鳴音報(bào)警,發(fā)出特定的音響,作用于人的聽(tīng)覺(jué)器官,易于引起和加強(qiáng)警覺(jué);三是語(yǔ)音報(bào)警,不僅能起到報(bào)警作用,還能直接給出警報(bào)種類的信息。其中,前兩種報(bào)警裝置因硬件結(jié)構(gòu)簡(jiǎn)單,軟件編程方便,常常在單片機(jī)應(yīng)用系統(tǒng)中使用;而語(yǔ)音報(bào)警雖然警報(bào)信息較直接,但硬件成本高,結(jié)構(gòu)較復(fù)雜。單頻音報(bào)警實(shí)現(xiàn)單頻音報(bào)警的接口電路比較簡(jiǎn)單,其發(fā)音元件通常可采用壓電蜂鳴器,當(dāng)在蜂鳴器兩引腳上加3~15V直流工作電壓,就能產(chǎn)生3kHZ左右的蜂鳴振蕩音響。壓電式蜂鳴器,約需10mA的驅(qū)動(dòng)電流,可在某端口接上一只三極管和電阻組成的驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng),如圖3-14所示。在圖3-14中,P1.0接三極管基極輸入端,當(dāng)P1.0輸出高電平“1”時(shí),三極管導(dǎo)通,蜂鳴器的通電而發(fā)音,當(dāng)P1.0輸出低電平“0”時(shí),三極管截止,蜂鳴器停止發(fā)音。
3.3 硬件設(shè)計(jì)主電路圖,見(jiàn)附錄一。
4軟件設(shè)計(jì)
4.1軟件設(shè)計(jì)結(jié)構(gòu)
軟件設(shè)計(jì)部分主要包括:主程.序/子程序流程的設(shè)計(jì)、功能模塊程序的編寫(xiě)、軟/硬件結(jié)合調(diào)試與演示。主要包括以下功能模塊:51驅(qū)動(dòng)、檢測(cè)、液晶顯示、時(shí)鐘、鍵盤(pán)、模數(shù)軟換,軟件結(jié)構(gòu)框圖4-1。


圖4-1 軟件結(jié)構(gòu)框圖
4.2主程序模塊的設(shè)計(jì)
主程序?qū)崿F(xiàn)的功能:與硬件相結(jié)合實(shí)現(xiàn)便攜式一氧化碳檢測(cè)儀的各個(gè)功能。主要是檢測(cè)與顯示,時(shí)間調(diào)整與顯示,數(shù)據(jù)存儲(chǔ),功能子函數(shù)的調(diào)用,見(jiàn)圖4
-2。
圖4-2 主程序流程圖
檢測(cè)主程序程序見(jiàn)附錄二。
4.3模數(shù)轉(zhuǎn)換的設(shè)計(jì)
(1)模數(shù)轉(zhuǎn)換模塊的主要功能就是將經(jīng)放大器放大的模擬電壓信號(hào)轉(zhuǎn)化為MCU能夠處理的數(shù)字信號(hào),并傳送給單片機(jī)。
(2)ADC0832轉(zhuǎn)換的流程圖見(jiàn)下圖4-3。

圖4-3數(shù)轉(zhuǎn)換流程圖
(3)ADC0832程序見(jiàn)附錄三。
4.4按鍵模塊的設(shè)計(jì)
(1)按鍵時(shí)顯現(xiàn)人機(jī)對(duì)話的一個(gè)控制按鈕,通過(guò)按鍵的操作,對(duì)系統(tǒng)進(jìn)行發(fā)送操作指令,后經(jīng)與MCU串行通信,然后在液晶上顯示。
(2)按鍵查詢式的流程圖見(jiàn)下圖:
圖4-4 按鍵查詢式的流程圖
(3)按鍵程序見(jiàn)附錄四。
4.5時(shí)鐘模塊的設(shè)計(jì)
(1)DS1302模塊主要是用于設(shè)置時(shí)間和與MCU通信經(jīng)LCD顯示時(shí)間。
(2)時(shí)鐘模塊操作流程圖見(jiàn)下圖:
圖4-5 時(shí)鐘模塊操作流程圖
(3)時(shí)鐘程序見(jiàn)附錄五。
4.6液晶顯示模塊的設(shè)計(jì)
(1) LCD模塊在本系統(tǒng)中主要起著開(kāi)界面漢字顯示,以及各控制效果的顯示。采用直接訪問(wèn)方式。液晶顯示的操作流程圖見(jiàn)下圖4-6。
圖4-6 液晶顯示的操作流程圖
(2)液晶程序見(jiàn)附錄六。
5系統(tǒng)仿真
ProteusISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:
(1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。
(2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
(3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。
(4)具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。本章介紹Proteus ISIS軟件的工作環(huán)境和一些基本操作。

圖5-1 ISIS 6 Professional圖標(biāo)
進(jìn)入Proteus ISIS:雙擊桌面上的ISIS 6 Professional圖標(biāo)(見(jiàn)圖5-1)或者單擊屏幕左下方的“開(kāi)始”→“程序”→“Proteus 6 Professional”→“ISIS 6 Professional”,出現(xiàn)如圖5-2所示屏幕,表明進(jìn)入Proteus ISIS集成環(huán)境。工作界面:Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖5-2所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口。
圖5-2 工作界面
完成了本系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)后,對(duì)其進(jìn)行了總體調(diào)試并且仿真運(yùn)行,使用的是proteus軟件,當(dāng)硬件設(shè)計(jì)和軟件設(shè)計(jì)都完成的時(shí)候就可以看到虛擬的基于單片機(jī)的低功耗計(jì)數(shù)系統(tǒng)的運(yùn)行,以下為仿真效果:
(1)編譯結(jié)束,添加HEX文件到仿真圖中運(yùn)行,本系統(tǒng)主界面顯示圖
如圖5-3所示。

圖5-3 主界面顯示圖
(2)系統(tǒng)接下來(lái)顯示,4個(gè)基如本操作功能,“√”為該操作顯示項(xiàng),圖5-4。
圖5-4 功能界面
(3)選擇“開(kāi)始”,單擊“OK”鍵,便有下面測(cè)量選擇界面,如圖5-5。
圖5-5 測(cè)量選擇界面
(4)再按“OK”,則顯示檢測(cè)數(shù)據(jù),范圍0-10ppm。如圖5-6。

圖5-6 測(cè)量界面顯示圖
(5)4個(gè)功能的操作和演示是相同的,以下為“時(shí)間設(shè)置”顯示圖,如圖5-7。
圖5-7 當(dāng)前時(shí)間顯示圖
(6)小結(jié):本系統(tǒng)原先打算設(shè)計(jì)“開(kāi)始”、“ 時(shí)間設(shè)置”、“ 數(shù)據(jù)存儲(chǔ)”“通訊設(shè)置”等4個(gè)基本功能,后由于條件所限,并未做出全部的功能,但這次的畢業(yè)設(shè)計(jì),收獲還是很多的。今后我會(huì)進(jìn)一步進(jìn)完善該系統(tǒng)。
結(jié)論
本一氧化碳檢測(cè)儀的設(shè)計(jì)體積小,質(zhì)量輕,性價(jià)比高。主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì)。基本實(shí)現(xiàn)了設(shè)計(jì)前對(duì)該系統(tǒng)所要求實(shí)現(xiàn)的功能。
軟件是基于C語(yǔ)言編寫(xiě)的,具有很好的可控性、模塊化和移植性。編寫(xiě)的思路以模塊化思想,將系統(tǒng)的各個(gè)功能進(jìn)行劃分,然后對(duì)各個(gè)模塊進(jìn)行設(shè)計(jì)。本系統(tǒng)的主要模塊為一氧化碳檢測(cè)、A/D轉(zhuǎn)換、液晶顯示和時(shí)鐘設(shè)置。
軟件與硬件相結(jié)合的仿真演示出了一氧化碳檢測(cè)儀主要的工作情況。但由于是電信號(hào)模擬,和真實(shí)一氧化碳檢測(cè)有一定區(qū)別,而且所學(xué)知識(shí)有限,本系統(tǒng)實(shí)現(xiàn)的功能不是很健全,但在設(shè)計(jì)過(guò)程中讓自己學(xué)會(huì)了很多。
致謝
本論文是在殷強(qiáng)老師的悉心指導(dǎo)下完成的。從選題到完成,每一步都是在強(qiáng)老師的指導(dǎo)下完成的,傾注了殷老師大量的心血。在此,謹(jǐn)向強(qiáng)老師表示崇高的敬意和衷心的感謝。
我的畢業(yè)課題是便攜式一氧化碳檢測(cè)儀的設(shè)計(jì),是一個(gè)實(shí)際的小工程。作為一個(gè)自考本科的學(xué)生,我對(duì)實(shí)際的工程設(shè)計(jì)認(rèn)識(shí)不夠,經(jīng)驗(yàn)不足,難免在設(shè)計(jì)的整體框架中,有很多的細(xì)節(jié)沒(méi)有考慮。但老師給予我鼓勵(lì)和很多寶貴的建議,并且悉心引導(dǎo),給予我一個(gè)比較清晰的設(shè)計(jì)思路,幫助我解決了許多設(shè)計(jì)上的困難。最后還要感謝在百忙之中進(jìn)行論文評(píng)審的老師們,對(duì)論文的不足之處敬請(qǐng)批評(píng)點(diǎn)。
附錄一 硬件設(shè)計(jì)圖
附錄二 檢測(cè)主程序程序