数字电压表实习报告

上传人:lizhe****0001 文档编号:31279234 上传时间:2018-02-06 格式:DOC 页数:19 大小:767.50KB
返回 下载 相关 举报
数字电压表实习报告_第1页
第1页 / 共19页
数字电压表实习报告_第2页
第2页 / 共19页
数字电压表实习报告_第3页
第3页 / 共19页
数字电压表实习报告_第4页
第4页 / 共19页
数字电压表实习报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数字电压表实习报告》由会员分享,可在线阅读,更多相关《数字电压表实习报告(19页珍藏版)》请在金锄头文库上搜索。

1、1机 械 与 电 子 信 息 学 院通 信 工 程 系题目: 数字电压表的设计 2摘要:本数字电压表可以对直流电源和交流电压进行比较准确的测量。其中直流部分的测量范围是 0-20V,分为三个档位:0-0.2V,0.2V-2V,2V-20V。该直流电压表的测量电路主要由三个模块组成:模拟数据采集处理模块、A/D 转换模块及译码显示控制模块。模拟数据的采集处理模块由模拟电路部分完成。A/D 转换模块主要由芯片 ADC0809 来完成,它负责把采集到的模拟量转换为相应的数字量再传送到 AT89S51 单片机进行数据处理。译码显示模块是单片机将译好的数据传送到由 74LS244 驱动的 4 位 7 段

2、数码管进行显示。交流部分的测量范围是 0-5V,测量的是交流电压的有效值。该交流电压表的测量电路由三个模块构成:AC-DC 转换模块、电压补偿模块、直流电压表测试模块。其中 AC-DC转换模块由 AD637 完成。电压补偿模块对 AD637 的非线性部分进行补偿,由LM324 完成。直流电压表测试模块由直流部分完成。关键字:AT89S51,数模转换,AC-DC 转换,数码管显示1. 系统方案的选择和论证1.1 数模转换模块方案一:用分离元件完成数据采集 AD 转换的功能。该方案由于需要大量的元器件,实现起来比较复杂,而且精度不易控制。方案二:选则集成芯片 ADC0809。ADC0809 的 采

3、 样 频 率 为 8 位 的 、 以 逐 次 逼 近原 理 进 行 模 数 转 换 的 器 件 。 其 内 部 有 一 个 8 通 道 多 路 开 关 , 它 可 以 根 据地 址 码 锁 存 译 码 后 的 信 号 , 只 选 通 8 个 单 断 模 拟 输 入 信 号 中 的 一 个 进 行A/D 转 换 。 由 于 本 实 验 要 求 的 测 量 误 差 是 21 则正常处理: temp=(temp/51)*5;temp 扩大 1000 倍,然后对其进行转换,即除以 51(因为 256/5 是其转换的公式),最后再乘以 5 变换到五分压之前的数值。同样在 0-0.2V 档和 0.2V-2

4、V 档都是这样处理的。2.2.3 译码显示模块对 temp 进行除以和模操作,将其每一位分别取出,然后在数码管上显示。然后根据不同的档位显示小数点,20V 档点亮第三个数码管的小数点(从低位到高位) ,2V 档位点亮第四个数码管的小数点,0.2V 档位点亮第一个数码管的小数点。uchardispcode9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;定义 09 的显示段码,即完成了 4511 的功能。uchar code scan_con=0x03,0x02,0x01,0x00; 实现了数码管从低位到高位的扫描其中值得注意的是:

5、在 temp=temp*1000; temp=(temp/51)*5;将 temp 扩大了1000 倍,其目的是在最后的显示中实现 0.01 的精确度。那么P1=dispcodedispbufk也应改为 P1=dispcodedispbufk+1;若 temp*100 则在最后的显示中只能显示 0 或 5 ,原因是:因为 temp/51,在 C语言中两个整形数字相除,结果只能是整数,也就是说如果2900/51=56.862745,但在程序的运算中结果是 56!将一个整数 temp*5 结果肯定是 5 的整数倍,所以末位不是 5 就是 0。(56*5 末位是 0)。改为 temp*1000则虽不

6、能改变末位为 0 或 5 的结果,但我们可以从倒数第二位显示。也就对应dispcodedispbufk+1。3测试数据与结果分析3.1 测试仪器(1)数字万用表(2)双通道数字示波器(3)频率发生器3.2 测试数据3.2.1 0-0.2V 档测量的数据(直流)万用表测量值(mv) 数码管显示值(mv)17.3 18.543.4 4653.8 53.577.2 77.095.6 93.0125.1 124.5184.1 187.0表 13.2.2 0.2V-2V 档测量的数据(直流)万用表测量值(v) 数码管显示值(v)0.225 0.2250.428 0.4300.624 0.6250.828

7、 0.8201.050 1.0451.238 1.2451.483 1.4801.678 1.6751.878 1.870表 23.2.3 0.2V-2V 档测量的数据(直流)10万用表测量值(v) 数码管显示值(v)2.23 2.253.95 3.906.16 6.158.03 8.109.96 10.0512.41 12.4512.32 12.4016.32 16.3518.31 18.4019.73 19.90表 33.2.4 0-5V 档测量的数据(交流)万用表测量值(v) 数码管显示值(v)0.1662 0.18430.241 0.2640.337 0.3520.544 0.5490

