基于Proteus的数字电压表设计与仿真(1)
基于Proteus的数字电压表仿真设计

+,-./01 ] ^ _ ` SDKE/>./, a b c . + d e f g h i j
01 k c .l m ] n o p q r s t u + QR% 0 1 v w x d yz{E |%> }~%> 01 t K %> T i j + 01 v w k V/=H W+S%X K c . + z { + TPU S %¡ ¢ + £ ¤ ¥ } ¦ § ¨ © U ª %&'()*6 K « Z ¬ ® : +,-./01 0 1 2 3 < ¯ S d ° ~ %¡ ± + '( ² A ³ ~ % ¡ ± + ' (A ´ 4 µ ¶ · ¯ ¸ +,-./01 v w ¹ K « Z i j + ' ( A ´ ? + < :£
ï P6 ð
ï4\
FGDE@H
\-H]P4
:-]4
QH/E.,->=E R/1=J> Q>J=>//,=>J
P742 ñ 4 ò <D>] P742
基于 !"#$%&' 的数字电压表仿真设计
! "
#$ % &' & ( )* + , -. / * + # $ 0 1 !"#$$$ !" 2 34 5 6 78 9 : ;< = > ?@ A 4 B3 C D E %&'()*" F G H 2I J K L 9 M N +,-./01 O P Q ) R ST 6 78 U V WX Y Z [\ 3 S T6 7 8 R] ^ _ `U V > a^ b c d e f g h +,-./01 a ^ i j 3 O P k l m n 8o p U VR S T _7 8 m qr F ? @A s f tu v s R: ; < = w x y zo 3 +,-./01 O Pa ^ R {h | Eu } ~ F G R #$ % ST _ 7 8 +,-./01 O P U V F G H &' ( )* &+23' + , -. / % + 01 * 43!53#23 #$62 7"874##872
数字电压表设计与仿真

文献综述一、引言数字仪表是把连续的被测量模拟量自动地变成断续的、用数字编码方式并以十进制数字自动显示测量结果的一种测量仪表。
这是一种新型仪表,它把电子技术、计算机技术、自动化技术与精密电测量技术密切得结合在一起,成为仪器仪表领域中一个独立的分支。
数字仪表的种类很多,应用场合各不相同,其内部结构也相差很大。
根据仪表的用途(即被测量的性质)分为:数字电压表、数字电阻表、数字电流表、数字功率表、数字Q(品质因素)表、数字静电计、数字电桥及电子计数器等。
经过适当变换,还可以制成测量多种非电量的仪表,如数字温度表、数字转速表、数字位移表、数字钟、数字秤、数字测厚仪及数字高斯计等,还有许多其他数字式测量仪器和测量装置。
在各种数字仪表中,数字电压表的用途居于较为突出的地位,它不但用来测量各种电量,而且还广泛用来进行各种非电量的电测量,同时在实现工业自动化,生产过程的自动控制以及测量本身的自动化等方面,都起着很重要的作用。
数字电压表(DVM)是一个具有数字显示功能的多量程仪表,它是测量仪表(可测量电压、电流和电阻)中最常用的一个测试功能项、一旦测量仪表的范围和方式选定,即可测量直流信号(DC)也可测量交流信号(AC)的参数。
有些数字表的设计是由电池驱动且可携带,而另外一些是基于主机(计算机)驱动且由磁盘安装的。
数字式仪表与模拟式仪表相比,使用零件少,集成度高,稳定性和可靠性相对较高,输入阻抗高,提高了测量精度。
数字电压表的设计通常以ASIC芯片为控制核心,在A/D转换器、显示器等外围器件的配合下工作。
A/D转换器在控制核心ASIC所提供的时序信号作用下,对输入模拟信号进行转换,制核心再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。
这种设计方法的缺陷是:控制核心的灵活性不高,系统功能难以更新和扩展。
如果用可编程逻辑器件FPGA代替ASIC芯片,用硬件描述语言决定系统功能,就可在硬件不变的情况下修改程序以更新和扩展功能,使其灵活性和适应性显著提高。
基于Proteus的简易直流数字电压表的设计

