资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
/编号 Error! Reference source not found./版本 Error! Reference source not found.1毕业设计说明书课题名称:基于单片机的简易 5V 数字电压表学生姓名 专 业 电子信息工程技术 班 级 电信 0801 时 间 2010.102010.11 指导教师 游家发 电子信息与自动化工程系/编号 Error! Reference source not found./版本 Error! Reference source not found.2摘要随着时代的进步,用指针式万用表测量小幅度直流电压已经显得有些不太方便。因为指针式的测量不够精确,随着长时间的使用可能会造成欧姆调零以及机械调零的磨损,这都会对数据的测量造成很多困难,而采用数字式电压表来测量就可以避免这种情况的发生,而且操作更加方便。下面本文将介绍一种由数字电路以及单片机构成的数字电压表的设计方法。数字电压表(Digital Voltmeter)简称 DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表本设计运用 89C52 和 ADC0804 进行 A/D 转换 ,根据数据采集的工作原理,设计 现数字电压表,最后完成单片机与 PC 的数据通信,传送所测量的电压值。该新数字电压表测量电压类型是直流,测量范围是 0-51V(本设计量程为 0-5V)。电路包括:数据采集电路的单片机最小化设计、单片机与 PC 接口电路、单片机钟电路、复位电路等。下位机采用 89C52 芯片,A/D 转换采用 ADC0809 芯片。通过 RS232 行口与 PC 进行通信,传送所测量的直流电压数据。关键词:STC89C52 单片机 ADC0809 数模转换器 数码管 MAX232 译码器 数字电路/编号 Error! Reference source not found./版本 Error! Reference source not found.3目 录摘要.2第一章 总体要求 .31.1 设计思路 .41.2 实际设计方法 .5第二章 硬件电路设计 .72.1 单片机芯片 .72.2 ADC0809.82.3 控制部分电路 .122.4 电压显示 .122.5 模拟电压输入部分 .132.6 总设计电路图.142.7 电路版的焊接.14第三章 软件设计 .15第四章 调试 .214.1 硬件电路调试 .214.2 软件电路调试 .21第五章 个人心得与总结 .22参考文献 .23附录 作品实物图 .23/编号 Error! Reference source not found./版本 Error! Reference source not found.4第一章 总体方案1.1 设计思路表电路尽量采用中、大规模集成电路。它主要由模拟电路和数字电路两大部分组成,模拟部分包括输入放大器、A/D 转换器、和基准电源;数字部分包括计数器、译码器、逻辑控制器、振荡器和显示器。其中,A/D 转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将 A/D 转换器中各组模拟开关接通或断开,保证 A/D 转换正常进行。 A/D 转换结果通过计数译码电路变换成笔段码,最后驱动显示器显示相应的数值。对此设计经本小组成员讨论,主要有 2 种可行方案。方案一:将 5 扩大 100 倍即 500,这样要两个字节存储这个参考电压值,再用得到的采样值(一字节)乘以 500 得到一个 3 字节的值(调用一个 2 字节乘 1字节的子程序实现),再除以阶数值即得到实际信号电压扩大 100 倍后的整数值,再转换成 BCD 码形式,显示时将其第一位显示小数点即可。小数点问题的解决办法:(1)做两张表,一张带小数点,一张不带小数点。(2)只有一张不带小数点的表,第一位显示小数点之前,将字型的值补上与带小数点的差值(减去80H),再送显示。源代码编写中,需要调用到“三字节二进制无符号数除以单字节二进制数”和“调用 2 字节乘 1 字节的子程序”的子程序,我们自己试着编写这两个程序,其中乘法子程序我比较熟悉,老师上课也有讲到。但除法一点思路也没有,上网搜索了下,发现了这样一份相当实用的资料 单片机实用子程序库(年版)周航慈,其中包括非常多的工程实践中需要用到的汇编子程序,工程实践中可以直接调用。方案二:根据要显示的电压值计算式 V=A/255*5,扩大 100 倍后,直接计算出 500/255 的数值为 0.0196,首先要考虑是选择 0.019 还是 0.02 还是0.0196 与 A 相乘。如果以 0.019 与 A 相乘,当 A 为 255 时,0.019A=4.845,与 5.00 相差太远,误差较大;如果选择 0.02,0.02255=5.10,同样有太大误差,为了避免太大的误差,可以考虑选择 0.0196 作为参数(0.0196255=4.9980)。以 196 与 A 相乘,最大的结果为 196255=49980 可以用两个字节表示结果,故需要调用“一个字节与一个字节相乘结果为两个字节的程序”,然后根据得到的两个字节的结果进行十进制转换。双字节 16 进制转换为 BCD 码可以参考资料 单片机实用子程序库(年版)周航慈。最后根据 BCD 数的倒数第二位以四舍五入的原则去掉后两位数据,将前三位送显示。经过对比讨论,为了便于方案编程设计,我们采取第二种方案!/编号 Error! Reference source not found./版本 Error! Reference source not found.51.2 实际设计方法1、 硬件电路设计框图本课题实验主要采用 AT89C52 芯片和 ADC0809 芯片来完成一个简易的数字电压表,能够对输入的 05 V 的模拟直流电压进行测量,并通过一个 4 位一体的 7 段 LED 数码管进行显示,测量误差约为 0.02 V。该电压表的测量电路主要由三个模块组成:A/D 转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片 ADC0809 来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片 STC89C52 来完成,其负责把ADC0809 传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着 ADC0809 芯片的工作。显示模块主要由 7 段数码管及相应的驱动芯片 74LS373 组成,显示测量到的电压值。AT89C52P0P2P1P3 上电复位串口通信测量电路 4 位 LED 显示ADC08092 、单片机 AT89C52 外围电路设计AT89C52 与 ADC0809 的连接必须注意处理好 3 个问题:1.2.1 在 START 端送一个 100ns 宽的启动正脉冲;3、获取 EOC 端上的状态信息,因为它是 A/D 转换的结束标志;/编号 Error! Reference source not found./版本 Error! Reference source not found.64、给“三态输出锁存器”分配一个端口地址,也就是给 OE 端送一个地址译码器的输出信号。5、 总电路图第二章 硬件电路设计2.1 单片机芯片/编号 Error! Reference source not found./版本 Error! Reference source not found.7a.主电源引脚Vss-(20 脚):地线Vcc-(40 脚):+5V 电源b.外接晶振或外部振荡器引脚XTAL1-(19 脚):当采用芯片内部时钟信号时,接外部晶振的一个引脚;当采用外部时钟信号时,此脚应接地。XTAL2-(18 脚):当采用芯片内部时钟信号时,接外部晶振的一个引脚;当采用外部时钟信号时,外部信号由此脚输入。c.控制、选通或电源复用引脚RST/Vp0-(9 脚):复位信号输入;Vcc 掉电后,此脚可接上备用电源,在低功耗条件下保持内部 RAM 中的数据。ALE/PROG-(30 脚) : ALE 即允许地址锁存信号输出,当单片机访问外部存储器时该脚的输出信号用于锁存 P0 的低 8 位地址,其输出的频率为时钟振荡频率的 1/6。PROG 为编程脉冲输入端,当选用 8751 单片机时,由此脚输入编程脉冲。/PSEN-(29 脚):访问外部程序存储器选通信号,低电平有效,用于实现外部程序存储器的读操作。/EA/Vpp-(31 脚):EA 为访问内部或外部程序存储器选择信号,EA=0,单片机只访问外部程序存储器,故对 8031 此脚只能接地;EA1,单片机访问内部程序存储器,固对 8051 和 8751 此脚应接高电
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号