8、.816 0.8131.450 1.3621.690 1.6071.885 1.8722.24 2.252.68 2.643.11 3.033.44 3.433.80 3.824.12 4.214.46 1.604.70 4.704.97 5.005.00 5.00表 43.3 测试数据分析用 MATLAB 分别做不同量程的曲线拟合图,横坐标是数码管显示值,纵坐标万用表测量值,做三次曲线拟合。然后做万用表测量值和数码管显示值之差,再做三次曲线拟合3.3.1 0-0.2V 档测量的数据(直流)11图 8图 9分析:从图 8 可以看出,线性良好,也就是数码管显示值和万用表测量值很接近。图 9 纵坐

9、标单位为 MV,在 60MV 和 160MV 左右时,误差较小接近于 0.但在12量程的两端误差较大。3.2.2 0.2V-2V 档测量的数据(直流)图 10图 11分析:从图 10 可以看出,线性良好,也就是数码管显示值和万用表测量值很接13近。图 11 纵坐标单位为 MV,0.4-1.4 范围内,误差较小,在 2MV 左右.但在量程的两端误差较大。3.2.3 2V-20V 档测量的数据(直流)图 12图 13分析:从图 12 可以看出,线性良好,也就是数码管显示值和万用表测量值很接近。图 13 纵坐标单位为 V,4V-12V 范围内,误差较小,在 0.05V 左右.但在量14程的两端误差较

10、大,误差达到 0.1V-0.15V3.2.4 0-5V 档测量的数据(交流)图 14图 15分析:从图 14 可以看出,线性良好,也就是数码管显示值和万用表测量值很接近。图 15 纵坐标单位为 V,误差见上图所示。154、总结通过本次实习,我掌握了 AD 采样的操作,同时也对单片机有了更好的掌握。在实习的过程中我们遇到了很多问题,如:AD 的时序、交流转换直流的电路设计、单片机程序的调试等。在电路焊接方面我们做的比较好,几乎没有因为电路的焊接而出现故障。整个实习的难点在精度的调节和交流部分的制作。在实习的最后才解决了末尾只能显示 0 或 5 的问题,但在直流的数据记录时没有改正过来。在交流的数

11、据记录中显示了正确的结果(末尾可以显示从 0-9 的所有数字) 。在交流部分的制作中,刚开始用分离元件做,结果天违人愿。不光交流-直流没有做出来,反而把直流部分也烧坏了。于是我又用了两天的时间从电路检查到程序调试做好了直流部分。鉴于用分离元件失败的教训,我们采用集成元件 AD637.问题又出来,AD637 在 0-4V 的交直流转换中成线性转换,效果较好。但在 4V-5V 的转换中,转换后的电压远小于交流的有效值。我们又采用放大器功率补偿的方法加以矫正。电压上去了,但仍然不是线性关系。于是在软件部分又加以矫正。最终得到了比较精确的电压值。5、参考文献【1】汪文, 单片机原理及应用 【M】. 武

12、汉:华中科技大学出版社,2007.3【2】谢子美, 电子线路.设计.试验.测试 【M】. 北京:清华大学出版社,2007【3】高峰, 单片微型计算机与接口技术 【M】 .北京:科学出版社,2003 6.附录6.1 单片机程序#include #define uchar unsigned char;uchar code scan_con=0x03,0x02,0x01,0x00; /定义列扫描uchardispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/定义 09 的显示段码uchar dispbuf8=0,0,0,0,

13、0,0,0,0; /定义 8 个存储空间uchar dispcount=0; uchar getdata; unsigned long temp;/定义暂存空间uchar i,j,k,l,m;sbit s3=P27; /位定义,控制模拟开关sbit s2=P26;sbit s1=P25;sbit dp=P17; /定义小数点#define v20_on s3=1;s2=0;s1=0; /宏定义不同量程,不同的开关状态#define v2_on s3=0;s2=1;s1=0;#define v02_on s3=0;s2=0;s1=1;sbit ST=P20; /定义单片机和 ADC 的控制信号s

14、bit OE=P21; 16sbit EOC=P22; main() while(1) _20v: /220V 量程v20_on;ST=0; /启动 A/D 转换ST=1;ST=0; while(EOC=0);OE=0;getdata=P0;OE=1;if(getdata204)goto _20v;l=2;temp=getdata;temp=(temp*1000/51)*10;temp=temp/2;17goto disp;_02v: /0200MV 量程v02_on;ST=0;ST=1;ST=0; while(EOC=0);OE=0;getdata=P0;OE=1;if(getdata204

15、)goto _2v;l=1;temp=getdata;temp=(temp*1000/51)*100;temp=temp/20;disp:dispbuf0=0; dispbuf1=0; dispbuf2=0; dispbuf3=0; dispbuf4=0; dispbuf5=0; dispbuf6=0; dispbuf7=0;i=0;while(temp/10) /电压值的每个位计算 dispbufi=temp%10; temp=temp/10; i+; dispbufi=temp;for(k=0;k=3;k+) /数码管显示P1=dispcodedispbufk+1; P3=scan_conk;if(l=3)if(k=2) P1=P1 | 0x80; /小数点的确定else if(l=2) if(k=3) P1=P1 | 0x80;

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

最新文档


当前位置:首页 > 学术论文 > 毕业论文

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