第1章 緒論
1.1課題的背景和意義
一氧化碳是無色、無臭、無味、有毒的氣體,熔點﹣199℃,沸點﹣191.5℃。標準狀況下氣體密度為l.25g/L,和空氣密度(標準狀況下1.293g/L)相差很小,這也是容易發生煤氣中毒的因素之一。
一氧化碳分子中碳元素的化合價是+2價,能進一步被氧比成+4價,從而使一氧化碳具有可燃性和還原性,一氧化碳能夠在空氣中或氧氣中燃燒,生成二氧化碳。
一氧化碳中毒(carbon monoxide poisoning),亦稱煤氣中毒。一氧化碳是無色、無臭、無味的氣體,故易于忽略而致中毒。常見于家庭居室通風差的情況下,煤爐產生的煤氣或液化氣管道漏氣或工業生產煤氣以及礦井中的一氧化碳吸入而致中毒。
中毒原理:一氧化碳會與肺部的血紅蛋白結合,造成機體缺氧。
一是輕度中毒。患者可出現頭痛、頭暈、失眠、視物模糊、耳鳴、惡心、嘔吐、全身乏力、心動過速、短暫昏厥。血中碳氧血紅蛋白含量達10%-20%。
二是中度中毒。除上述癥狀加重外,口唇、指甲、皮膚粘膜出現櫻桃紅色,多汗,血壓先升高后降低,心率加速,心律失常,煩躁,一時性感覺和運動分離(即尚有思維,但不能行動)。癥狀繼續加重,可出現嗜睡、昏迷。血中碳氧血紅蛋白約在30%-40%。經及時搶救,可較快清醒,一般無并發癥和后遺癥。
三是重度中毒。患者迅速進入昏迷狀態。初期四肢肌張力增加,或有陣發性強直性痙攣;晚期肌張力顯著降低,患者面色蒼白或青紫,血壓下降,瞳孔散大,最后因呼吸麻痹而死亡。經搶救存活者可有嚴重合并癥及后遺癥。
一氧化碳的后遺癥。中、重度中毒病人有神經衰弱、震顫麻痹、偏癱、偏盲、失語、吞咽困難、智力障礙、中毒性精神病。部分患者可發生繼發性腦病。
在當今社會發展中,現代化的發展給人類帶了很大的方便,但與此同時,人生安全越來越受到人們的重視,一氧化碳在工業領域所給我們帶來的方便不言而喻,但它對人體的危害也是顯而易見的。所以我們設計一款基于單片機控制的一氧化碳檢測儀,對一氧化碳進行檢測,為人們提供了安全的保障。
1.2 CO檢測儀的種類
目前,市場上一氧化碳檢測儀的種類是多種多樣,目前應用得較為廣泛的是熱催化監測方式,但由于多種可熱性氣體都能催化氧化燃燒,導致檢測精度下降,另外,采用這種方式的檢測儀體積和功率都較大,不便于隨身攜帶,本設計使用的是一種采用點調制非光紅外(NDIR)氣體成分分析技術檢測一氧化碳氣體的方法的一氧化碳傳感器,該方法提高了檢測精度,大大降低了檢測儀的尺度和功耗,延長了電池供給時間,體積和功耗的有效降低。
1.3 設計任務
本設計的任務是設計一個由單片機控制的一氧化碳的濃度檢測及報警系統,它將傳感器輸出的電壓信號進行A/D轉換、濾波、線性化,由單片機將電壓值轉換為氣體濃度和溫度送LCD1602液晶顯示,并判斷是否超過報警上限,若超過,則發出聲光報警,并打開風扇降低一氧化碳的濃度。同時用戶可以自己設定報警上限,使用戶可以根據實際情況方便的掌握安全狀況。該系統以STC89C52單片機為核心,可以實現聲光報警、故障自診斷、濃度顯示、報警限設置。它結構簡單、性能穩定、使用方便、價格低廉、智能化,具有一定的實用價值。
第2章 CO檢測系統硬件設計
本論文主要完成一氧化碳檢測儀軟件和硬件仿真設計,設計內容包括:A/D轉換器程序、控制程序、超標報警、鍵盤檢測、數據顯示等。
硬件設計部分主要包括:單片機、A/D轉換器、時鐘芯片、LCD、外圍擴展數據RAM等芯片的選擇;硬件主電路設計、數據采集、模數轉換電路設計、液晶顯示電路設計、外圍擴充存儲器接口電路、時鐘電路、復位電路、鍵盤接口電路等功能模塊電路設計。硬件結構框圖2.1。硬件設計總體電路圖見附錄A1。

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

