单片机ADC实验报告

上传人:仙*** 文档编号:36023926 上传时间:2021-10-29 格式:DOC 页数:6 大小:1.27MB
返回 下载 相关 举报
单片机ADC实验报告_第1页
第1页 / 共6页
单片机ADC实验报告_第2页
第2页 / 共6页
单片机ADC实验报告_第3页
第3页 / 共6页
点击查看更多>>
资源描述
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) 把“单片机系统”区域中的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) 把“单片机系统”区域中的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;sbit 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位数码管显示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=(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;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、实验成果接线图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!