程序3 个程 序 模 块 组 成 , 程 序 流程 如 图3 所示。
2 . 2 . 1 主程 序
码 文件 ( 术 . h e x ) , 然 后在 P r o t e u s 仿 真平 台上将. h e x 文件加 载
器T 0 。 最 后 进 入 死 循 环 实验表明, 基于 P r o t e u s  ̄ D K e i l 设 计 的简 易直 流 数 字 电 状态 进 行 多次试 转 。 压表, 具 有 结 构简 单 、 功 能可 靠 、 使 用方 便 等优 点 , 达 到 了预 2 . 2 . 2 定时器 中断程序 期 效 果 。 该 设 计 方 法可 以 降低 开 发 成 本 , 缩短开发周期, 适
1 . 5 0 3 0 . 0 0 3
1 . 9 9 2 0 . 0 0 8
2 . 9 8 8 0 . 0 1 2
3 . 4 7 6 0 . 0 2 4
3 . 9 8 4 0 . 0 1 6
4 . 4 7 2 0 . 0 0 8
4 . 9 8 0 0 . 0 1 0
程 序 设 计主 要 由主 程 序 , 定 时器 中断 程 序 , 外 部 中断 子
2 . 2 . 3 外部中断子程序
当转 换 结 束后 , 根 据 一定 的算 法 求 出各 位 的值 , 并通 过
P 0 , P 2 口送 L E D 显示 。
2 . 3 P r o t e u s 和K e i l 联 合 仿 真 系统 采 用 C 语 言编 程 , 具 有代 码 简洁 , 可读 性 强 , 移 植性
P r o t e us De s i g n Si mpl e Di g i t a l Vo l t me t e r D C— Ba s e d
基于AT89C51单片机的数字电压表的Proteus仿真设计与应用

基于AT89C51单片机的数字电压表的Proteus仿真设计与应用一、本文概述本文旨在深入探讨基于AT89C51单片机的数字电压表的Proteus 仿真设计与应用。
我们将从AT89C51单片机的特点出发,分析其在数字电压表设计中的优势,并详细阐述如何利用Proteus仿真软件进行电路设计与仿真的全过程。
通过本文的阐述,读者将能够对基于AT89C51单片机的数字电压表的设计原理、电路构建、仿真测试等方面有全面的了解,并能在实践中应用所学知识,实现数字电压表的开发与优化。
本文将首先介绍AT89C51单片机的基本特性,包括其内部结构、功能特点以及适用场景。
接着,我们将详细解析数字电压表的设计原理,包括电压信号的采集、处理与转换等关键步骤。
在此基础上,我们将深入探讨如何利用Proteus仿真软件进行电路设计与仿真,包括电路元件的选择、电路连接、仿真参数设置等具体操作。
通过Proteus仿真软件的应用,我们能够在虚拟环境中对数字电压表进行仿真测试,从而验证电路设计的正确性,预测实际运行效果,优化电路设计。
Proteus仿真软件还具有操作简便、可视化程度高、仿真速度快等优点,使得电路设计与调试过程更加高效便捷。
本文将总结基于AT89C51单片机的数字电压表的Proteus仿真设计与应用过程中的经验教训,为读者在实际开发中提供参考与借鉴。
通过本文的学习与实践,读者将能够掌握数字电压表的设计与开发技能,为未来的电子工程设计与实践奠定坚实的基础。
二、AT89C51单片机概述AT89C51是Atmel公司生产的一款8位低功耗、高性能的CMOS微控制器,它属于AT89系列单片机。
AT89C51单片机内部集成了4KB 的可反复擦写的Flash只读程序存储器,这使得它具备了程序存储空间的持久性和可修改性,大大简化了程序的更新和维护过程。
它还拥有128字节的内部RAM,用于程序执行过程中的数据存储和临时变量存储。
AT89C51单片机采用了32个可编程的I/O口线,满足了大多数基本外设的接口需求。
最简单的用单片机+ADC0808 protues仿真数字电压表(原创)

