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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14261|回復: 0
打印 上一主題 下一主題
收起左側

AVR 單片機學習筆記 – ADC

[復制鏈接]
跳轉到指定樓層
樓主
ID:71922 發表于 2015-1-10 22:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
接上篇:http://www.zg4o1577.cn/mcu/2117.html
一、AVR單片機片內ADC簡介
模數轉換器即A/D轉換器,或簡稱ADC(Analog Digital Converter),它是一種將輸入模擬量轉變為輸出數字量的器件,是連接模擬和數字的橋梁。通常是指一個將模擬信號轉變為數字信號的電子元件。
  通常的模數轉換器是將一個輸入電壓信號轉換為一個輸出的數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。
  模數轉換器最重要的參數是轉換的精度,通常用輸出的數字信號的位數的多少表示。轉換器能夠準確輸出的數字信號的位數越多,表示轉換器能夠分辨輸入信號的能力越強,轉換器的性能也就越好。
A/D轉換一般要經過采樣、保持、量化及編碼4個過程。在實際電路中,有些過程是合并進行的,如采樣和保持,量化和編碼在轉換過程中是同時實現的。
模數轉換器的分類
A/D轉換器的種類很多,并且有多種分類方法,下面做簡單介紹:
1)從原理上通?煞譃橐韵4種:計數式A/D轉換器、雙積分式A/D轉換器、逐次逼近式A/D轉換器和并行A/D轉換器。
  計數式A/D轉換器結構很簡單,轉換速度很慢,現在很少采用。
雙積分式A/D轉換器抗干擾能力強,轉換精度高,但轉換速度不夠快,一般用于數字式測量儀表中。
逐次逼近式A/D轉換器結構不太復雜,轉換速度很高,一般應用于微機接口電路中。并行A/D轉換器的轉換速度最快,但結構復雜,成本高,一般只應用于那些轉換速度極高的場合。
2)從輸出代碼的有效位數可分為8位,10位,12位,14位,16位,24位及BCD碼輸出的3位,4位,5位等多種不同的位數。
3)從數據輸出的接口類型可分為并行接口型和串行接口型
二、
ATmega16單片機集成了一個10位的逐次逼近型A/D轉換器,A/D轉化器與一個8通道的模擬多路復用器連接,能對來自端口A的8路單端輸入電壓進行采樣。
特點:
8路可選的單端輸入通道,占用PA0 – PA7引腳,由于只有一個ADC核,所以只能一次采集一路通道;
7路差分輸入通道;
ADC轉換結果的讀取可以設置左端對齊(默認右端對齊),因為該ADC是十位的,需要兩個寄存器才能存儲完整的轉換過后的數據;
在最高精度下可達到15KPS/s的采樣速率;
可選擇的ADC內部2.56V的ADC參考電壓源;
自由連續轉換模式和單次轉換模式;
ADC自動選擇轉換觸發模式選擇;
ADC轉換完成可觸發中斷;
二、ADC的供電和參考電壓
ADC功能單元由獨立的專用模擬電源引腳AVCC(第30引腳)供電,AVCC與VCC的電壓差別要小于或等于0.3V。
ADC轉換的參考電源可采用芯片內部的2.56V參考電源,或采用AVCC,也可采用外部參考電源。使用外部參考電源時,外部參考電源有引腳AREF接入。使用內部電壓參考電源時,可以通過在AREF引腳外部并接一個電容提高ADC的抗噪性能。
三、與ADC有關的寄存器
1、ADC多路復用器選擇寄存器ADMUX
      
ADC多路復用器選擇寄存器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
   
      
功能
   
      
參考電源選擇
   
      
對齊方式
   
      
指定使用通道及增益
   

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

位【5】— ADLAR:ADC轉換結果對齊選擇位。這一位可以選擇ADC轉換的結果在ADC數據寄存器中存放形式。ADLAR置位時(為1)轉換結果位左對齊,否則右對齊(默認)。一般左對齊是在只需要8位精度的情況下才設置,這樣只需要讀取一次ADCH就OK了。
      
ADLAR = 0   ADC以右端對齊的方式存儲數據(默認)【只讀,初始值全0】
   
      
ADCH
   
      
   
      
   
      
   
      
   
      
   
      
   
      
ADC9
   
      
ADC8
   
      
ADCL
   
      
ADC7
   
      
ADC6
   
      
ADC5
   
      
ADC4
   
      
ADC3
   
      
ADC2
   
      
ADC1
   
      
ADC0
   
      
ADLAR = 1   ADC以左端對齊的方式存儲數據 【只讀,初始值全0】
   
      
ADCH
   
      
ADC9
   
      
ADC8
   
      
ADC7
   
      
ADC6
   
      
ADC5
   
      
ADC4
   
      
ADC3
   
      
ADC2
   
      
ADCL
   
      
ADC1
   
      
ADC0
   
      
   
      
   
      
   
      
   
      
   
      
   
位【4-0】— MUX[4-0]:模擬通道與增益選擇位。這幾位選擇 當前要使用的ADC模擬輸入通道,也可以對差分通道增益進行設置。如果在轉換過程中改變了設置,則只有等到當期轉換結束之后新的設置才會生效。
2、ADC控制和狀態寄存器ADCSRA
      
ADC控制和狀態寄存器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
使能
   
      
啟動
轉換
   
      
自動
觸發
   
      
中斷
標志
   
      
中斷
使能
   
      
ADC預分頻設置
   

