日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月02日(星期六)

2020年08月02日 | PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

發(fā)布者:技術(shù)旅人 來(lái)源: elecfans關(guān)鍵字:pic單片機(jī)  ad轉(zhuǎn)換  模擬量 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

AD轉(zhuǎn)換

我們先看看R1和R2,R2是個(gè)可調(diào)電阻如果我們將R2變大RA1這個(gè)管腳上的電壓就越大。R2變小RA1這個(gè)管腳上的電壓就越小。那單片機(jī)是怎么知道電壓變化的。這就需要AD轉(zhuǎn)換。就是將模擬量轉(zhuǎn)換成數(shù)字量。

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

PIC單片機(jī)如何表示電壓

PIC用十位二進(jìn)制位的數(shù)來(lái)表示電壓,也就是數(shù)值0~1023來(lái)表示電壓。那比如現(xiàn)在這個(gè)數(shù)值是400那這代表多少的電壓?這就要根據(jù)參考電壓來(lái)確定了。


比如我們?cè)O(shè)置正參考電壓為3.3V ,當(dāng)輸入的電壓為0時(shí),數(shù)值就為0。當(dāng)輸入的電壓為3.3V時(shí),數(shù)值就是1023. 那如果輸入的電壓是1.2V代表多少電壓。


首先,先算出一個(gè)數(shù)值代表多少的電壓 3.3V除以1023 約等于 0.003V 。


然后,1.2V除以0.003V 等于400. 這就得出了400代表的是1.2V。


見(jiàn)下圖我們可以看AN0~AN7.這些都是可以配置成模擬輸入的端口。只有這些引腳才能做為AD轉(zhuǎn)換的端口。

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

實(shí)例講解:

例如: 我們看第一張的原理圖,從RA0/AN0腳輸入個(gè)模擬量如果電壓大于1.2v則LED亮否則LED滅。


AD的設(shè)置步驟:

1,設(shè)置端口

將RA0口設(shè)置為輸入TRISA = 0x01;

將RA0口設(shè)置為模擬ANSELA = 0x01;


2, 配置ADC模塊

選擇ADC的轉(zhuǎn)換時(shí)鐘。

如何選擇轉(zhuǎn)換時(shí)鐘呢 要根據(jù)現(xiàn)在的時(shí)鐘頻率進(jìn)行選擇??梢愿鶕?jù)數(shù)據(jù)手冊(cè)中的表格進(jìn)行選擇 。


我們?cè)O(shè)置單片機(jī)的時(shí)鐘頻率為32MHZ ,選擇ADC周期關(guān)鍵不要選擇陰影部分,在32MHz 這一列 我們隨意選擇了ADC時(shí)鐘周期1us,對(duì)應(yīng)的時(shí)鐘源為Fosc/32.,AD控制寄存器1 ADCON1的ADCS《2:0》=010注:ADCS《2:0》代表的意思就是 ADCS的0到2位

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

配置參考電壓

我們這里把正參考電壓配置為電源壓。AD控制寄存器1ADCON1的ADPREF《1:0》=00;


配置左/右對(duì)齊

AD轉(zhuǎn)換后數(shù)值是十位的二進(jìn)制,我們用單片機(jī)卻只是八位的,所以PIC單片機(jī),用兩個(gè)八位的寄存器來(lái)存放AD值,ADRESH用來(lái)存放高位結(jié)果,ADRESL用來(lái)存放低位結(jié)果??墒茿DRESH和ADRESL加起來(lái)是十六啊。那這十位的數(shù)值是怎么放在里面的。這就靠左右對(duì)齊來(lái)設(shè)置,

如果是右對(duì)齊 低8八位放在ADRESL,剩下的2位放在ADRESH中。


如果是左對(duì)齊 高8八位放在ADRESH,剩下的2位放在ADRESL中。見(jiàn)下圖

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

我們這里選擇右對(duì)齊,所以AD控制寄存器1ADCON1的ADFM=1

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

上面將有關(guān)ADCON1寄存器的配置說(shuō)完了。下面來(lái)講解ADCON0


選擇ADC輸入通道

AD轉(zhuǎn)換模塊只有一個(gè),而AD輸入通道有8個(gè)AN0~AN7.所以不可能同時(shí)進(jìn)行AD轉(zhuǎn)換,那個(gè)需要用我們就分配給那個(gè),根據(jù)硬件我們將AD轉(zhuǎn)換模塊分配給AN0.


所以 ADCON0 的CHS《4:0》=0000;


開(kāi)啟ADC模塊

ADC模塊開(kāi)啟,ADCON0的ADON=1,只是單純的啟用ADC模塊。并不開(kāi)始AD轉(zhuǎn)換。如果不用ADC模塊時(shí)候建議關(guān)閉??梢允↑c(diǎn)電哦?。?!

PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

3 開(kāi)始AD轉(zhuǎn)換

ADCON0的GO/DONE=1開(kāi)啟AD轉(zhuǎn)換。


4 等待AD轉(zhuǎn)換結(jié)束


5 讀取結(jié)果

