亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

身價(jià)過(guò)億的溫柔蘿莉?qū)π〈a農(nóng)說(shuō)ADC會(huì)采集嗎

gnehc / 2789人閱讀

摘要:對(duì)于電壓或者電流連續(xù)變化的信號(hào),就需要通過(guò)模數(shù)轉(zhuǎn)換電路,變成單片機(jī)可以識(shí)別的數(shù)字電平信號(hào)。目前來(lái)說(shuō),常見(jiàn)的有兩種方式,一種是并行比較,一種是逐次比較。具有成本低元件簡(jiǎn)單等優(yōu)勢(shì),而且容易做出高精度的轉(zhuǎn)換器,所以被廣泛使用。


小碼農(nóng)電壓使者怎么敢說(shuō)不會(huì)采集

模擬量—>數(shù)字量(ADC模塊)

模擬量與單片機(jī)的數(shù)字量之間的關(guān)系

5V 單片機(jī) CPU 電路是二進(jìn)制的,運(yùn)算過(guò)程中,電壓只有2種:高電平 5V 和低電平 0V 。對(duì)于電壓或者電流連續(xù)變化的信號(hào),就需要通過(guò)模數(shù)轉(zhuǎn)換電路,變成單片機(jī)可以識(shí)別的數(shù)字電平信號(hào)。 MP3 就是用 ADC 采樣保存的失真文件。

模擬量轉(zhuǎn)換成數(shù)字的方式

模擬量變成數(shù)字量,通常都是用比較器來(lái)負(fù)責(zé)轉(zhuǎn)換。目前來(lái)說(shuō),常見(jiàn)的有兩種方式,一種是并行比較,一種是逐次比較

**并行比較器:**速度比較快,但是采用的元件非常非常多。成本會(huì)非常高。所以,實(shí)用性不是很廣泛

**逐次比較器:**通過(guò)反饋控制,多次運(yùn)算后,轉(zhuǎn)換出結(jié)果。具有成本低、元件簡(jiǎn)單等優(yōu)勢(shì),而且容易做出高精度的轉(zhuǎn)換器,所以被廣泛使用。

逐次比較器ADC的概念

一個(gè)超級(jí)好的例子分享給你們

先來(lái)玩?zhèn)€游戲 :狗蛋拿了些花生米,跟你說(shuō),想吃就要先猜對(duì)有多少個(gè)。告訴你最多是 255 顆,你猜的時(shí)候,可以告訴你多了或者少了。那么,怎么猜才能最快猜出花生米的數(shù)量?
猜的時(shí)候,為了方便計(jì)算, 我們多加 0.5 顆花生米。
==第一步:==猜 255 ÷ 2 +0.5=128. 狗蛋告訴你,多了 (0) 。
第二步:猜 128 ÷ 2=64. 狗蛋告訴你,少了 (1)。
第三步:猜 (128 + 64) ÷ 2=96. 狗蛋 告訴 你,多了 (0) 。
第四步:猜 (96 + 64) ÷ 2=80. 狗蛋 告訴 你,少了 (1) 。
第五步:猜 (96 + 80) ÷ 2=88. 狗蛋 告訴 你,少了(1)。
第六步:猜 (96 + 88) ÷ 2=92. 狗蛋 告訴 你,多了(0)。
第七步:猜 (92+ 88) ÷ 2=90. 狗蛋 告訴 你,多了(0) 。
第八步:猜 (90+ 88) ÷ 2=89. 狗蛋 告訴 你,猜對(duì) (?) 。
得出結(jié)果: 如果不加 0.5 ,實(shí)際計(jì)算公式得結(jié)果是 88.65234375 。實(shí)際上88.65比89小所以是 1
四舍五入, 89>88.65, 取 ?= 1 ;得出結(jié)果就是 0 1 0 1 1 0 0 1 =89=0x59;

STC內(nèi)部ADC模塊的寄存器

1.ADC口配置成ADC輸入模式或者高阻模式

2.ADC控制寄存器:ADC_CONTR.控制電源,轉(zhuǎn)換速度,標(biāo)志位,啟動(dòng)位,通道選擇[2:0]

3.ADC采樣結(jié)果輸出寄存器ADC_RES,ADC_RESL??梢允荹1:0]+[7:0],也可以是[7:0]+[1:0].

4.ADC轉(zhuǎn)換,跟中斷有關(guān)的寄存器IE

