基于Proteus的数字电压表设计与仿真.doc
上传人:天马****23 上传时间:2024-09-12 格式:DOC 页数:19 大小:1.6MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于Proteus的数字电压表设计与仿真.doc

基于Proteus的数字电压表设计与仿真.doc

预览

免费试读已结束,剩余 9 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

课程设计报告题目:数字电压表设计与仿真学生姓名:吴鹏学生学号:1114010250系别:电气院专业:自动化届别:2011指导教师:张水锋电气信息工程学院2013年摘要:在现代检测技术中,常用高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。本文中数字电压表的控制系统采用AT89C51单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化,还可以方便地进行8路A/D转换的测量,远程测量结果传送等功能。数字电压表可以测量0~5V的电压值,并在四位LED数码管上轮流显示,并且应用Proteus的ISIS软件进行单片机系统设计与仿真.关键词:单片机;数字电压表;A/D转换ADC0809;Proteus1绪论随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。同时随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命[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;初始化定义LED2EQU31HLED3EQU32H;存放三个数码管的段码ADCEQU35H;存放转换后的数据STBITP3.2OEBITP3.0EOCBITP3.1;定义ADC0809的功能控制引脚ORG0000HLJMPMAIN;跳转到主程序执行ORG0030HMAIN:MOVLED1,#00HMOVLED2,#00HMOVLED3,#00H;寄存器初始化CLRP3.4SETBP3.5CLRP3.6;选择ADC0809的通道2WAIT:CLRSTSETBSTCLRST;在脉冲下降沿启动转换JNBEOC,$;等待转换结束SETBOE;允许输出信号MOVADC,P1;暂存A/D转换结果CLROE;关闭输出MOVA,ADC;将转换结果放入A中,准备个位数据转换MOVB,#50;变换个位调整值50送BDIVABMOVLED1,A;将变换后的个位值送显示缓冲区LED1MOVA,B;将变换结果的余数放入A中,准备十分位变换MOVB,#5;变换十分位调整值5送BDIVABMOVLED2,A;将变换后的十分位值送LED2MOVLED3,B;最后的余数作百分位值送LED3LCALLDISP;调用显示程序AJMPWAITDISP:MOVR1,#LED1;显示子程序CJNE@R1,#5,GO;@R1=5V?是往下执行,否,则到G