chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

原理圖

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

ADC的快速回顧

大多數(shù)人認(rèn)為模擬領(lǐng)域已經(jīng)落后于他們,但事實(shí)是模擬領(lǐng)域從未如此強(qiáng)大!隨著物聯(lián)網(wǎng)的興起和傳感器的生產(chǎn),全球每秒都在進(jìn)行數(shù)十億的模擬讀數(shù)。這只是微控制器生產(chǎn)商將ADC外設(shè)直接集成到其器件中的眾多原因之一。

ADC將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)

通常測(cè)量ADC

由于ADC是數(shù)字的,模擬信號(hào)被量化為離散的步驟

這意味著ADC只能準(zhǔn)確無(wú)誤地實(shí)現(xiàn)它們的位寬(即10位ADC)測(cè)量特定電壓電平

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

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

ADC需要時(shí)間來(lái)轉(zhuǎn)換信號(hào)

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

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

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

高達(dá)15,000個(gè)樣本/秒

6個(gè)多路復(fù)用輸入源

1.1V 帶隙參考

配置ADC

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

左對(duì)齊還是右對(duì)齊?

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

配置I/O端口

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

配置ADC模塊

配置ADC的最后階段包括打開(kāi)ADC,設(shè)置預(yù)縮放器時(shí)間以及確定ADC的參考值。

通過(guò)將ADCSRA寄存器中的ADEN位置1來(lái)打開(kāi)ADC模塊。

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

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

使用ADC

使用ADC非常簡(jiǎn)單。選擇將從中取出模擬讀數(shù)的通道,然后,為了開(kāi)始轉(zhuǎn)換,ADSC位(在ADCSRA中找到)將打開(kāi)。轉(zhuǎn)換完成后,ADC硬件會(huì)自動(dòng)清零ADSC位。

通過(guò)設(shè)置ADMUX寄存器中的相應(yīng)多路復(fù)用器位MUX3-MUX0來(lái)選擇要讀取的模擬引腳。

軟件示例

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