圖2.2 引腳圖
主要性能參數:
與MCS-51產品指令和引腳完全兼容;
8K字節可重擦寫FLASH閃存存儲器;
1000次寫/擦循環;
時鐘頻率:0Hz~24MHz;
三級加密存儲器;
256字節內部RAM;
32個可編程I/O口線;
3個16位定時/計數器;
6個中斷源;
可編程串行UART通道。
2.2單片機最小系統的設計
采用STC89C52來設計一個單片機系統能運行起來的需求最小的系統[15],電路圖見圖2.3:

圖2.3 單片機最小系統圖
上圖的最小單片機系統包含有晶振電路和復位電路,STC89C52芯片組成。
晶振電路在各種指令的微操作在時間上有嚴格的次序,這種微操作的時間次序稱作時序, STC89C52的時鐘產生方式有兩種,一種是內部時鐘方式,一種是外部時鐘方式。本系統中采用了內部時鐘方式,為了盡量降低功耗的原則。電路圖見圖2.4。
圖2.4 晶振電路圖
在89C52單片機的內部有一個震蕩電路,只要在單片機的XTAL1和XTAL2引腳外接石英晶體(簡稱晶振)就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號,圖中電容器C1和C2穩定頻率和快速起振,晶振CRY選擇的是12MHz。
復位電路在單片機工作中仍然是不可缺少的主要部件中,單片機工作時必須處于一種確定的狀態。端口線電平和輸入輸出狀態不確定可能使外圍設備誤動作,導致嚴重事故的發生;內部一些控制寄存器(專用寄存器)內容不確定可能導致定時器溢出、程序尚未開始就要中斷及串口亂傳向外設發送數據[1]。

圖2.5 上電復位電路圖
本設計中復位電路采用的是上電復位與手動復位電路,開關未按下是上電復位電路,上電復位電路在上電的瞬間,由于電容上的電壓不能突變,電容處于充電(導通)狀態,故RST腳的電壓與VCC相同。隨著電容的充電,RST腳上的電壓才慢慢下降。選擇合理的充電常數,就能保證在開關按下時是RST端有兩個機器周期以上的高電平從而使STC89C52內部復位。開關按下時是按鍵手動復位電路,RST端通過電阻與VCC電源接通,通過電阻的分壓就可以實現單片機的復位[4]。電路圖見圖2.6:


圖2.6 復位電路圖
2.3數據采集系統的簡介
CO傳感器選用CO/CF-1000探頭組成,如下表2.1。
表2.1 傳感器參數
測量電路由CO/CF-1000一氧化碳傳感器、ADC0832組成。當空氣被內部的采樣系統接收后,產生一個與一氧化碳濃度成正比的電壓信號,該電壓信號經
ADC0832與STC89C52單片機相連,在顯示器上顯示出一氧化碳的濃度值,當超過國家規定的標準時報警[5]。
2.4模數轉換器的簡介
由于ADC0832模數轉換器具有8位分辨率、雙通道A/D轉換、輸入輸出電平與TTL/CMOS相兼容、5V電源供電時輸入電壓在0~5V之間、工作頻率為250KHZ、轉換時間為32微秒、一般功耗僅為15MW等優點,適合本系統的應用,所以我們采用ADC0832為模數轉換器件[3]。電路圖見圖2.7如下:
圖2.7 模數轉換電路圖

