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

標題: 單片機+ADC0808芯片,現在精確度是0.05,希望精確度是0.02,求指導如何修改? [打印本頁]

作者: 元亨利貞    時間: 2020-5-13 16:42
標題: 單片機+ADC0808芯片,現在精確度是0.05,希望精確度是0.02,求指導如何修改?
這是文件,里面有仿真和程序
數字電壓表.rar (108.94 KB, 下載次數: 14)

這是程序
#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=100- sj*5.00/25.5;
        AD_sj=5.00*100/255*sj;
    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);
    }               
}


數字電壓表.rar

175.59 KB, 下載次數: 7


作者: 51hei**1140    時間: 2020-5-14 08:35
你好!
1、首先,仿真里面可調電位器的變化量是1%
2、0808直接加外接時鐘,實物測量沒有任何意義
作者: wulin    時間: 2020-5-14 08:41
分辨率可以做到0.02V,精確度做不到±0.02V。
作者: 元亨利貞    時間: 2020-5-14 15:08
wulin 發表于 2020-5-14 08:41
分辨率可以做到0.02V,精確度做不到±0.02V。

分辨率怎么改為0.02V呢,可以解釋一下嗎。麻煩了
作者: w254489035    時間: 2020-5-21 15:40
不容易做到




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1