1樓:匿名使用者
為了得到較高精度,你將除數乘以100,再除被除數。所以最好定義為int型。記憶體中肯定以十六進位制形式(二進位制)儲存的。
2樓:匿名使用者
程式可以直接相除,但只保留整數部分,所以如果你要得到小數兩位,就先乘以100再除,顯示的時候知道最低兩位實際是小數點後兩位就行了。
3樓:風之_鏡花水月
stc12c5a60s2的話,是精度最大來可達10位的自adc,10位可以保證很高的精度。資料應該分為高2位存入一個8位位元組,低8位存入一個8位位元組,然後8位8位的取並移位等操作,最後合併到int等稍大資料型別中,具體參考對應微控制器資料手冊。採集時要保證給微控制器供電電壓相當的穩,具體電壓以微控制器的vcc為準;採集輸入電壓、輸出電壓時,若電壓過大要進行分壓(<=vcc),請選用高精度電阻,不然計算回去很不準;不能直接採集電流,要將其轉換成電壓,可以使用取樣電阻等方法;計算過程直接在程式裡處理,此外取值對應一個資料取樣10次在平均,可以減小誤差,取樣速率可以略高。
我當時採集電壓的時候有10lsb左右的誤差,到最後都沒發現是什麼原因,可能是分壓電阻原因,也可能是vcc不穩。對應一般採集足夠
51微控制器,採用4路ad採集資料,ad採集完成後,這4個資料如何儲存?
4樓:做而論道
先要設計電路,具有采集和儲存的功能。
然後,再設計軟體,進行取樣及儲存。
之後要將這4個資料進行計算分析。
當然應該分析,光是取樣儲存,技術含量就太低了。
樓主應該先去學會計算分析的方法。
5樓:匿名使用者
在程式中申明一個
陣列,用陣列儲存這4路資料;
例 unsigned char uctable[4]; // 陣列申明型別與版ad轉換精度有關。權
uctable[0] = ad0..
.uctable[3] = ad3
如有錯誤請指正。
6樓:匿名使用者
直接賦給一個變數不就可以了麼
微控制器ad轉換的時候,微控制器是靠什麼知道採集的模擬量是多大的?
7樓:匿名使用者
微控制器內有ad模組,就是進行模擬數字轉換的,並且電源電壓為基準,如10位ad轉換器,基準電壓5v,測量2·5v電壓,得到結果即為1024x2·5/5=512
8樓:匿名使用者
參考電壓,這個必須是已知並且穩定不變的,在adc中輸入的模擬量和參考電壓逐次比較來得到未知量的確定值。
9樓:匿名使用者
ad是將模擬量轉化為數字量的器件,微控制器採集到的只是數字編碼,這些數字編碼代表的模擬量大小根據你所用ad器件和參考電壓等不同而不同。
10樓:匿名使用者
1、ad轉換不是微控制器來轉換的,而是adc,現在的多微控制器有很是內部整合了adc
2、ad轉換基本原理可以參考:網頁連結
11樓:西天取經的熊
去看一下ad轉換的原理,
懂事電子設計 vgz
微控制器ad採集回來的數值如何能顯示為對應的電壓值?
12樓:墨汁諾
voltage=ad_data*vref/16777216。
voltage為電壓值:ad_data為ad晶片的採集離散數值。
vref為基準電壓:16777216為2^24。
比如是2.5v,adc轉換的電壓就是2.5/65535 *nadc(v)。
nadc就是採集的adc的值,也就是說,adc的量程為0~2.5v,最小解析度為2.5/65535=38uv。
vref就是ad的參考電壓,比如要轉換5v的電壓~ vref=10v, gnd=0v
那麼輸出的ad結果就是32768(65536的一半),而如果vref=5v,gnd=0v
那麼輸出的ad結果就是65536。
13樓:匿名使用者
和你ad的參考電壓有關,電壓都是相對的
ad有gnd和vref兩個電壓
最後得出的電壓就是:
(vref-gnd)*(result/65536)+gnd就是把vref到gnd分成了65536個,得出的值在其中
14樓:追悔七年
首先你要知道ad的精度,0到65535的值那就是16位的adc.然後要知道adc的參考電壓是多少,比如是2.5v,這樣,adc轉換的電壓就是2.
5/65535 *nadc(v).nadc就是採集的adc的值.也就是說,adc的量程為0~2.
5v,最小解析度為2.5/65535=38uv.
15樓:匿名使用者
用你採集到的電壓值除以65536,再乘以你ad的參考電壓,就是你所測的電壓值
51微控制器裡TMOD設定問題,51微控制器裡TMOD設定問題
可以理解為 同時設定了兩個定時器的工作方式。但要看t1是否有啟動,如果系統中沒有用到t1,沒有啟動,設定了也沒關係。如果兩個都需要使用,需要分別設定,標準的做法是tmod 0x01,這樣就只設定了 t0,t1保留原來的狀態。tmod是8位暫存器,高4 位和低4位分別控制定時器1和0 用或操作的話就是...
有關51實驗版微控制器的問題,關於51微控制器的問題
初步瀏覽了一下,動態顯示的話delay時間太長就會閃爍。你好 初步看一眼,數碼管閃爍的原因無非是時間間隔太長,先建議你縮短延時時間,再事實。希望我的回答能幫助到你。像是串列埠驅動的數碼管,靜態顯示。這樣的電路,不宜頻繁的顯示,一秒鐘,顯示一次就可以了。把顯示部分,移到定時中斷裡面,即可 main v...
學51微控制器需要買什麼東西,51微控制器新手一般需要買什麼東西
可以自己先做個最小系統,要買元件要建立在你自己把電路圖畫好了,不然買了也是浪費錢,學微控制器就是從最小系統開始,像樓上那個人提供了那麼多元器件,沒什麼用,因為你沒電路圖。想要自己焊接的話就焊個最小系統,然後熟練一點之後就外圍擴充套件,或者可以畫個板子去開板,至於到時侯你要買什麼元器件,你就很清楚了。...