新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)(學(xué)習(xí)ing)—(九)、ATMEGA16的模數(shù)轉(zhuǎn)換器—01

        AVR單片機(jī)(學(xué)習(xí)ing)—(九)、ATMEGA16的模數(shù)轉(zhuǎn)換器—01

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






        2)ADC控制和狀態(tài)寄存器—ADCSRA


        • Bit 7 – ADEN: ADC 使能
        ADEN置位即啟動(dòng)ADC,否則ADC功能關(guān)閉。在轉(zhuǎn)換過(guò)程中關(guān)閉ADC將立即中止正在進(jìn)行
        的轉(zhuǎn)換。
        • Bit 6 – ADSC: ADC 開始轉(zhuǎn)換
        在單次轉(zhuǎn)換模式下,ADSC 置位將啟動(dòng)一次ADC 轉(zhuǎn)換。在連續(xù)轉(zhuǎn)換模式下,ADSC 置位
        將啟動(dòng)首次轉(zhuǎn)換。第一次轉(zhuǎn)換( 在ADC 啟動(dòng)之后置位ADSC,或者在使能ADC 的同時(shí)置
        位ADSC) 需要25 個(gè)ADC 時(shí)鐘周期,而不是正常情況下的13 個(gè)。第一次轉(zhuǎn)換執(zhí)行ADC
        初始化的工作。
        在轉(zhuǎn)換進(jìn)行過(guò)程中讀取ADSC 的返回值為"1”,直到轉(zhuǎn)換結(jié)束。ADSC 清零不產(chǎn)生任何動(dòng)
        作。
        • Bit 5 – ADATE: ADC 自動(dòng)觸發(fā)使能
        ADATE置位將啟動(dòng)ADC自動(dòng)觸發(fā)功能。觸發(fā)信號(hào)的上跳沿啟動(dòng)ADC轉(zhuǎn)換。觸發(fā)信號(hào)源通
        過(guò)SFIOR 寄存器的ADC 觸發(fā)信號(hào)源選擇位ADTS 設(shè)置。
        • Bit 4 – ADIF: ADC 中斷標(biāo)志
        在ADC 轉(zhuǎn)換結(jié)束,且數(shù)據(jù)寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局
        中斷使能位I 也置位,ADC 轉(zhuǎn)換結(jié)束中斷服務(wù)程序即得以執(zhí)行,同時(shí)ADIF 硬件清零。此
        外,還可以通過(guò)向此標(biāo)志寫1 來(lái)清ADIF。要注意的是,如果對(duì)ADCSRA 進(jìn)行讀-修改
        -寫操作,那么待處理的中斷會(huì)被禁止。這也適用于SBI 及CBI 指令。
        • Bit 3 – ADIE: ADC 中斷使能
        若ADIE 及SREG 的位I 置位, ADC 轉(zhuǎn)換結(jié)束中斷即被使能。
        • Bits 2:0 – ADPS2:0: ADC 預(yù)分頻器選擇位
        由這幾位來(lái)確定XTAL 與ADC 輸入時(shí)鐘之間的分頻因子。



        3)ADC 數(shù)據(jù)寄存器- ADCL 及ADCH



        ADC 轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換結(jié)果存于這兩個(gè)寄存器之中。如果采用差分通道,結(jié)果由2 的補(bǔ)碼
        形式表示。
        讀取ADCL 之后,ADC 數(shù)據(jù)寄存器一直要等到ADCH 也被讀出才可以進(jìn)行數(shù)據(jù)更新。因
        此,如果轉(zhuǎn)換結(jié)果為左對(duì)齊,且要求的精度不高于8 比特,那么僅需讀取ADCH 就足夠
        了。否則必須先讀出ADCL 再讀ADCH。
        ADMUX 寄存器的 ADLAR 及MUXn 會(huì)影響轉(zhuǎn)換結(jié)果在數(shù)據(jù)寄存器中的表示方式。如果
        ADLAR 為1,那么結(jié)果為左對(duì)齊;反之( 系統(tǒng)缺省設(shè)置),結(jié)果為右對(duì)齊。
        • ADC9:0: ADC 轉(zhuǎn)換結(jié)果
        ADC 轉(zhuǎn)換的結(jié)果。

        4)特殊功能IO 寄存器- SFIOR



        • Bit 7:5 – ADTS2:0: ADC 自動(dòng)觸發(fā)源
        若ADCSRA 寄存器的ADATE 置位,ADTS 的值將確定觸發(fā)ADC 轉(zhuǎn)換的觸發(fā)源;否則,
        ADTS的設(shè)置沒(méi)有意義。被選中的中斷標(biāo)志在其上升沿觸發(fā)ADC轉(zhuǎn)換。從一個(gè)中斷標(biāo)志清
        零的觸發(fā)源切換到中斷標(biāo)志置位的觸發(fā)源會(huì)使觸發(fā)信號(hào)產(chǎn)生一個(gè)上升沿。如果此時(shí)

        ADCSRA 寄存器的ADEN 為1,ADC 轉(zhuǎn)換即被啟動(dòng)。切換到連續(xù)運(yùn)行模式(ADTS[2:0]=0)
        時(shí),即使ADC 中斷標(biāo)志已經(jīng)置位也不會(huì)產(chǎn)生觸發(fā)事件。



        • Bit 4 – Res: 保留位
        這一位保留。為了與以后的器件相兼容,在寫SFIOR 時(shí)這一位應(yīng)寫0。


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

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 鹤壁市| 泰兴市| 嘉黎县| 苏州市| 历史| 普兰店市| 应用必备| 合肥市| 武隆县| 合江县| 永靖县| 永嘉县| 巴林右旗| 射阳县| 东城区| 奇台县| 天全县| 新兴县| 扬州市| 石楼县| 重庆市| 抚州市| 绥德县| 明溪县| 西乡县| 翁牛特旗| 称多县| 和顺县| 阳东县| 庄浪县| 手游| 石狮市| 宁强县| 漾濞| 镇赉县| 凌源市| 濉溪县| 吉首市| 凭祥市| 洱源县| 贡觉县|