AVR單片機(學習ing)—(九)、ATMEGA16的模數(shù)轉換器—01
2)ADC控制和狀態(tài)寄存器—ADCSRA
• Bit 7 – ADEN: ADC 使能
ADEN置位即啟動ADC,否則ADC功能關閉。在轉換過程中關閉ADC將立即中止正在進行
的轉換。
• Bit 6 – ADSC: ADC 開始轉換
在單次轉換模式下,ADSC 置位將啟動一次ADC 轉換。在連續(xù)轉換模式下,ADSC 置位
將啟動首次轉換。第一次轉換( 在ADC 啟動之后置位ADSC,或者在使能ADC 的同時置
位ADSC) 需要25 個ADC 時鐘周期,而不是正常情況下的13 個。第一次轉換執(zhí)行ADC
初始化的工作。
在轉換進行過程中讀取ADSC 的返回值為"1”,直到轉換結束。ADSC 清零不產(chǎn)生任何動
作。
• Bit 5 – ADATE: ADC 自動觸發(fā)使能
ADATE置位將啟動ADC自動觸發(fā)功能。觸發(fā)信號的上跳沿啟動ADC轉換。觸發(fā)信號源通
過SFIOR 寄存器的ADC 觸發(fā)信號源選擇位ADTS 設置。
• Bit 4 – ADIF: ADC 中斷標志
在ADC 轉換結束,且數(shù)據(jù)寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局
中斷使能位I 也置位,ADC 轉換結束中斷服務程序即得以執(zhí)行,同時ADIF 硬件清零。此
外,還可以通過向此標志寫1 來清ADIF。要注意的是,如果對ADCSRA 進行讀-修改
-寫操作,那么待處理的中斷會被禁止。這也適用于SBI 及CBI 指令。
• Bit 3 – ADIE: ADC 中斷使能
若ADIE 及SREG 的位I 置位, ADC 轉換結束中斷即被使能。
• Bits 2:0 – ADPS2:0: ADC 預分頻器選擇位
由這幾位來確定XTAL 與ADC 輸入時鐘之間的分頻因子。
3)ADC 數(shù)據(jù)寄存器- ADCL 及ADCH
ADC 轉換結束后,轉換結果存于這兩個寄存器之中。如果采用差分通道,結果由2 的補碼
形式表示。
讀取ADCL 之后,ADC 數(shù)據(jù)寄存器一直要等到ADCH 也被讀出才可以進行數(shù)據(jù)更新。因
此,如果轉換結果為左對齊,且要求的精度不高于8 比特,那么僅需讀取ADCH 就足夠
了。否則必須先讀出ADCL 再讀ADCH。
ADMUX 寄存器的 ADLAR 及MUXn 會影響轉換結果在數(shù)據(jù)寄存器中的表示方式。如果
ADLAR 為1,那么結果為左對齊;反之( 系統(tǒng)缺省設置),結果為右對齊。
• ADC9:0: ADC 轉換結果
ADC 轉換的結果。
4)特殊功能IO 寄存器- SFIOR
• Bit 7:5 – ADTS2:0: ADC 自動觸發(fā)源
若ADCSRA 寄存器的ADATE 置位,ADTS 的值將確定觸發(fā)ADC 轉換的觸發(fā)源;否則,
ADTS的設置沒有意義。被選中的中斷標志在其上升沿觸發(fā)ADC轉換。從一個中斷標志清
零的觸發(fā)源切換到中斷標志置位的觸發(fā)源會使觸發(fā)信號產(chǎn)生一個上升沿。如果此時
ADCSRA 寄存器的ADEN 為1,ADC 轉換即被啟動。切換到連續(xù)運行模式(ADTS[2:0]=0)
時,即使ADC 中斷標志已經(jīng)置位也不會產(chǎn)生觸發(fā)事件。
• Bit 4 – Res: 保留位
這一位保留。為了與以后的器件相兼容,在寫SFIOR 時這一位應寫0。
評論