国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用AT89C51實(shí)現(xiàn)模數(shù)轉(zhuǎn)換

用AT89C51實(shí)現(xiàn)模數(shù)轉(zhuǎn)換

作者: 時(shí)間:2011-02-21 來(lái)源:網(wǎng)絡(luò) 收藏

本期教程通過(guò)一個(gè)簡(jiǎn)單的電壓測(cè)量電路,講解AT89C2051片內(nèi)比較器的使用及模數(shù)轉(zhuǎn)換主程序的設(shè)計(jì),說(shuō)明利用RC充電規(guī)律實(shí)現(xiàn)模數(shù)轉(zhuǎn)換,取得被測(cè)電壓近似值的原理。

一、電路構(gòu)成與功能

由圖1可知,本電路主要由AT89C2051(IC1)、R10、C4等組成,被測(cè)電壓從P1.1輸入,電路通過(guò)對(duì)C4充電電壓與被測(cè)電壓的比較得到電壓值,然后將被測(cè)電壓值轉(zhuǎn)換為相應(yīng)的顯示代碼,送LED1、LED2中顯示出來(lái)。

二、AT89C2051簡(jiǎn)介

AT89C2051與AT89C51相比,除去掉了P0口和P2口,并在P1口的P1.0、P1.1與P3口的P3.6之間嵌入了一個(gè)精確的模擬比較器外,其他硬件資源完全相同。AT89C2051具有以下一些標(biāo)準(zhǔn)特性:2K字節(jié)的閃速存儲(chǔ)器,128字節(jié)RAM,15條I/O線,2個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)兩級(jí)中斷源結(jié)構(gòu),一個(gè)全雙工串行口,一個(gè)精確的模擬比較器,片內(nèi)振蕩器和時(shí)鐘電路。此外,AT89C2051設(shè)有靜態(tài)邏輯,可以在低到零頻率的條件下工作,支持兩種軟件可選的省電模式:在閑置模式下,CPU停止工作,但RAM、定時(shí)器/計(jì)數(shù)器、串口和中斷系統(tǒng)仍在工作;在掉電模式下,保存RAM中的內(nèi)容并且凍結(jié)振蕩器,禁止所有其他片內(nèi)控制單元功能,直到下一個(gè)硬件復(fù)位為止。

AT89C2051只有20個(gè)引腳。引腳排列及片內(nèi)比較器連接示意圖見圖2。由圖可知,P1.0與比較器的同相輸入端相接,

P1.1與比較器的反相輸入端相接,比較器的輸出端在片內(nèi)與P3.6相接,而P3.6并無(wú)片外引腳。因此,AT89C2051的P1口有完整的8條I/O口線的片外引腳,而P3口只有7條I/O線的片外引腳,使其可供片外使用的I/O線為15條。AT89C2051性能同AT89C51一樣卓越而結(jié)構(gòu)又十分簡(jiǎn)單,從而為很多嵌入式控制系統(tǒng)提供了靈活而又廉價(jià)的方案,因此,在各種智能化、自動(dòng)化儀器、儀表及家電中得到廣泛應(yīng)用。

三、數(shù)模轉(zhuǎn)換原理

圖3為數(shù)模轉(zhuǎn)換電路的簡(jiǎn)化圖。由圖可知,比較器IC1的同相輸入端P1.0與P1.4之間接有電阻R10,而被測(cè)電壓是通過(guò)P1.1輸入至比較器IC1的反相端,這樣,當(dāng)被測(cè)電壓Ui從P1.1輸入并開始測(cè)量時(shí),先使P1.4置低電位,C4就會(huì)對(duì)地放電,使P1.0的電位為零,由于此時(shí)P1.1的電位高于P1.0的電位(Ui>0),因此,IC1的輸出端P3.6為低電位。進(jìn)入測(cè)量程序,先使P1.4跳高電位,VCC就會(huì)通過(guò)R9、R10向C4充電,P1.0的電位就會(huì)隨時(shí)間按指數(shù)規(guī)律上升。當(dāng)P1.0的電位上升至與P1.1的電位相同或略高一點(diǎn)時(shí),IC1的輸出端P3.6就會(huì)由低電位跳變?yōu)楦唠娢?,由此,我們可用程序控制CPU在C4充電的同時(shí),不間斷檢測(cè)P3.6的電位,當(dāng)P3.6電位發(fā)生高跳時(shí),我們就認(rèn)為P1.0的電壓與P1.1的電壓相等。由于C4的充電電壓是可以通過(guò)充電時(shí)間的長(zhǎng)短來(lái)準(zhǔn)確計(jì)算的,所以,計(jì)算出C4的充電壓,也就間接地測(cè)出了被測(cè)電壓Ui的值。VCC通過(guò)R10(R9和P1.4上拉電阻的影響忽略)向C4充電,C4兩端的電壓是隨時(shí)間按指數(shù)規(guī)律上升的,可根據(jù)UC=VCC(1-e-t/RC)求出任一時(shí)刻的充電電壓值。為了便于理解,我們只在圖4所示的充電曲線中選取一小段,將其取直,然后按直線變化規(guī)律對(duì)模數(shù)轉(zhuǎn)換原理加以闡述。由圖4可以看出,C4充電曲線的起始部分0~500mV這一段是較陡的,且接近直線,為了使程序設(shè)計(jì)簡(jiǎn)單,我們就把OA段看做是直線。這樣,當(dāng)C4自零電位開始充電到充電電壓達(dá)500mV的這段時(shí)間里,充電時(shí)間與其兩端的電壓是成正比的,我們適當(dāng)?shù)貙?duì)R10和C4取值,使C4的充電電壓每20μs上升10mV,再編制與之相匹配的程序,自C4開始充電起,每隔20μs就檢測(cè)一次P3.6的電位,并將檢測(cè)的次數(shù)在寄存器中累計(jì)下來(lái),直到P3.6的電位發(fā)生跳變才停止累計(jì)。這樣,寄存器中的累計(jì)數(shù)便與C4兩端的充電電壓有了對(duì)應(yīng)關(guān)系。如果第5次檢測(cè)時(shí),P3.6的電位由低跳高,說(shuō)明被測(cè)電壓是50mV。這樣,我們測(cè)到P3.6電位跳高后,就停止檢測(cè),將寄存器中的數(shù)值乘以10mV,就得到了被測(cè)電壓Ui的電壓值,這就實(shí)現(xiàn)了模量與數(shù)量的轉(zhuǎn)換。

