久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 14339|回復(fù): 0
收起左側(cè)

AVR 單片機(jī)學(xué)習(xí)筆記 – ADC

[復(fù)制鏈接]
ID:71922 發(fā)表于 2015-1-10 22:49 | 顯示全部樓層 |閱讀模式
接上篇:http://m.zg4o1577.cn/mcu/2117.html
一、AVR單片機(jī)片內(nèi)ADC簡(jiǎn)介
模數(shù)轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡(jiǎn)稱ADC(Analog Digital Converter),它是一種將輸入模擬量轉(zhuǎn)變?yōu)檩敵鰯?shù)字量的器件,是連接模擬和數(shù)字的橋梁。通常是指一個(gè)將模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)的電子元件。
  通常的模數(shù)轉(zhuǎn)換器是將一個(gè)輸入電壓信號(hào)轉(zhuǎn)換為一個(gè)輸出的數(shù)字信號(hào)。由于數(shù)字信號(hào)本身不具有實(shí)際意義,僅僅表示一個(gè)相對(duì)大小。故任何一個(gè)模數(shù)轉(zhuǎn)換器都需要一個(gè)參考模擬量作為轉(zhuǎn)換的標(biāo)準(zhǔn),比較常見的參考標(biāo)準(zhǔn)為最大的可轉(zhuǎn)換信號(hào)大小。而輸出的數(shù)字量則表示輸入信號(hào)相對(duì)于參考信號(hào)的大小。
  模數(shù)轉(zhuǎn)換器最重要的參數(shù)是轉(zhuǎn)換的精度,通常用輸出的數(shù)字信號(hào)的位數(shù)的多少表示。轉(zhuǎn)換器能夠準(zhǔn)確輸出的數(shù)字信號(hào)的位數(shù)越多,表示轉(zhuǎn)換器能夠分辨輸入信號(hào)的能力越強(qiáng),轉(zhuǎn)換器的性能也就越好。
A/D轉(zhuǎn)換一般要經(jīng)過采樣、保持、量化及編碼4個(gè)過程。在實(shí)際電路中,有些過程是合并進(jìn)行的,如采樣和保持,量化和編碼在轉(zhuǎn)換過程中是同時(shí)實(shí)現(xiàn)的。
模數(shù)轉(zhuǎn)換器的分類
A/D轉(zhuǎn)換器的種類很多,并且有多種分類方法,下面做簡(jiǎn)單介紹:
1)從原理上通常可分為以下4種:計(jì)數(shù)式A/D轉(zhuǎn)換器、雙積分式A/D轉(zhuǎn)換器、逐次逼近式A/D轉(zhuǎn)換器和并行A/D轉(zhuǎn)換器。
  計(jì)數(shù)式A/D轉(zhuǎn)換器結(jié)構(gòu)很簡(jiǎn)單,轉(zhuǎn)換速度很慢,現(xiàn)在很少采用。
雙積分式A/D轉(zhuǎn)換器抗干擾能力強(qiáng),轉(zhuǎn)換精度高,但轉(zhuǎn)換速度不夠快,一般用于數(shù)字式測(cè)量儀表中。
逐次逼近式A/D轉(zhuǎn)換器結(jié)構(gòu)不太復(fù)雜,轉(zhuǎn)換速度很高,一般應(yīng)用于微機(jī)接口電路中。并行A/D轉(zhuǎn)換器的轉(zhuǎn)換速度最快,但結(jié)構(gòu)復(fù)雜,成本高,一般只應(yīng)用于那些轉(zhuǎn)換速度極高的場(chǎng)合。
2)從輸出代碼的有效位數(shù)可分為8位,10位,12位,14位,16位,24位及BCD碼輸出的3位,4位,5位等多種不同的位數(shù)。
3)從數(shù)據(jù)輸出的接口類型可分為并行接口型和串行接口型
二、
ATmega16單片機(jī)集成了一個(gè)10位的逐次逼近型A/D轉(zhuǎn)換器,A/D轉(zhuǎn)化器與一個(gè)8通道的模擬多路復(fù)用器連接,能對(duì)來自端口A的8路單端輸入電壓進(jìn)行采樣。
特點(diǎn):
8路可選的單端輸入通道,占用PA0 – PA7引腳,由于只有一個(gè)ADC核,所以只能一次采集一路通道;
7路差分輸入通道;
ADC轉(zhuǎn)換結(jié)果的讀取可以設(shè)置左端對(duì)齊(默認(rèn)右端對(duì)齊),因?yàn)樵揂DC是十位的,需要兩個(gè)寄存器才能存儲(chǔ)完整的轉(zhuǎn)換過后的數(shù)據(jù);
在最高精度下可達(dá)到15KPS/s的采樣速率;
可選擇的ADC內(nèi)部2.56V的ADC參考電壓源;
自由連續(xù)轉(zhuǎn)換模式和單次轉(zhuǎn)換模式;
ADC自動(dòng)選擇轉(zhuǎn)換觸發(fā)模式選擇;
ADC轉(zhuǎn)換完成可觸發(fā)中斷;
二、ADC的供電和參考電壓
ADC功能單元由獨(dú)立的專用模擬電源引腳AVCC(第30引腳)供電,AVCC與VCC的電壓差別要小于或等于0.3V。
ADC轉(zhuǎn)換的參考電源可采用芯片內(nèi)部的2.56V參考電源,或采用AVCC,也可采用外部參考電源。使用外部參考電源時(shí),外部參考電源有引腳AREF接入。使用內(nèi)部電壓參考電源時(shí),可以通過在AREF引腳外部并接一個(gè)電容提高ADC的抗噪性能。
三、與ADC有關(guān)的寄存器
1、ADC多路復(fù)用器選擇寄存器ADMUX
      
