导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:adc0809问题 急!

* 14463: C51编程:adc0809问题 急!

   wshb168 
wshb168发表的帖子 

 C51编程:adc0809问题 急!
我搞过C52+AD574和C52+7135,在搞C52+ADC0809时遇到问题,请各位指教。
1)C52晶振6M,0809的时钟接C52的ALE(1M),0809的D0-D7接P0,通道选择的地址ABC接
P0.0-2。0809的START,EOC,OE,ALE分别接P1的4个引脚(见源程序) ;
2)运行后,从示波器可以看到EOC的负脉冲,0809的VERF为+5V,VERF-接地,CLOCK端也有
时钟。OE在程序控制也有正脉冲;
3)PC上接收的数据,要么采集的数据就是通道号,要么比通道号小的数,不管输入的模拟量
是多少。源程序如下,请各位高手指点,我已经困惑好久了。
#include <at89x52.h> 
#define unchar unsigned char
#define unint unsigned int 

sbit LedFlash = P3^7; /*LED闪烁*/
sbit ad_start =P1^0;  /*AD启动  */ 
sbit eoc =P1^1;  /* 转换结束*/
sbit oute =P1^2;  /*oUT ENABLED*/
sbit ale=P1^3; /*ALE地址锁存*/
sbit pwm1=P1^4;
sbit pwm2=P1^5;

/*************************/
/*主函数                 */
/*************************/
void main(void )
{
  ale=0; 
  ad_start =1;   /*0809复位*/
  oute=0;
  LedFlash=1;  
  initcomm(); /*串口初试化 */
     
  while(1)
 {

  for (jj=0;jj<=7;jj++)
 {  LedFlash=0;  
   P0=jj;  /*  通道号*/
   jj=jj;
   ale=1;   /* 上升沿0809 锁存通道号*/
   jj=jj;
   jj=jj;
   ad_start =1;  /*   0809复位   */
   jj=jj;
   jj=jj;
   ale=0;    /* */
   ad_start =0;  /*AD启动  */ 
   jj=jj;
   jj=jj;
   jj=jj;
   jj=jj;
   jj=jj;
   jj=jj;
   jj=jj;
   jj=jj;
   while(eoc==0);  /* 等待转换结束*/
   oute=1;    /*三态门打开*/
   jj=jj;
   temp1=P0;   
   LedFlash=1;  
   oute=0;
   
   SBUF=jj;  /* 发送通道号*/
   while(TI==0) ; 
   TI=0; 

   SBUF=temp1;  /*发送采集的数据*/
   while(TI==0) ; 
   TI=0; 
   delay (delaytime);
   }
 }
}

/*主函数结束 */ 

发表时间:2002年11月15日19:16:00

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:硬件:cpld检测按键的去抖算法请问cpld直接与一按键相连,要求按下的时候为低电平,请问有什么比较
[下一篇帖子]:我再给你发一次吧