日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用AVR微控制器集成的ADC從周圍環(huán)境中獲取模擬讀數

454398 ? 來源:工程師吳畏 ? 2019-07-31 16:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原理圖

怎樣用AVR微控制器集成的ADC從周圍環(huán)境中獲取模擬讀數

ADC的快速回顧

大多數人認為模擬領域已經落后于他們,但事實是模擬領域從未如此強大!隨著物聯網的興起和傳感器的生產,全球每秒都在進行數十億的模擬讀數。這只是微控制器生產商將ADC外設直接集成到其器件中的眾多原因之一。

ADC將模擬信號轉換為數字信號

通常測量ADC

由于ADC是數字的,模擬信號被量化為離散的步驟

這意味著ADC只能準確無誤地實現它們的位寬(即10位ADC)測量特定電壓電平

最大數字值等于ADC 正參考電壓(通常為VCC)

最小數字值等于ADC 負參考(通常為GND)

ADC需要時間來轉換信號

在ATmega168中,ADC具有以下特性:

10位分辨率(+ Vref和-Vref之間的1024個離散電壓電平)

精度為2LSB(高8位精度保證)

高達15,000個樣本/秒

6個多路復用輸入源

1.1V 帶隙參考

配置ADC

我們可以使用之前ADC,需要配置用于ADC測量的外設和I/O引腳。

左對齊還是右對齊?

當ADC完成轉換操作后,結果存儲在一對中8位寄存器(10位結果不適合單個8位寄存器)。由于ATmega是原生的8位器件,因此使用8位ADC不如10位結果更有意義,但這會降低結果的分辨率。但是,必須正確讀取10位數的8位結果,否則結果將不正確。為此,我們需要讀取前8位(位9-2),而不是后8位。使用ADLAR位很容易實現,當設置為1時,將使ADC結果保持正確。這意味著我們不需要讀取結果寄存器(ADCH和ADCL)并進行一些操作,而是直接讀取ADCH并忘記ADCL。

配置I/O端口

現在我們可以直接讀取ADCH以獲得8位結果,而不必擔心位操作(在分辨率的成本),我們現在需要配置我們的模擬引腳。默認情況下,ATmega168上的I/O引腳配置為數字引腳,這意味著它們只能處理1和0。因此,要將輸入配置為模擬引腳,我們使用DIDR0寄存器,它代表數字輸入禁用寄存器。不幸的是,并非每個引腳都具有模擬輸入的能力,因此請務必注意帶有標簽ADCx的引腳。例如,引腳23至28是ATmega168上的模擬輸入引腳。

配置ADC模塊

配置ADC的最后階段包括打開ADC,設置預縮放器時間以及確定ADC的參考值。

通過將ADCSRA寄存器中的ADEN位置1來打開ADC模塊。

在大多數情況下,預縮放器不是太重要了,為了簡單起見,我們將預縮放器設置為其最大值(設置ADCSRA寄存器中的所有ADPSx位)。

ATmega168上的ADC可以介于0V和某個參考電壓之間,通常設置為VCC。由于大多數電路都是這種情況,我們需要將Aref引腳連接到也接地的電容,我們還需要將REFSx位設置為使用AVCC作為參考。

使用ADC

使用ADC非常簡單。選擇將從中取出模擬讀數的通道,然后,為了開始轉換,ADSC位(在ADCSRA中找到)將打開。轉換完成后,ADC硬件會自動清零ADSC位。

通過設置ADMUX寄存器中的相應多路復用器位MUX3-MUX0來選擇要讀取的模擬引腳。

軟件示例

此示例從ADC0(PC0,引腳23)讀取模擬值并進行比較他們到一個特定的價值。如果模擬讀數超出指定值(定義為TRIGPOINT),LED(連接到PD0,引腳2)將打開。一旦ADC讀數低于指定值,LED就會關閉!

/*

* AVR IO.c

*

* Created: 03/01/2018 11:25:21

* Author : RobinLaptop

*/

#define F_CPU 1000000UL

#define TRIGPOINT 128

#include

#include

int main(void)

