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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9754|回復: 9
打印 上一主題 下一主題
收起左側(cè)

單片機怎么把AD讀出來的10位二進制的數(shù)轉(zhuǎn)化為10進制數(shù)?

[復制鏈接]
回帖獎勵 500 黑幣 回復本帖可獲得 100 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:428298 發(fā)表于 2018-12-9 19:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
怎么把AD讀出來的10位二進制的數(shù)轉(zhuǎn)化為10進制數(shù)?我用的STC12C5A60S2單片機。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:164602 發(fā)表于 2018-12-10 08:19 | 只看該作者
你的問題有兩個方面:
第一:將讀到的AD值(10位),放到一個int類型的變量里。
第二:逐位(只管有用的10位),做數(shù)學計算。
舉例:
假設(shè)取得的10位數(shù)據(jù)是1010101010,那么變量中的值就是0000001010101010
這個值的十進制數(shù)的值(從最左高位算起),就是1*2^9+0*2^8+1*2^7+0*2^6+1*2^5+0*2^4+1*2^3+0*2^2+1*2^1+0*2^0=512+0+128+0+32+0+8+0+2+0=682
這就是二進制與十進制的換算過程。

評分

參與人數(shù) 1黑幣 +15 收起 理由
czjlovezy + 15 很給力!

查看全部評分

回復

使用道具 舉報

板凳
ID:354282 發(fā)表于 2018-12-10 08:25 | 只看該作者

STC12C5A60S2 AD 轉(zhuǎn)換
  STC系列單片機中的STC89LE516AD/X2提供了8路8位精度的高速A/D轉(zhuǎn)換器,位于P1口上,從而省去了片外ADC的麻煩。這8路ADC為電壓輸入型,可做按鍵掃描,電池電壓檢測,頻譜檢測等。ADC轉(zhuǎn)換過程需要17個機器周期。通過對相關(guān)功能寄存器的適當配置,就可以控制其工作。下面就對相關(guān)功能寄存器進行介紹。

    A/D轉(zhuǎn)換寄存器總表:



(1)       P1_ADC_EN:特殊功能寄存器

P1.x作為A/D轉(zhuǎn)換輸入通道來用允許特殊功能寄存器。相應位為“1”時,對應的P1.x口作為A/D轉(zhuǎn)換使用,內(nèi)部上拉電阻自動斷開。



ADC_START是模擬/數(shù)字轉(zhuǎn)換(ADC)啟動控制位,設(shè)置為1時,開始轉(zhuǎn)換。

      ADC_FLAG是模擬/數(shù)字轉(zhuǎn)換結(jié)束標志位,當A/D轉(zhuǎn)換完成后,ADC_FLAG=1。

(3)       ADC_DATA: A/D轉(zhuǎn)換結(jié)果特殊功能寄存器

模擬/數(shù)字轉(zhuǎn)換結(jié)果計算公式為 結(jié)果=256×Vin/Vcc

Vin是模擬輸入通道輸入電壓,Vcc為單片機實際工作電壓,用單片機工作電壓作為模擬參考電壓。

         

    內(nèi)置ADC的使用例程:

          STC_ADC.h:

sfr P1_ADC_EN=0x97;

sfr ADC_CONTR=0xc5;

sfr ADC_DATA=0xc6;



int GetAD(unsigned char channel)//channel為要取的通道號(0~7)

{

    unsigned char AD_finished=0;

    ADC_DATA=0;

    ADC_CONTR=channel;

    ADC_CONTR|=0x08;

    while(!AD_finished)

      AD_finished=(ADC_CONTR&0x10);

    ADC_CONTR&=0xF7;

    return (ADC_DATA);

}



void AD_Init(unsigned char ADin)// ADC 初始化,ADin為八位2進制數(shù),分別對應AD7~0,置1代表打開此路

{

P1=P1|ADin;//要設(shè)置為A/D轉(zhuǎn)換的P1.x口,先設(shè)為高

P1_ADC_EN=ADin;

}











      _main.c:

#include

#include <stc_adc.h>



/*

-------------------------------------------------

    此程序用以說明STC單片機ADC的使用方法

-------------------------------------------------

*/



void delay(unsigned time)

{

while(time--);

}



void main()

