基于单片机的数字电压表设计(1)—-毕业论文设计 下载本文

内容发布更新时间 : 2024/5/19 19:32:18星期一 下面是文章的全部内容请认真阅读。

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院 开始 启动转换 A/D转换结输出转换结果 数值转换 显示 结束 4.2.3 显示子程序

图4.2 A/D转换流程图

显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。

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

4.3 仿真

4.3.1 软件调试

软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如

页 第 17

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与u Visions3 IDE工具软件结合进行编程仿真调试[8]。

本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。 4.3.2 显示结果及误差分析

显示结果

1.当IN0输入电压值为3.50V时,显示结果如图4.3所示。测量误差为0.02V。

图4.3

页 第 18

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

图4.4

2. 当IN0口输入电压值为2.50V时,显示结果如图4.4。测量误差为0.02V。输入电压为3.50V时,LED的显示结果为3.48V,输入电压为3.50V时,LED的显示结果为3.48V,在多次试验中,电路中仪表的值总与LED屏显示的值有一定的差值,因为在数模转换及LED屏限流电阻上的电压损耗,使到达最终LED的电压有略微降低是正常的,在误差范围之内。

实物运行图:系统通电后,两个电压数据交替循环显示,时间间隔为1s。

页 第 19

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

结束语

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

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

通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,最后和老师同学一步一个脚印解决了一个又一个问题。

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

页 第 20

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

参考文献

[1] 胡健.单片机原理及接口技术.北京:机械工业出版社,2004年10月

[2] 于殿泓.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007年5月 [3] 谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月 [4] 姜志海,黄玉清等著.单片机原理及应用[M] .北京:电子工业出版社.2005年7月 [5] 魏立峰.单片机原理及应用技术.北京大学出版社,2005年8月

附录

C语言程序: #include

#define uchar unsigned char #define uint unsigned int sbit OE =P2^6; sbit EOC =P2^5; sbit START=P2^4; sbit ADDC=P2^0; sbit ADDB=P2^1; sbit ADDA=P2^2; sbit bell=P2^3; sbit light=P2^7; sbit clk=P1^4;

ucharcodetable[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管共阴极

ucharcodetable_d[16]=

{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

uint shuju[4] ; uint getdata;

页 第 21