ADC多路復(fù)用器選擇寄存器ADMUX
   
      
   
      
7
   
      
6
   
      
5
   
      
4
   
      
3
   
      
2
   
      
1
   
      
0
   
      
名稱
   
      
REFS1
   
      
REFS0
   
      
ADLAR
   
      
MUX4
   
      
MUX3
   
      
MUX2
   
      
MUX1
   
      
MUX0
   
      
讀/寫
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
初始值
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
功能
   
      
參考電源選擇
   
      
對(duì)齊方式
   
      
指定使用通道及增益
   

位【7-6】— REFS[1-0] :ADC參考電源選擇位。是用來指定ADC的參考電源采用
何種參考電源,有三種參考電源:內(nèi)部2.56V、AREF、AVCC。如果在轉(zhuǎn)換過程中改變了設(shè)置,則只有等到當(dāng)前轉(zhuǎn)換結(jié)束后新的設(shè)置才會(huì)起作用。內(nèi)、外部參考電壓不能同時(shí)被選擇,否則會(huì)短路損壞芯片。
具體設(shè)置表:
      
ADC參考電源選擇位設(shè)置表
   
      
REFS1
   
      
REFS0
   
      
參考電壓選擇
   
      
0
   
      
0
   
      
選擇AREF,內(nèi)部基準(zhǔn)源關(guān)閉
   
      
0
   
      
1
   
      
選擇AVCC,AREF外接濾波電容
   
      
1
   
      
0
   
      
保留
   
      
1
   
      
1
   
      
2.56V內(nèi)部基準(zhǔn)電壓源,AVREF外接濾波電容
   

位【5】— ADLAR:ADC轉(zhuǎn)換結(jié)果對(duì)齊選擇位。這一位可以選擇ADC轉(zhuǎn)換的結(jié)果在ADC數(shù)據(jù)寄存器中存放形式。ADLAR置位時(shí)(為1)轉(zhuǎn)換結(jié)果位左對(duì)齊,否則右對(duì)齊(默認(rèn))。一般左對(duì)齊是在只需要8位精度的情況下才設(shè)置,這樣只需要讀取一次ADCH就OK了。
      
ADLAR = 0   ADC以右端對(duì)齊的方式存儲(chǔ)數(shù)據(jù)(默認(rèn))【只讀,初始值全0】
   
      
ADCH
   
      
   
      
   
      
   
      
   
      
   
      
   
      
ADC9
   
      
ADC8
   
      
ADCL
   
      
ADC7
   
      
ADC6
   
      
ADC5
   
      
ADC4
   
      
ADC3
   
      
ADC2
   
      
ADC1
   
      
ADC0
   
      
ADLAR = 1   ADC以左端對(duì)齊的方式存儲(chǔ)數(shù)據(jù) 【只讀,初始值全0】
   
      
ADCH
   
      
ADC9
   
      
ADC8
   
      
ADC7
   
      
ADC6
   
      
ADC5
   
      
ADC4
   
      
ADC3
   
      
ADC2
   
      
ADCL
   
      
ADC1
   
      
ADC0
   
      
   
      
   
      
   
      
   
      
   
      
   
