数字电压表的课程设计报告 - 图文(4)

2019-04-09 14:17

智能仪表综合课程设计

4 程序设计

系统的软件程序中主函数含有初始化程序,同时分别调用AD0832转换程序、数据转换程序、显示函数,在显示程序中包含LCD1602驱动程序。以此完成整个系统的运行。

4.1 程序设计总方案

根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图4.1所示。

图4.1 数字式直流电压表主程序框图

4.2 系统子程序设计

(1)初始化程序

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。

14

智能仪表综合课程设计

(2)显示子程序

显示子程序采用字符型液晶显示,此模块模块是一种专门用于显示字母、数字、符号等

点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。 (3)A/D转换子程序

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图4.2所示。

图4.2 A/D转换流程图

15

智能仪表综合课程设计

5 仿 真

5.1软件调试

软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与u Visions3 IDE工具软件结合进行编程仿真调试。

本系统的调试主要以软件为主,其中系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是C语言,用Keil软件将程序写入单片机。

5.2显示结果及误差分析

5.2.1 显示结果

1. 当IN0口输入电压值为0V时,显示结果如图5.1所示,测量误差为0.01V。

图5.1 输入电压为0V时,LCD的显示结果

16

智能仪表综合课程设计

2.当IN0输入电压值为2.10V时,显示结果如图5.2所示。测量误差为0.01V。

图5.2输入电压为2.10V时,LCD的显示结果

3. 当IN0口输入电压值为5.00V时,显示结果如图5.3。测量误差为0V。

图5.3 输入电压为5.00V时,LCD的显示结果

17

智能仪表综合课程设计

5.2.2 误差分析

通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表5.1所示:

表5.1 简易数字电压表与“标准”数字电压表对比测试表

标准电压值/V 简易电压表测量值/V 绝对误差/V 0.00 0.50 1.00 1.50 2.10 2.50 3.00 3.56 4.00 5.00 0.00 0.51 1.00 1.51 2.11 2.50 3.00 3.56 4.00 5.00 0.01 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 0.00 由于单片机STC89C52为8位处理器,当输入电压为5.00V时,ADC0832输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.02V的幅度变化。

从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0832的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

18


数字电压表的课程设计报告 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:NanoScope Analysis 简易使用说明

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: