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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC單片機ADC電壓采集數值不穩定

[復制鏈接]
跳轉到指定樓層
樓主
ID:608872 發表于 2021-10-26 17:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 yinnan128 于 2021-10-27 09:43 編輯

       原來用可調電阻分壓ADC采集電壓顯示3.90V很穩定沒有跳動,現在取消可調電阻,改用固定阻值電阻分壓1/3,用按鍵控制程序++、--,變量Calibration校正電壓,但加了這個變量后ADC顯示的電壓在4.38V—4.46V之間跳動不穩定,正常顯示應該是3.90V+0.5V=4.40V。不知道為什么加了變量后電壓不穩定了呢?(看了壇友留言,補充一下:改成按鍵控制,不加校正變量,ADC顯示電壓也是穩定的)             本來是打算改變MCU_V的值來校正電壓的,但因為分壓3倍后,ADC數值要*3才能顯示正確電壓,所以每++、--,MCU_V的值,電壓顯示的步進最小就是0.03V,但電壓顯示穩定。才改用上面的方法。


u8  BT_V[2],Calibration=50;
u16 MCU_V=370;//數字除以100等于單片機供電電壓(ADC參考電壓)
u32 ADC_V;

/*******************************************************************************
* 功  能:初始化ADC
* 描  述:   
*******************************************************************************/
void ADC_init()               
{
P1ASF=0X00;//把P1口設置為非模擬功能
CLK_DIV |= 0x20; //00100000、ADRJ 為 1,ADC_RES 存放高兩位結果,ADC_RESL 存放低 8 位結果
ADC_RES=0;//清除高位轉換結果寄存器
ADC_RESL=0;//清除低位轉換結果寄存器        
}

/*******************************************************************************
* 功  能:讀取ADC
* 描  述:   
*******************************************************************************/
void ADC_duqu()
{
ADC_CONTR = 0x8a;//10001010,啟動ADC電源和設置P1.2口為ADC輸入并且540個時鐘轉換一次
delay_ms(1);
while(!(ADC_CONTR&0X10));        //等待轉換完成
ADC_V=ADC_RES*256+ADC_RESL;     //獲取ADC結果
ADC_CONTR&=~0x10;//0x82 清除ADC標志位
}

/*******************************************************************************
* 功  能:ADC電壓轉換
* 描  述:   
*******************************************************************************/
void ADC_zhuanhuan()
{
ADC_V=ADC_V*MCU_V/1024*3+Calibration;//檢測電壓經過電阻分壓減小3倍,要*3還原
BT_V[0]=ADC_V/100%10+0x30; //計算電壓個位
BT_V[1]=ADC_V/10%10+0x30;  //計算電壓十分位
BT_V[2]=ADC_V%10+0x30;     //計算電壓百分位
}

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

使用道具 舉報

沙發
ID:908826 發表于 2021-10-26 19:12 | 只看該作者
我個人覺得采樣濾波試試???我自己的看法,謝謝批評指正
回復

使用道具 舉報

板凳
ID:883242 發表于 2021-10-26 19:58 | 只看該作者
不穩定應該是外接信號改變了導致的,軟件里面加濾波即可解決。
回復

使用道具 舉報

地板
ID:401564 發表于 2021-10-27 09:12 | 只看該作者
STC的ADC誤差最大誤差大概可以達到5個位左右,具體也沒有計算,數據手冊里的的
像你這個,盡量采用中斷,1樓也說了,開啟濾波
進行5次ADC,把最大數據和最小數據去掉,取中間3次,總和就是*3的效果了
總體要比單次*3好
回復

使用道具 舉報

5#
ID:420836 發表于 2021-10-27 09:26 | 只看該作者
電阻可能不夠好,從而導致測量漂移。
回復

使用道具 舉報

6#
ID:608872 發表于 2021-10-27 09:43 | 只看該作者
TTQ001 發表于 2021-10-27 09:26
電阻可能不夠好,從而導致測量漂移。

改成按鍵控制,不加校正變量,ADC顯示電壓也是穩定的
回復

使用道具 舉報

7#
ID:608872 發表于 2021-10-27 09:44 | 只看該作者
13205495918 發表于 2021-10-26 19:12
我個人覺得采樣濾波試試???我自己的看法,謝謝批評指正

改成按鍵控制,不加校正變量,ADC顯示電壓也是穩定的,硬設計方面應該沒有問題,就是加了校正變量引起的跳動
回復

使用道具 舉報

8#
ID:608872 發表于 2021-10-27 09:44 | 只看該作者
Y_G_G 發表于 2021-10-27 09:12
STC的ADC誤差最大誤差大概可以達到5個位左右,具體也沒有計算,數據手冊里的的
像你這個,盡量采用中斷,1樓也 ...

改成按鍵控制,不加校正變量,ADC顯示電壓也是穩定的,硬設計方面應該沒有問題,就是加了校正變量引起的跳動
回復

使用道具 舉報

9#
ID:401564 發表于 2021-10-27 15:19 | 只看該作者
ADC_V=ADC_V*MCU_V/1024*3+Calibration;
Calibration這玩意是干嘛的?
對比于沒有加這個,如果是穩定的,那就說明Calibration是變化的,那么,這個是在哪里變化的?
只取一次ADC結果直接顯示,在正常情況下,90%的概率就是跳動的,因為ADC本身的誤差,就算電源和取樣電壓都是穩定的,但每次ADC的結果都是有可能變化的
回復

使用道具 舉報

10#
ID:123289 發表于 2021-10-28 10:24 | 只看該作者
單看這幾段程序,是看不出問題的。
或許問題出在其它地方。如多通道切換的方式……。
回復

使用道具 舉報

11#
ID:867005 發表于 2021-10-30 15:21 | 只看該作者
在軟件里加一下濾波,也可以看看是否是硬件的問題
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精精国产xxxx视频在线播放7 | aaa天堂 | 国产精品1区 | 国产精品视频在线免费观看 | 国产成人精品免高潮在线观看 | 中文字幕av中文字幕 | av中文字幕网| 丝袜美腿一区二区三区动态图 | 蜜桃传媒一区二区 | 99精品一区二区 | 麻豆av在线免费观看 | 国产精品123区 | 日本 欧美 三级 高清 视频 | 免费激情av| 欧美精品久久久久 | a级黄色片在线观看 | 欧美日韩在线高清 | 国产精品久久久久久久久久久久 | 亚洲一区二区三区四区五区中文 | 网站黄色在线免费观看 | 午夜久久久久久久久久一区二区 | 日韩二 | 成人深夜福利在线观看 | 日韩一区二区三区四区五区 | 91精品国产综合久久福利软件 | 亚洲精品视频免费观看 | 日本精品一区二区三区在线观看 | 国产乱码久久久久久 | 久久久久久久久久久91 | 亚洲国产精品久久久久婷婷老年 | 亚洲理论在线观看电影 | 欧美日韩免费一区二区三区 | 欧美一级黄色片免费观看 | 久久久久久国产 | 成人精品鲁一区一区二区 | 视频一区在线播放 | 国产分类视频 | 日韩一区在线播放 | 欧美人妇做爰xxxⅹ性高电影 | 精品一二区 | 日韩成人在线网站 |