找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13461|回复: 1
打印 上一主题 下一主题
收起左侧

ADC0809电压采集程序(C语言)

[复制链接]
跳转到指定楼层
楼主
ID:83710 发表于 2015-6-24 21:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

//*****************************************************************
//ADC0809的clk经分频74LS74接单片机的ALE端,ADC0809的ALE端接ST端,单片机晶振:12M
//STC89C52RC单片机,此时介接入ADC0809的时钟频率为1M,然后不经过分频,直接把单片机的2M
//频率的出自ALE端的时钟信号接入ADC0809也可以正常工作,不过这是将while(!AD0809_EOC);去掉以后
//发现仍然能够正常工作。同时不加任何延时,基准电压大约为4.41v,,测出来的电压和万用表测得电压吻合
//*****************************************************************
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define ad0809_data P2
sbit ad0809_stale=P3^2;
sbit ad0809_eoc=P3^3;
sbit ad0809_oe=P3^4;
sbit ad0809_a=P3^5;
sbit ad0809_b=P3^6;
sbit ad0809_c=P3^7;
uchar ad0809_read()
{
  uchar tempdata;
  ad0809_a=1;
  ad0809_b=1;
  ad0809_c=1;   //选通第八个通道
  ad0809_stale=1;  //对应ST以及ALE上跳沿,通道地址锁存,AD复位
  ad0809_stale=0;  //ST下降沿,启动AD转换
  //while(!ad0809_eoc); //等带AD转换成功
  ad0809_data=0xff;
  ad0809_oe=1;  //输出容许
  tempdata=ad0809_data;
  ad0809_oe=0;  //输出禁止
  return tempdata;
}
uint ad0809_cvt(uchar digdata)
{
  uint voltdata;
  voltdata=(4.41/255)*digdata*100;
  return voltdata;                                                                                                   
}
//*****************************************************************
//数码管显示子程序,将一个数num显示到某一位weixuan数码管
//*****************************************************************
void numdis(uchar num,uchar weixuan,uchar brightness )
{
  while(brightness--)P0=num*0x10+weixuan*0x01;
  P0=0xff;
}
void display(uint addata)
{
    numdis(addata%1000/100,   2,20);
    numdis(addata%100/10,     1,20);
    numdis(addata%10,         0,20);
}
void main()
{
  while(1)
  {
   display(ad0809_cvt(ad0809_read()));
  }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:209880 发表于 2017-6-10 17:34 | 只看该作者
你好 请问如果我单片机的晶振是12M也可以实现AD采集吗 请尽快回复谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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