您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页ADC0809与51单片机接口电路及应用程序

ADC0809与51单片机接口电路及应用程序

来源:吉趣旅游网
ADC0809与51单片机接口电路及应用程序

最近研究了下ADC0809这个芯片,做了个电路,和大家分享 电路原理图如下:

说明: D0~D7接51单片机的P2口(P2.0~P2.7)

ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V)

应用程序如下: #include\"reg52.h\"

#define uchar unsigned char sbit ST=P1^0; sbit EOC=P1^1; sbit OE=P1^2; sbit CLK=P1^3; sbit ADDCS=P1^4;

uchar AD_DATA[2]; //保存IN0和IN1经AD转换后的数据

/**********延时函数************/ void delay(uchar i) {

uchar j; while(i--) {

for(j=125;j>0;j--) ; } }

/*********系统初始化***********/ void init() {

EA = 1; //开总中断

TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216;

TR0=1; //启动定时器T0 ET0=1; ST=0; OE=0; }

/***********T0中断服务程序************/ void t0(void) interrupt 1 using 0 {

CLK=~CLK; }

/***********AD转换函数**********/ void AD() { ST=0;

ADDCS=0; //选择通道IN0 delay(10);

ST=1; //启动AD转换 delay(10); ST=0;

while(0==EOC) ; OE=1;

AD_DATA[0]=P2; OE=0; ST=0;

ADDCS=1; //选择通道IN1 delay(10);

ST=1; //启动AD转换 delay(10); ST=0;

while(0==EOC) ; OE=1;

AD_DATA[1]=P2; OE=0; }

/*****************主函数**************/ void main() {

init(); while(1) { AD(); } }

注: 由于ADC0809内部不带时钟电路,因此用51单片机的定时器T0来产生时钟信号。

在通道选择时,由于B,C接地,当A(ADDCS)为低电平时选择IN0,A为高电平时选择IN1

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务