资源描述:
《基于-proteus数字电压表设计仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.微型计算机接口技术大作业2013-6...基于Proteus的数字电压表设计与仿真1绪论随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。同时随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命[1]。由于使用的是高效单片机作为核心的测量系统,以及灵敏度和精度较高的A/D转换器,使本直流电压表具有精度高、灵敏度强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平[2]。数字电压表相对于指针表而言读数直观准确
2、,电压表的数字化是将连续的模拟量转换成不连续的离散的数字形式并加以显示。这有别于传统的以指针与刻度盘进行读数的方法,避免了读数的视差和视觉疲劳[3]。2系统方案设计利用MCS-51系列单片机设计简易数字电压表测量0~5v的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。测量误差约为±0.02V。系统设计方框图如图1所示。图1系统设计方框图3硬件电路设计3.1时钟电路...XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为
3、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显示子程序流程图显示子程序流
4、程图如图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,#
5、00H;寄存器初始化CLRP3.4SETBP3.5CLRP3.6;选择ADC0809的通道2WAIT:CLRSTSETBST...CLRST;在脉冲下降沿启动转换JNBEOC,$;等待转换结束SETBOE;允许输出信号MOVADC,P1;暂存A/D转换结果CLROE;关闭输出MOVA,ADC;将转换结果放入A中,准备个位数据转换MOVB,#50;变换个位调整值50送BDIVABMOVLED1,A;将变换后的个位值送显示缓冲区LED1MOVA,B;将变换结果的余数放入A中,准备十分位变换MOVB,#5;变换十分位调整值5送BDIVABMOVLED2,A;将变换后的十分位值送LED2MOVL
6、ED3,B;最后的余数作百分位值送LED3LCALLDISP;调用显示程序AJMPWAITDISP:MOVR1,#LED1;显示子程序CJNE@R1,#5,GO;@R1=5V?是往下执行,否,则到GOMOVLED2,#0H;是5V,即最高值,将小数的十分位清零MOVLED3,#0H;将小数的百分位清零GO:MOVR2,#3;显示位数赋初值,用到3位数码管MOVR3,#0FDH;扫描初值送R3DISP1:MOVP2,#0FFH;关闭显示,目的防止乱码MOVA,@R1;显示值送AMOVDPTR,#TAB;送表首地址给DPTRMOVCA,@A+DPTR;查表取段码CJNER2,#3,GO1;判
7、断是否个位数码管?否则跳到GO1ORLA,#80H;将整数的数码管显示小数点GO1:MOVP0,A;送段码给P0口MOVA,R3MOVP2,A;送位码给P2口LCALLDELAY;调用延时MOVR3,ARLA;改变位码MOVR3,AINCR1;改变段码DJNZR2,DISP1;三位是否显示完?否则调到DISP1RETDELAY:MOVR6,#10;延时5S程序:D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETTAB