新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 廉價(jià)實(shí)用的雙積分A/D轉(zhuǎn)換器

        廉價(jià)實(shí)用的雙積分A/D轉(zhuǎn)換器

        作者: 時(shí)間:2009-10-19 來源:網(wǎng)絡(luò) 收藏
        1原理

          51系列單片機(jī)具有兩個(gè)以上16位雙通道定時(shí)器(TIME0和TIME1),每個(gè)通道可選擇為輸入捕獲方式來測(cè)量脈寬。我們用片內(nèi)16位的定時(shí)器外接運(yùn)放、比較器實(shí)現(xiàn)雙轉(zhuǎn)換。原理圖如圖1所示(電源和5l單片機(jī)外圍電路同常規(guī)電路),TL082是JFETINPUT運(yùn)放;LM358作為比較器;MC4066是多路開關(guān)。51單片機(jī)P1口的P10、P11、P12作為輸出,控制MC4066多路開關(guān)的輸入選擇;INT0作為中斷輸入口,捕捉LM358比較器的輸出電平跳變。C1為電容,常取0.22μF左右的聚丙烯電容,R2為電阻,可取500k左右,U2A為積分運(yùn)放,U2A、C1、R2構(gòu)成了積分器,U2B是過零檢測(cè)運(yùn)放。VIN為輸入電壓,VREF為基準(zhǔn)電壓,AGND為的參考零點(diǎn)。VREF和參考零點(diǎn)以R9、R10、R11分壓產(chǎn)生。

        本文引用地址:http://www.104case.com/article/173587.htm

          測(cè)量前,TK3=1、TK2=0、TK1=0,打開U1C、U1D模擬開關(guān),使積分器輸入等于AGND,進(jìn)入調(diào)零階段,第一次啟動(dòng)轉(zhuǎn)換的時(shí)間為300ms;啟動(dòng)以后調(diào)零時(shí)間為40ms。開始轉(zhuǎn)換時(shí),TK3=0、TK2=0、TK1=1,積分器輸入接至輸入電壓,使VIN通過積分電阻R2向C1充電,設(shè)積分時(shí)間為T。然后,將TK3=0、TK2=1、TK1=0,即積分器輸入接至基準(zhǔn)電壓VREF,電容C1開始通過R2向VREF逆向放電。當(dāng)運(yùn)放的輸出低于C2電容電壓時(shí),比較器輸出反轉(zhuǎn)。然后,TK3=1、TK2=0、TK1=0,打開U1C、U1D模擬開關(guān),又進(jìn)入調(diào)零階段。設(shè)逆向充電的時(shí)間為t,則有

          上式中VIN是被測(cè)電壓,T是正向積分時(shí)間,t是反向積分時(shí)間,VREF是基準(zhǔn)參考電壓,AGND是的參考零點(diǎn)。積分器輸出波形如圖2所示。

        2軟件結(jié)構(gòu)

          程序由初始化程序、輸入捕捉中斷服務(wù)程序、TIME0中斷服務(wù)程序和調(diào)用該程序模塊的接口程序組成。

          程序初始化時(shí),置TK3=1、TK2=0、TK1=0,軟件300ms延時(shí),進(jìn)行初始調(diào)零;進(jìn)行正向積分時(shí),關(guān)閉INT0,置TK3=0、TK2=0、TK1=1,開TIME0(設(shè)置TIME0工作在定時(shí)方式),進(jìn)行定時(shí)正向積分;正向積分完畢,設(shè)置定時(shí)TIME0工作在輸入捕獲方式,打開INT0,置TK3=0、TK2=1、TK1=0,進(jìn)行反向積分,TIME0進(jìn)行計(jì)時(shí),利用另一個(gè)寄存器來計(jì)數(shù)定時(shí)器溢出次數(shù);當(dāng)比較器輸出反轉(zhuǎn)、INT0中斷產(chǎn)生時(shí),單片機(jī)自動(dòng)關(guān)斷TIME0,完成一次雙積分A/D轉(zhuǎn)換。AD值(HEX)=寄存器計(jì)數(shù)值*100+TIME0。

          源程序清單如下:       

         


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 玉林市| 克拉玛依市| 汉源县| 伊通| 阿图什市| 雷山县| 东丰县| 盐源县| 杂多县| 梅河口市| 宝山区| 阳谷县| 宜昌市| 忻城县| 和田县| 乳源| 阿拉尔市| 和龙市| 凤台县| 厦门市| 安远县| 博白县| 淳安县| 晋城| 荔波县| 仙居县| 沁源县| 大关县| 乐至县| 万全县| 乐业县| 石柱| 武夷山市| 柯坪县| 玉山县| 成都市| 金昌市| 城步| 灵寿县| 通海县| 西乌|