位【4-0】— MUX[4-0]:模擬通道與增益選擇位。這幾位選擇 當(dāng)前要使用的ADC模擬輸入通道,也可以對(duì)差分通道增益進(jìn)行設(shè)置。如果在轉(zhuǎn)換過程中改變了設(shè)置,則只有等到當(dāng)期轉(zhuǎn)換結(jié)束之后新的設(shè)置才會(huì)生效。
2、ADC控制和狀態(tài)寄存器ADCSRA
      
ADC控制和狀態(tài)寄存器ADCSRA
   
      
   
      
7
   
      
6
   
      
5
   
      
4
   
      
3
   
      
2
   
      
1
   
      
0
   
      
名稱
   
      
ADEN
   
      
ADSC
   
      
ADATE
   
      
ADIF
   
      
ADIE
   
      
ADPS2
   
      
ADPS1
   
      
ASPS0
   
      
讀/寫
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
初始值
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
功能
   
      
AD
使能
   
      
啟動(dòng)
轉(zhuǎn)換
   
      
自動(dòng)
觸發(fā)
   
      
中斷
標(biāo)志
   
      
中斷
使能
   
      
ADC預(yù)分頻設(shè)置
   

位【7】— ADEN:ADC使能位。啟用ADC功能,否則關(guān)閉ADC功能。相當(dāng)于ADC的總開關(guān)。
位【6】— ADSC:ADC開始轉(zhuǎn)換。在單次轉(zhuǎn)換模式下,ADSC置位將啟動(dòng)一次ADC轉(zhuǎn)換。在連續(xù)轉(zhuǎn)換模式下ADSC置位將啟動(dòng)首次轉(zhuǎn)換。
位【5】— ADATE:ADC自動(dòng)觸發(fā)使能。ADATE置位將啟動(dòng)ADC自動(dòng)觸發(fā)轉(zhuǎn)換功能,觸發(fā)信號(hào)的上升沿啟動(dòng)ADC轉(zhuǎn)換。
位【4】— ADIF:ADC中斷標(biāo)志位。ADC轉(zhuǎn)換結(jié)束且數(shù)據(jù)寄存器被更新后,ADIF將被硬件置位。如果ADIE及SREG寄存器中的全局中斷使能位I被置位,則ADC轉(zhuǎn)換結(jié)束中斷服務(wù)程序?qū)⒈粓?zhí)行,同時(shí)ADIF硬件清零,也可以通過軟件寫“1”清零。當(dāng)沒有啟用中斷(ADIE)時(shí),可以通過不停的查詢此位獲知ADC是否轉(zhuǎn)換完畢好讀取數(shù)據(jù),此時(shí)應(yīng)當(dāng)軟件將ADIF清零。
位【3】— ADIE:ADC中斷使能位。若ADIE及SREG中的I置位,則ADC轉(zhuǎn)換結(jié)束、數(shù)據(jù)寄存器被更新后會(huì)將ADIF中斷標(biāo)志位置位,同時(shí)會(huì)產(chǎn)生中斷從而執(zhí)行中斷服務(wù)函數(shù),進(jìn)入中斷服務(wù)函數(shù)后ADIF中斷標(biāo)志位將被硬件清零。
位【2-0】— ADPS[2-0]:ADC預(yù)分頻器選擇位。這3位決定ADC輸入時(shí)鐘與CPU時(shí)鐘之間的分頻系數(shù),如分頻系數(shù)為2,則表示是CPU時(shí)鐘頻率的1/2。
ADC分頻系數(shù)如下表:
      
ADC分頻系數(shù)設(shè)置表 (ADCSRA)
   
      
ADPS2
   
      
ADPS1
   
      
ADPS0
   
      
分頻系數(shù)
   
      
0
   
      
0
   
      
0
   
      
2
   
      
0
   
      
0
   
      
1
   
      
2
   
      
0
   
      
1
   
      
0
   
      
4
   
      
0
   
      
1
   
      
1
   
      
8
   
      
1
   
      
0
   
      
0
   
      
16
   
      
1
   
      
0
   
      
1
   
      
32
   
      
1
   
      
1
   
      
0
   
      
64
   
      
1
   
      
1
   
      
1
   
      
128
   
