“余数拆分”算法在简易数字电压表中的应用.docVIP

  • 14
  • 0
  • 约 6页
  • 2016-09-10 发布于北京
  • 举报

“余数拆分”算法在简易数字电压表中的应用.doc

“余数拆分”算法在简易数字电压表中的应用.doc

“余数拆分”算法在简易数字电压表中的应用   摘 要: 为了使单片机在采用汇编语言设计简易数字电压表的小数部分处理过程中减少利用的寄存器数量及编程复杂度,采用“余数拆分”算法。方法不需要做16位的除法运算,仍采用8位的寄存器即可以获得所要求精度的小数位数。对该算法在简易数字电压表中的应用进行了原理分析,同时进行了软件设计,并通过Proteus仿真来验证该处理方法的可行性。该算法使得所需要的硬件资源减少、编程简单,值得应用与推广。   关键词: “余数拆分”算法; 数字电压表; AT89C51; ADC0809   中图分类号: TN911?34; TP336 文献标识码: A 文章编号: 1004?373X(2014)18?0030?02   Application of remainder split algorithm in simple digital voltmeter   LI Li1, GUO Jian?qin2   (1. Shandong Labor Vocational and Technical College, Jinan 250022, China; 2. Shandong College of Electronic Technology, Jinan 250014, China)   Abstract: In order to reduce the number of registers used by MCU and programming complexity in the decimal part processing in the simple digital voltmeter designed with assembly language, the remainder split algorithm was adopted, which does not need to do 16?place division operation, but still uses the 8?bit register to obtain the decimal digits of the required accuracy. The principle analysis of algorithm application in simple digital voltage meter is conducted. The software design was made. The feasibility of the processing method was verified by Proteus simulation. The algorithm makes the required hardware resources reduced and the programming simple. It is worth of application and promotion.   Keywords: remainder split algorithm; digital voltmeter; AT89C51; ADC0809   在电子测量中,数字电压表中小数位的处理直接影响数据的精确度[1],电子工程师们常采用ADC0809及C语言实现数字电压表的显示[2],常用的处理A/D转换后的数显电压值的方法是通过[U=UrefN255]计算得出[3]。其中:U为实际转换出来的电压值;[Uref]为ADC0809的基准电压,通常取5 V;N为A/D转换的数字值。利用该公式来获取数值的优点是思路简单,非常适合采用C语言来实现[4?5]。但是当采用执行速度快的汇编语言设计和AT89C51单片机时,由于[Uref]N的值可能会大于8位寄存器的最大值255,这时要完成上述的除法运算的话,则需要多个8位的寄存器来实现,使所利用的硬件资源增多、编程复杂化。本文主要是针对简易数字电压表中小数部分的处理方法作一研究,采用AT89C51单片机及ADC0809实现,测量范围在0~5 V之间,采用汇编语言设计,并通过Proteus仿真来验证该处理方法的可行性。本文提出一种算法,在此称为“余数拆分”法,此方法不需要做16位的除法运算,仍采用8位的寄存器即可以获得所要求精度的小数位数。   1 “余数拆分”算法   设电压测量范围为0~5 V,某一电压经ADC0809实现A/D转换后的数字值为data,则要重显该电压值(包括整数位n和小数位)时,所采用的处理方法如下:   (1) 先进行如下运算:   [data51=商(即为整数位n)…… 余数a(以此获取第一位小数)]   式中:除数51=8位寄存器的最大

文档评论(0)

1亿VIP精品文档

相关文档