freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于at89s51單片機酒精濃度探測儀(編輯修改稿)

2024-07-23 13:16 本頁面
 

【文章內(nèi)容簡介】 復位和外部脈沖復位三種方式,本設(shè)計選用按鍵電平復位方式。如圖7所示,10μF的電容C3與270Ω的電阻并聯(lián)后再與一個10KΩ的電阻串聯(lián),電容的正極端接到電源的正極,電容的另一端接至引腳RST。,但復位鍵按下后,電容和電阻選用的參數(shù)值能夠保證給復位端RST提供大于2個機器周期的高電平復位信號[10]。圖7 AT89S51單片機最小系統(tǒng)設(shè)計電路ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖8所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、三態(tài)輸出鎖存器等其它一些電路組成。因此,ADC0808可處理8路模擬量輸入,且有三態(tài)輸出能力,既可與各種微處理器相連,也可單獨工作。輸入輸出與TTL兼容。 圖8 ADC0808內(nèi)部結(jié)構(gòu) 由于在Proteus仿真軟件中找不到ADC0809芯片,所以在仿真時只能用ADC0808芯片來代替,但其工功能和原理是一樣的。ADC0808芯片有28條引腳,采用雙列直插式封裝,如圖9所示。下面說明各引腳功能。 圖9 ADC0808芯片IN0~IN7:8路模擬量輸入端?!? 21~28:8位數(shù)字量輸出端?! DDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。如表1所示。ALE:地址鎖存允許信號,輸入,高電平有效。   START:A/D轉(zhuǎn)換啟動信號,輸入,高電平有效。   EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。   OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量?! LK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。   REF(+)、REF():基準電壓。   Vcc:電源,單一+5V。   GND:地。   ADC0808的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。當檢測到酒精氣味時,氣體傳感器的AB間電阻變小,則ADC0808的模擬輸入端IN0的電壓變大。采用查詢方式對輸入模擬信號進行A/D轉(zhuǎn)換,然后將數(shù)據(jù)通過三位八段數(shù)碼管顯示。表1 ADC0808通道地址ADDC ADDB ADDA 選通通道0 0 0IN00 0 1IN10 1 0IN20 1 1IN31 0 0IN41 0 1IN51 1 0IN61 1 1IN7ADC0808芯片內(nèi)部沒有時鐘脈沖源,可以用單片機提供的地址鎖存控制輸入信號ALE經(jīng)74ls74二分頻后,作為 ADC0808的時鐘輸入。ALE端信號的頻率是單片機時鐘頻率的1/6。,,符合ADC0808對時鐘頻率的要求。由于ADC0808具有三態(tài)輸出數(shù)據(jù)瑣存器,其8位數(shù)據(jù)輸出端可以直接與數(shù)據(jù)總線相連。地址選通端ADDA,ADDB,ADDC分別與單片機地址總線的低三位A0,A1,A2相連,用于選通IN0IN7中的某一通道。由于ALE和START連在一起,ADC0808在鎖存通道地址的同時啟動A/D轉(zhuǎn)換。在讀取A/D轉(zhuǎn)換結(jié)果時,OE產(chǎn)生的正脈沖信號用于打開三態(tài)輸出鎖存器。,作為A/D轉(zhuǎn)換是否結(jié)束的狀態(tài)信號供單片機查詢。ADC0808與AT89S51單片機的接口電路如圖10所示[11]。,用于對模數(shù)轉(zhuǎn)換芯片寫入數(shù)據(jù)的寫信號。,作為單片機讀取模數(shù)轉(zhuǎn)換數(shù)據(jù)的讀信號。,用于單片機對模數(shù)轉(zhuǎn)換是否結(jié)束的查詢,為單片機讀取數(shù)據(jù)作準備。單片機的ALE端口接到D觸發(fā)器的時鐘信號輸入端CK,D觸發(fā)器的反相輸出端與觸發(fā)信號輸入端用導線相連,D觸發(fā)器的清零和復位端為低電平有效,分別接高電平,D觸發(fā)器的正向輸出端與模數(shù)轉(zhuǎn)換芯片的CLK端子用導線相連接,為模數(shù)轉(zhuǎn)換芯片提供正常的時鐘信號。把模數(shù)轉(zhuǎn)換芯片的A2﹑A1﹑A0端分別用導線連接到地址鎖存器的低三位,用于選擇模數(shù)轉(zhuǎn)換的通道。模數(shù)轉(zhuǎn)換芯片的IN0端子用導線與信號采樣部分的負載電阻端相連,作為要模數(shù)轉(zhuǎn)換的輸入端。-﹑D1﹑D2﹑D3﹑D4﹑D5﹑D6﹑D7端,用于讀取模數(shù)轉(zhuǎn)換后的數(shù)據(jù)。-,用于鎖存選擇模數(shù)轉(zhuǎn)換通道的地址。圖10 ADC0809與單片機AT89S51接口電路 數(shù)碼管顯示電路數(shù)碼管是由若干發(fā)光二極管組合而成的,有共陰極和共陽極兩種結(jié)構(gòu)形。﹑b﹑c﹑d﹑e﹑f﹑g及dp(小數(shù)點),并通過控制各個LED的亮滅來顯示數(shù)字,如圖11所示。圖11 四位數(shù)共陽碼管結(jié)構(gòu)圖用單片機驅(qū)動數(shù)碼管有靜態(tài)顯示和動態(tài)顯示,靜態(tài)顯示就是顯示驅(qū)動電路具有輸出鎖存功能,單片機將所要顯示的數(shù)據(jù)送出后就可以驅(qū)動數(shù)碼管顯示數(shù)據(jù),直到下一次顯示數(shù)據(jù)需要更新時再傳送一次新的數(shù)據(jù)就可以了。靜態(tài)顯示數(shù)據(jù)穩(wěn)定,占用CPU時間少。動態(tài)顯示需要時刻對顯示器件進行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時間多。這兩種顯示方式各有利弊;靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU 時間,但每個顯示單元都需要單獨的顯示驅(qū)動電路,使用的硬件較多;動態(tài)顯示雖然有閃爍感,占用的CPU時間多,但使用的硬件少,能節(jié)省線路板空間。設(shè)計選用一個四位共陽數(shù)碼管來顯示輸出的數(shù)據(jù),因為電路硬件相對較簡單,所以選擇靜態(tài)顯示方法。選用1個74ls47驅(qū)動數(shù)碼管發(fā)光點亮。電路連接如圖14所示。移位寄存器在電路中一是驅(qū)動數(shù)碼管點亮,二是對輸入的串行數(shù)據(jù)并行輸出,起到串并轉(zhuǎn)換的作用。移位寄存器74LS164串行數(shù)據(jù)輸入端與前一位的并行輸出最高位相連。,該引腳與三個移位寄存器的時鐘輸入端CLK相連。因為每位數(shù)據(jù)串行輸出先輸出的是低位,所以數(shù)碼管引腳a、b、c、d、e、f、g、dg應(yīng)順序與對應(yīng)位的移位寄存器并行輸出端的QQQQQQQQ0連接。圖14 數(shù)碼管顯示電路 系統(tǒng)整體電路圖信號采樣模塊電路的輸出接到發(fā)光二極管顯示LM3914的輸入端,同時也將采樣信號輸出端接至A/D轉(zhuǎn)換芯片的輸入端,再加上單片機最小系統(tǒng)電路、單片機與模數(shù)轉(zhuǎn)換芯片的連接和單片機與數(shù)碼管顯示的連接,即可作出它的整體電路圖,如圖15所示。圖15 整體電路圖3 軟件編程 開發(fā)環(huán)境選用的開發(fā)平臺為MedWin單片機集成開發(fā)環(huán)境,只需在PC機上安裝MedWin軟件,然后在MedWin軟件代碼編輯器編輯程序代碼,經(jīng)匯編,修改,產(chǎn)生代碼。打開Microcontrmller ISP Software,在菜單options選項中選擇select device,在彈出的窗口中選擇器件AT89S51,并選Byte Mode點擊OK。初始化器件后。對于8051系列單片機,現(xiàn)有四種語言支持,即匯編、PL/M、C和BASIC。本設(shè)計軟件編程部分選用匯編語言來寫程序代碼。 程序流程當檢測到酒精氣味時,氣體傳感器MQ3兩個電極端AB間電阻將變小,對應(yīng)與氣體傳感器負載電阻的分壓將變大。因為ADC0809的模擬輸入端IN0與負載電阻的一端用導線連在了一起。所以單片機在啟動測試模數(shù)轉(zhuǎn)換芯片之前要選擇通道0,寫入模數(shù)轉(zhuǎn)換芯片,然后啟動對通道IN0端輸入的采集電壓信號作模數(shù)轉(zhuǎn)換,等待轉(zhuǎn)換的結(jié)束。利用單片機豐富的I/O口可以采用查詢方式來檢測模數(shù)轉(zhuǎn)換是否結(jié)束,,可以開始讀取數(shù)據(jù)了。單片機通過I/O口與模數(shù)轉(zhuǎn)換芯片的數(shù)據(jù)輸出口相連讀取轉(zhuǎn)換后的數(shù)據(jù)。讀取后的數(shù)據(jù)送到數(shù)據(jù)存儲器單元中,經(jīng)過單片機作相應(yīng)的處理,即要將該電壓值轉(zhuǎn)換為酒精濃度值,然后處理后的數(shù)據(jù)轉(zhuǎn)換成三位十進制BCD碼用數(shù)碼管顯示。程序流程圖如圖16所示。單片機選擇A/D通道地址A/D轉(zhuǎn)換結(jié)束?=1?數(shù)碼管顯示NY單片機初始化開始單片機讀取數(shù)據(jù)并作處理圖16 程序流程圖 程序代碼編寫系統(tǒng)電源線接通或者系統(tǒng)復位后,程序從主程序入口進入運行。因為在程序中每次對模數(shù)轉(zhuǎn)換后讀取的數(shù)據(jù),需要相應(yīng)的存儲空間,同時對讀取的數(shù)據(jù)作適當處理后也要送到特定的存儲空間存儲起來,以供后面的數(shù)碼管顯示用。當然,在程序運行的過程當中,還要用到工作寄存器,因為工作寄存器都是臨時存儲數(shù)據(jù),不需要保存作為以后處理要用到的數(shù)據(jù),所以工作寄存器的初始化這部分可以省去。于是,對于程序的初始化程序代碼可以相應(yīng)寫出[13]。START:MOV R7,60HMOV R0,20HCLR ALOOP:MOV @R0,AINC R0DJNZ R7,LOOP初始化程序從數(shù)據(jù)存儲器地址為20H單元開始,到80H單元全部清零。即每次的初始化將上次存儲的數(shù)據(jù)全部清除,用于存放當前要存儲的數(shù)據(jù)。對模擬電壓信號的數(shù)字轉(zhuǎn)換由模數(shù)轉(zhuǎn)換芯片ADC0809加單片機AT89S51控制來完成。模擬電壓的輸入端接在模數(shù)轉(zhuǎn)換芯片的IN0通道,再根據(jù)單片機與模數(shù)轉(zhuǎn)換芯片的連接,單片機在選擇讀寫地址時應(yīng)該為7FF8H。所以單片機在將地址7FF8H寫入模數(shù)轉(zhuǎn)換芯片后,一方面模數(shù)轉(zhuǎn)換芯片鎖存地址選擇線的狀態(tài),從而選通相應(yīng)的模擬通道,同時啟動模數(shù)轉(zhuǎn)換。模數(shù)轉(zhuǎn)換需要一定的時間,這時可以開始對轉(zhuǎn)換是否結(jié)束進行不斷的查詢。ADC0809中模數(shù)轉(zhuǎn)換結(jié)束輸出標志位是EOC,轉(zhuǎn)換結(jié)束時為高電
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1