/*

* 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);

}

}

}

結(jié)論

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AVR
    AVR
    +關(guān)注

    關(guān)注

    11

    文章

    1136

    瀏覽量

    80804
  • adc
    adc
    +關(guān)注

    關(guān)注

    100

    文章

    6812

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ATtiny3224/3226/3227:高性能低功耗的tinyAVR? 2系列微控制器

    Microchip Technology ATtiny3224、ATtiny3226與ATtiny3227 8位微控制器 (MCU) 采用帶硬件乘法器的AVR? CPU,運(yùn)行速率高達(dá)20MHz,具有
    的頭像 發(fā)表于 10-14 16:26 ?128次閱讀
    ATtiny3224/3226/3227:高性能低功耗的tinyAVR? 2系列<b class='flag-5'>微控制器</b>

    Microchip AVR32DD/AVR16DD微控制器:高性能與低功耗的完美結(jié)合

    Microchip Technology AVR32DD和AVR16DD 8位微控制器基于AVR? CPU(帶硬件乘法器,在1.8V至5.5V整個(gè)電源電壓范圍內(nèi)運(yùn)行時(shí)鐘速度高達(dá)24MH
    的頭像 發(fā)表于 10-13 13:44 ?127次閱讀

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

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

    AVR? DD微控制器系列技術(shù)解析:架構(gòu)與功能特性

    Microchip Technology AVR16/32DD28/32 avr? DD微控制器采用avr CPU,硬件乘數(shù)運(yùn)行時(shí)鐘速度高達(dá)24MHz,具有高達(dá)32KB的閃存,以及高達(dá)
    的頭像 發(fā)表于 10-11 15:54 ?197次閱讀
    <b class='flag-5'>AVR</b>? DD<b class='flag-5'>微控制器</b>系列技術(shù)解析:架構(gòu)與功能特性

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

    和512字節(jié)EEPROM。該微控制器采用28、32和48引腳封裝。AVR EA系列采用Microchip的現(xiàn)有技術(shù),具有靈活的低功耗架構(gòu),包括Event System、智能模擬功能和高級(jí)數(shù)字外設(shè)。
    的頭像 發(fā)表于 10-11 14:50 ?121次閱讀
    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,時(shí)鐘運(yùn)行速度達(dá)20MHz。
    的頭像 發(fā)表于 10-10 15:16 ?176次閱讀
    Microchip <b class='flag-5'>AVR</b>32EA 系列<b class='flag-5'>微控制器</b>:高性能與低功耗的完美融合

    Microchip Technology AVR32/16DD14/20微控制器 (MCU)數(shù)據(jù)手冊(cè)

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

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

    Microchip Technology AVR64EA28/32/48 AVR? EA微控制器AVR CPU配備了以高達(dá)20MHz的時(shí)鐘速度運(yùn)行的硬件乘法器。
    的頭像 發(fā)表于 10-10 11:32 ?172次閱讀
    <b class='flag-5'>AVR</b>64EA<b class='flag-5'>微控制器</b>:高性能與靈活性的完美結(jié)合

    Microchip Technology AVR? DU微控制器數(shù)據(jù)手冊(cè)

    Microchip Technology AVR^?^ DU微控制器采用AVR^?^ CPU,其硬件乘法器運(yùn)行時(shí)鐘速度高達(dá)24MHz。這些MCU具有16KB/32KB/64KB閃存、2KB/4KB
    的頭像 發(fā)表于 10-09 15:15 ?158次閱讀
    Microchip Technology <b class='flag-5'>AVR</b>? DU<b class='flag-5'>微控制器</b>數(shù)據(jù)手冊(cè)

    AVR32SD20/28/32微控制器技術(shù)解析與應(yīng)用指南

    Microchip Technology AVR32SD20/28/32 AVR^?^ SD 8位微控制器 (MCU) 將AVR CPU與硬件乘法器相結(jié)合,時(shí)鐘速度高達(dá)20MHz。該M
    的頭像 發(fā)表于 09-29 09:58 ?244次閱讀
    <b class='flag-5'>AVR</b>32SD20/28/32<b class='flag-5'>微控制器</b>技術(shù)解析與應(yīng)用指南

    NuMicro?系列微控制器具有相同模塊的ADC的每個(gè)通道是否可以同時(shí)采樣?

    NuMicro?系列微控制器具有相同模塊的ADC的每個(gè)通道是否可以同時(shí)采樣?
    發(fā)表于 08-26 08:08

    ADuCM360/ADuCM361低功耗、精密模擬微控制器中文手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《ADuCM360/ADuCM361低功耗、精密模擬微控制器中文手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-09 17:14 ?0次下載

    ADC的DGND與控制器的DGND是什么關(guān)系?

    尊敬的TI專家,通常在高精度ADC,都會(huì)有AGND和DGND兩個(gè)引腳,比如ADS1254的17腳和12腳。 在設(shè)計(jì),基于控制器的數(shù)據(jù)采集系統(tǒng)會(huì)出現(xiàn)多地的處理疑問(wèn)如下: 1.
    發(fā)表于 01-24 08:04

    汽車微控制器虛擬控制器的分類與實(shí)踐

    虛擬控制器(V-ECU)是指通過(guò)軟件在模擬環(huán)境運(yùn)行,模仿實(shí)際硬件控制器功能的系統(tǒng)組件。它可用于開(kāi)發(fā)、測(cè)試和驗(yàn)證嵌入式系統(tǒng),而無(wú)需依賴實(shí)際的
    的頭像 發(fā)表于 01-06 15:23 ?1730次閱讀
    汽車<b class='flag-5'>微控制器</b>虛擬<b class='flag-5'>控制器</b>的分類與實(shí)踐

    新唐科技推出專為高溫度環(huán)境設(shè)計(jì)的微控制器

    高溫高壓環(huán)境微控制器的智慧之選 在當(dāng)今科技飛速發(fā)展的時(shí)代,各行各業(yè)對(duì)于電子設(shè)備的性能要求日益提升,尤其是在極端環(huán)境下,微控制器的穩(wěn)定性和可靠性更是成為了衡量產(chǎn)品品質(zhì)的關(guān)鍵因素。面對(duì)高
    的頭像 發(fā)表于 12-23 13:54 ?845次閱讀