基于单片机实现的数字电压表毕业论文内容摘要:

式设制 0 0 0 0 0 0 0 1 I/D S 显示状态设制 0 0 0 0 0 0 1 D C B 无标画面滚动 0 0 0 0 0 1 S/C RL * * 功能设置 0 0 0 0 1 DL N F * * CGRAM 地址设制 0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM 地址设制 0 0 1 A6 A5 A4 A3 A2 A1 A0 读 BF 和 AC 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 写数据 1 0 数 据 读数据 1 1 数 据 (3)写命令字 由表 32 可知当 RS=0, R/W=0 时,才可以通过单片机或用户指令把数据写到 LCD模块,此时就对 LCD 进行调制。 可采用查询方式:先读入状态字,再判断忙标志位,最后写命令字。 图 310 所示 为写命令字的流程图。 重庆电子工 程职业学院毕业论文 第 12 页 共 31 页 图 310 写命令字流程图 1) 定义光标位置 显示数据的某位,就是把显示数据写在相应的 DDRAM 地址中, DDRAM 地址占 7 位。 Set DDRAM address 命令如表 33 所示。 光标定位,写入一个显示字符后,DDRAM 地址会自动加 1 或减 1,加或减由输入方式设置。 表 33 Set DDRAM address 命令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 第 1 行 DDRAM 地址与第 2 行 DDRAM 地址并不连续 , 如表 34 所示。 表 34 DDRAM 地址 row 1 2 3 4 5 … 14 15 16 line1 80H 81H 82H 83H 84H … 8dH 8eH 8fH line2 0c0H 0c1H 0c2H 0c3H 0c4H … 0cdH 0ceH 0cfH 2) LCD 初始化 从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入方式,具体实现过程如图 311 所示。 重庆电子工 程职业学院毕业论文 第 13 页 共 31 页 图 311 LCD 初始化流程图 2. LCD 显示程序设计 LCD 显示程序的设计一般先要确定 LCD 的初始化、光标定位、确定显示字符后,显示流程 如图 312 显示。 图 312 LCD 显示程序流程图重庆电子工 程职业学院毕业论文 第 14 页 共 31 页 第 4 章 系统软件设计 根据需要,可将系统软件按照功能划分为 4 个模块,分别是主程序模块、 A/D 转换模块、液晶显示模块、中断服务程序模块 (改变显示的小数点位置 ),各模块的功能关系如图 41 所示。 编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。 图 41 系统软件框图 主程序设计 图 42 主程序流程图 系统主程序 液晶管显示 A/D转换 中断服务 . 重庆电子工 程职业学院毕业论文 第 15 页 共 31 页 主程序主要负责各个模块的初始化工作:设置定时器、寄存器的初值,启动 A/D转 换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图 42所示。 A/D 转换程序 A/D 转换程序的功能是采集数据,在整个系统设计中占有很高的地位。 当系统设置好后,单片机扫描转换结束管脚 的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。 若输入为低电平,则继续扫描。 程序流程图如图43 所示。 图 43 A/D 转换程序流程图 中断服务程序 中断服务程序的功能是为 ADC0808 提供时钟信号,当中断发生时将 AT89C51单片机的 管脚将输出信号取反 ,为 ADC0808 提供 12kHz 时钟信号。 重庆电子工 程职业学院毕业论文 第 16 页 共 31 页 第 5 章 系统仿真与调试 在进行电路的局部调试之后,我又进行了系统整机调试。 首先为 ADC0808 接上+12V 的电压,为其它芯片接上 +5V 的工作电压。 另外还要输入待测的模拟电压,该电压从 200mV 以下的电压开始输起,依次增大,直到达到待测电压的上限 50V 为止,记录测量数据并分析系统性能。 分局部调试 1. 检查 ADC0808 是否工作 ADC0808 集成了三个控制端。 如果某一控制端为高电平则对应的开关将接通。 为测量其是否工作,我们将它的三个控制端用导线引出分别接高 低电平,发现测量结果与理论分析结果一致, ADC0808 工作正常。 2. 各量程调节 这一步调试是建立在上述两步调试的基础上的。 针对不同的档位,我们通过接入不同待测的模拟量来调节电压。 整机调试 本系统的测试采用 Proteus 软件,系统在 Proteus 软件中仿真时使用的元件如表51 所示。 测试表明,系统运行正常,能准确将直流模拟信号的电压转换成数值显示,并能精确到 5 位有效数字,达到了设计的要求。 表 51 元件 名称 及属性 序号 元件名 属性 序号 元件名 属性 1 AT89C51 单片机 7 LM016L LCD1602 3 CAP 电容 8 ADC0808 8 位 A/D 转换器 4 CAPELEC 电解电容 9 PULLUP 上拉电阻 5 CRYSTAL 晶振 10 SWPOT4 4 路模拟开关 6 RES 电阻 11 74LS02 与非门 重庆电子工 程职业学院毕业论文 第 17 页 共 31 页 系统仿真 采用 Keil编译器进行源程序编译及仿真调试,调好程序后将目标程序导入 Proteus进行软硬件调试,基于单片机实现的数字电压表测试值见表 52 所示。 表 52 测试值与真实值 电压表测得值 /V 绝对误差 /V + + + + + + + + 电压表测得值 /V 绝对误差 /V + + + + + + + + + 从表中可以看出,电压表测得值误差均在 以内,这与采用 8 位 A/D 转换器所能达 到的理论误差精度相比较接近,因此在一般的应用场合都可以满足要求。 重庆电子工 程职业学院毕业论文 第 18 页 共 31 页 结 论 本设计以 AT89C51 单片机为控制核心,通过集成摸数转换芯片 ADC0808 将被测信号转换成数字信号,经单片机内部程序处理后,由液晶显示器 LCD1602 显示测量结果。 仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为 0~ 50V,最小分辨率为 ,满足任务书指标要求。 但是,该系统也存在一定程度的不足,例如: 输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比 如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度; 输出量可用平均值算法来改善,使测量准确度更高。 若能将测量的电压值实时保存,使用时将更方便。 ADC0808 可实现对 8 个通道的输入信号轮流转换,本设计仅仅使用了其中一个通道,造成了较大的资源浪费。 若能对电路稍加改进,实现对多路信号的轮流测量并自动保存相应结果,其应用价值将会更大。 重庆电子工 程职业学院毕业论文 第 19 页 共 31 页 致 谢 本文是在 赵阔 老师的精心指导下完成的。 在此向他表示衷心的感谢。 感谢同学的鼓励和帮助,让我顺利完成本次设计任务。 通过短暂的毕业设计,从而提高了我的理论水平,真正做到学有所用,虽然在其过程中我也遇到一些困难,但是从中我也得到了很多的帮助,没有半途而废,没有灰心丧气,我都一一克服了,这些都是一种收获,最让我感到高兴的是终于按质按量的完成了毕业设计。 感谢我的指导老师,他严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他循循善诱的教导和不拘一格的思路给予我无尽启迪。 本次毕业设计的每一个细节都离不开您的细心指导。 感谢同学、朋友的帮助,在这里请接受我诚挚的谢意。 重庆电子工 程职业学院毕业论文 第 20 页 共 31 页 参考文献 [1] 徐爱钧 . 智能化测量控制仪表原理与设计( 第二版) . 北京:北京航空航天大学出版社, 2020 [2] 吴金戌,沈庆阳,郭庭吉 . 8051 单片机实践与应用 . 北京:清华大学出版社,2020 [3] 黄智伟 . 全国大学生电子设计竞赛训练教程 . 北京:电子工业出版社, 2020 [4] 汪德彪 . MCS51 单片机原理及接口技术 ( 第一版 ). 北京:电子工业出版社,2020重庆电子工 程职业学院毕业论文 第 21 页 共 31 页 附录1 系统源程序 COM EQU 50H DAT EQU 51H RS EQU。 LCD 寄 存器选择信号 RW EQU。 LCD 读 /写选择信号 E EQU。 LCD 使能信号 ORG 0000H LJMP MAIN ORG 000BH LJMP BT0。 T0 中断入口 ORG 0030H。 主程序初始化 MAIN: MOV SP,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。