。其次,计算机中的数字都是十六进制数,而我们习惯于十进制数的读写,因此,在软件设计中则要把十六进制数转换成十进制数。在显示的时候也是如此。本装置的输出用四位LED显示,因此在软件设计中还要解决数字输出与LED的接口问题。硬件则需要将输出线接到八段数码管上[8]。Р数值显示采用八段数码管,由单片机以动态扫描方式驱动,在此方式下能保证足够的亮度和较长的使用寿命。РADC0809的REF(-)接地,REF(+)接电源+5V,因此采集电压的范围是0~5V,AD转换输出的结果D0~D7为8位二进制数。转换输出的结果在0~255之间分别对应着0~+5V之间的256个电压值,因此单片机必须把AD转换输出的结果转换成可以显示的电压值,具体的方法是:Р Р由上公式可知:当ADC0809输出为(11111111)B时,输入电压值VIN=5.00V;当ADC0809输出为(00000000)B时,输入电压值VIN=0.00V;当ADC0809输出为(10000000)B时,输入电压值VIN=2.50V,但是单片机在进行数学运算时结果只读取整数部分,因此当输出为(10000000)B时计算得来的电压值VIN=2.00V。由此可以看出这样运算的输出结果很不准确,在0~+5V之间只有0,1,2,3,4,5六个电压值,所以必须把单片机运算结果中的小数部分保留下来[8]。具体方法是:如果保留小数点后两位,在运算的时候分子乘以100,保留三位就乘以1000。小数点后保留两位的公式如下:Р (2.2)Р2.1.2 软件程序设计简介Р开机后首先初始化,使数码管显示为“0.000”然后调用AD转换子程序启动AD转换器,单片机等待查询转换结束信号,如果有信号则通过并行口读取转换数据并存储,就这样连着读取五次数据后求平均值,再按上面的方法通过串行口把数据传输出,经译码在数码管显示。具体方法和程序见程序设计部分和附录。