基于Proteus的数字电压表设计与仿真1Word文件下载.docx
《基于Proteus的数字电压表设计与仿真1Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Proteus的数字电压表设计与仿真1Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
在现代检测技术中,常用高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。
本文中数字电压表的控制系统采用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所示。
图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所示:
图6主程序流程图
4.2显示子程序流程图
显示子程序流程图如图7所示:
图7显示子程序流程图
4.3A/D转换子程序流程图
A/D转换子程序流程图,如图8所示:
图8A/D转换子程序流程图
4.4数据处理子程序流程图
数据处理子程序流程图,如图98所示:
图9数据处理子程序流程图
5源代码
LED1EQU30H;
初始化定义
LED2EQU31H
LED3EQU32H;
存放三个数码管的段码
ADCEQU35H;
存放转换后的数据
STBITP3.2
OEBITP3.0
EOCBITP3.1;
定义ADC0809的功能控制引脚
ORG0000H
LJMPMAIN;
跳转到主程序执行
ORG0030H
MAIN:
MOVLED1,#00H
MOVLED2,#00H
MOVLED3,#00H;
寄存器初始化
CLRP3.4
SETBP3.5
CLRP3.6;
选择ADC0809的通道2
WAIT:
CLRST
SETBST
CLRST;
在脉冲下降沿启动转换
JNBEOC,$;
等待转换结束
SETBOE;
允许输出信号
MOVADC,P1;
暂存A/D转换结果
CLROE;
关闭输出
MOVA,ADC;
将转换结果放入A中,准备个位数据转换
MOVB,#50;
变换个位调整值50送B
DIVAB
MOVLED1,A;
将变换后的个位值送显示缓冲区LED1
MOVA,B;
将变换结果的余数放入A中,准备十分位变换
MOVB,#5;
变换十分位调整值5送B
MOVLED2,A;
将变换后的十分位值送LED2
MOVLED3,B;
最后的余数作百分位值送LED3
LCALLDISP;
调用显示程序
AJMPWAIT
DISP:
MOVR1,#LED1;
显示子程序
CJNE@R1,#5,GO;
@R1=5V?
是往下执行,否,则到GO
MOVLED2,#0H;
是5V,即最高值,将小数的十分位清零
MOVLED3,#0H;
将小数的百分位清零
GO:
MOVR2,#3;
显示位数赋初值,用到3位数码管
MOVR3,#0FDH;
扫描初值送R3
DISP1:
MOVP2,#0FFH;
关闭显示,目的防止乱码
MOVA,@R1;
显示值送A
MOVDPTR,#TAB;
送表首地址给DPTR
MOVCA,@A+DPTR;
查表取段码
CJNER2,#3,GO1;
判断是否个位数码管?
否则跳到GO1
ORLA,#80H;
将整数的数码管显示小数点
GO1:
MOVP0,A;
送段码给P0口
MOVA,R3
MOVP2,A;
送位码给P2口
LCALLDELAY;
调用延时
MOVR3,A
RLA;
改变位码
INCR1;
改变段码
DJNZR2,DISP1;
三位是否显示完?
否则调到DISP1
RET
DELAY:
MOVR6,#10;
延时5S程序:
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TAB:
DB3FH,06H,5BH,4FH,66H;
共阴极数码管显示0-4;
显示数据表:
DB6DH,7DH,07H,7FH,6FH;
显示5-9
END
6电路原理图
电路原理图如图10所示:
图10电路原理图
7仿真图
调节滑动变阻器的位置,可以测出相应的电压值,如图11所示。
图11测量电压仿真图
该电路可测得电压范围是0-5V,最大电压值如图12所示。
图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.