简易数字电压表设计.docx
《简易数字电压表设计.docx》由会员分享,可在线阅读,更多相关《简易数字电压表设计.docx(17页珍藏版)》请在冰豆网上搜索。
简易数字电压表设计
单片机课程设计论文
设计题目:
简易数字电压表的设计
学院:
汽车学院
班级:
电气工程及其自动化3班
成员名单:
指导教师:
王春梅
课程设计时间:
2012年5月14----2012年5月27
目录
1.概述………………………………………………………………………………………3
2.数字电压表设计原理图…………………………………………………………………3
3.系统硬件设计……………………………………………………………………………6
3.1硬件流程图…………………………………………………………………………6
3.2硬件电路图…………………………………………………………………………7
3.3硬件电路图各组成模块分析………………………………………………………7
4.系统软件设计……………………………………………………………………………9
4.1主程序流程图………………………………………………………………………9
4.2转换结果处理子程序流程图……………………………………………………9
4.3显示子程序流程图…………………………………………………………………9
4.4延时子程序流程图…………………………………………………………………9
5.综合调试图………………………………………………………………………11
6.结束语……………………………………………………………………………………13
参考文献………………………………………………………………………………………13
附录……………………………………………………………………………………………14
附录1:
程序清单……………………………………………………………………………14
附录2:
设计图纸……………………………………………………………………………16
附录3:
元器件目录表………………………………………………………………………18
概述
1.1课题要求
设计并且制作基于51单片机的数据采集系统,配置A/D转换芯片,编制数据采集系统监控软件,数据采集软件,电位器提供模拟输入量(传感器实验系统提供模拟量输入),将模拟量转换成数字量,通过数码管显示出来,分析数据采集精度。
1.2课题内容
本文介绍了用ADC0809集成电压转换芯片和89C51单片机设计制作的数字电压表,该数字电压表可以测试的电压范围为0~5V,并可以将测得的电压值显示在数码管上。
在数字电路和显示技术中,为了实现数字显示,需要把连续变化的模拟量变换成数字量,这种变换就是A/D转换。
为了使模拟量变换成数字量,必须经过取样、量化过程。
量化单位越小,整量化的误差就越小,数字量就越接近连续量本身的值。
1.3课题的性质及目的
数字电压表是利用模拟/数字交换器原理,以十进制数字形式显示被测电压值的仪表。
数字电压表除广泛用于电压测量外,通过各种变换器还可以测量其它电量和非电量,用途非常广泛。
在数字电路和显示技术中,为了实现数字显示,需要把连续变化的模拟量变换成数字量,这种变换就是A/D转换。
为了使模拟量变换成数字量,必须经过取样、量化过程。
量化单位越小,整量化的误差就越小,数字量就越接近连续量本身的值。
模拟种类繁多,包括各种各样的物理量。
实际上,很多物理量先别被转换成电压(用各种传感器),然后再由电压转换成数字量,所以电压/数字变化就是A/D转换的重点。
用电压/数字变换器(ADC0809)单独做成的测量仪器即为数字电压表。
2.数字电压表设计原理
DVM的种类有多种,分类方法也很多,有按位数分的,如3/2位、5位、8位;有按测量速度分的,如高速、低速;有按体积、重量分的,如袖珍式、便携式、台式。
但通常是按A/D转换方式的不同将DVM分成两大类,一类是直接转换型,也称比较型;另一类是间接转换型,又称积分型,包括电压-时间变换(VT变换)和电压-频率变换(V-f变换)。
(1)逐次逼近比较型逐次逼近比较型电压表是利用被测电压与不断递减的基准电压进行比较,通过比较最终获得被测电压值,然后送显示器显示的。
虽然逐次比较需要一定时间,要经过若干个节拍才能完成,但只要加快节拍的速度,还是能在瞬间完成一次测量的。
图1是逐次逼近比较型数字电压表的原理框图。
图中,数码开关可把由基准电压源输出的高稳定性电压Db分成若干个步进小电压Db1、Ub2、Ub3等,而且这些步进电压的前一个值比后一个大一倍,用二进制表示则刚好增加一位,例如,取基准电压Ub为1O24mV,并将其分成512mV、256mV、128mV、64mV、32mV、16mV、8mV、4mV、2mV、1mV等若干电压,然后通过控制电路将Ub逐个送到比较器与被测电压进行比较。
所取出的Uu应按从大到小顺序取出,也就是先取最大的电压Ub1与U,,进行比较,若Ub1>Ux,就由数码寄存器输出一个数码“0”,并舍去Db1;若Ubt≤Ux,则由数码寄存器输出一个数码“1”,并保留Dbl,以便与下一个取出的步进电压Ub2相加,相加后的电压重新与被测电压在比较器中进行比较,并重新输出数码,决定取舍。
这个原则称为从大到小、舍大留小的原则。
按此原则逐个取出Ub进行比较后,将数码寄存器输出的二进制码按序排列就会等于被测电压值。
图1逐次逼近比较型数字电压表的原理框图
、3系统的硬件设计
3.1简要硬件流程图如下:
注:
本电路相关涉及元器件大体有90千欧和10千姆电阻各1个、ADC0809转换器1个、单输入端双D触发器(74HC74)1个、与非门(74ALS02)2个、89C51芯片1个、三极管(C1815)3个、锁存7段译码驱动器(CD4511)1个、7段数码管3个、导线如干等……
数字电压表的硬件电路原理图如下图3所示,主要由A/D转换、单片机处理、数码管显示等三个模块组成。
A/D转换模块如图4所示:
就是直接利用ADC0809芯片对输入量进行转换,模拟量转换成数字量。
单片机处理模块如图5所示:
对ADC0809的数值进行内部运算,最终产生数码管显示的十进制值,这种方法获得值更加精确,而且处理起来更加灵活。
数码管显示模块如图6、图7所示:
为产生更加显示效果,数码管采用动态显示的方式,与89C51之间通过锁存7段译码驱动器、上拉电阻连接,便于驱动和满足阻抗匹配、限压分流的作用,此外利用三极管分别工作在饱和区与截止区的不同性能起到数字开关的功效。
图3数字电压表系统原理电路图
图5单片机数值处理
图6
图7
注:
三个三极管的集电极分别与三个数码管的COM端相连,锁存7段译码驱动器右端的端口A、B、C、D分别于89C51的P1.0、P1.1、P1.2、P1.3端口相连
4系统软件设计
数值电压表的控制系统软件主要分为主程序、转换结果处理子程序、显示子程序、延时子程序四个部分。
4.1主程序
主程序主要负责总体程序管理功能,包括初始化部分与人机交互设定部分。
包含了系统运行过程中所需所有子程序,如采用动态扫描方式显示电压数值,因侧主程序就需调用延时、显示程序。
主程序流程图如图8所示:
4.2转换结果处理子程序
此程序主要是单片机对将已经过A/D转换而来的数字进行处理,分高低位的循环执行,进行一系列计算得到最终待测的电压数值,其流程图如下图所示
4.3显示子程序
数码管使用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码,分时选通,如此循环下去就可以使各位显示出将要显示的字符。
虽然这些字符是在不同的时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余晖和人眼的视觉暂留作用,显示间隔短就可以造成多位同时亮的假象,达到同时显示的效果。
此方式实质是以牺牲CPU的显示时间来换取器件的减少。
流程图如下图所示
4.4延时子程序
延时子程序流程图如下图所示数码管动态时间间隔时间,其计算如下:
250*2=500us,0.5ms*10=5ms间隔5ms流程图如下图所示
图8主程序流程图
图9延时子程序
图10显示子程序
图11转换结果处理子程
5.综合调试图
Protus综合仿真图
6结束语
在单片机的应用系统中,被测量对象的相关变量,如温度、压力、流量、速度等非电物理量,须经传感器转换成连续变化的模拟电信号(电压或电流),这些模拟电信号必须转换成数字量后才能在单片机中用软件进行处理,它的方法是多样的,宜根据实际情况来进行电路设置于连接。
本文的课题是关于智能数据采集系统的设计,在实际工作学习中电力元器件电压表相对接触比较频繁、使用方便、制作简单、随着技术的发展其性能也得到了进一步的完善,有普通的、万能式的……在这我们选择以制作数字式电压表为例,来阐述MCS-51单片机与A/D转换器的实际连接与应用,从构思、理论分析、设计、制作、编程、校验等不同环节进行。
本课题本着贴近实际使用的原则来对具体元器件进行选择,如选取ADC0809、单片机89C51等,根据具体课题内容设计要求、器件的自身性能规范来组织连接电路,为满足需要,添加必要的辅助元件。
本课题中89C51采用查询的方式控制ADC,在单片机把启动信号送到ADC之后,执行别的程序,同时对0809的EOC引脚的状态进行查询,以检查ADC变换是否已经结束,如查询到变换已经结束,则读入转换完毕的数据,利用单片机对数值进行处理换成十进制计数数值,最终通过三个数码管将数值显示出来。
区别于一般的转换数值系统,它不是直接显示转换后数值,而是进行二次程序处理数值换成十进制,提高了精确度。
此设计方案通用性好,从硬件方面来说,硬件接线十分简单、涉及元器件数量相对减少,从软件方面来说,端口使用量减少、查询程序编写相对简单,适合运用于对转换速度要求不高、效率不高的场合。
参考文献
[1]刘焕平.童一帆单片机原理及应用[M].北京:
北京邮电大学出版社,2008.
[2]求是科技.单片机典型模块设计实例导航[M].北京:
人民邮电出版社,2005.
[3]王为青,程国刚.应用开发技术KeilCX51单片机[M].北京:
人民邮电出版社,2007.
[4]先锋工作室.单片机程序设计实例[M].北京:
清华大学出版社,2004.
附录1:
程序清单
附录1.1主程序清单
主程序清单
ORG0000H
ANLP1,#0F0H
START:
MOVDPTR,#0000H;ADC0809的地址
MOVX@DPTR,A;启动A/D转换
JNBP1.7,$;查询A/D转换是否结束
MOVXA,@DPTR;读取A/D转换结果
LCALLCHULI;调用转换值处理程序
MOVR1,#05H
UP:
LCALLDISP;调用显示程序
DJNZR1,UP
SJMPSTART
附录1.2转换结果处理子程序程序清单
转换结果处理子程序程序清单
CHULI:
CLRC
MOVR5,#00H;十进制转换的低位寄存器
MOVR4,#00H;十进制转换的高位寄存器
MOVR3,#08H;十进制调整的次数
NEXT:
RLCA;将欲转换的高位移入C中
MOVR2,A;暂存于R2
ADDCA,R5;R5*2加C
MOVA,R5
DAA;做十进制调整
MOVR5,A;结果存于R5
MOVA,R4;R4*2加C
ADDCA,R4
DAA;做十进制调整
MOVR4,A;结果存于R4
DJNZR3,NEXT;做十进制调整8次吗?
L2:
MOVA,R5
ADDA,R5;R5*2
DAA;做十进制调整
MOVR5,A;结果存于R5
MOVA,R4;R4*2
ADDCA,R4;做十进制调整
MOVR4,A;结果存于R4
RET
附录1.3显示子程序程序清单
显示子程序程序清单
DISP:
MOVA,R5
ANLA,#0FH
ORLA,10H
MOVP1,A;显示十分位
LCALLD5ms
MOVA,R5
ANLA,#0F0H
SWAPA
ORLA,#20H
MOVP1,A;显示个位
LCALLD5ms
MOVA,R4
ANLA,#0FH
ORLA,#40H
MOVP1,A;显示十位
LCALLD5ms
CLRA
RET
附录1.4显示子程序程序清单
显示子程序程序清单
D5ms:
MOVR6,#10
D5ms1:
MOVR7,#250
DJNZR7,$
DJNZR6,D5ms
RET
附录2:
设计图纸
附录3:
元器件目录表
名称
型号/数值
数量
待测电压源
0~5V
1
A/D转换器
ADC0809
1
单输入端双D触发器
74HC74
1
与非门
74ALS02
2
单片机
89C51
1
三极管
C1815
3
锁存7段译码驱动器
CD4511
1
数码显像管
共阴极
3
电源/VCC
5V
若干
电阻
90K
1
电阻
10K
1
电阻
6.8K
1
电阻
470欧
7
电容
30pF
2
电容
10uF
1
晶振
12MHz
1