模数转换器ADC0808的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实训报告十

实训目的:

通过实现由ADC0808作为A/D转换器对RV1进行电压测量,并在数码管上显示;了解ADC0808的工作方式,进行模拟数据的采样,从而利用c语言编程实现单片机控制处理信息。

实训原理图:

实训步骤:

1.在ptoteus平台找出所需的元器件

2.理解该实验的原理,按照原理图画出仿真图;

3.根据实验要求写出如下程序:

#include

unsigned char code dispcode[4]={0x10,0x20,0x40,0x00}; unsigned char temp;

unsigned char dispbuf[4];

unsigned char count=0;

unsigned char getdata;

sbit ST=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

sbit CLK=P3^7;

void delay(unsigned int i)

{

unsigned int j;

for (j=0;j

}

void init()

{

EA=1;

ET0=1;

ET1=1;

TMOD=0x12;

TH0=216;

TL0=216;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

}

void conversion()

{

ST=0;

ST=1;

ST=0;

while(EOC==0)

{;}

OE=1;

getdata=P0;

OE=0;

temp=getdata;

dispbuf[0]=getdata/100;

temp=temp-dispbuf[0]*100;

dispbuf[1]=temp/10;

temp=temp-dispbuf[1]*10;

dispbuf[2]=temp;

}

void T0X()interrupt 1

{

CLK=~CLK;

}

void T1X() interrupt 3

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

for(count=0;count<=3;count++)

{

P1=dispbuf[count]|dispcode[count];//输出显示控制代码

delay(50);

}

}

void main(void)

{

init();

while(1)

{

conversion();

}

}

总结:

经过此次的实验,通过实现由ADC0808作为A/D转换器对RV1进行电压测量,并在数码管上显示,深刻地理解了ADC0808的结构以及工作方式,ADC0808是典型的8通道模拟输入8位并行数字输出地逐次逼近式A/D转换器。在C语言的设计上进一步理解了ADC的工作时钟模式从而进行模拟数据采样。

相关文档
最新文档