在学习单片机AT89S52十天后,老师发给我们的那个板子就基本不够用了,所以数字电压表就只能用protues仿真了,而且之前我在网上找了很多别人做的数字电压表实例,总感觉程序比较复杂,就尝试着自己做了下,没想到很简单的思路竟然就做出来了,当然里面还有很多不足,精度也不是很高,但是做出来的时候自己真的非常高兴!下面给出我写的C程序和仿真图,不足的地方希望可帮我修改下。
可以说这个程序是非常简单的了,没有像其他人一样用中断啊,用字符串移动啊,用ABS 地址头文件啊都没有,所以很适合新人理解吧。
我就只想一个问题,把收到的2进制数字量改成10进制就行了,仅此而已。
#include <reg52.h>#include <math.h>#define unit unsigned int#define uchar unsigned charsbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^2;sbit led4=P2^3;uchar ad_data;uchar data dis[5]={0x00,0x00,0x00,0x00,0x00};uchar code led_segment[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};void data_pro();void delay (k);void display();void main(void) //主程序{ad_data=0; //采样值存储单元初始化为0while(1){ST=0;ST=1;ST=0;while(EOC==0)OE=1;ad_data=P0;data_pro();display();}}void Delay(int count) //*定义延时子函数,利用循环来延时{int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}void display(void) //LED显示子程序{P1=led_segment[dis[2]]; //驱动方法led1=0; //开第一个数码管delay(1); //动态显示方法进行一个很小的延时led1=1; //关第一个数码管这样进行动态显示P1=led_segment[dis[1]];led2=0;delay(1);led2=1;P1=led_segment[dis[0]];led3=0;delay(1);led3=1;}void data_pro(void) //数据处理子程序{dis[2]=ad_data/51; //取整dis[4]=ad_data%51; //取余dis[4]=dis[4]*10;dis[1]=dis[4]/51; //取第一位小数dis[4]=dis[4]%51;dis[4]=dis[4]*10;dis[0]=dis[4]/51; //取第二位小数//取整为什么要/51呢?因为接进来的是一个256内的数//前面可知模拟电压范围为0-5V,所以最小分辨率为5/256=1/51 // 这样就可以将8位二进制数转化为0.00~5.00内的十进制小数了!}设计缺陷:1.精度不高,在2-5V之间精度才能达到98.2%左右。
基于Proteus的数字电压表仿真设计

基于Proteus的数字电压表的设计毕业设计

毕业设计 [论文]题目:基于proteus的数字电压表的设计系别:电子信息工程工程技术专业:电子信息工程姓名:学号:指导教师:目录摘要 (I)Abstract (1)1 绪论 (2)1.1 选题的目的意义 (2)1.2 国内外研究综述 (2)1.3 毕业设计(论文)所用的方法 (3)2 系统方案设计 (4)2.1 设计思路 (4)2.2 设计方案 (6)3 硬件电路设计 (8)3.1 时钟电路 (8)3.2 复位电路 (9)3.3 数据采集电路 (9)3.4 显示电路 (10)3.5 总设计原理图 (12)4 软件设计 (13)4.1 主程序流程图 (13)4.1.1 主程序流程图 (13)4.1.2 主程序代码 (13)4.2 显示子程序流程图 (15)4.2.1 显示子程序流程图 (15)4.2.2 显示子程序代码 (16)4.3 A/D转换子程序流程图 (17)4.3.1 A/D转换子程序流程图 (17)4.3.2 A/D转换子程序代码 (18)4.4 数据处理子程序流程图 (18)4.4.1 数据处理子程序流程图 (18)4.4.2 数据处理子程序代码 (19)5 软件仿真 (20)5.1 调试与仿真 (20)5.1.1 仿真软件简介 (20)5.1.2 仿真步骤 (21)5.2 误差分析与仿真 (21)5.2.1 仿真误差分析 (21)5.2.2 仿真图 (21)结论 (25)参考文献 (26)致谢 (27)附录 A (28)摘要在现代检测技术中,传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,因此常用高精度数字电压表进行检测。
数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。
基于Proteus的全硬件LED数字电压表设计与仿真_朱清慧

