欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5074|回復: 5
收起左側

STC15W402AS做電壓表,電源電壓變化時顯示電壓間隔0.2V顯示,如12.2直接跳到12.4,沒12.3

[復制鏈接]
ID:116109 發表于 2016-4-23 15:16 | 顯示全部樓層 |閱讀模式
10黑幣
/**********************************************************************
*函 數 名: read_adc()
*函數功能: 讀8位ADC結果
*其    它:
**********************************************************************/
unsigned char read_adc(){                                //AD轉換函數,返回8位結果

        unsigned char ad_flg = 0;                        //存儲AD轉換標志
        WDT_CONTR = 0X3C;                                        //喂狗
        ADC_CONTR = adc_chan;                                //開ADC電源并置轉換通道
        Delay1ms(1);
        ADC_CONTR = ADC_CONTR | 0x08;                //開啟ADC轉換
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        while(ad_flg == 0){                                        //等待AD轉換結束
                WDT_CONTR = 0X3C;                                //喂狗
                ad_flg = (ADC_CONTR & 0X10);
        }
        ADC_CONTR &= 0xe7;                                        //停ADC轉換,清ADC_FLAG
        return (ADC_RES);
}

/**********************************************************************
*函 數 名: vol_conver()
*函數功能: 檢測電壓AD值并轉為電壓顯示數字
*其    它:
**********************************************************************/
void vol_conver(){                                //將測得的電壓四次平均按分壓比換算成十進制的電壓數
        unsigned char i, j, temp;
        unsigned char buf[AD_TIMES];
        WDT_CONTR = 0X3C;                        //喂狗
        adc_chan = ADC_V;                        //電壓通道

        for(i=0;i<AD_TIMES;i++){                //采樣AD_TIMES次
                  buf[i]=read_adc();
        }
        for(i=0;i<AD_TIMES-1; i++){
                for(j=i+1;j<AD_TIMES;j++){
                        if(buf[i]>buf[j]){                //升序排列
                                temp=buf[i];
                                buf[i]=buf[j];
                                buf[j]=temp;
                        }
                }
        }
        value_v=0;
        for(i=2;i<AD_TIMES-2;i++)value_v+=buf[i];
        value_v >>= 3;
        value_v *= 13;                                //data*3.3/256*1000 單位mV
        value_v <<=4;                                //乘16倍電阻分壓比

        dis_done = 0;
        v_10=value_v/10000;                                                        //10V
        v_1=(value_v-v_10*10000)/1000;                                //1V
        v_01=(value_v-v_10*10000-v_1*1000)/100;                //0.1V
        dis_done = 1;
}


回復

使用道具 舉報

ID:188031 發表于 2017-7-15 10:49 | 顯示全部樓層
能用嗎?源程序,仿真有沒
回復

使用道具 舉報

ID:249808 發表于 2018-5-4 10:30 | 顯示全部樓層
你這個最好有個仿真電路別人才能容易分析……
回復

使用道具 舉報

ID:213173 發表于 2018-5-4 13:13 | 顯示全部樓層
使用12位ADC轉換,提高轉換精度,每隔2ms采一次樣,10次為一個計算周期,可以有效減小無所不在的50Hz共/差模干擾造成的影響,計算時末位+5以得到四舍五入結果。
回復

使用道具 舉報

ID:126608 發表于 2018-5-4 13:31 | 顯示全部樓層
10位AD的片子,不要做成99.9v的,做成30.0v的就沒問題.精度受限,STC新出的12位AD的片子能解決這個
問題。
回復

使用道具 舉報

ID:12041 發表于 2018-5-17 15:49 | 顯示全部樓層
樓上說的對,新款單片機是STC8A系列的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表