ADC0832 具有以下特點:
①8位分辨率;
②雙通道A/D轉換;
③輸入輸出電平與TTL/CMOS相兼容;
④5V電源供電時輸入電壓在0~5V之間;
⑤工作頻率為250KHZ,轉換時間為32μS;
⑥一般功耗僅為15mW;
⑦8P、14P—DIP(雙列直插)、PICC 多種封裝;
⑧商用級芯片溫寬為0℃到+70℃,工業級芯片溫寬為−40℃到+85℃;
芯片接口說明:
①CS_片選使能,低電平芯片使能;
②CH0模擬輸入通道0,或作為IN+/-使用;
③CH1模擬輸入通道1,或作為IN+/-使用;
④GND芯片參考0電位(地);
⑤DI數據信號輸入,選擇通道控制;
⑥DO數據信號輸出,轉換數據輸出;
⑦CLK芯片時鐘輸入;
⑧Vcc/REF電源輸入及參考電壓輸入(復用)。
由于ADC0832模數轉換器的位數為8位,所以ADC0832模數轉換器的精度為:10ppm/256=0.039ppm。
2.5按鍵電路的設計
本系統選擇獨立式按鍵。鍵盤分為:獨立式和矩陣式兩類,每一類按其編碼方法又可以分為編碼和非編碼兩種。本系統具有人機對話功能,該功能即能隨時發出各種控制命令和數據輸入以及和LCD連接顯示運行狀態和運行結果。由于本系統只有UP、DOWN、OK、CANCEL4個控制命令,所需按鍵較少,所以本系統選擇獨立式按鍵[13]。電路圖見圖2.8。
圖2.8 按鍵電路圖
2.6外圍擴充存儲器的簡介
由于考慮STC89C52單片機具有8KB的程序存儲器(ROM),256B的數據存儲器(RAM),由于考慮到本系統的數據處理與存儲所需的容量,現在需要擴充存儲器的容量。在應用中要保存一些參數和狀態,本系統選用AT24C128存儲器[8]。電路圖見圖2.9。

圖2.9 外圍擴充存儲電路圖
2.7上拉電阻電路的設計
在主電路圖中接在P0口處有一個排阻RP1,由于P0口沒有內接上拉電阻,為了為P0口外接線路有確定的高電平,所以要接上排阻RP1,以確保有P0口有穩定的電平[11]。電路連接圖見圖2.10。
圖2.10 上拉電阻電路圖
2.8液晶顯示器簡介
我們選用了AMPIRE128X64液晶顯示模塊,是由于本系統要有顯示裝置完成顯示功能,顯示器最好能夠顯示數據、圖形,考慮到同種LCD顯示器的屏幕越大體積越大,功耗越大的特點,該型號顯示器消耗電量比較低,可以滿足系統要求。該類液晶顯示模塊采用動態的液晶驅動,可用5V供電。AMPIRE128X64液晶共有22個引腳[9]。
AMPIRE128X64液晶顯示模塊與計算機的接口電路有兩種方式。分為直接訪問方式和間接控制方式。直接訪問方式是把液晶模塊作為存儲器或I/O設備直接接在單片機的總線上,單片機以訪問存儲器或I/O設備的方式操作液晶顯示模塊的工作。間接控制方式則不使用單片機的數據系統,而是利用它的I/O口來實與顯示模塊的聯系。即將液晶顯示模塊的數據線與單片機的Pl口連接作為數據總線,另外三根時序控制信號線通常利用單片機的P3口中未被使用的I/O口來控制。這種訪問方式不占用存儲器空間,它的接口電路與時序無關,其時序完全靠軟件編程實現。本系統采用間接控制方式[14]。液晶顯示電路連接原理圖見圖下:
圖2.11 液晶顯示器電路圖
2.9報警電路的設計
圖2.12 報警電路接線圖
報警信號通常有三種類型:一是閃光報警,因為閃動的指示燈更能提醒人們注意;二是鳴音報警,發出特定的音響,作用于人的聽覺器官,易于引起和加強警覺;三是語音報警,不僅能起到報警作用,還能直接給出警報種類的信息。其中,前兩種報警裝置因硬件結構簡單,軟件編程方便,常常在單片機應用系統中使用;而語音報警雖然警報信息較直接,但硬件成本高,結構較復雜。單頻音報警實現單頻音報警的接口電路比較簡單,其發音元件通常可采用壓電蜂鳴器,當在蜂鳴器兩引腳上加3~15V直流工作電壓,就能產生3kHZ左右的蜂鳴振蕩音響。壓電式蜂鳴器,約需10mA的驅動電流,可在某端口接上一只三極管和電阻組成的驅動電路來驅動,如圖2.12所示。在圖2.12中,P1.0接三極管基極輸入端,當P1.0輸出高電平“1”時,三極管導通,蜂鳴器的通電而發音,當P1.0輸出低電平“0”時,三極管截止,蜂鳴器停止發音[12]。
第3章 CO檢測系統軟件設計
3.1軟件設計結構
軟件設計部分主要包括:主程序/子程序流程的設計、功能模塊程序的編寫、軟/硬件結合調試與演示。主要包括以下功能模塊:51驅動、檢測、液晶顯示、時鐘、鍵盤、模數軟換[10],軟件結構框圖3.1。
圖3.1 軟件結構框圖
3.2主程序模塊的設計
主程序實現的功能:與硬件相結合實現便攜式一氧化碳檢測儀的各個功能。主要是檢測與顯示,時間調整與顯示,數據存儲,功能子函數的調用,見圖3.2。
檢測主程序程序見附錄A2。

