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

2019-04-09 14:17

智能仪表综合课程设计

结 论

经过一段时间的努力,毕业论文-基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keilc软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。

基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。

通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了STC89C52单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0832,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。

总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。

19

智能仪表综合课程设计

参考文献

[1]胡健.单片机原理及接口技术.北京:机械工业出版社,2004年10月 [2]王毓银.数字电路逻辑设计.高等教育出版社,2005年12月

[3]于殿泓、王新年.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007年5月

[4]谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月

[5]李广弟.单片机基础.北京航空航天大学出版社,2007年5月

[6]姜志海,黄玉清等著.单片机原理及应用[M] .北京:电子工业出版社.2005年7月 [7]魏立峰.单片机原理及应用技术.北京大学出版社,2005年

[8]周润景.Protues在MCS-51&ARM7系统中的应用百例.第一版.北京:电子工业出版社,2006年

[9]边春远等著.MCS-51单片机应用开发实用子程序[M].北京:人民邮电出版社.2005年9月

20

智能仪表综合课程设计

附 录

1硬件实物图如下:

2程序代码:

#include #include #define uint unsigned int #define uchar unsigned char sbit lcdrs=P2^4; sbit lcdrw=P2^5;

sbit lcden=P2^6; //1602控制端口 sbit DI=P3^4;

sbit DO=P3^4; //DI和DO与单片机共接口 sbit Clk=P3^3;

21

智能仪表综合课程设计

sbit CS=P3^5;//ADC0832控制端口

uchar dis[3]={0x00,0x00,0x00}; //显示缓冲区 uchar date=0; //AD值

uchar CH; //ADC0832通道值

/***************************************** AD0832转换程序

******************************************/ uchar ADC0832(uchar CH) {

uchar i,dis0,dis1;

Clk=0; //拉低时钟

DI=1; //初始化 _nop_();

CS=0; //芯片选定

_nop_();

Clk=1; //拉高时钟 _nop_();

if(CH==0) //通道选择

{

Clk=0; //第一次拉低时钟 DI=1; //通道0的第一位 _nop_();

Clk=1; //拉高时钟

_nop_();

Clk=0; //第二次拉低时钟,ADC0832 DI接受数据 DI=0; //通道0的第二位 _nop_(); Clk=1;

22

智能仪表综合课程设计

_nop_(); } else { Clk=0;

DI=1; //通道1的第一位 _nop_(); Clk=1; _nop_(); Clk=0;

DI=1; //通道1的第二位 _nop_(); Clk=1; _nop_(); }

Clk=0; //第三次拉低时钟,此前DI两次赋值决定通道

DI=1; //DI开始失效,拉高电平,便于DO数据传输

for(i= 0;i<8;i++) //读取前8位的值 {

_nop_(); dis0<<= 1; Clk=1; _nop_(); Clk=0; if (DO)

dis0|=0x01; else

dis0|=0x00; }

for (i=0;i<8;i++) //读取后8位的值

23


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

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

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

马上注册会员

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