一般情況下我們并不取一次的AD轉(zhuǎn)換的值。而是取多次之后算平均值。這樣來(lái)確保轉(zhuǎn)換的準(zhǔn)確性。配置ADC模塊,有許多地方并沒(méi)有講解為什么這么配置,因?yàn)樵S多配置其實(shí)是比較隨意的。并不是那么的絕對(duì)的。一定非要選擇哪一個(gè)。當(dāng)然實(shí)際的配置還是要根據(jù)你項(xiàng)目需求。


//開(kāi)發(fā)環(huán)境MPLAB X IDE ,單片機(jī)PIC16LF1823.

#include

__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON

&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//這個(gè)要放到上一行去

__CONFIG(PLLEN_OFF&LVP_OFF) ;

#define ADC_NUM 8 //轉(zhuǎn)換的次數(shù)

#define LED LATA1

void init_GPIO(void)

{

TRISA = 0x01;//端口設(shè)置為輸入

ANSELA = 0x01;//設(shè)置為模擬輸入

PORTA = 0x00;

LATA = 0x00;

}

void init_fosc(void)

{

OSCCON = 0xF0;//32MHZ

}

void init_AD(void)

{

ADCON1= 0xA0;//右對(duì)齊,AD時(shí)鐘為Fosc/32,參考電壓為電源電壓,

ADCON0= 0x00;//選擇通道AN0

ADCON0bits.ADON = 1;//開(kāi)啟模塊

}

unsigned int ADC_BAT_ONE(void)//轉(zhuǎn)換一次

{

unsigned int value;

value=0;

ADCON0bits.CHS =0;//選擇通道AN0

ADCON0bits.ADGO=1;//開(kāi)始轉(zhuǎn)換

while(ADCON0bits.GO==1);//等待轉(zhuǎn)換結(jié)束

value=(unsigned int)ADRESH;//強(qiáng)制類型轉(zhuǎn)換,因?yàn)锳DRESH是字符型的只能表示8位二進(jìn)制。所以必須轉(zhuǎn)換成可以容納10位二進(jìn)制的整型。

value= value《《8;// 將高兩位左移8位

value += ADRESL;//低八位加入ADRESL的值。

return value;

}

unsigned int ADC_BAT_contiue(void)