圖3.2 主程序流程圖
3.3模數轉換的設計
ADC0832轉換的流程圖見下圖3.3;
ADC0832程序見附錄A3。

圖3.3 數轉換流程圖
3.4按鍵模塊的設計和時鐘模塊的設計
按鍵查詢式的流程圖見下圖,按鍵程序見附錄A4。
圖3.4 按鍵查詢式的流程圖
時鐘模塊操作流程圖見下圖,時鐘程序見附錄A5。
圖3.5 時鐘模塊操作流程圖
3.5液晶顯示模塊的設計
LCD模塊在本系統中主要起著開界面漢字顯示,以及各控制效果的顯示。采用直接訪問方式。液晶顯示的操作流程圖見下圖3.6,液晶程序見附錄A6。
圖3.6 液晶顯示的操作流程圖
4.1總體系統調試
4.1.1軟件調試
打開keil軟件,打開程序,檢查后單擊編譯按鍵,如果未發現錯誤和警告則說明程序能夠正常運行。
編譯結果如圖所示:
圖4.1 軟件編譯結果圖
所以程序能夠正常運行。
4.1.2 軟件下載
通過串口將電腦中已經編寫好的程序傳輸入51單片機中,打開電源,檢查各模塊是否正常工作。
首先將STC_ISP_V483這個串口通信軟件打開,選擇打開程序文件選項,找到需要錄入單片機的hex文件,選擇下載選項,點擊后給單片機上電復位,等待信息框中顯示已下載成功,說明程序已經錄入單片機。接下來首先通過按鍵選擇工作模式,然后根據傳感器模塊的類型將相應的氣體放置在傳感器探頭附近,等待聲光報警模塊工作,當報警模塊工作后,通過按下外部中斷按鍵選擇報警模式,按一下則led二極管關閉,按第二下則蜂鳴器關閉,按第三下則led和蜂鳴器都打開。將三個傳感器模塊都檢查完畢后,按下復位鍵,并關閉電源。通過監測總體系統能夠正常工作。
4.2 實物展示
焊接成品如下圖4.2所示:
4.2 焊接成品圖
在焊接過程中,本設計采用萬能板來焊接,同時外接電源采用的是USB供電。
接通電源初始圖如4.3所示 :
4.3 接通電源初始圖
在電源剛接通時,液晶屏顯示當前CO濃度為000 PM,設置的界限值為100 PM,風扇處于未轉動狀態,發光二極管未亮并且蜂鳴器不報警。
系統工作時如圖4.4所示:

4.4 工作實物圖
當CO傳感器檢測到的CO濃度大于國家標準值100ppm時,蜂鳴器報警同時紅色指示燈發光、風扇轉動。
結論
本次設計的任務是設計制作CO濃度檢測報警器,設計中使用了低電壓、高性能CMOS8位微處理器STC89C52 單片機作為控制核心,總體電路具有運行速度快,穩定,結構簡單,散熱迅速等特點,采用模塊化設計,這樣不僅有利于系統硬件的設計和調試,同時也方便對系統進行更改和系統硬件的升級。CO/CF-1000氣體傳感器模塊的特點在于其簡易性和高效性,由于其輸出口在監測到有害氣體時直接輸出低電平,這樣就免去了從氣體傳感器上采集信號,這樣硬件設計更加簡潔,所需的器件也更加易于購買,硬件出錯率也就更小,更加符合本設計的目的。
本次設計涉及到的知識面較多,由于本人理論水平和實踐經驗有限,本次設計還存在一些有待改進和優化的地方,比如在檢測氣體種類上可以增加對煙霧、NO等方面。在實用性方面可以考慮將濃度監測系統與室內換氣系統連接,這樣就不僅做到了氣體監測和警報,還做到了對有害氣體及時處理,使整個室內監控系統更加完善。