5.輔助寄存器AUXR1,主要是控制結(jié)果寄存器的存儲(chǔ)格式

這里我們需要采集電池電壓(我們用P1.0采集)

我是準(zhǔn)備用ADC0來(lái)檢測(cè)電池電壓的,具體看老師需求,然后把示數(shù)顯示到數(shù)碼管上面,因?yàn)橹拔页鲞^(guò)數(shù)碼管博客,大家可能還有點(diǎn)印象,不知道的看真正的數(shù)碼管

P1M1 |= 0x01;P1M0 &= ~0x01;//P1.0腳ADC0

P1ASF |= 0x01;

CLK_DIV |= 0x20;

ADC_RES = 0;ADC_RESL = 0;

ADC初始化

//ADC初始化void ADC_Init(){	P1M1 |= 0x0f;	P1M0 &= ~0x0f;//P1.0腳ADC0	P1ASF |= 0x0f;//	P1M1 |= 0x02;// 	P1M0 &= ~0x02;//P1.1腳ADC1//	P1ASF |= 0x02;	CLK_DIV |= 0x20;	ADC_RES = 0;	ADC_RESL = 0;}

ADC_CONTR = 0x88;

ADC讀數(shù)據(jù)底層驅(qū)動(dòng)

//ADC讀數(shù)據(jù)底層驅(qū)動(dòng)void ADC_Read_Data_Drive(){	//轉(zhuǎn)換之前先把轉(zhuǎn)換結(jié)果寄存器清零	ADC_RES = 0;	ADC_RESL = 0;	//啟動(dòng)轉(zhuǎn)換	ADC_CONTR = 0x88;//轉(zhuǎn)換速度我用最慢的	//等到ADC_FLAG為1	while(!(ADC_CONTR&0x10));	//然后把數(shù)據(jù)傳到緩存變量里面去	ADC_Read_Data = ADC_RES<<8;	ADC_Read_Data = ADC_Read_Data+ADC_RESL;	}

演示視頻

采集電壓

采集電壓

ADC代碼

ADC_Drive.c(還有一個(gè)我自己寫(xiě)的濾波函數(shù),使得數(shù)據(jù)穩(wěn)定)基本這個(gè)水平可以拿省二了

#include "all.h"//有數(shù)據(jù)那我們就得存u16 xdata ADC_Read_Data = 0;u16 xdata ADC_Filter_Data = 0;//ADC初始化void ADC_Init(){	P1M1 |= 0x0f;	P1M0 &= ~0x0f;//P1.0腳ADC0	P1ASF |= 0x0f;//	P1M1 |= 0x02;// 	P1M0 &= ~0x02;//P1.1腳ADC1//	P1ASF |= 0x02;	CLK_DIV |= 0x20;	ADC_RES = 0;	ADC_RESL = 0;}//ADC讀數(shù)據(jù)底層驅(qū)動(dòng)void ADC_Read_Data_Drive(){	//轉(zhuǎn)換之前先把轉(zhuǎn)換結(jié)果寄存器清零	ADC_RES = 0;	ADC_RESL = 0;	//啟動(dòng)轉(zhuǎn)換	ADC_CONTR = 0x88;//轉(zhuǎn)換速度我用最慢的	//等到ADC_FLAG為1	while(!(ADC_CONTR&0x10));	//然后把數(shù)據(jù)傳到緩存變量里面去	ADC_Read_Data = ADC_RES<<8;	ADC_Read_Data = ADC_Read_Data+ADC_RESL;	}//全局的ADC濾波數(shù)據(jù)結(jié)構(gòu)體指針ADC_Data* adc_filter;//ADC濾波數(shù)據(jù)底層驅(qū)動(dòng)void ADC_Filter_Data_Drive(){			/*u16  ADC_Min = 0;	u16  ADC_Max = 0;	u16  ADC_Tmp = 0;	u16  ADC_Result = 0;*/		//設(shè)置兩個(gè)循環(huán)變量	u8 i = 0;	u8 j = 0;	ADC_Filter_Data = 0;	ADC_Read_Data_Drive();	for(i = 0;i<4;i++)//外層8次循環(huán)	{		adc_filter->ADC_Result = 0;		adc_filter->ADC_Min = 		adc_filter->ADC_Max = 		ADC_Read_Data;		for(j = 0;j<4;i++)//內(nèi)層8次循環(huán)		{			adc_filter->ADC_Tmp = ADC_Read_Data;			if (adc_filter->ADC_Tmp < adc_filter->ADC_Min) 			{				adc_filter->ADC_Result += adc_filter->ADC_Tmp;				adc_filter->ADC_Min = adc_filter->ADC_Tmp;			}			else if (adc_filter->ADC_Tmp > adc_filter->ADC_Max) 			{				adc_filter->ADC_Result += adc_filter->ADC_Tmp;				adc_filter->ADC_Max = adc_filter->ADC_Tmp;			}			else 			{				adc_filter->ADC_Result += adc_filter->ADC_Tmp;			}						}		adc_filter->ADC_Result /= 4;		ADC_Filter_Data += adc_filter->ADC_Result;	}	  ADC_Filter_Data /= 4;}

