【正文】
} } } 主要子函數(shù): void time0_int() { TMOD=0X22。 time=showmenu2()。 DigitalData=GetResult()。 alarm=0。本系統(tǒng)作為二氧化碳播報系統(tǒng),建立了基本架構,根據(jù)不同場合需求可以對不同的功能模塊加以改善從而達到要求。而語音芯片則是先實現(xiàn)按鍵播放錄音,然后實現(xiàn) SPI控制的錄放音,最后實現(xiàn)分段播錄功能 的實現(xiàn)。在系統(tǒng)中對LCD 的應用較為簡單,僅是現(xiàn)實字符串。盡管本身功能不是強大,但具有很強的靈活型,根據(jù)不同的需求來配合外部電路來實行控制。 在顯示濃度時,按下語音播放鍵,可以對濃度進行語音播報。 由于傳感器正常輸出信號需要預熱一個小時,系統(tǒng)在一個小時候才能正常測量。 還有要注意的是,當使用 SPI 模式不按 照嚴格要求進行錄音的時候,按鍵模式無效,此時不能通過按鍵來判斷芯片是否正常。所以想到如果可以將這個顯示的內容看做一個整體的字符串,而其中的數(shù)字可以動態(tài)改變就可以了。放大電路放大倍數(shù)產(chǎn)生的誤差也是主要要考慮的。 ADC0809 和語音電路調試 檢測 ADC0809 首先要檢測 ADC0809 的時鐘是否正確。 單片機硬件電路檢測 單片機最小系統(tǒng)檢測主要是檢測單片機是否能正常啟動。前期的電路特性檢查必須十分耐心,硬件電路的細小問題都可能對軟件的工作是否正常產(chǎn)生影響。在 0x010~ 0x013 存放讀音“ 0” ,以此類推“ 9”存放在 0x034~ 0x034,“萬”存放在 0x038~ 0x03B,“十”存放在0x044~ 0x047。 具體的功能實現(xiàn)播報數(shù)據(jù)中要實現(xiàn)對數(shù)字的動態(tài)播報。 本系統(tǒng)中對語音芯片主要通過 SPI 模式進行控制,實現(xiàn)語音播報。 DigitalData=(534DigitalData)/65。 } ㈢ 字符串 處理程序: DigitalData=GetResult()。str[j]!=39。 WriteCode(0x80)。 液晶顯示程序 顯示采用 LCD1602 模塊。 AD0809_ST=1。控制 ADC0809 要按照其時序進行。 (3)建立正確的數(shù)學模型。在 7腳和地之間接上一個 10U的電容能濾除噪聲。 本系統(tǒng)中單片機通過 SPI模式控制語音芯片。改系列芯片提供多種功能而且音質較好。 第 5腳: RW為讀寫信號線,高電平 (1)時進行讀操作,低電平 (0)時進行寫操作。 按鍵與接口連接如圖 。 基于以上功能設置鍵盤按鍵的功能。 AT89S52具有 P0、 P P P3四個 I/O口。三態(tài)輸出鎖器用于鎖存 A/D轉換完的數(shù)字量,當 OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉換完的數(shù)據(jù) 。運放 6腳輸出電壓接ADC0809模擬輸入端。 1 腳和 6 腳的電壓滿足式( 2— 1)。 5%; 圖 MS4100 二氧化碳傳感器 輸出電壓與氣體濃度關系曲線,以及內部原理可見圖 和圖 所示。且電化學式的 CO2 傳感器還存在著必須在電解質溶液中使用的缺點。傳感器的性能直接決定后續(xù)電路的設計以及整個系統(tǒng)設計的難度。按鍵向單片機提供控制信號, 控制單片機實現(xiàn)報警濃度設置功能。 語音播報 單片機控制語音芯片來進行語音播報。 本系統(tǒng)基于 AT89S52 單片機,實現(xiàn)對于室內二氧化碳的濃度測量及及時播報。 本文中設計的系統(tǒng),正是針對人群密集公共場所對二氧化碳濃度測量需求而設計。因此在人群比較密集的地方,二氧化碳含量是一個非常重要的參數(shù),直接關系到人體舒適度和安全。 引言 我們的地球被一層大氣包圍著,其中氧氣占 21%, 78%是氮氣, 1%是其它氣體。達到 20%,人就會在幾秒內死亡。這使得設計一個二氧化碳濃度測量系統(tǒng)在技術層面上的難度逐漸降低。 系統(tǒng)需求分析: 系統(tǒng)需求分析主要是通過系統(tǒng)要求實現(xiàn)的功能對各個模塊部分應該所具備的功能進行分析。 顯示部分 因為有不同的設置功能要實現(xiàn),用 LCD 顯示比較方便,可以切換不同設置界面和二氧化碳濃度顯示界面。再通過單片機控制 液晶顯示濃度值,并控制語音芯片進通過揚聲器進行語音播報。 傳感器選擇及信號采集部分 ⑴ 傳感器選擇及其性能 測量二氧化碳濃度,傳感器的選 擇十分重要。電化學式及熱傳導式的 CO2 傳感器雖然體積小,但是其精度、穩(wěn)定性及對氣體的選擇性都不太理想。 % 功耗:至少 800mW 輸出電勢: 430~ 540mV(0ppm CO2) 準確性 : 177。當加熱器加熱到一定溫度時,電解質部分才能和空氣中的二氧化碳產(chǎn)生反應,此時 1 腳和 6 腳產(chǎn)生電動勢。 放大電路設計如下: 圖 差分放大電路 若設 1腳輸出電壓為 ,6腳輸出電壓為 ,放大電路輸出電壓為 ,運放正極電壓 ,運放負極電壓,則根據(jù)虛短和虛斷概念有: (vi1vn)/R4=(vnvo)/R5 ( 2— 3) (vi2vp)/R1=vp/R2 ( 2— 4) 當 R4/R1=R3/R2時, Vo=R4*(vi2vi1)/R1 ( 2— 5) 本電路要放大信號十倍,所以 R R3取 20k, R R2取 2k。多路開關可選通 8個模擬通道,允許 8路模擬量分時輸入,共用 A/D轉換器進行轉換。 本系統(tǒng)主 要通過 IO 口來控制個部分電路以及接受信號, 32位 I/O 口控制線足以滿足系統(tǒng)功能需求。 ⑴ 啟動語音播報; ⑵ 進入播報定時時間設置菜單; ⑶ 修改時間; ⑷ 進入報警限值設置菜單; ⑸ 修改報警數(shù)值。硬件功能的設計要根據(jù)具體功能需要,而不是全部都是標準設置。 第 4腳: RS為寄存器選擇,高電平 1時選擇數(shù)據(jù)寄存器、低電平 0時選擇指令寄存器。 本系統(tǒng)選擇了 ISD1720語音芯片,是華邦公司新推出的 ISD1700系列芯片中的一種。 而語音芯片的外圍電路比較簡單,僅需一些電阻、電容,電容主要是起到 濾波的作用。為了使喇叭發(fā)出的聲音柔和動聽,要在 5腳和地之間接上一個 10歐的電阻。既便于調試、鏈接,又便于移植、修正。 程序主流程如圖 . 是 是 是 是 是 否 否 否 否 否 圖 系統(tǒng)主程序流程圖 系統(tǒng)初始化 啟動 AD0809 語音播報 液晶顯示 二氧化碳濃度 數(shù)據(jù)處理 設置報警時間限值 顯示設置報警限 菜單 設置時間 顯示時間設置菜單 設置菜單按鍵是否按下 播報鍵 是否按下 數(shù)模轉化 是否結束 設置菜單按鍵是否按下 設置菜單按鍵是否按下 開始 是 否 ADC0809 程序設計 ADC0809 是典型的逐次比較 A/D 轉換器,通常都是以二進制碼輸出的 ,數(shù)據(jù)的輸出符合微處理器數(shù)據(jù)總線的要求。 delay_ms(10)。 DigitalData保存所得數(shù)據(jù)提供單片機處理。 圖 液晶顯示流程圖 各部分主要程序如下: ㈠ 液晶初始化程序如下: void LCD_init(void) { delay(10)。 for(j=0。 WriteData(z)。 DigitalData=DigitalData*100。從 0x010 地址開始,才是非保留的存儲區(qū)域,即真正的錄音區(qū),最高地址為 0x09F。 SR0 第一個字節(jié)的 0為與 SR1 的 0位用來判斷上條命令是否正確執(zhí)行及執(zhí)行完畢。 。硬件調試主要是對制版的電 氣特性進行檢測,逐個排查電路布線問題,使器件在能正常工作。 第三,安裝芯片分模塊檢測電路是否正常,這時先檢測單片機是否正常工作,然后通過單片機向各模塊發(fā)送一些簡單命令測試模塊是否能正常工作。 開始測試 沒有看到字符,就是因為對比度調節(jié)不合適。將差分輸入端同時接地,然后調整調零電阻,看是否能調零。開始曾想過,整個顯示內容分段顯示,數(shù)字單獨顯示,發(fā)現(xiàn)程序比較繁瑣。調試初期,沒有加入判斷語句,導致分段播放混亂。 以上調試經(jīng)過以后可以,進行系統(tǒng)整體測試。其他兩個按鍵可以對數(shù)值進行增減設置。由于其本身沒有像類似凌陽單片機集成其他多種功能,在組建系統(tǒng)時只能起到中心控制器的作用,其他功能需要依靠其他芯片來組建相應的功能電路。 液晶 LCD1602 雖然不能顯示漢字,但已經(jīng)可以滿足系統(tǒng)要求。液晶的功能實現(xiàn)先由實現(xiàn)顯示字符串內容開始,然后實現(xiàn)顯示內容的切換,在實現(xiàn)現(xiàn)實內容的變動。從制作工藝上來看,布線還有待提高, 有些進一步完善;從功能上看,由于室內測量的精度要求不是是特別高,所以本系統(tǒng)對傳感器的信號處理的精度不是很高,如果要具有更廣泛的應用,信號的處理部分要加以改善。 delay(10)。 AD0809_OE=1。 alarm=showmenu1()。 SetPLAY(0x00,0x80,0x00,0x8F)。 } //****************定時中斷程序 **********888 void Timer0_Overflow() interrupt 1 using 0 { ET0=0。 SetPLAY(0x00,0x70,0x00,0x7F)。 sum=alarm。alarm=100+sum。 } sprintf(string1,%d ppm,alarm)。 LCD_Showstring(0,string1) 。sum=time。 LCD_Showstring(1,string1) 。buffer[i]!=39。 case 1:SetPLAY(0x00,0x47,0x00,0x4C)。 if(num10000) i=0。t appealed against the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any pensation awarded to you as a result of your failure to appeal. Remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are plaining about happened. If your application is received after this time limit, the tribunal will not usually accept i. If you are worried about how the time limits apply to you, take advice from one of the anisations listed under Further help. Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation. Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the anisations listed under Further help. If you are being represented by a solicitor at the t