ADC综合应用实验设计.....新版new_第1页
ADC综合应用实验设计.....新版new_第2页
ADC综合应用实验设计.....新版new_第3页
ADC综合应用实验设计.....新版new_第4页
ADC综合应用实验设计.....新版new_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字电压表1. 实验任务利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。2. 现有元件模数转换器ADC0804,STC89C52单片机,两个共阳极数码管。3. 硬件设计3.1 模数转换器ADC0809与单片机STC89C52的连接(1) ADC0809规格及引脚分配图如下图3-1所示:图3-1 ADC0809引脚图(2) STC89C52各个引脚分布如下图3-2所示:图3-2 STC89C52引脚图(3) 硬件连线(a) 把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线相连接。(b) 把“单片机

2、系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。(c) 把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的OE端子用导线相连接。(d) 把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。(e) 把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。(f) 把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。(g) 把“单片机系统”区

3、域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。(h) 把“单片机系统”区域中的P1.0-P1.7连接到“数码管”区域中ABCDEFG端子上。把“单片机系统”区域中的P0.0-P0.1连接到“数码管”区域中12端口。4. 电路原理图图4 电路原理图5. 程序设计内容由于ADC0809在进行A/D转换时需要CLK信号,而此时ADC0809的CLK是接在单片机的P3.7口,也就是要求从P3.7输出CLK信号供ADC0809使用。因此产生CLK信号的方法就要用软件来产生。6. C语言源程序#include<reg52.h>sbit

4、 ALE = P31;sbit ST = P30;sbit EOC = P32;sbit OE = P36;sbit CLK = P37;sbit wexuan1=P00;sbit wexuan2=P01;/sbit IN1 = P05;/sbit IN2 = P06;/sbit IN3 = P07;unsigned int code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/段码表unsigned int n=0,flag1=1;flag=1,ad_data,num1=0,num2=0;void delay(xms)un

5、signed int x,y;for(x=xms;x>0;x-)for(y=110;y>0;y-);void display()/2位数码管显示float a;a=(float)ad_data/256*5*1000;num1=(int)a/1000;num2=(int)a/100-num1*10;P1=tablenum1;wexuan1=1;delay(1);wexuan1=0;P1=0xff;P1=0x7f; /小数点wexuan1=1;delay(1);wexuan1=0;P1=0xff;P1=tablenum2;wexuan2=1;delay(1);wexuan2=0;P1=

6、0xff;void init()ST = 0;ALE = 0;OE = 0;CLK = 0;/_EOC= 1;TMOD=0x12;IP=0x09;TH0=(65536-22)/256;TL0=(65536-22)%256;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;EX0=1;/打开外部中断IT0=1;/从高到低的负跳变有效P0=0x00;void start() /int a,int b,int c) /选择通道/IN1 = a;IN2 = b;IN3 = c;ALE = 0;ALE = 1

7、;ST = 0;ST = 1; ALE = 0;ST = 0;display();delay(10);int read()unsigned int dat;P2 = 0xff;OE = 1;display();dat = P2;OE = 0;return (dat);void main()init();while(1)ST = 0; ST = 1; ST = 0;if(n=20)flag=1;/display();/start();/while(EOC=0);/转换结束(EOC=1)读出数据后显示/_EOC=0;ad_data=read();flag=0;display();/ n = 0;/display();/_EOC = 1;display();/显示的是if中的电压值void INTR_0() interrupt 0 while(1)ad_data = read();flag = 0;display();void timer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论