|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
AD采樣問題 |
| 作者:gyf2000 欄目:ARM技術(shù) |
我用的是PIC16F877A,AD采樣采用10位精度,AD的電壓基準(zhǔn)為2.5V,從AN1輸入的模擬電壓量為0.48V-0.56V的范圍,此采樣到的電壓值要在LCM上顯示出來為48V——56V,0.48采用后存儲在ADRESH和ADRESL中的值為二進(jìn)制數(shù),而在LCM上顯示的數(shù)字為十進(jìn)制,這兩者之間如何轉(zhuǎn)換比較方便?請高手指點。 我采用的方式為: //定義存儲AD轉(zhuǎn)換值結(jié)構(gòu)體 union adres { unsigned int y1; unsigned CHAR adre[2]; }adresult; unsigned CHAR a; //百位 unsigned CHAR b; //十位 unsigned CHAR c; //個位 unsigned int AD_Result(void) { ADON = 1; #asm nop nop nop nop nop nop nop nop nop nop #endasm ADGO = 1; while(ADGO); adresult.adre[0]=ADRESL; adresult.adre[1]=ADRESH; adresult.y1=(unsigned int)adresult.y1 //強(qiáng)制將二進(jìn)制轉(zhuǎn)換為十進(jìn)制 } a=adresult.y1/100; b=(adresult.y1-a*100)/10; c=adresult.y1/10; 這樣方式得到的a,b,c的值是否是相應(yīng)十進(jìn)制數(shù)的百,十,個位 |
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |