No.14463 作者:wshb168 邮件: ID:3871 登陆:4次 文章数:13篇 最后登陆IP:202.202.8.203 最后登陆:2003/9/11 9:08:19 注册:2002/11/11 9:08:00 财富:62 发帖时间:2002/11/15 19:16:00 发贴者IP:202.202.8.203 标题:wshb168:C51编程:adc0809问题 急! 摘要:No.14463C51编程: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; /* 通道号*/ &nbs ......
>>返回讨论的主题
|