{

// Configure PORT D bit 0 to an output

DDRD = 0b00000001;

// Configure PORT C bit 0 to an input

DDRC = 0b00000000;

// Configure ADC to be left justified, use AVCC as reference, and select ADC0 as ADC input

ADMUX = 0b01100000;

// Enable the ADC and set the prescaler to max value (128)

ADCSRA = 0b10000111;

// Main program loop

while (1)

{

// Start an ADC conversion by setting ADSC bit (bit 6)

ADCSRA = ADCSRA | (1 《《 ADSC);

// Wait until the ADSC bit has been cleared

while(ADCSRA & (1 《《 ADSC));

if(ADCH 》 TRIGPOINT)

{

// Turn LED on

PORTD = PORTD | (1 《《 PD0);

}

else

{

// Turn LED off

PORTD = PORTD & ~(1 《《 PD0);

}

}

}

結論

本文僅介紹ADC背后的基礎知識,但我們已經開始從現實世界中進行模擬測量。當然,您可以閱讀數據表并了解其他更高級的功能,包括觸發(fā)和其他電壓參考。但就目前而言,這應該為您提供足夠的知識,開始制作需要讀取模擬值的AVR項目!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • AVR
    AVR
    +關注

    關注

    11

    文章

    1138

    瀏覽量

    81974
  • adc
    adc
    +關注

    關注

    100

    文章

    7961

    瀏覽量

    557202
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析Atmel AVR XMEGA A3微控制器:特性、應用與設計考量

    富的外設功能,成為眾多工程師的首選。然而,新設計已不推薦使用該系列,建議采用XMEGA A3U系列。本文將深入剖析Atmel AVR XMEGA A3微控制器的特性、應用及設計過程需要考慮的要點
    的頭像 發(fā)表于 04-15 17:25 ?440次閱讀

    Atmel AVR XMEGA D微控制器深度解析

    手冊詳細介紹了Atmel AVR XMEGA D微控制器家族的所有模塊。手冊涵蓋了CPU到各種外設的詳細信息,但需要注意的是,并非
    的頭像 發(fā)表于 04-07 16:50 ?504次閱讀

    深入解析Atmel ATtiny24/44/84 8位AVR微控制器

    深入解析Atmel ATtiny24/44/84 8位AVR微控制器 在電子設計領域,選擇一款合適的微控制器對于項目的成功至關重要。Atmel ATtiny24/44/84 8位AVR
    的頭像 發(fā)表于 04-07 11:10 ?389次閱讀

    深入解析Atmel AVR XMEGA B1微控制器:特性、應用與設計要點

    深入解析Atmel AVR XMEGA B1微控制器:特性、應用與設計要點 在當今的電子設計領域,選擇一款性能卓越、功能豐富且低功耗的微控制器至關重要。Atmel AVR XMEGA
    的頭像 發(fā)表于 04-07 09:15 ?199次閱讀

    深入剖析UC3D:高性能32位AVR?微控制器的技術魅力

    深入剖析UC3D:高性能32位AVR?微控制器的技術魅力 在當今的電子設計領域,高性能、低功耗的微控制器一直是工程師們追求的目標。UC3D作為一款基于AVR32UC RISC處理
    的頭像 發(fā)表于 04-06 16:05 ?1259次閱讀

    ADuCM320精密模擬微控制器:功能特性與應用解析

    的精密模擬微控制器集成了高性能模擬外設和數字外設,為工程師們提供了強大的設計工具。本文將深入剖析ADuCM320的特性、規(guī)格、應用等方面,幫助電子工程師更好地了解和應用這款
    的頭像 發(fā)表于 03-24 14:00 ?193次閱讀

    深度剖析ADuC7128/ADuC7129精密模擬微控制器

    深度剖析ADuC7128/ADuC7129精密模擬微控制器 在當今的電子設計領域,高性能、集成度高的微控制器是實現各種復雜應用的關鍵。ADuC7128/ADuC7129作為一款精密
    的頭像 發(fā)表于 03-24 14:00 ?233次閱讀

    ADuC7124/ADuC7126精密模擬微控制器深度解析

    ADuC7124/ADuC7126精密模擬微控制器深度解析 在電子設計領域,一款性能卓越的微控制器往往能為產品帶來質的飛躍。ADuC7124/ADuC7126作為一款備受關注的精密模擬
    的頭像 發(fā)表于 03-24 13:55 ?222次閱讀

    ADuC7023精密模擬微控制器:特性、應用與設計要點

    ADuC7023精密模擬微控制器:特性、應用與設計要點 在電子設計領域,一款性能卓越的微控制器往往能為項目帶來事半功倍的效果。ADuC7023作為一款集成度高、功能強大的精密
    的頭像 發(fā)表于 03-24 11:30 ?204次閱讀

    Atmel ATmega644P/V 8位AVR微控制器深度剖析

    Atmel ATmega644P/V 8位AVR微控制器深度剖析 在嵌入式系統(tǒng)設計領域,選擇一款合適的微控制器至關重要。Atmel ATmega644P/V這款8位AVR
    的頭像 發(fā)表于 03-05 16:20 ?335次閱讀

    Microchip AVR64DD14/20 微控制器:高集成度與低功耗的完美結合

    的運行時鐘速度高達24MHz,具有64KB閃存、8KB SRAM和256字節(jié)EEPROM。微控制器提供14引腳或20引腳封裝。avr DD系列采用Microchip Technology的技術,具有靈活和低功耗架構,包括事件系統(tǒng)、智能
    的頭像 發(fā)表于 10-13 11:38 ?1028次閱讀
    Microchip <b class='flag-5'>AVR</b>64DD14/20 <b class='flag-5'>微控制器</b>:高<b class='flag-5'>集成</b>度與低功耗的完美結合

    Microchip AVR64EA28/32/48微控制器:高性能與低功耗的完美融合

    和512字節(jié)EEPROM。該微控制器采用28、32和48引腳封裝。AVR EA系列采用Microchip的現有技術,具有靈活的低功耗架構,包括Event System、智能模擬功能和高級數字外設。
    的頭像 發(fā)表于 10-11 14:50 ?946次閱讀
    Microchip <b class='flag-5'>AVR</b>64EA28/32/48<b class='flag-5'>微控制器</b>:高性能與低功耗的完美融合

    Microchip AVR32EA 系列微控制器:高性能與低功耗的完美融合

    Microchip Technology AVR32EA28/32/48微控制器AVR? EA系列的一部分,采用帶硬件乘法器的AVR CPU,時鐘運行速度達20MHz。
    的頭像 發(fā)表于 10-10 15:16 ?967次閱讀
    Microchip <b class='flag-5'>AVR</b>32EA 系列<b class='flag-5'>微控制器</b>:高性能與低功耗的完美融合

    Microchip Technology AVR32/16DD14/20微控制器 (MCU)數據手冊

    Microchip Technology AVR32/16DD14/20微控制器 (MCU) 采用帶硬件乘法器的AVR^?^ CPU,運行時鐘速度高達24MHz,具有高達32KB閃存、高達4KB
    的頭像 發(fā)表于 10-10 14:46 ?1027次閱讀
    Microchip Technology <b class='flag-5'>AVR</b>32/16DD14/20<b class='flag-5'>微控制器</b> (MCU)數據手冊

    AVR64EA微控制器:高性能與靈活性的完美結合

    Microchip Technology AVR64EA28/32/48 AVR? EA微控制器AVR CPU配備了以高達20MHz的時鐘速度運行的硬件乘法器。
    的頭像 發(fā)表于 10-10 11:32 ?1086次閱讀
    <b class='flag-5'>AVR</b>64EA<b class='flag-5'>微控制器</b>:高性能與靈活性的完美結合
    黄龙县| 陇南市| 八宿县| 临夏市| 屏边| 祁东县| 临高县| 从化市| 海南省| 和硕县| 昭平县| 朝阳市| 舟山市| 道孚县| 莱西市| 驻马店市| 关岭| 阿拉善左旗| 剑阁县| 肥东县| 山东| 通榆县| 莱州市| 商城县| 芮城县| 奉节县| 涿州市| 扎囊县| 浏阳市| 菏泽市| 孙吴县| 米泉市| 镇平县| 安乡县| 九寨沟县| 双辽市| 天峻县| 昌江| 江陵县| 喀什市| 玉树县|