No.4859 作者:zxy20042050 邮件:zhuoxinyuan2006@163.com ID:101021 登陆:1次 文章数:5篇 最后登陆IP: 最后登陆:2008/2/27 9:28:24 注册:2008/2/27 9:28:24 财富:100 发帖时间:2008/4/4 19:43:24 发贴者IP:124.161.77.132 标题:zxy20042050:ADC0809和89C52数据采集问题求助 摘要:No.4859ADC0809和89C52数据采集问题求助 要求:ADC0809和AT89C52完成数据采集,通过串口发送到PC机在电脑界面上显示出来。(PC机显示界面和接收程序用VB编写) 我先描述一下硬件电路的连接:单片机的PO口依次和74LS373的D0~D7口同时和ADC0809的D0~D7口相连。373的Q0,Q1,Q2依次和ADC0809的A,B,C端口相连。89C52的ALE端口连接373端口的G端,同时ALE端口通过分频器连接到ADC0809的CLK端口。89C52的P2.7端口和/WR经过或非门连接到ADC0809的ALE和START端口,P2.7和/RD经过或非门连接到OE端口。ADC0809的EOC端口通过非门连接到89C52的/INTO端口。剩下的89C52端口都是标准的接法,用的11.0592MHZ,ADC0809的Vref(+)和VCC连接到+5V,Vref(-)和GND连接到地。 程序如下: /* 从ADC0809的8个通道轮流采集一次数据,采集的结果放在数组ad中.其程序如下: */ #include <absacc.h> #include <reg51.h> #define uchar unsigned char #define IN0 XBYTE[0x7ff8] //设置ADC0809的通道0地址 sbit ad_busy=P3^2;//EOC状态 void ad0809(uchar idata *x) {uchar i; uchar xdata *ad_adr; ad_adr=&IN0; for(i=0;i <8;i++)//处理8个通道 {*ad_adr=0;//启动转换 i=i;//延时等待EOC变低 i=i; while(ad_busy==0);//查询等待是否结束 x[i]=*ad_adr;//存转换结果 ad_adr++; ......
>>返回讨论的主题
|
老古网执行:16毫秒 最大:4266毫秒 查询6次
|
|