位【7】— ADEN:ADC使能位。啟用ADC功能,否則關閉ADC功能。相當于ADC的總開關。
位【6】— ADSC:ADC開始轉換。在單次轉換模式下,ADSC置位將啟動一次ADC轉換。在連續轉換模式下ADSC置位將啟動首次轉換。
位【5】— ADATE:ADC自動觸發使能。ADATE置位將啟動ADC自動觸發轉換功能,觸發信號的上升沿啟動ADC轉換。
位【4】— ADIF:ADC中斷標志位。ADC轉換結束且數據寄存器被更新后,ADIF將被硬件置位。如果ADIE及SREG寄存器中的全局中斷使能位I被置位,則ADC轉換結束中斷服務程序將被執行,同時ADIF硬件清零,也可以通過軟件寫“1”清零。當沒有啟用中斷(ADIE)時,可以通過不停的查詢此位獲知ADC是否轉換完畢好讀取數據,此時應當軟件將ADIF清零。
位【3】— ADIE:ADC中斷使能位。若ADIE及SREG中的I置位,則ADC轉換結束、數據寄存器被更新后會將ADIF中斷標志位置位,同時會產生中斷從而執行中斷服務函數,進入中斷服務函數后ADIF中斷標志位將被硬件清零。
位【2-0】— ADPS[2-0]:ADC預分頻器選擇位。這3位決定ADC輸入時鐘與CPU時鐘之間的分頻系數,如分頻系數為2,則表示是CPU時鐘頻率的1/2。
ADC分頻系數如下表:
      
ADC分頻系數設置表 (ADCSRA)
   
      
ADPS2
   
      
ADPS1
   
      
ADPS0
   
      
分頻系數
   
      
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數據寄存器ADCL及ADCH
ADC轉換結束后,轉換結果將儲存在ADCL/ADCH這兩個寄存器中。因為一個寄存器只有8位,而ADC是10位,所以需要兩個寄存器才能存儲完整的10位結果。
因為需要用到兩個寄存器,為了防止在上一次轉換結果還沒有完全被讀走,下一次的轉換結果就將其覆蓋掉,造成數據錯亂,AVR的ADC采取了一個保護策略:當程序語句讀取ADCL寄存器時,ADCH的值將被鎖定,直到程序讀取了ADCH寄存器后,AD轉化器硬件才能將下一次的轉換數據更新到這兩個寄存器中。因此,如果轉換結果為左對齊而且只需要8位精度,那么僅需要讀取ADCH就足夠了。
4、特殊功能IO寄存器SFIOR
      
特殊功能IO寄存器SFIOR
   
      
   
      
7
   
      
6
   
      
5
   
      
4
   
      
3
   
      
2
   
      
1
   
      
0
   
      
名稱
   
      
ADTS2
   
      
ADTS1
   
      
ADTS0
   
      
-
   
      
ACME
   
      
PUD
   
      
PSR2
   
      
PSR0
   
      
權限
   
      
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自動觸發源選擇。可以選擇多種觸發ADC轉換的方式。
                                       與ADC有關的只有高三位。

      
ADC自動觸發源選擇設置表(SFIOR)
   
      
ADTS2
   
      
ADTS1
   
      
ADTS0
   
      
觸發源
   
      
0
   
      
0
   
      
0
   
      
連續轉換模式
   
      
0
   
      
0
   
      
1
   
      
模擬比較器
   
      
0
   
      
1
   
      
0
   
      
外部中斷請求0
   
      
0
   
      
1
   
      
1
   
      
定時器/計數器0比較匹配
   
      
1
   
      
0
   
      
0
   
      
定時器/計數器0溢出
   
      
1
   
      
0
   
      
1
   
      
定時器/計數器比較溢出B
   
      
1
   
      
1
   
      
0
   
      
定時器/計數器1溢出
   
      
1
   
      
1
   
      
1
   
      
定時器/計數器1捕捉事件
   

四、代碼流程。
1、ADC輸入端口初始化。
2、基準電壓設置,數據對齊方式,通道選擇(寄存器ADMUX)。
3、AD使能,啟動轉換,及中斷設置(寄存器ADCSRA)
4、觸發源選擇(寄存器SFIOR)
5、選擇中斷號,編寫中斷服務函數,讀取ADC轉換結果(ADCH,ADCL)。
從ADCH和ADCL中讀到的數據是BCD碼格式,實際上就是十進制存儲。

================= 待續 ===================

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美中文 | 男人的天堂在线视频 | 亚洲天堂一区二区 | 亚洲日日操 | 国产精品国产三级国产aⅴ中文 | 99久久精品国产一区二区三区 | 国产精品视频在线免费观看 | 国产精品久久久久aaaa樱花 | 韩日在线视频 | 国产一级一片免费播放 | 精品一区二区三区四区外站 | 亚洲午夜精品 | 狠狠综合久久av一区二区老牛 | 福利视频大全 | 九九热精品在线 | 精品国产欧美在线 | 中国一级特黄真人毛片 | 国产精品一区在线 | 日韩国产黄色片 | 亚洲精品久久久蜜桃 | 亚洲九九 | 日日夜夜免费精品 | 国产小视频精品 | 欧美亚洲一级 | 欧美久久久久 | 日韩精品一区二区三区视频播放 | 在线国产小视频 | 欧美日韩视频在线播放 | 久久国产精品久久久久久 | 91精品国产综合久久精品图片 | 久久久久久久久久久成人 | 黄视频欧美| 一区二区三区不卡视频 | 男女久久久 | 国产精品亚洲成在人线 | 日本一区二区高清视频 | 精品粉嫩超白一线天av | 亚洲三区在线观看 | 日韩在线精品视频 | 亚洲免费一区二区 | 日韩不卡一区二区三区 |