单元。另外,ADC 的控制端信号以及计数器的启 动、复位信号对系 统 是 否 能 正 常 工 作 是 至 关 重 要 的,这一部分 分 散 的 单 元 统 称 为 复 位/启 动 模 块。 综 上 所 述 ,全 硬 件 数 字 电 压 表 共 由 5 大 模 块 构 成 , 如图1所示。
图 1 系 统 功 能 模 块 组 成 Fig.1 System function modules configuration
Design and simulation of LED digital voltmeter with whole hardware circuit based on proteus
ZHU Qing-hui* ,WANG Zhi-kui
(School of Electronic and Electric Engineering,Nanyang Institute of Science and Technology,Nanyang473004,China)
会出现在 OUT1~OUT8 端 线 上,而 是 锁 存 在 内
部数据缓冲 器 中,转 换 结 束 后,EOC 变 成 高 电 平
作为指示。但要 打 开 缓 冲 器,必 须 给 OE 输 入 一
个 高 电 平,转 换 数 据 才 输 送 到 ADC0808 的
OUT1-OUT8 端。 因 此,把 EOC 直 接 连 到
(a)模拟信号接线。测量 电 压 接 在 ADC0808 的模拟量输入第7通道,对 应 的 通 道 地 址 为 111, 即 ADDC、ADDB、ADDA 端 皆 为 高 电 平,这 里 接
第3期
朱清慧,等:基于 Proteus的全硬件 LED 数字电压表设计与仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题目:数字电压表设计与仿真
学生姓名:吴鹏
学生学号: 1114010250 系别:电气院
专业:自动化
届别: 2011
指导教师:张水锋
电气信息工程学院
2013年
摘要:在现代检测技术中,常用高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。
本文中数字电压表的控制系统采用AT89C51单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。
该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化,还可以方便地进行8路A/D转换的测量,远程测量结果传送等功能。
数字电压表可以测量0~5V的电压值,并在四位LED数码管上轮流显示,并且应用Proteus的ISIS软件进行单片机系统设计与仿真.关键词:单片机;数字电压表;A/D转换ADC0809;Proteus
1 绪论
随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
同时随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命[1]。
由于使用的是高效单片机作为核心的测量系统,以及灵敏度和精度较高的A/D转换器,使本直流电压表具有精度高、灵敏度强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平[2]。
数字电压表相对于指针表而言读数直观准确,电压表的数字化是将连续的模拟量转换成不连续的离散的数字形式并加以显示。
这有别于传统的以指针与刻度盘进行读数的方法,避免了读数的视差和视觉疲劳[3]。
2 系统方案设计
利用MCS-51系列单片机设计简易数字电压表测量0~5v的8路输入电压值,并在四位LED 数码管上轮流显示或单路选择显示。
测量误差约为±0.02V。
系统设计方框图如图1所示。
单片机
AT89C51时钟电路复位电路数据采集
显示电路
模拟信号
图1系统设计方框图
3 硬件电路设计
3.1时钟电路
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz ,时钟频率就为6MHz 。
晶振的频率可以在1MHz-24MHz 内选择。
电容取30PF 左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路如图2所示[2]。
图2时钟电路图
3.2复位电路
复位电路如下图3所示,按键没有按下时,RST 端接电容下极板是低电平,按键按下时,RST 端接在电阻上端变为高电平,达到复位的目的[2]。
图3复位电路图
3.3数据采集模块
通过ADC0809采集数据,输入到单片机内,如图4所示:
图4数据采集模块电路图3.4显示电路
通过4位数码管来显示,如图5所示:
图5显示电路图
4 软件设计
4.1主程序流程图
主程序流程图如图6所示:
开始
初始化
调用A/D转化程序
调用数据处理程序
调用显示程序
图6主程序流程图4.2显示子程序流程图
显示子程序流程图如图7所示:
开始
初始化,P0置
高,P2置低
P0到A输出显示
P2=P2+1
P0到A输出显示
P2=P2+1
P0到A输出显示
置位P0.7点亮小数点
P2=P2+1
P0到A输出显示
结束
图7显示子程序流程图4.3 A/D转换子程序流程图
A/D转换子程序流程图,如图8所示:
开始
初始化
启动A/D 转化
P3.1=1?
P3.0置位,允许输出。
将转化的数据保存
结束Y
N
图8 A/D 转换子程序流程图
4.4数据处理子程序流程图
数据处理子程序流程图,如图98所示: 开始
从34H 中取数据,乘以
19.5mv ,得到的数据BCD 麻
化,将数据存入A
转化双字节十
六进制整数
BCD 码带进位自身相
加,十进制调整
R2=0?
数据输入显示器
结束N Y
图9数据处理子程序流程图
5 源代码
LED1 EQU 30H ;初始化定义
LED2 EQU 31H
LED3 EQU 32H ;存放三个数码管的段码
ADC EQU 35H ;存放转换后的数据
ST BIT P3.2
OE BIT P3.0
EOC BIT P3.1 ;定义ADC0809的功能控制引脚
ORG 0000H
LJMP MAIN ;跳转到主程序执行
ORG 0030H
MAIN: MOV LED1,#00H
MOV LED2,#00H
MOV LED3,#00H ;寄存器初始化
CLR P3.4
SETB P3.5
CLR P3.6 ;选择ADC0809的通道2
WAIT: CLR ST
SETB ST
CLR ST ;在脉冲下降沿启动转换
JNB EOC,$ ;等待转换结束
SETB OE ;允许输出信号
MOV ADC,P1 ;暂存A/D转换结果
CLR OE ;关闭输出
MOV A,ADC ;将转换结果放入A中,准备个位数据转换
MOV B,#50 ;变换个位调整值50送B
DIV AB
MOV LED1,A ;将变换后的个位值送显示缓冲区LED1
MOV A,B ;将变换结果的余数放入A中,准备十分位变换MOV B,#5 ;变换十分位调整值5送B
DIV AB
MOV LED2,A ;将变换后的十分位值送LED2
MOV LED3,B ;最后的余数作百分位值送LED3
LCALL DISP ;调用显示程序
AJMP W AIT
DISP:MOV R1,#LED1 ; 显示子程序
CJNE @R1,#5,GO ;@R1=5V?是往下执行,否,则到GO
MOV LED2,#0H ;是5V,即最高值,将小数的十分位清零
MOV LED3,#0H ;将小数的百分位清零
GO:MOV R2,#3 ;显示位数赋初值,用到3位数码管MOV R3,#0FDH ;扫描初值送R3
DISP1:MOV P2,#0FFH ;关闭显示,目的防止乱码
MOV A,@R1 ;显示值送A
MOV DPTR,#TAB ;送表首地址给DPTR
MOVC A,@A+DPTR ;查表取段码
CJNE R2,#3,GO1 ;判断是否个位数码管?否则跳到GO1
ORL A,#80H ;将整数的数码管显示小数点
GO1:MOV P0,A ;送段码给P0口
MOV A,R3
MOV P2,A ;送位码给P2口
LCALL DELAY ;调用延时
MOV R3,A
RL A ;改变位码
MOV R3,A
INC R1 ;改变段码
DJNZ R2,DISP1 ;三位是否显示完?否则调到DISP1 RET
DELAY:MOV R6,#10 ;延时5S程序:
D1:MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TAB: DB 3FH, 06H,5BH,4FH,66H;共阴极数码管显示0-4 ;显示数据表:DB 6DH,7DH,07H,7FH,6FH;显示5-9
END
6电路原理图
电路原理图如图10所示:
图10电路原理图
7 仿真图
调节滑动变阻器的位置,可以测出相应的电压值,如图11所示。
该电路可测得电压范围是0-5V,最大电压值如图12所示。
该电路测量的误差在约为±0.02V,如图13所示。
图13最小测量误差图
8 结束语
利用仿真功能强大、仿真元件模型丰富的Proteus软件对数字电压表各个单元电路和整体电路进行了设计和详尽的仿真分析,缩短了设计周期,提高了设计效率,降低了设计成本. 同时, Proteus软件对于电子技术的教学演示和实际设计都具有很大的辅助作用.
参考文献
[1] 陈朝元,鲁五一.Proteus软件在自动控制系统仿真中的应用[J].系统仿真学报, 2008(1):318-320.
[2] 毛谦敏.单片机原理及应用设计系统[M].北京:国防工业出版社,2008:22-26.
[3] 康华光.电子技术基础(数字部分) [M]. 5版. 北京:高等教育出版, 2005: 290-293.。