{

unsigned int ADV_MCU[ADC_NUM],ADV_CNT,ADV_ALL;

ADV_ALL=0;

for(ADV_CNT=0;ADV_CNT {

ADV_MCU[ADV_CNT]=ADC_BAT_ONE();

}

for(ADV_CNT=0;ADV_CNT {

ADV_ALL += ADV_MCU[ADV_CNT];

}

ADV_ALL= ADV_ALL/ADC_NUM;

return ADV_ALL;//得到結(jié)果返回

}

/*

*

*/

int main(int argc, char** argv) {

init_fosc();//設(shè)置時(shí)鐘

init_GPIO();//設(shè)置I/O口

init_AD();//設(shè)置AD

while(1)

{

if( ADC_BAT_conTIue()》400)//判斷輸入電壓是否大于1.2V

{

LED=1;//燈亮

}

else

{

LED=0;//燈滅

}

}

}


關(guān)鍵字:pic單片機(jī)  ad轉(zhuǎn)換  模擬量 引用地址:PIC單片機(jī)進(jìn)行AD轉(zhuǎn)換的設(shè)計(jì)

上一篇:基于PIC單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
下一篇:PIC單片機(jī)的振蕩器應(yīng)該如何配置

推薦閱讀

當(dāng)前,傳統(tǒng)制造業(yè)面臨諸多挑戰(zhàn):生產(chǎn)力不足、熟練工高齡化……面對(duì)種種課題與挑戰(zhàn),歐姆龍將機(jī)器人技術(shù)、大數(shù)據(jù)、ICT技術(shù)相結(jié)合,旨在將生產(chǎn)制造現(xiàn)場(chǎng)打造為智能化、自動(dòng)化、省人化的新型“生態(tài)系統(tǒng)”。面對(duì)蓬勃的自動(dòng)化投資需求,特別是對(duì)光電傳感器、接近傳感器等工控設(shè)備的需求猛增,歐姆龍投資10億日元,增設(shè)歐姆龍(上海)有限公司(簡(jiǎn)稱OMS)二期工廠!OM...
var videoObject = { container: '.video', variable: 'player', autoplay: true, ...
1 設(shè)計(jì)理念和原理1.1 設(shè)計(jì)理念隨著數(shù)字家庭等領(lǐng)域技術(shù)的迅速發(fā)展,在多媒體終端上的增值業(yè)務(wù)將越來(lái)越多,瀏覽網(wǎng)頁(yè)、搜索、短信等都需要遙控器進(jìn)行輸入。但作為連接用戶和終端之間的重要外設(shè),遙控器的設(shè)計(jì)理念還停留在模擬電視時(shí)代,體驗(yàn)感較差。目前用戶輸入的解決方式是呼出終端的內(nèi)置輸入法,這樣就帶來(lái)了兩個(gè)問(wèn)題:一,不同廠家的終端都需要內(nèi)置自...
看準(zhǔn)伴隨新冠/后新冠時(shí)代訪日旅游需求的增加,導(dǎo)航應(yīng)用“ALPINE SmartX”支持多語(yǔ)種   阿爾卑斯阿爾派株式會(huì)社(TOKYO:6770、社長(zhǎng):栗山 年弘、總部:東京 下稱“阿爾卑斯阿爾派”)對(duì)2020年10月開(kāi)始銷售的導(dǎo)航應(yīng)用“ALPINE SmartX”進(jìn)行了更新,以支持日語(yǔ)、英語(yǔ)、中文、韓語(yǔ)4國(guó)語(yǔ)言。更新版將從今年7月起,由負(fù)責(zé)車載音響設(shè)備市售品銷售的集團(tuán)公...

史海拾趣

問(wèn)答坊 | AI 解惑

寬量程頻率測(cè)量原理及電路

要求能測(cè)量0.1-10Mhz,誤差0.5%,低頻用測(cè)周法,高頻用測(cè)頻法,根據(jù)信號(hào)自動(dòng)切換測(cè)量方法,使用單片機(jī)…

查看全部問(wèn)答∨

學(xué)習(xí)CPLD是用VHDL 還是VERILOG

現(xiàn)在 學(xué)校本科階段的教學(xué) 一般是VHDL         在企業(yè)里一般都是VERILOG         VHDL 語(yǔ)法相對(duì) 嚴(yán)格 代碼效率較高些   較大系統(tǒng) 一般都采用它      &nbs ...…

查看全部問(wèn)答∨

一般的7號(hào)電池容量是多少的?

來(lái)自EEWORLD合作群:49900581  群主:wangkj…

查看全部問(wèn)答∨

380V交流電怎么整出500V的直流電

380V交流電怎么整出500V的直流電,如果用H橋,負(fù)載為電感。 是否需要加電容濾波?!?

查看全部問(wèn)答∨

windows ce 5.0 和 windows ce 6.0區(qū)別在哪里呢?

windows ce 5.0 和 windows ce 6.0區(qū)別在哪里呢? 我想要購(gòu)買windows ce 的安裝盤,請(qǐng)問(wèn)各位大俠 這兩個(gè)版本 如果現(xiàn)在購(gòu)買的話,應(yīng)改買哪一個(gè)版本比較好呢 他們的區(qū)別在那里啊 請(qǐng)求各位了…

查看全部問(wèn)答∨

雙網(wǎng)卡熱備份(雙網(wǎng)卡冗余備份)如何設(shè)計(jì)與實(shí)現(xiàn)呢?

大家好?WIN2000下,以太網(wǎng)網(wǎng)絡(luò),雙網(wǎng)卡熱備份,也就是一個(gè)網(wǎng)卡壞了,另一個(gè)冗余網(wǎng)卡熱切換,兩個(gè)網(wǎng)卡同一個(gè)IP地址,實(shí)現(xiàn)方案是什么?使用哪些工具,技術(shù)?代碼是什么?我的QQ:270996889  E-MAIL:SDTZ_ZZ@126.COM,熱切期待您的回復(fù).謝謝!…

查看全部問(wèn)答∨

求教:關(guān)于IAR的初始化指令,這些指令的意思是什么?

STM32F10X_vector.c的說(shuō)明STM32F10X_vector.c的說(shuō)明剛用IAR,有些東東不大明白,能否詳細(xì)說(shuō)明一下stm32f10x_vector.c這個(gè)文件。#pragma segment="CSTACK"     /*不明白*/#pragma location =  ...…

查看全部問(wèn)答∨

HX6321 鎳氫電池充電IC

HX6321 充電控制功能: - 自動(dòng)依鎳氫電池電壓狀態(tài),作相對(duì)充電控制流程: 激活/預(yù)充/快充/涓流. - 依照規(guī)格需求,可通過(guò)外接電阻R6調(diào)整充電電流. - 合乎工業(yè)界高標(biāo)準(zhǔn)的精準(zhǔn)-delta V、0deltaV判別電池充飽.   - PWM控制充電, 達(dá)到恒流充 ...…

查看全部問(wèn)答∨

12V產(chǎn)生-12V的DC-DC芯片

最近做信號(hào)發(fā)生器,其中運(yùn)放需要用到正負(fù)12V供電,加起來(lái)-12V應(yīng)該有200mA的電流,最好有最大電流可以輸出500mA的。 想用電源適配器輸入一路12V,然后產(chǎn)生整個(gè)板子所需要的電壓,包括正負(fù)12V,正負(fù)5V,3.3V?,F(xiàn)在就是負(fù)電壓產(chǎn)生比較頭疼。 …

查看全部問(wèn)答∨

Atmel SAM D21使用心得(2)----點(diǎn)燈

當(dāng)我安裝好了AtmelStudio 6.2之后,對(duì)怎樣使用它是一無(wú)所知,這時(shí)想到的就是找“度娘”,這是我們學(xué)軟件的一貫做法,當(dāng)然我們是鼓勵(lì)每一個(gè)人當(dāng)有問(wèn)題的是盡量上網(wǎng)找答案,接下來(lái)本來(lái)是打算再網(wǎng)上查找是否有Atmel Studio 6.2教程視頻,但是找了好就 ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved