教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

ADC0832数字电压表(3)

来源:网络收集 时间:2026-05-25
导读: 2.4 程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图(4)所示。 图(4)数字电压表主程序流程图 2.4.1. 初始化程序 所

2.4 程序设计总方案

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

图(4)数字电压表主程序流程图

2.4.1. 初始化程序

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

2.4.2 显示子程序

显示子程序采用字符型液晶显示,此模块模块是一种专门用于显示字母、数字、符号等 点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 2.4.3 A/D转换子程序

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

- 9 -

开始 初始化 调用A/D转换子程调用显示子程序 结束

开始

结束 图(5) A/D转换流程图

根据以上电路元器件的选择与设计以及程序的设计,可以设计出基于单片机的数字直流电压表硬件电路原理图。

显示 数值转换 是 输出转换结果 否 A/D转换是否结束? 启动转换

图(4)数字电压表原理图

- 10 -

三、软件调试与仿真

3.1软件调试

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

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

图(5)数字电压表仿真图

通过两个滑动变阻器(RV1、RV2)的滑动改变电阻的大小,继而改变其电压值,数字电压表测试出相应的电压大小并在LCD1602液晶屏显示。软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正,尽可能完善系统可能存在的缺陷与瑕疵。

四、课程设计总结

做了两周的课程设计,有很多的心得体会,更多的是同学之间的团队合作,老师的帮忙

- 11 -

才完成。老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。

课程设计有一定的苦难,我们付出了很多心血和汗水,但我认为我们得到的更多。通过本次项目设计,更加了解proteus和keil软件的使用。经过本次项目的问题可以发现,当项目仿真没问题时并不代表做出的实物能够成功,我们需要注意硬件的区别,结合实际所拥有的硬件进行硬件电路设计和程序的编写。如果没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济的团队精神深深震撼了我,《礼记学记》上也有讲过:“独学而无友,则孤漏而寡闻”。同时有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。真正的收获更多是思想上的,让我认识程序的复杂,团队精神的重要性,“学无止境”头一次认识的这么深刻,察觉自己的不足。在这次编程中,同学帮了我很多,我一个人是不能完成的。以后的学习生活真的要踏踏实实。

五、参考文献

[1]魏立峰.单片机原理及应用技术.北京大学出版社,2005年

[2]谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月 [3]周润景.Protues在MCS-51&ARM7系统中的应用百例.第一版.北京:电子工业出版社,2006年

- 12 -

附录

程序代码

#include #include #define uchar unsigned char #define uint unsigned int #define IO_1602 P0 //IO口 sbit RS_1602=P3^3; sbit RW_1602=P3^4; sbit E_1602=P3^5; sbit CS=P1^0; sbit CLK=P1^1; sbit DIO=P1^2;

void delay_ms(unsigned int t)//11.0592MHz 1ms { uchar x,y; for(t;t>0;t--) {

for(x=0;x<114;x++) for(y=0;y<1;y++); }

void Wr1602Cmd(unsigned char dat) { //写命令函数 E_1602=0; IO_1602=dat; RS_1602=0;

- 13 -

}

…… 此处隐藏:127字,全部文档内容请下载后查看。喜欢就下载吧 ……
ADC0832数字电压表(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/442659.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)