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

正文內(nèi)容

基于at89s51單片機(jī)酒精濃度探測(cè)儀的設(shè)計(jì)(已改無(wú)錯(cuò)字)

2022-07-24 13:15:03 本頁(yè)面
  

【正文】 ,從而區(qū)分出酒精含量的高低,直觀的看出所測(cè)的酒精濃度達(dá)到了哪個(gè)水平值,起到報(bào)警的作用。輸入靈敏度可以通過(guò)負(fù)載電阻的調(diào)節(jié)來(lái)實(shí)現(xiàn),即對(duì)地電阻調(diào)小時(shí)靈敏度下降;反之,靈敏度增加。改變7腳與8腳之間電阻的阻值可以調(diào)節(jié)發(fā)光二極管的顯示亮度,當(dāng)阻值增加亮度減弱,反之加強(qiáng)。圖12 發(fā)光二極管顯示 數(shù)碼管顯示電路發(fā)光二極管一般是砷化鎵半導(dǎo)體二極管,在發(fā)放光二極管兩端加上正向電壓,則發(fā)光二極管發(fā)光。數(shù)碼管是由若干發(fā)光二極管組合而成的,有共陰極和共陽(yáng)極兩種結(jié)構(gòu)形。8段共陰數(shù)碼管由a﹑b﹑c﹑d﹑e﹑f﹑g、dg這8個(gè)發(fā)光二極管組成。把8個(gè)發(fā)光二極管的陰極連接在一起構(gòu)成共陰極端,接進(jìn)電路時(shí),共陰極端接地,給要發(fā)光顯示的二極管的陽(yáng)極端接高電平可使該發(fā)光二極管導(dǎo)通點(diǎn)亮。如圖13所示。圖13 8段共陰數(shù)碼管結(jié)構(gòu)圖用單片機(jī)驅(qū)動(dòng)數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示,靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就可以驅(qū)動(dòng)數(shù)碼管顯示數(shù)據(jù),直到下一次顯示數(shù)據(jù)需要更新時(shí)再傳送一次新的數(shù)據(jù)就可以了。靜態(tài)顯示數(shù)據(jù)穩(wěn)定,占用CPU時(shí)間少。動(dòng)態(tài)顯示需要時(shí)刻對(duì)顯示器件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時(shí)間多。這兩種顯示方式各有利弊;靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU 時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的硬件較多;動(dòng)態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間多,但使用的硬件少,能節(jié)省線路板空間。設(shè)計(jì)選用3個(gè)單位8段共陰數(shù)碼管來(lái)顯示輸出的數(shù)據(jù),因?yàn)殡娐酚布鄬?duì)較簡(jiǎn)單,所以選擇靜態(tài)顯示方法。選用3個(gè)移位寄存器74LS164驅(qū)動(dòng)數(shù)碼管發(fā)光點(diǎn)亮。電路連接如圖14所示。移位寄存器在電路中一是驅(qū)動(dòng)數(shù)碼管點(diǎn)亮,二是對(duì)輸入的串行數(shù)據(jù)并行輸出,起到串并轉(zhuǎn)換的作用。移位寄存器74LS164串行數(shù)據(jù)輸入端與前一位的并行輸出最高位相連。,該引腳與三個(gè)移位寄存器的時(shí)鐘輸入端CLK相連。因?yàn)槊课粩?shù)據(jù)串行輸出先輸出的是低位,所以數(shù)碼管引腳a、b、c、d、e、f、g、dg應(yīng)順序與對(duì)應(yīng)位的移位寄存器并行輸出端的QQQQQQQQ0連接。圖14 數(shù)碼管顯示電路 系統(tǒng)整體電路圖信號(hào)采樣模塊電路的輸出接到發(fā)光二極管顯示LM3914的輸入端,同時(shí)也將采樣信號(hào)輸出端接至A/D轉(zhuǎn)換芯片的輸入端,再加上單片機(jī)最小系統(tǒng)電路、單片機(jī)與模數(shù)轉(zhuǎn)換芯片的連接和單片機(jī)與數(shù)碼管顯示的連接,即可作出它的整體電路圖,如圖15所示。圖15 整體電路圖3 軟件編程 開(kāi)發(fā)環(huán)境選用的開(kāi)發(fā)平臺(tái)為MedWin單片機(jī)集成開(kāi)發(fā)環(huán)境,只需在PC機(jī)上安裝MedWin軟件,然后在MedWin軟件代碼編輯器編輯程序代碼,經(jīng)匯編,修改,產(chǎn)生代碼。打開(kāi)Microcontrmller ISP Software,在菜單options選項(xiàng)中選擇select device,在彈出的窗口中選擇器件AT89S51,并選Byte Mode點(diǎn)擊OK。初始化器件后。對(duì)于8051系列單片機(jī),現(xiàn)有四種語(yǔ)言支持,即匯編、PL/M、C和BASIC。本設(shè)計(jì)軟件編程部分選用匯編語(yǔ)言來(lái)寫(xiě)程序代碼。 程序流程當(dāng)檢測(cè)到酒精氣味時(shí),氣體傳感器MQ3兩個(gè)電極端AB間電阻將變小,對(duì)應(yīng)與氣體傳感器負(fù)載電阻的分壓將變大。因?yàn)锳DC0809的模擬輸入端IN0與負(fù)載電阻的一端用導(dǎo)線連在了一起。所以單片機(jī)在啟動(dòng)測(cè)試模數(shù)轉(zhuǎn)換芯片之前要選擇通道0,寫(xiě)入模數(shù)轉(zhuǎn)換芯片,然后啟動(dòng)對(duì)通道IN0端輸入的采集電壓信號(hào)作模數(shù)轉(zhuǎn)換,等待轉(zhuǎn)換的結(jié)束。利用單片機(jī)豐富的I/O口可以采用查詢方式來(lái)檢測(cè)模數(shù)轉(zhuǎn)換是否結(jié)束,,可以開(kāi)始讀取數(shù)據(jù)了。單片機(jī)通過(guò)I/O口與模數(shù)轉(zhuǎn)換芯片的數(shù)據(jù)輸出口相連讀取轉(zhuǎn)換后的數(shù)據(jù)。讀取后的數(shù)據(jù)送到數(shù)據(jù)存儲(chǔ)器單元中,經(jīng)過(guò)單片機(jī)作相應(yīng)的處理,即要將該電壓值轉(zhuǎn)換為酒精濃度值,然后處理后的數(shù)據(jù)轉(zhuǎn)換成三位十進(jìn)制BCD碼用數(shù)碼管顯示。程序流程圖如圖16所示。單片機(jī)選擇A/D通道地址A/D轉(zhuǎn)換結(jié)束?=1?數(shù)碼管顯示NY單片機(jī)初始化開(kāi)始單片機(jī)讀取數(shù)據(jù)并作處理圖16 程序流程圖 程序代碼編寫(xiě)系統(tǒng)電源線接通或者系統(tǒng)復(fù)位后,程序從主程序入口進(jìn)入運(yùn)行。因?yàn)樵诔绦蛑忻看螌?duì)模數(shù)轉(zhuǎn)換后讀取的數(shù)據(jù),需要相應(yīng)的存儲(chǔ)空間,同時(shí)對(duì)讀取的數(shù)據(jù)作適當(dāng)處理后也要送到特定的存儲(chǔ)空間存儲(chǔ)起來(lái),以供后面的數(shù)碼管顯示用。當(dāng)然,在程序運(yùn)行的過(guò)程當(dāng)中,還要用到工作寄存器,因?yàn)楣ぷ骷拇嫫鞫际桥R時(shí)存儲(chǔ)數(shù)據(jù),不需要保存作為以后處理要用到的數(shù)據(jù),所以工作寄存器的初始化這部分可以省去。于是,對(duì)于程序的初始化程序代碼可以相應(yīng)寫(xiě)出[13]。START:MOV R7,60HMOV R0,20HCLR ALOOP:MOV @R0,AINC R0DJNZ R7,LOOP初始化程序從數(shù)據(jù)存儲(chǔ)器地址為20H單元開(kāi)始,到80H單元全部清零。即每次的初始化將上次存儲(chǔ)的數(shù)據(jù)全部清除,用于存放當(dāng)前要存儲(chǔ)的數(shù)據(jù)。對(duì)模擬電壓信號(hào)的數(shù)字轉(zhuǎn)換由模數(shù)轉(zhuǎn)換芯片ADC0809加單片機(jī)AT89S51控制來(lái)完成。模擬電壓的輸入端接在模數(shù)轉(zhuǎn)換芯片的IN0通道,再根據(jù)單片機(jī)與模數(shù)轉(zhuǎn)換芯片的連接,單片機(jī)在選擇讀寫(xiě)地址時(shí)應(yīng)該為7FF8H。所以單片機(jī)在將地址7FF8H寫(xiě)入模數(shù)轉(zhuǎn)換芯片后,一方面模數(shù)轉(zhuǎn)換芯片鎖存地址選擇線的狀態(tài),從而選通相應(yīng)的模擬通道,同時(shí)啟動(dòng)模數(shù)轉(zhuǎn)換。模數(shù)轉(zhuǎn)換需要一定的時(shí)間,這時(shí)可以開(kāi)始對(duì)轉(zhuǎn)換是否結(jié)束進(jìn)行不斷的查詢。ADC0809中模數(shù)轉(zhuǎn)換結(jié)束輸出標(biāo)志位是EOC,轉(zhuǎn)換結(jié)束時(shí)為高電平有效。最后將轉(zhuǎn)換后的數(shù)據(jù)讀取到單片機(jī)累加器A中。根據(jù)這思路可以寫(xiě)出模數(shù)轉(zhuǎn)換的子程序代碼。TEST:MOV DPTR,7FF8H SETB MOVX @DPTR,A JB ,$ MOVX A,@DPTR RET把轉(zhuǎn)換后得到的數(shù)字電壓值讀取到單片機(jī)后,因?yàn)?,?shí)際的電壓值范圍在0~+5V之間,而ADC0809模數(shù)轉(zhuǎn)換芯片對(duì)應(yīng)的是8位精度的處理,即從00000000B到11111111B,所以單片機(jī)還要對(duì)它作個(gè)除51的處理工作。而在處理過(guò)程中對(duì)于有些數(shù)據(jù)的處理,可能要碰到雙字節(jié)相除的情況。為此,在第一位單字節(jié)除51后,接下來(lái)的小數(shù)部分位的除51則要作雙字節(jié)的除法,這樣才能保證使所有位能顯示出來(lái)。如果所有位都當(dāng)單字節(jié)除法來(lái)運(yùn)算的話,對(duì)于有些要作雙字節(jié)除法的位上的數(shù)字則無(wú)法顯示,而能是顯示0。相除后對(duì)應(yīng)的每一位分別送到地址為7DH,7EH,7FH的存儲(chǔ)單元保存,以供顯示或后續(xù)處理用。思路明確后,實(shí)際電壓值轉(zhuǎn)換部分程序可以寫(xiě)出來(lái)。MOV B,51DIV ABMOV 7DH,AMOV A,BMOV B,10MUL ABMOV R6,AMOV R7,BACALL DIV16MOV 7EH,R6MOV A,R2MOV B,10MUL ABMOV R6,AMOV R7,BACALL DIV16MOV 7FH,R6經(jīng)過(guò)處理后實(shí)際采樣到的電壓值對(duì)應(yīng)的各個(gè)位就分別存儲(chǔ)在7DH,7EH,7FH三個(gè)存儲(chǔ)單元里面了。模數(shù)轉(zhuǎn)換后得到的數(shù)字電壓量被單片機(jī)讀取后還要作一定的數(shù)據(jù)處理,其中包括把電壓值轉(zhuǎn)換為與之相對(duì)應(yīng)的酒精濃度值,根據(jù)總體設(shè)計(jì)思路,對(duì)電壓值都近似作對(duì)應(yīng)區(qū)間的線性轉(zhuǎn)換。即首先,單片機(jī)要對(duì)采集到的數(shù)據(jù)在哪個(gè)區(qū)間作個(gè)判斷跳轉(zhuǎn),然后再根據(jù)該區(qū)間的線性關(guān)系作轉(zhuǎn)換,得到對(duì)應(yīng)的酒精濃度值。根據(jù)酒精濃度與電壓的線性映射關(guān)系,如表3所示,可以寫(xiě)出該部分的程序代碼MOV B,100MVL ABMOV R6,AMOV R7,BMOV R5,0MOV R4,51ACALL DIV16MOV 70H,R6MOV 71H,R7MOV A,71HJNZ L5L1:MOV 72H,75CLR CMOV A,70HSUBB A,72HJNC L2ACALL PP0AJMP PPL2:MOV 72H,145CLR CMOV A,70HSUBB A,72HJNC L3ACALL PP1AJMP PPL3:MOV 72H,173CLR CMOV A,70HSUBB A,72HJNC L4ACALL PP2AJMP PPL4:MOV 72H,233CLR CMOV A,70HSUBB A,72HJNC L5ACALL PP3AJMP PPL5:MOV 72H,18CLR CMOV A,70HSUBB A,72HJNC L6ACALL PP4AJMP PPL6:MOV 72H,64CLR CMOV A,70HSUBB A,72HJNC L7ACALL PP5AJMP PPL7:MOV 72H,105CLR CMOV A,70HSUBB A,72HJNC L8ACALL PP6AJMP PPL8:ACALL PP7AJMP PP從讀取到的電壓值得到酒精濃度值后,還要把該值轉(zhuǎn)換為3位10進(jìn)制BCD碼,存儲(chǔ)到特定的存儲(chǔ)單元以供數(shù)碼管顯示數(shù)值。數(shù)碼管顯示選用的是靜態(tài)顯示的方法,要在每次顯示數(shù)據(jù)時(shí)把要顯示的3個(gè)位按順序串行送到數(shù)碼管集成驅(qū)動(dòng)電路74LS164并行輸出,以同時(shí)驅(qū)動(dòng)3個(gè)數(shù)碼管同時(shí)點(diǎn)亮。根據(jù)7段數(shù)碼管的字型碼如表2所示和移位寄存器74LS164的邏輯功能,將對(duì)應(yīng)的共陰極字型碼放在一個(gè)表格中,然后通過(guò)查表的方式找到要顯示的數(shù)字送移位寄存器驅(qū)動(dòng)數(shù)碼管顯示。于是可以寫(xiě)出顯示部分的程序代碼。DISP:MOV DPTR,TABMOV A,7FHMOVC A,@A+DPTRACALL SOMOV A,7EHMOVC A,@A+DPTRACALL SOMOV A,7DHMOVC A,@A+DPTRACALL SORETSO:MOV R7,8SO1:CLR RRC A MOV ,C SETB DJNZ R7,SO1 RET表2 七段LED字型碼顯示字符共陰極字型碼共陽(yáng)極字型碼03FHC0H106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90H 程序當(dāng)中為了顯示的精確,在有些位相除時(shí)用到了雙字節(jié)相除的算法。對(duì)于多字節(jié)無(wú)符號(hào)數(shù)的除法,可以依照移位相減的基本方法來(lái)進(jìn)行。除法運(yùn)算是按位進(jìn)行的,每一位是一個(gè)循環(huán),每個(gè)循環(huán)中要作三件事,一是被除數(shù)左移一位,二是余數(shù)減除數(shù),最后根據(jù)是否減來(lái)置商位為1或0。對(duì)于被除數(shù)的移動(dòng),最簡(jiǎn)單的辦法是把被除數(shù)向余數(shù)單元左移,把被除數(shù)左移后空出的低位存放商數(shù),當(dāng)除法完成后,被除數(shù)已全部移動(dòng)到余數(shù)單元并逐次被減而得到余數(shù),而被除數(shù)單元中內(nèi)容已成為商數(shù)。據(jù)此,可以寫(xiě)出雙字節(jié)除法的程序代碼。DIV16:MOV R5,0 MOV R4,51 MOV R3,0 MOV R2,0 MOV R1,16LP1:CLR C MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A MOV A,R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R2 CLR C SUBB A,R4 JC NEXT MOV R0,A MOV A,R3 SUBB A,R5 JC NEXT INC R6 MOV R3,A MOV A,R0 MOV R2,ANEXT:DJNZ R1,LP1RET根據(jù)程序流程圖和各個(gè)子程序的編寫(xiě)可以得到整個(gè)設(shè)計(jì)的總程序代碼,見(jiàn)附錄。打開(kāi)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1