微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于adc0809 eoc总是低电平的问题

关于adc0809 eoc总是低电平的问题

时间:10-02 整理:3721RD 点击:
为什么eoc总是低电平啊?我的clk是20k,start也没问题(用示波器测的),软件应该也没问题,仿真测试可行

这是源程序#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint  unsigned int unsigned char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                        sbit ST=P3^0; sbit EOC=P3^1; sbit OE=P3^2; sbit CLK=P3^3;  /**********延时函数************/ void delaynms(uchar i) {         uchar j;         while(i--)         {                 for(j=125;j>0;j--)                 ;         } }  /*********系统初始化***********/ void Init_Time() {         EA = 1; //开总中断         TMOD = 0x02; //设定定时器T0工作方式2     TH0=236;     TL0=236;         TR0=1;//启动定时器T0         ET0=1; }  /***********T0中断服务程序************/ void t0(void) interrupt 1 using 0 {         CLK=~CLK; }  /***********AD转换函数**********/ uint AD() {                 uint ad_data=0;         OE=0;         ST=0;         delaynms(1);         ST=1; //启动AD转换         delaynms(1);         ST=0;         delaynms(1);         while(EOC==0);         OE=1;         ad_data=P1;         OE=0;         return ad_data; } /*******数码管显示******/ void display(uint ad_data) {         P0=tab[ad_data/100];         P2=0xbf;         delaynms(1);         P0=tab[ad_data%100/10];         P2=0xdf;         delaynms(1);         P0=tab[ad_data%10];         P2=0xef;         delaynms(1);         P2=0xFF; }  /**********主函数*******/ void main() {         Init_Time();         while(1)         {                                           display(AD());         } }

ALR,START      信号线给过高电平没有,不应一直保持高电平,EOC持续为低说明转换未完成,从你的程序上看,ALE(地址锁存引脚)未受控,应接受一个正脉冲,实际可以和START引脚连在一起的。

恩,解决了,谢谢

求助小编,怎么解决的,我也是eoc总是低电平,时序和电路都检查好多遍了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top