基于单片机的数字电压表

时间:2022-08-05 06:43:07

基于单片机的数字电压表

[摘 要] 本论文重点介绍基于AT89S51单片机的简易数字电压表,该系统由51单片机作为微处理器、以ADC0804 作为转换芯片、由数码管构成显示仪器。本文从系统分析、硬件电路、软件程序和仿真界面介绍基于单片机的数字电压表的工作原理。

[关键词] AT89S51;单片机;数字电压表;ADC0804

【中图分类号】TM933 【文献标识码】 A 【文章编号】 1007-4244(2013)11-318-1

一、研究意义

数字电压表相对于指针式电压表而言,具有显示直观,由精度高、使用方便等优点。目前,由各种数模转换器构成的数字电压表,被广泛用于电子、电工、自动化仪器仪表、自动智能测试等领域。与此同时,由数字电压表扩展而成的各种通用及专用数字仪器仪表,也把它提高到崭新水平。

二、总体结构框图

基于单片机的数字电压表测量0到5V的直流电压,通过模拟量输入电路把信号送给AD0804,转换为数字信号再送至AT89S51单片机,通过其P1口经数码管显示出测量值。本设计由单片机最小系统、模拟量输入电路、AD转换电路、数码管显示等电路构成。

三、系统硬件设计

该系统采取AT89S51单片机作为主控模块,以ADC0804作为模数转换芯片,其模拟量输入可以通过电位器而得到,利用七段共阴级数码管构成显示电路,该数字电压表能够测量0到5V之间的模拟电压。对8位ADC0804共有256种,即它的分辨率是1/256,假设输入信号Vin为0~5V电压范围,则它最小输出电压是5V/256=0.01953V,这代表ADC0804所能转换的最小电压值。其工作原理如下:通过电位器的调节,得到一定的电压值,将该电压值输入到ADCO8O4的输入引脚VIN中,启动装换引脚,0804开始转化,转换完成后,单片机读取结果,并经过数据处理,送到数码管显示当前电压。当输入端模拟电压发生变化,又将结果送到模数转换电路,结果经单片机处理,送到数码管显示,以此进行不断地循环。

四、系统软件设计

(一)AD转换程序

ADC0804分为复位中断触发信号,启动A/D转换,读取转换结果。般情况下,启动A/D转换前应该把这个信号先复位,以等待新的转换完成后ADC0804发出新的信号,这样才能读到新的转换结果。

启动A/D转换:ADC0804在满足实现片选为0的前提下,引脚上出现的一个上升沿的条件时开始一个转换过程。

读取转换结果:在A/D转换结束以后,ADC0804的引脚将会给出一个低脉冲,把这个引脚直接连接到单片机的外部中断引脚INT0或者INT1上,这个低脉冲将引起单片机的中断,单片机就可以在中断处理程序中读取ADC0804的转换结果。

(二)数码管显示程序

本设计采用共阴极数码管,用高电平点亮,不点亮就应该送低电平,要显示为0,则需要点亮A、B、C、D、E、F段,所以给这6段送高电平,给G段送低电平;如果显示为1,则需要点亮B,C段,所以给这两段送高电平,给A、D、E、F、G这五段送低电平。显示3、4、5、6、7、8、9原理同上。

显示函数首先是调用数据处理的结果,再把调用的数据通过数码管显示出来。首先点亮第一个数码管,显示个位和小数点,再逐个点亮第二个数码管显示小数点后第一位,第三个数码管显示小数点后第二个,第四个数码管显示小数点后第三个,这样就把电压显示出来了。

(三)数码管仿真

本设计的仿真是通过仿真软件Protues得到,控制电位器来调整输入模拟电压,再通过AD0804模数转换经单片机数据处理由七段共阴极数码管显示出被测电压,最终达到仿真的目的。

五、结束语

本设计主要实现了数字电压表测量电压的功能,详细说明了从各功能模块设计、硬件的设计,C语言软件的设计, 用Proteus7.6软件实现了仿真,通过比较,验证了本设计的正确性,比较成功。

参考文献:

[1]牛昱光.单片机原理和接口技术[M].北京:电子工业出版社,2008.

[2]赵茂泰.智能仪器原理及应用[M].北京:电子工业出版社,2009.

[3]肖洪兵.跟我学用单片机[M].北京:北京航空航天大学出版社,2002.

[4]姜志海.单片机原理及应用[M].北京:电子工业出版社,2005.

[5]张富编.C及C++程序设计[M].北京:人民邮电出版社,2009.

[6]夏继强.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2001.

[7]沙占友.新型数字电压表原理与应用[M].北京:机电工业出版社,2004.

作者简介:周磊 (1985-),男,汉族,四川广元人,四川师范大学成都学院电子工程学院助教,研究方向:计算机科学与技术、学生教育和管理。

上一篇:浅谈艺术设计中的“师法自然” 下一篇:试论提高英语课堂教学有效性的途径