智能仪表综合课程设计
结 论
经过一段时间的努力,毕业论文-基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用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
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