{

AD_Init(0x63);//0110,0011,要設(shè)置為A/D轉(zhuǎn)換的P1.x口,先設(shè)置為高

             //0110,0011,P1的P1.0,P1.1,P1.5,P1.6設(shè)置為A/D轉(zhuǎn)換輸入腳

                     //斷開P1.0,P1.1,P1.5,P1.6內(nèi)部上拉電阻

while(1)

{

  P2=GetAD(0);

  delay(10000);

  P2=GetAD(1);

  delay(10000);

  P2=GetAD(5);

  delay(10000);

  P2=GetAD(6);

  delay(10000);

}

}


回復

使用道具 舉報

地板
ID:428298 發(fā)表于 2018-12-10 16:37 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-12-10 08:19
你的問題有兩個方面:
第一:將讀到的AD值(10位),放到一個int類型的變量里。
第二:逐位(只管有用的10位 ...

那在程序中怎么實現(xiàn)?比如說從左到右的二位1*2^1要先把數(shù)全部向左移使高位全部清零然后右移回來讓地位也全部清零再相乘?
回復

使用道具 舉報

5#
ID:428298 發(fā)表于 2018-12-10 16:41 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-12-10 08:19
你的問題有兩個方面:
第一:將讀到的AD值(10位),放到一個int類型的變量里。
第二:逐位(只管有用的10位 ...

我之前有把AD的值讀到一個16位的變量中,然后把這個變量直接和10進制數(shù)相乘,然后這個結(jié)果是幾進制的?
回復

使用道具 舉報

6#
ID:699785 發(fā)表于 2020-3-27 23:38 | 只看該作者
czjlovezy 發(fā)表于 2018-12-10 16:41
我之前有把AD的值讀到一個16位的變量中,然后把這個變量直接和10進制數(shù)相乘,然后這個結(jié)果是幾進制的?

與多少進制的數(shù)相運算自動變成多少進制!
回復

使用道具 舉報

7#
ID:707815 發(fā)表于 2020-3-28 17:15 | 只看該作者
數(shù)據(jù)幾進制沒有區(qū)別,只是機器碼與人類習慣的區(qū)別,跟數(shù)值大小沒有任何關(guān)系的,就相當于十六0X10與十進制16,是相等的,你可以直接拿你轉(zhuǎn)換出來的二進制數(shù)據(jù)直接與十進制進行比較的,你要是拿轉(zhuǎn)換出來的數(shù)據(jù)進行其他處理的話,就另說了,如果要自己比較就是數(shù)學運算轉(zhuǎn)化一下
回復

使用道具 舉報

8#
ID:316880 發(fā)表于 2020-3-28 18:55 | 只看該作者
STC單片機讀出來的數(shù)據(jù)本來就是十進制數(shù),0-1023
回復

使用道具 舉報

9#
ID:201555 發(fā)表于 2020-4-1 22:42 來自手機 | 只看該作者
adad/1024*οVrefλλ
回復

使用道具 舉報

10#
ID:450849 發(fā)表于 2020-4-2 08:03 | 只看該作者
為什么要轉(zhuǎn)換?
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级久久 | 国产91在线 | 欧美 | 蜜桃在线一区二区三区 | 亚洲精品久久久久中文字幕二区 | 亚洲精品视频在线播放 | 午夜欧美 | 亚洲一区二区三区视频 | 久久久成人精品 | 免费在线黄 | 国产精品国产三级国产aⅴ中文 | 国产区在线观看 | 播放一级黄色片 | 亚洲精品播放 | 国产精品久久久久久久久免费高清 | 欧美黑人狂野猛交老妇 | 97国产一区二区精品久久呦 | 青青草一区 | 国产目拍亚洲精品99久久精品 | 久久久久免费观看 | 欧美日韩国产精品激情在线播放 | 在线三级网址 | 国产高清精品一区二区三区 | 都市激情亚洲 | 日韩久久久久 | 精品国产一区二区三区免费 | 欧美成人精品一区二区男人看 | 亚洲啪啪一区 | 精品在线看 | 日韩中文字幕一区二区 | 国产精品视频一区二区三区不卡 | 国产精品一区在线观看 | 日韩欧美在 | 亚洲精品久久久久中文字幕二区 | 久久精品国产一区二区电影 | 欧美群妇大交群中文字幕 | 精品欧美一区二区在线观看 | 国产无人区一区二区三区 | 亚洲免费一区二区 | 成人在线播放网址 | 国产91中文 | 日韩欧美一区二区三区免费观看 |