搜索
bottom↓
回复: 2

单片机控制ADC0809,EOC端总是低电平?

[复制链接]

出0入0汤圆

发表于 2013-3-11 22:41:32 | 显示全部楼层 |阅读模式
显示程序是没问题的,我调试了。我调试的时候发现,adc的EOC端居然不输出高电平了,也就是说ADC总是处于正在装换阶段了,因此程序就到了WaitADCEnd()这个函数这里停止不前,把这个函数忽略了就有显示了,由于我之前没做个ADC的调试和写程序,所以特地问下有做个ADC给1602显示的这方面的经验,谢谢啦!还有我用proteus仿真了还是同样的问题,EOC总是低电平,求助高手,好多天了,都没解决,怎么办啊



#include <reg52.h>


/*ADC转换处理---------------------*/

sbit ST =P2^0;
sbit EOC=P2^1;
sbit OE =P2^2;
sbit CLK=P3^0;
//#define P1data P1
#define uchar unsigned char
#define uint unsigned int
uchar getdata;//从adc0809读取的数据


void Delay(uchar delay_ms)
{
        for(delay_ms;delay_ms>0;delay_ms--)
        {        
                uint i=120;
                while(i--);
        }        
}
void ADC_Init()//AD初始化
{
        P1=0xff;
        OE =0;
        ST =0;
}
//void StartADC (void)//开始转换
//{
//        ST=1;
//}
void WaitADCEnd (void)//转换结束
{
        while (!EOC); //EOC为1时,装换结束
}
void ReadData (void)//读取转换后的数据
{
//        uint temp;
        ST=0;
        Delay(1);
        ST=1;
        Delay(1);
        ST=0;
        WaitADCEnd();
        OE  =1;
        Delay(1);
        getdata=P1;
//        return(temp);
        OE=0;
}
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=";

//显示读取的数处理
uchar date1,date2,date3,date4;
void DataProcessing()
{
                uint temp1;
                temp1=getdata;
                date1=(temp1*50*9/255)/100;
                date2=(temp1*50*9/255)%100/10;
                date3=(temp1*50*9/255)%100%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[date2]);
        Delay(1);
        Lcd_write_com(0x80+5);
        Delay(1);
        Lcd_write_date(table[10]);
        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 TimerInit(void)
{
        TMOD=0x05;//定时器0工作于模式一
        TH0=(65536-10)/256;//频率为100khz
        TL0=(65536-10)%256;
        TR0=1;//启动定时器0
        ET0=1;//打开定时器中断
        EA=1;//开总中断
}
void main()
{        
        ADC_Init();//初始化
        Lcd_Init();
        TimerInit();
        while(1)
        {        
                ReadData ();//adc读取数据
                DataProcessing();//数据处理便于显示
                Display();//数据数据显示
        }
        
        
}
void Timer0irp (void) interrupt 1
{        
        CLK=~CLK;
        TH0=(65536-10)/256;
        TL0=(65536-10)%256;//定时器0频率为100khz
}

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-3-12 07:12:24 | 显示全部楼层
老大你定时器没工作啊 ADC0809都没有转换时钟 其它就不说了

出0入0汤圆

 楼主| 发表于 2013-3-12 11:36:02 | 显示全部楼层
yklstudent 发表于 2013-3-12 07:12
老大你定时器没工作啊 ADC0809都没有转换时钟 其它就不说了

我应该早问你的,后来我自己才发现的,我们之前的那本单片机书有印刷错误,总之还是谢谢啦
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 08:22

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

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