3、ADC數(shù)據(jù)寄存器ADCL及ADCH
ADC轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換結(jié)果將儲(chǔ)存在ADCL/ADCH這兩個(gè)寄存器中。因?yàn)橐粋(gè)寄存器只有8位,而ADC是10位,所以需要兩個(gè)寄存器才能存儲(chǔ)完整的10位結(jié)果。
因?yàn)樾枰玫絻蓚(gè)寄存器,為了防止在上一次轉(zhuǎn)換結(jié)果還沒有完全被讀走,下一次的轉(zhuǎn)換結(jié)果就將其覆蓋掉,造成數(shù)據(jù)錯(cuò)亂,AVR的ADC采取了一個(gè)保護(hù)策略:當(dāng)程序語句讀取ADCL寄存器時(shí),ADCH的值將被鎖定,直到程序讀取了ADCH寄存器后,AD轉(zhuǎn)化器硬件才能將下一次的轉(zhuǎn)換數(shù)據(jù)更新到這兩個(gè)寄存器中。因此,如果轉(zhuǎn)換結(jié)果為左對(duì)齊而且只需要8位精度,那么僅需要讀取ADCH就足夠了。
4、特殊功能IO寄存器SFIOR
      
特殊功能IO寄存器SFIOR
   
      
   
      
7
   
      
6
   
      
5
   
      
4
   
      
3
   
      
2
   
      
1
   
      
0
   
      
名稱
   
      
ADTS2
   
      
ADTS1
   
      
ADTS0
   
      
-
   
      
ACME
   
      
PUD
   
      
PSR2
   
      
PSR0
   
      
權(quán)限
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R
   
      
R/W
   
      
R/W
   
      
R/W
   
      
R/W
   
      
初始值
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   
      
0
   

位【7-5】— ADTS[2-0]:ADC自動(dòng)觸發(fā)源選擇。可以選擇多種觸發(fā)ADC轉(zhuǎn)換的方式。
                                       與ADC有關(guān)的只有高三位。

      
ADC自動(dòng)觸發(fā)源選擇設(shè)置表(SFIOR)
   
      
ADTS2
   
      
ADTS1
   
      
ADTS0
   
      
觸發(fā)源
   
      
0
   
      
0
   
      
0
   
      
連續(xù)轉(zhuǎn)換模式
   
      
0
   
      
0
   
      
1
   
      
模擬比較器
   
      
0
   
      
1
   
      
0
   
      
外部中斷請(qǐng)求0
   
      
0
   
      
1
   
      
1
   
      
定時(shí)器/計(jì)數(shù)器0比較匹配
   
      
1
   
      
0
   
      
0
   
      
定時(shí)器/計(jì)數(shù)器0溢出
   
      
1
   
      
0
   
      
1
   
      
定時(shí)器/計(jì)數(shù)器比較溢出B
   
      
1
   
      
1
   
      
0
   
      
定時(shí)器/計(jì)數(shù)器1溢出
   
      
1
   
      
1
   
      
1
   
      
定時(shí)器/計(jì)數(shù)器1捕捉事件
   

四、代碼流程。
1、ADC輸入端口初始化。
2、基準(zhǔn)電壓設(shè)置,數(shù)據(jù)對(duì)齊方式,通道選擇(寄存器ADMUX)。
3、AD使能,啟動(dòng)轉(zhuǎn)換,及中斷設(shè)置(寄存器ADCSRA)
4、觸發(fā)源選擇(寄存器SFIOR)
5、選擇中斷號(hào),編寫中斷服務(wù)函數(shù),讀取ADC轉(zhuǎn)換結(jié)果(ADCH,ADCL)。
從ADCH和ADCL中讀到的數(shù)據(jù)是BCD碼格式,實(shí)際上就是十進(jìn)制存儲(chǔ)。

================= 待續(xù) ===================

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人aaa视频 | 亚洲成人久久久 | av网站免费| 91精品国产综合久久久久久丝袜 | а√中文在线8 | 国产精品综合一区二区 | 狠狠亚洲 | 日韩精品在线免费观看 | 欧美不卡在线 | 日韩一区二区在线视频 | 国产精品成人一区 | 中文在线一区二区 | 性一交一乱一透一a级 | 日韩中文一区 | 久久久久国产一区二区三区 | 精品国产乱码久久久久久闺蜜 | 国产在视频一区二区三区吞精 | 欧美一级片在线观看 | 日日躁狠狠躁aaaaxxxx | 青青久草 | 亚洲久久一区 | 毛片网站在线观看 | 久久综合一区二区 | 在线视频 亚洲 | 国产精品亚洲精品 | 超碰操| www.久久久久久久久久久 | 夜夜草 | 在线观看av免费 | 日本超碰 | 亚洲综合一区二区三区 | 国产精品18久久久久久白浆动漫 | 三级黄色片在线播放 | 高清亚洲 | 久久久精品久 | 亚洲精品久久久一区二区三区 | 日韩美女一区二区三区在线观看 | 国产精品欧美精品日韩精品 | 国内久久| 日韩高清www| 日日天天|