您的位置 首页 设计

51单片机—ADC0808—05—①

早晚也是闲着没事情做~~干脆就发点简单的东西,毕竟所谓的复杂就是一堆简单的堆出来的~~~究其根本,没有什么复杂的~毕竟ADC这个东西用的比

迟早也是闲着没事情做~~爽性就发点简略的东西,究竟所谓的杂乱便是一堆简略的堆出来的~~~究其底子,没有什么杂乱的~

究竟ADC这个东西用的比较多,也很老练,做出来的东西也是挺多的,所以这个东东就用两三个试验来叙说吧~

先说一下ADC0808 这款A/D转化器的介绍:

1、ADC0808的简介

A/D转化器是一种能把输入模仿电压或许电流信息变成与其成正比的数字量信息的电路芯片。A/D转化器用于完成模仿量到数字量的转化。

ADC0808是典型的8通道模仿输入8位并行数字输出的逐次迫临式A/D转化器。该转化器选用COMS工艺,能够完成8路模仿信号的分时收集。片内有8路模仿选通开关,以及相应的通道地址锁存用译码电路。

1)ADC0808芯片的介绍

2)ADC0808的引脚

3)ADC0808的作业流程

4)与51单片机的托言


基本上也就这么点东西~~~很简略吧~~我感觉也是~~

我艹,然我白白调了半响程序,就那么一点点的过错,浪费了很多的时刻,真不爽啊~~~

贴图看看~~

因为今后会用模块化编程,便于自己今后直接调用~~~,这个主函数:

//——————————————————————————
//完成由ADC0808作为A/D转化器对电阻进行电压的测验
//数码管显现的数据规模为0~255
#include”reg52.h”
#include”macroandconst.h”
#include”delay.h”
#include”adc0808.h”
//——————————————————————————
uchar code seg_disp[4]={0x10,0x20,0x40,0x00};//LED显现的操控代码
uchar count;//LED显现位操控
sbittem=P2^0;
uchar temp_0=0;
//——————————————————————————
//定时器初始化函数
void timer_init()
{
TMOD=0X12;//T0作业在形式2,T1作业在形式1
TH0=(256-50)/256;
TL0=TH0;
TH1=(65536-4000)/256;
TL1=(65536-4000)%6;

ET0=1;
ET1=1;
TR0=1;
TR1=1;
//PT1=1;

EA=1;
}
//——————————————————————————
//main
void main()
{
timer_init();
while(1)
{
ADC0808_init();
}
}
//——————————————————————————
//timer0
void timer0() interrupt 1
{
CLK=~CLK;
if(temp_0==100)
{
temp_0=0;
tem=~tem;
}
}
//——————————————————————————
//timer1
void timer1() interrupt 3
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%6;
for(count=0;count<4;count++)
{
P1=seg_disp[count]|display[count];
delay(10);
}
}

然后便是ADC0808的初始化函数了(一些辅佐的函数我就不贴出来了,比方宏界说啊,软件延时啊,引脚界说什么的~~):

//——————————————————————————
//adc0808的文件函数
#include”reg52.h”
#include”delay.h”
#include”macroandconst.h”
//——————————————————————————
sbit START=P3^0; //转化发动信号
sbit OE=P3^1;//输出答应信号
sbit EOC=P3^2;//转化完毕状况信号
sbit CLK=P3^7;//时钟信号输入端,ADC0808内部没有时钟电路,所需的时钟信号由外部输入,一般频率为500KHz
uchar get_data;//ADC0808转化后的数值
uchar temp;//用于存储ADC0808转化后处理过程中的暂时数值
uchar display[3];//存储十进制的数值
//——————————————————————————
//ADC0808的发动和转化的初始化函数
void ADC0808_init()
{
START=0;//START信号上升沿,将一切内部寄存器清0
START=1;
START=0;//START信号下降沿,开端A/D转化,在转化过程中START坚持为低电平

while(EOC==0);//等候转化完毕

OE=1;//答应器材输出转化的成果

get_data=P0;//P0口接ADC0808,你懂得~~
temp=get_data;//暂存转化成果

OE=0;

display[0]=get_data/100;//将转化的成果转化为10进制数
display[1]=get_data0/10;
display[2]=get_data;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/258638.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部