四、顯示原理

在圖1中,LED1與LED2的a、b、c、d、e、f、g端分別與IC1P3口的P3.0至P3.7相接(P3.6除外),GND端分別與IC1的P1.2和P1.3相接。顯示時(shí),將段選碼送P3口,將位選碼送P1口,測(cè)量值就會(huì)在LED1和LED2中顯示出來(lái)。有關(guān)原理及變換過(guò)程,前幾講中已有詳述。

五、程序設(shè)計(jì)思想

系統(tǒng)上電后進(jìn)行初始化,熄滅數(shù)碼管LED1和LED2,然后進(jìn)入測(cè)量子程序:執(zhí)行CLR P1.4,使P1.4呈低電位,C4便通過(guò)R10對(duì)地放電,調(diào)用40ms顯示子程序后,C4電荷放盡,P1.0的電位為零,執(zhí)行MOV R0,#00H,將檢測(cè)次數(shù)累計(jì)寄存器R0清零,然后執(zhí)行SETB P1.4, 使P1.4呈高電位,VCC通過(guò)R10對(duì)C4充電,經(jīng)數(shù)次空操作,執(zhí)行INC R0指令,將R0中的內(nèi)容加1,再執(zhí)行JNB P3.6,000FH,判斷充電電壓與被測(cè)電壓是否相等。如果P3.6電位為低,說(shuō)明C4的充電電壓較被測(cè)電壓低,程序跳轉(zhuǎn)至000F處,經(jīng)空操作充電延時(shí)后再對(duì)P3.6的電位進(jìn)行檢測(cè);如果P3.6的電位為高,說(shuō)明P1.0的電壓與P1.1的電壓相等,執(zhí)行SJMP 0006H,程序立刻返回0006處,使C4放電,并進(jìn)入顯示子程序,對(duì)測(cè)量數(shù)據(jù)進(jìn)行處理,將處理后的數(shù)據(jù)送數(shù)碼管顯示,然后進(jìn)行下一次測(cè)量。從程序清單中的000FH至0018H空間可以看出,6次空操作及INC R0為單機(jī)器周期指令,執(zhí)行時(shí)間皆為2μs,而JNB P3.6,000FH為雙機(jī)器周期指令,執(zhí)行時(shí)間為4μs,這樣,便使每次對(duì)P3.6的檢測(cè)時(shí)間間隔為18μs。按圖1電路中R10及C4的取值運(yùn)行上述程序,能使每檢測(cè)一次P3.6的電位,C4充電電壓的上升約10mV。然后進(jìn)入顯示子程序,將R0中的數(shù)據(jù)經(jīng)變換后送LED中顯示出來(lái),我們就可讀出被測(cè)電壓Ui的值了。模數(shù)轉(zhuǎn)換主程序安放在0000H至001AH空間內(nèi),數(shù)據(jù)顯示子程序要在001BH處開始安放。顯示子程序的主要功能是將數(shù)據(jù)經(jīng)譯碼后得到顯示代碼,其原理不再贅述。如果對(duì)模數(shù)轉(zhuǎn)換有較高的精度要求,就要事先根據(jù)UC=VCC(1-e-t/RC)計(jì)算出多個(gè)時(shí)刻的對(duì)應(yīng)值,這樣,組成充電時(shí)間與充電電壓值的對(duì)應(yīng)數(shù)據(jù)表,然后編一段程序,將充電時(shí)間,也就是寄存器R0中的數(shù)據(jù)取出來(lái),經(jīng)查表比較,取得較精確的充電電壓數(shù)值,本文旨在說(shuō)明一下模數(shù)轉(zhuǎn)換的基本原理,對(duì)此不作詳述。

六、主程序清單

地址 機(jī)器碼 指令 解釋

0000 75B000 MOV P3,#00H ; 初始化

0003 7590EF MOV P1, #EFH ; 關(guān)顯示

0006 C294 CLR P1.4 ; 放電

0008 12001B LCALL 001B ; 調(diào)40ms顯示子程序

000B 7800 MOV R0,#00H ; 清累計(jì)寄存器

000D D294 SETB P1.4 ; 開始充電

000F 00 NOP ; 空操作延時(shí)

0010 00 NOP ;

0011 00 NOP ;

0012 00 NOP ;

0013 00 NOP ;

0014 00 NOP ;

0015 08 INC R0 ; 累計(jì)檢測(cè)次數(shù)

0016 30B6F6 JNB P3.6,000FH; 低于Ui,再充電比較

0019 80EB SJMP 0006H ; 返回進(jìn)行下次測(cè)量

 

比較器相關(guān)文章:比較器工作原理




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