单片机ADC实验报告

上传人:夏** 文档编号:557223055 上传时间:2023-11-26 格式:DOC 页数:6 大小:1.28MB
返回 下载 相关 举报
单片机ADC实验报告_第1页
第1页 / 共6页
单片机ADC实验报告_第2页
第2页 / 共6页
单片机ADC实验报告_第3页
第3页 / 共6页
单片机ADC实验报告_第4页
第4页 / 共6页
单片机ADC实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《单片机ADC实验报告》由会员分享,可在线阅读,更多相关《单片机ADC实验报告(6页珍藏版)》请在金锄头文库上搜索。

1、ADC实验报告1. 实验任务利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。2. 现有元件模数转换器ADC0804,STC89C52单片机,两个共阳极数码管。3. 硬件设计3.1 模数转换器ADC0809与单片机STC89C52的连接(1) ADC0809规格及引脚分配图如下图3-1所示:(2) STC89C52各个引脚分布如下图3-2所示: 图3-1 ADC0809引脚图 图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、程序设计流程图 开始启动前准备初始化 INTO=1?Y N开始转换延时取转换后的数值将数值送显示结束6. C语言源程序#includesbit ALE = P31;sbit ST = P30;sbit EOC = P32;sbit OE = P36;sbit CLK = P37;s

4、bit wexuan1=P00;sbit wexuan2=P01;/sbit IN1 = P05;/sbit IN2 = P06;/sbit IN3 = P07;unsigned int code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/段码表unsigned int n=0,flag1=1;flag=1,ad_data,num1=0,num2=0;void delay(xms)unsigned int x,y;for(x=xms;x0;x-)for(y=110;y0;y-);void display()/2位数码管显示

5、float a;a=(float)ad_data/256*5*1000;num1=(int)a/1000;num2=(int)a/100-num1*10;P1=tablenum1;wexuan1=0;delay(1);wexuan1=1;P1=0x00;P1=0x80; /小数点wexuan1=0;delay(1);wexuan1=1;P1=0x00;P1=tablenum2;wexuan2=0;delay(1);wexuan2=1;P1=0x00;void init()ST = 0;ALE = 0;OE = 0;CLK = 0;/_EOC= 1;TMOD=0x12;IP=0x09;TH0=(

6、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;ST = 0;ST = 1; ALE = 0;ST = 0;display();delay(10);int read()unsigned int dat;

7、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 timer0() interrupt 1/ 输出500kHz 方波CLK=CLK;void timer1() interrupt 3TH1=(65536-45872)/256;TL1=(65536-45872)%256;n+;flag1=0;7、实验成果接线图

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号