搜索
bottom↓
回复: 3

ADC0808采集数据给1602显示的数据处理问题

[复制链接]

出0入0汤圆

发表于 2013-5-13 22:09:01 | 显示全部楼层 |阅读模式
问题是:我的把ADC检测的电压数据通过单片机处理给LCD显示,电压数据严重不匹配,就5V和怎么都搞不好?多种算法试了还是不行,难道是其他地方有问题??
下面是我的代码:请大神看看,指教一下:(主要看数据处理部分,检测的是0-5V电压)
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar getdata;//从adc0809读取的数据

/*ADC引脚定义---------------------*/

sbit ST =P2^0;
sbit EOC=P2^1;
sbit OE =P2^2;
sbit CLK=P3^0;

//蜂鸣器控置
sbit speak=P2^3;

/*延时函数1ms*/
void Delay(uchar delay_ms)
{
        for(delay_ms=0;delay_ms<100;delay_ms++);       
}
/*
void ADC_Init()//AD初始化
{
        P1=0xff;
        EOC=1;
        OE =0;
        ST =0;
}
*/
void ReadData (void)//读取转换后的数据
{       
        ST=0;
        ST=1;
   Delay(1);
        ST=0;
        while (!EOC); //EOC为1时,转换结束
        OE  =1;
        Delay(1);
        getdata=P1;
        OE=0;
}

/*LCD控制端定义*/
sbit Lcden=P3^4;
sbit RS   =P3^5;
sbit RW   =P3^6;
sbit duan =P2^6;
sbit wei  =P2^7;

uchar code table[]="0123456789.UVIA=";

//显示读取的数处理
uint date1,date2,date3,date4;
void DataProcessing()
{
                uint temp1;
                temp1=getdata;
                date1=(temp1*500/255)/100;//个位
                date2=(temp1*500/255)%100/10;//小数点后一位
                date3=(temp1*500/255)%10;//小数的后二位
}


void Lcd_write_com (uchar com)  //根据硬件时序图写
{
        RS=0;
        P0=com;
        Delay(3);
        Lcden=1;
        Delay(2);
        Lcden=0;
}
void Lcd_write_date (uchar date)
{
        RS=1;
        P0=date;
        Delay(3);
        Lcden=1;
        Delay(2);
        Lcden=0;       
}
void Lcd_Init()
{
        duan =0;
        wei  =0;
        Lcden=0;
        RS   =0;
        RW   =0;
        Lcd_write_com(0x38);//设置16x2显示,5x7点阵,8位数据接口
        Delay(1);
        Lcd_write_com(0x0f);//开显示,光标,光标闪烁       
        Delay(1);
        Lcd_write_com(0x06);//读或写一个字符地址指针加一,光标加一
        Delay(1);
        Lcd_write_com(0x01);//显示清屏,数据指针和所有显示清零
        Delay(1);
        Lcd_write_com(0x80);//数据指针初始化       
}
void Display()
{  
        Lcd_write_com(0x80+1);
//        Delay(1);
        Lcd_write_date(table[11]);
//        Delay(1);
        Lcd_write_com(0x80+2);
//        Delay(1);
        Lcd_write_date(table[15]);
//        Delay(1);;
        Lcd_write_com(0x80+3);
//        Delay(1);
        Lcd_write_date(table[date1]);
//        Delay(1);
        Lcd_write_com(0x80+4);
//        Delay(1);
        Lcd_write_date(table[10]);
//        Delay(1);
        Lcd_write_com(0x80+5);
//        Delay(1);
        Lcd_write_date(table[date2]);
//        Delay(1);
        Lcd_write_com(0x80+6);
//        Delay(2);
        Lcd_write_date(table[date3]);
//        Delay(2);
        Lcd_write_com(0x80+7);
//        Delay(2);
        Lcd_write_date(table[12]);
//        Delay(2);
}

//定时器0初始化
void Timer0Init(void)
{
        TMOD=0x02;//定时器0工作于模式2
        TH0=0xfb;//定时5us
        TL0=0xfb;
        TR0=1;//启动定时器0
        ET0=1;//打开定时器0中断
        EA=1;//开总中断
}


void main()
{       
//        ADC_Init();//初始化
        Lcd_Init();
        Timer0Init();
        while(1)
        {       
                ReadData ();//adc读取数据
                DataProcessing();//数据处理便于显示
                Display();//数据显示
                if(date1=5)
                speak=1;
                else
                speak=0;
               
        }
       
       
}
void Timer0() interrupt 1
{       
        CLK=~CLK;

}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-5-13 22:13:55 | 显示全部楼层
顶顶

出0入0汤圆

 楼主| 发表于 2013-5-14 23:19:11 | 显示全部楼层
求帮助啊,有经验的说下吧

出0入0汤圆

 楼主| 发表于 2013-5-14 23:42:14 | 显示全部楼层
搜了半天有关资料,终于看到一个信息,原理ADC0808的数据接口与单片机接口顺序相反的!!希望有同样遇到次情况的同学看到了能够了解问题所在!不要纠结程序了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表