ADC0808运用编程程序

来源:本站
导读:目前正在解读《ADC0808运用编程程序》的相关信息,《ADC0808运用编程程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《ADC0808运用编程程序》的详细说明。
简介:  ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

ADC0808运用编程程序

# include 《reg52.h》

# define uint unsigned int

# define uchar unsigned char

uchar code table0[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};

uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0到9数码管编码

uchar table2[5],getdata; //定义数组变量

uint t;

sbit START=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

sbit CLOCK=P3^3;

void delayms(uint x)

{

uint i,j;

for(i=x;i》0;i--)

for(j=50;j》0;j--);

}

void init_interrupt() //初始化定时计数器

{

TMOD=0x02;

TH0=0xfb;

TL0=0xfb;

EA=1;

ET0=1;

TR0=1;

}

voidTImer_T0() interrupt 1 //定时器0中断函数,产生100KHz时钟频率

{

CLOCK=~CLOCK;

}

void display()

{

t=getdata*12000.0/255;

table2[0]=t%10;

table2[1]=t/10%10;

table2[2]=t/100%10;

table2[3]=t/1000%10;

table2[4]=t/10000;

if(t》=10000)

{

P2=0xef;

P1=table[table2[1]];

delayms(1);

P2=0xdf;

P1=table[table2[2]];

delayms(1);

P2=0xbf;

P1=table0[table2[3]];

delayms(1);

P2=0x7f;

P1=table[table2[4]];

delayms(1);

}

if(t《10000)

{

P2=0xef;

P1=table[table2[0]];

delayms(1);

P2=0xdf;

P1=table[table2[1]];

delayms(1);

P2=0xbf;

P1=table[table2[2]];

delayms(1);

P2=0x7f;

P1=table0[table2[3]];

delayms(1);

}

}

void main()

{

init_interrupt();

while(1)

{

OE=0;

START=0;

START=1;

START=0;

while(EOC==0);

OE=1;

getdata=P0;

OE=0;

display();

}

}

提醒:《ADC0808运用编程程序》最后刷新时间 2024-03-14 01:08:25,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《ADC0808运用编程程序》该内容的真实性请自行鉴别。