ADC_Drive.h

#ifndef ADC_Drive#define ADC_Drivetypedef struct ADC_Filter_Data{	u16  ADC_Min;      //ADC最小值	u16  ADC_Max;      //ADC最大值	u16  ADC_Tmp;      //ADC臨時(shí)值	u16  ADC_Result;   //ADC結(jié)果} ADC_Data;//外部聲明extern void ADC_Init();extern void ADC_Read_Data_Drive();extern void ADC_Filter_Data_Drive();extern u16 xdata ADC_Read_Data;extern u16 xdata ADC_Filter_Data;#endif

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/124049.html

相關(guān)文章

  • 身價(jià)過(guò)億的女王對(duì)小農(nóng)說(shuō)中斷會(huì)

    摘要:復(fù)位后初值是子函數(shù)調(diào)用,中斷響應(yīng)過(guò)程調(diào)用子函數(shù)處理中斷響應(yīng)的時(shí)候,程序計(jì)數(shù)器的值以及相關(guān)數(shù)據(jù)會(huì)先壓入堆棧,然后去處理子函數(shù)中斷服務(wù)。聯(lián)動(dòng)文章身家過(guò)億的帝都富豪對(duì)小碼農(nóng)說(shuō)你時(shí)空復(fù)雜度會(huì)了嗎 ...

    Leck1e 評(píng)論0 收藏0
  • 身價(jià)過(guò)億的女總裁對(duì)小農(nóng)說(shuō)你按鍵會(huì)

    摘要:行列總共使用個(gè)口,可以掃描個(gè)按鍵的開(kāi)關(guān)狀態(tài),這就是矩陣鍵盤(pán)的優(yōu)勢(shì)??谥g必須串聯(lián)電阻。 文章目錄 小碼農(nóng)為了總裁,咳咳,為了知識(shí)敢說(shuō)按鍵不會(huì)嗎?==**帝都富豪與...

    Doyle 評(píng)論0 收藏0
  • 身價(jià)過(guò)億的賢淑才女對(duì)小農(nóng)說(shuō)PWM可以控制時(shí)間長(zhǎng)短

    摘要:否則可能會(huì)導(dǎo)致電平顛倒完美的計(jì)數(shù)糟糕的線條再來(lái)一個(gè)測(cè)試組我們來(lái)實(shí)現(xiàn)一個(gè)呼吸燈的效果呼吸燈波形為了賢淑妻子,咳咳,賢淑才女,小碼農(nóng)必定讓控制時(shí)間什么是脈寬調(diào)制中間動(dòng)的線是電流線,電流通斷,電流小就暗,電流大就亮。 ...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • 身價(jià)過(guò)億的妖媚子對(duì)小農(nóng)說(shuō)串口能傳送我的愛(ài)?

    摘要:目前,所有型號(hào)串口的輸入是輸出是。串口全雙工通信是沒(méi)有時(shí)鐘脈沖的,只能依靠晶振脈沖定時(shí)器的溢出脈沖。中斷中讀取,清標(biāo)志,然后返回給計(jì)算機(jī),等待發(fā)送完畢防重疊最少時(shí)間次位定時(shí)器時(shí)間。實(shí)現(xiàn)燒錄程序的目的。 ...

    iOS122 評(píng)論0 收藏0
  • 關(guān)于ADC芯片的選型

    摘要:關(guān)于芯片的選型,還是其他芯片的選型,那都不是隨隨便便就說(shuō)了算得。芯片成本參差不齊,選的好直接起飛,選的不好,直接破產(chǎn)。 關(guān)于ADC芯片的選型,還是其他芯片的選型,那...

    mgckid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<