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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3069|回復: 4
收起左側

ADC0808芯片測量電壓值,精確度為0.02V怎么改程序,求大神解答。

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次(中獎概率 30%)
ID:318131 發表于 2020-5-13 08:20 | 顯示全部樓層 |閱讀模式
批注 2020-05-13 081618.png
程序:
#include<reg52.h>
#define LCD_DB  P2  
sbit LCD_RS = P1^0;
sbit LCD_RW = P1^1;
sbit LCD_EN = P1^2;
sbit AD_OE=P3^1;       
sbit AD_EOC=P3^2;
sbit AD_A=P3^4;
sbit AD_B=P3^5;
sbit AD_C=P3^6;
sbit AD_START=P3^0;
unsigned char Zh1[]="    voltmeter   ";
unsigned char Zh2[]=" Voltage:       ";
unsigned char sj,ai;
int AD_sj=0,AD_ai=0;

void Busy()                 //檢忙
{
    unsigned char sta;      
    LCD_DB = 0xff;
    LCD_RS = 0;
    LCD_RW = 1;
    do
    {
    LCD_EN = 1;
    sta = LCD_DB;
    LCD_EN = 0;   
    }
    while(sta&0x80);
}

void Lcd_Write_Cmd(unsigned char cmd)      //命令
{
    Busy();
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_DB = cmd;
    LCD_EN = 1;
    LCD_EN = 0;   
}

void Lcd_Write_Data(unsigned char dat)     //數據
{
    Busy();
    LCD_RS = 1;
    LCD_RW = 0;
    LCD_DB = dat;
    LCD_EN = 1;
    LCD_EN = 0;
}
void InitLcd()                            //初始化
{
    Lcd_Write_Cmd(0x38);   
    Lcd_Write_Cmd(0x08);
    Lcd_Write_Cmd(0x01);
    Lcd_Write_Cmd(0x06);
    Lcd_Write_Cmd(0x0c);     
}
void LcdSetCursor(unsigned char x,unsigned char y)   //坐標
{
    unsigned char addr;
    if(y == 0)
        addr = 0x00 + x;
    else
        addr = 0x40 + x;

    Lcd_Write_Cmd(addr|0X80);
}

void LcdShowStr(unsigned char x,unsigned char y,unsigned char *s)  //字符串   
{
    LcdSetCursor(x,y);     
    while(*s)
    {
        Lcd_Write_Data(*s);
        s++;
    }
}

//AD轉換

void AD_xsgs()  //顯示格式
{

        AD_sj=5.00/255*sj*100;
    Zh2[10]=(AD_sj/100)+0x30;
    Zh2[11]='.';
    Zh2[12]=(AD_sj%100/10)+0x30;
    Zh2[13]=(AD_sj%100%10)+0x30;
    Zh2[14]='V';
}

void AD_csh()     //AD主程序
{
        AD_A=0;
        AD_B=0;
        AD_C=0;
        AD_START=1;
        AD_START=0;
        AD_OE=0;
        AD_START=1;
        AD_START=0;
        while(AD_EOC==1);
        AD_OE=1;
        sj=P0;
        AD_OE=0;
}
void ad ()
{
        AD_A=1;
        AD_B=0;
        AD_C=0;
        AD_START=1;
        AD_START=0;
        AD_OE=0;
        AD_START=1;
        AD_START=0;
        while(AD_EOC==1);
        AD_OE=1;
        ai=P0;
        AD_OE=0;
}

void main()
{   
        InitLcd();
        LcdShowStr(0,0,Zh1);
    LcdShowStr(0,1,Zh2);
    while(1)
    {
     AD_csh();
     AD_xsgs();
     ad ();
     LcdShowStr(0,1,Zh2);
    }               
}

回復

使用道具 舉報

ID:282850 發表于 2020-5-13 11:10 | 顯示全部樓層
ADC0808對5V精度是0.0196,基本足你的要求。
        AD_sj=5.00/255*sj*100;
改:
        AD_sj=5*100*sj/255;
試試!
或者
AD_sj=5*1000*sj/255;
后邊顯示再多一位。
回復

使用道具 舉報

ID:318131 發表于 2020-5-13 12:15 | 顯示全部樓層
f556 發表于 2020-5-13 11:10
ADC0808對5V精度是0.0196,基本足你的要求。
        AD_sj=5.00/255*sj*100;
改:

謝謝你的回答,但是改了之后,液晶上顯示的數據和電壓表測出來的數據相差很大
回復

使用道具 舉報

ID:282850 發表于 2020-5-14 09:15 | 顯示全部樓層
元亨利貞 發表于 2020-5-13 12:15
謝謝你的回答,但是改了之后,液晶上顯示的數據和電壓表測出來的數據相差很大

改成AD_sj定義成unsigned long
回復

使用道具 舉報

ID:921489 發表于 2021-5-31 15:44 | 顯示全部樓層
他的精度就是0.019,基本滿足要求
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人免费观看视频 | 久久毛片| 男女网站免费观看 | 亚洲区一| 久久噜噜噜精品国产亚洲综合 | 久久久久免费精品国产 | av黄色片在线观看 | 国产精品特级毛片一区二区三区 | 亚洲国产成人精品女人久久久 | 91精品国产综合久久精品图片 | 少妇久久久 | 国产亚洲一区二区三区 | 日本精品视频一区二区 | 在线三级电影 | 精品在线一区 | 国产不卡在线观看 | 亚洲精品美女视频 | 97精品国产97久久久久久免费 | 91精品久久久久久久久 | 男人天堂社区 | 精品久久久久久亚洲国产800 | 欧美视频精品 | 久久精品欧美一区二区三区不卡 | 粉嫩国产精品一区二区在线观看 | 亚洲黄色av网站 | 精品国产91亚洲一区二区三区www | 亚洲一区二区成人 | www视频在线观看 | 一区中文字幕 | 日韩精品视频在线播放 | 亚洲激情在线观看 | 国产午夜精品一区二区三区嫩草 | 亚洲视频国产视频 | 国产福利91精品 | 日韩一区二区三区精品 | 中文字字幕在线中文乱码范文 | 国产乱肥老妇国产一区二 | 国产欧美精品一区二区 | 久久中文字幕一区 | 成人高清视频在线观看 | 日韩欧美在线视频观看 |