求教一个单片机ADC0808或者0809的AD转换C语言程序,如果可以和PC机通信就非常感谢了

求教!!!请指导下小弟... 求教!!!请指导下小弟 展开
 我来答
elaineliyan
推荐于2017-12-15 · TA获得超过446个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:139万
展开全部
//------------------------------------------------------------
// ADC0809模数转换
//ADC0809采样通道3输入的模拟量,转换后结果显示在数码管上
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int

uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//ADC0809引脚定义
sbit OE=P1^0;
sbit EOC=P1^1;
sbit ST=P1^2;
sbit CLK=P1^3;
//延时
void Delayms(uint ms)
{
uchar i;
while(ms--)for(i=0;i<120;i++);
}
//显示转换结果
void Display_Result(uchar d)
{
P2=0xf7;
P0=LEDData[d%10];
Delayms(5);
P2=0xfd;
P0=LEDData[d%100/10];
Delayms(5);
P2=0xfd;
P0=LEDData[d/100];
Delayms(5);
}
// 主程序
void main()
{
TMOD=0x02;
TH0=0x14;
TL0=0x00;
IE=0x82;
TR0=1;
P1=0x3f;//选择ADC0809通道3(0111)
//高4位设通道地址为0111
while(1)
{
ST=0;ST=1;ST=0;//启动转换
while(EOC==0); //等待转换结果
OE=1; //允许输出
Display_Result(P3); //显示A/D转换结果
OE=0; //关闭输出
}
}
//T0定时器中断给ADC0809提供时钟信号
void Timer0_INT() interrupt 1
{
CLK=!CLK; //ADC0809时钟信号
}
高电平有效
2009-12-16 · TA获得超过439个赞
知道答主
回答量:55
采纳率:0%
帮助的人:60.6万
展开全部
bit pinA =P1^0;
sbit pinB =P1^1;
sbit pinC =P1^2;
sbit Start=P1^5;
sbit OE =P1^6;
sbit EOC =P1^7;

/*************************等待转换函数*******************************
函 数 名:void WaitADCEnd(void)
功 能:等待转换
说 明:
调用函数:无
入口参数:
返 回 值:无
设 计:UC 日 期:2009-01-28
修 改: 日 期:
********************************************************************/
void WaitADCEnd(void)
{
while(!EOC);
}

/*************************读取数值*******************************
函 数 名:uchar readdata(uchar CH_num)
功 能:读取ADC的转换数值
说 明:
调用函数:WaitADCEnd()
入口参数:uchar CH_num
返 回 值:uchar temp
设 计:UC 日 期:2009-01-28
修 改: 日 期:
********************************************************************/
uchar readdata(uchar CH_num)
{
uchar temp;
pinC=(bit)(CH_num&0x04);
pinB=(bit)(CH_num&0x02);
pinA=(bit)(CH_num&0x01);

_nop_();
_nop_();
_nop_();

Start=1;
WaitADCEnd();
OE=1;

_nop_();
_nop_();
_nop_();

temp=Data&0xff;
return temp;
}
*************************初始化函数*******************************
函 数 名:void IintADC0809 (void)
功 能:初始化ADC0809
说 明:
调用函数:无
入口参数:无
返 回 值:无
设 计:UC 日 期:2009-01-28
修 改: 日 期:
********************************************************************/
void IintADC0809 (void)
{
Data =0xff;
pinA =0;
pinB =0;
pinC =0;
Start =0;
OE =0;
EOC =1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式