只需一步,快速开始
热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计
所在院系
教育信息与技术学院
专业名称
信息工程
班级
1002
题目
数字电压表
指导教师
黎明
成员
孙斌 郑兵 杨鑫
完成时间
17.1.4
目录
1 设计目的
2 设计思路
3 设计过程
3.2.1 硬件部分
(1)单片机控制模块设计
(2)AD转换模块设计
(3)量程自动转换模块
(4)LED显示模块
(5)报警模块
3.2.2 软件部分
(1)主程序设计
(2)A/D转换程序设计
4电路仿真与结果分析
5设计体会
参考文献
附件
数字电压表的设计
(1)熟悉数字电压表的基本工作原理和与一般的模拟电压表相比,数字电压表具有的优点。
(2)掌握A/D 的使用和单片机整个开发过程。
(3)了解积分式和逐次逼近式AD转换器各自的特点。
利用AD转换器对输入电压进行采集并传输给单片机,让其进行数据的处理。通过单片机与数码管的连接,最终显示在数码管上。并用软件编程的方式检测输入信号的大小来实现数字电压表的量程自动转换功能。
第一部分:单片机控制模块。控制中心微控制器采用的是AT89C52 单片机,其对于多量程电路的测量有着不可比拟的性价比,而且操作简单,特别是与ADC0808 构成的电压采集电路,反映时间短,能够有效地将模拟电压数据在LED 上显示出来。
第二部分:AD转换模块。A/D 转换电路用来将量程转换电路输入的直流电压信号转成数字电压信号,以供主控制器进行数据处理。采用一片ADC0808,它是采样分辨率为8 位的、以逐次逼近原理进行模—数转换的器件。
第三部分:量程自动转换模块。通过对输入电压的测量,利用软件编程的方式来实现量程的自动转换。
第四部分;LED显示模块。数码管显示电路以显示4位的方式来显示数字电压表测量的直流电压值。
第五部分:报警模块。当输入的直流电压超过最大量程时,数字电压表报警以示警告。
利用AD转换器对输入电压进行采集并传输给单片机,让其进行数据的处理。通过单片机与数码管的连接,将输入的直流电压显示在数码管上。利用软件编程的方式检测输入信号的大小来实现数字电压表的量程自动转换功能。在允许的误差范围内实现了数字电压表的设计要求,完成了数字电压表的全部设计。
(1) 单片机控制模块设计
单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。
① 时钟电路
单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器C1和C2对振荡频率有微调作用,通常取(30±10pF)石英晶体选择11.0592MHz。时钟电路如图1所示。
② 复位电路
单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式为上电复位方式。复位电路如图2所示。
逐次逼近型A/D转换器ADC0808属于直接型A/D转换器,它能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。
① ADC0808简介
ADC0808精度为8位,CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。
②外部引脚图及引脚功能
ADC0808的外部引脚如图3所示。
IN0~IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。
ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。
START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
③AD转换模块设计
集成摸数转换芯片ADC0808实现的A/D转换电路如图4所示,被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。
利用软件编程的方式,通过对输入电压判断其大小来确定电压表的当前量程,进而实现电压表的量程自动切换。量程自动转换模块如图5所示。量程分为3个档:当s1亮时为1V-5V;当s2亮时为0.1—1V;当s3亮时为0—0.1V。
LED显示模块用来显示数字电压表测量的直流电压值。LED显示模块如图6所示。
(5) 报警模块
利用一个电压比较器和一个蜂鸣器的连接来实现报警模块的设计。当输入的直流电压大于最大量程(5V)时,蜂鸣器响起即报警。报警模块如图7所示。
主程序主要负责初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,主流程图如图8所示。
A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P3^2的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。AD转换程序流程图如图9所示。
程序如下:
OE=0;
ST=0;
ST=1;
ST=0;//启动转换
while(EOC==0); //等待转换结果
OE=1; //允许输出
sum=data;
电路的仿真和结果分析
(1)当输入直流电压(input)大于5V时,电压表只能显示5.000V的电压,此时s1亮。电压大于5V时数码管显示如图11所示。
(2)当输入直流电压(input)在1V~5V时,s1亮。在误差允许的范围内输出相对精确的电压值。电压在1V~5V时数码管显示如图12所示。
(3) 当输入直流电压(input)在0.1V~1V时,s2亮。在误差允许的范围内输出相对精确的电压值。电压在0.1V~1V时数码管显示如图13所示。
(4) 当输入直流电压(input)在0V~0.1V时,s3亮。在误差允许的范围内输出相对精确的电压值。电压在0V~0.1V时数码管显示如图14所示。
通过这次对数字电压表的设计与制作,我们了解了单片机整个开发过程,熟知和掌握了AT89C51,ADC0809,CD4066,运放等芯片的作用及其使用。虽然在制作过程中出现了问题,但是通过不断实践和查找资料,积极地思考问题、发现问题,最终解决了。无论从硬件还是软件方面,都提高了我们的动手和动脑能力。整个过程中,不但扩展了我们的知识面,而且也不断在挖掘我们的潜力,为我们今后的学习奠定扎实的基础。也许在这几天的制作中,我学的知识比课本上的还多、还难。在这次制作中,我更加看到了我对课本知识不熟,思想不够开阔等不足的地方,希望在以后的学习与实践中多看课本,多思考来弥补自己的不足。
[1] 徐爱钧.智能化测量控制仪表原理 [M].北京航空航天大学出版社.2004
[2] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京清华大学出版社.2002
[3] 张毅刚,彭喜元,彭宇.《单片机原理及应用》第二版[M].北京高等教育出版社.2010.5
[4] 汪德彪.MCS-51单片机原理及接口技术[M]. 第1版.北京电子工业出版社.2003
[5] 沙占友.新型数字电压表原理与应用[M].北京机械工业出版社.2006
查看全部评分
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
手机版|小黑屋|51黑电子论坛 | 管理员QQ:125739409;技术交流QQ群281945664
Powered by 单片机教程网