图5-2 A/D转换流程图
89C51要接收ADC0804转换后的数字信号。A/D转换结束时,A/D转换芯片输出转换结束信号。89C51检测到转换结束信号即可读取转换后数据。89C51一般可以采用3种方式和A/D转换器进行联络来实现对转换数据的读取。本设计采用查询方式进行89C51和ADC0804间的数据读取。采集数据时,首先89C51执行一条传送指令,在该指令执行过程中,89C51在控制总线的同时产生CS、WR低电平信号,启动A/D转换器工作,ADC0804经100μs后将输入的模拟信号转换为数字信号存在输出锁存器中,并在INTR端产生低电平表示转换结束。当89C51通过P1.0口查询到INTR为低电平时,立即执行输入指令,以产生CS、RD低电平信号到ADC0804相应引脚,将数据取出并存入存储器中。89C51接收数字信号流程图如图5-3所示。
5.3 数据处理
89C51接收到数字信号后进行数据的处理。主要处理两方面的内容:1.非线性校正,虽然热电偶的线性化程度比较高,但也需要进行线性化处理;2.确定温度值。对于线性化校正来说,有两种方法可以考虑:1计算法,即根据热电偶的分度表,用数值分析的方法在不同的测温范围内分别拟合一T=f(E)的近似数学公式,由测得的热电势用此公式计算出对应的温度;2 查表法。即将热电偶分度表按一定的排列写入内存,由测得的热电势用软件搜索的方法查到对应的温度。以上两种方法均有较高的精度。在具有微处理器的智能温度仪表中得到了广泛的应用。但是,公式法用一个公式即使对同一个热电偶在整个温度范围的不同测温段往往也不能适用,而必须化分成几个区段,在每段各用一个公式。由于确定公式的系数很麻烦,而且进行处理时占有CPU时间较多,给CPU管理其它外设会带来很大不便。而计算机查表法可以从已知的毫伏值很快从热电偶分度表中查出对应温度,同时进行线性化处理,从而可以用很少的时间得到较高的转换精度。本设计即采用查表法进行数据处理。
首先需要制作数字量分度表。从模拟量分度表到数字量分度表的制作,可用标准分度表每一温度的分度表乘以放大倍数,得到的放大后的电压值,再除以单片机的A/D转换分辨率,即5/256=0. 01953125 (V)=19. 53125 (mv),即可得到数字量的分度表。由于每一温度点处会有不同的放大倍数,但是为了计算的方便这里统一用平均值计算。得出的分度表,如表5.1所示(表中只列出了部分值)。
表5-1根据热电势经放大电路后的值制成的温度数字量分度表
个位
十位 0 1 2 3 4 5 6 7 8 9
0 0 1.08 2.18 3.29 4.36 5.47 6.57 7.65 8.75 9.86
10 10.96 12.06 13.17 14.27 15.38 16.48 17.59 18.69 19.82 20.93
20 22.03 23.69 24.27 25.37 26.50 27.61 28.74 29.84 30.98 32.08
30 33.21 34.34 35.48 36.58 37.71 38.84 39.98 40.80 42.21 43.35
…… …… …… …… …… …… …… …… …… …… ……
180 202.59 203.69 204.80 205.90 206.76 208.11 209.22 210.32 211.42 212.50
190 203.56 214.71 215.81 216.92 218.02 219.13 220.23 221.34 222.44 223.55
200 224.65
表中温度的单位是℃,“数字电势”指转换后的数字量热电势,为便于观察,先用十进制数表示,当然单片机系统处理时须将其转换成二进制或十辣进制后,才能进行处理。
表5-2为热电偶的标准分度表乘以放大倍数约550之后所得的数据(只列出一部分值)。表中温度单位为℃,“电势”为热电偶的标准分度表中的热电势乘以放大倍数之后所得的值,单位为mv。
表5-2标准分度表乘以放大倍数所得的数字分度表
温度 电势 温度 电势 … …… 温度 电势 温度 电势
0 0 20 430.302 … …… 75 1648.953 185 4064.686
5 106.767 30 648.689 … …… 80 1761.112 190 4171.992
10 214.073 35 7583.691 … …… 85 1872.732 195 4279.837
15 321.918 40 868.693 … …… 180 3956.840 200 4387.682
从上图可以看出,热电偶的热电势随温度变化的规律是温度和电势近似呈线性关系。
从热电偶的标准分度表的值乘以放大倍数550之后的表5-2可以看出,每℃温度电压相差最小为约100V/℃,而单片机系统的A/D转换分辨率如前所示,为19. 5mV,即最高可分辨的电压大小。本系统采用查表法处理数据。查表法就是将要查找的数据按一定的方法查找出对应的温度。所要显示的温度值,根据数字量分度表利用差值法求出。如10℃时对应的数字量为10.96, 11℃时对应的数字量为12.06,则数字量20对应的温度值为(20-10.96)/(12.06-10.96) +10。这样可将有A/D转换后的数字量与温度的整数部分对应关系求出,再利用查表程序,将温度值查出。
5.4 LED显示
最后的显示部分,被显示的数据直接由P0口的低四位即P0.0至P0.3输出到CD4511B的输入端ABCD,用来控制待显示的数字,P2.4至P2.6用来选择数码管,经译码后产生输入锁存选通信号,74LS138的Y0至Y3连接到各位CD4511B的LE引脚。由P2.7来控制多位显示器数据字符的改写和锁存。当P2.7为高电平时,允许改写各位的显示字符;当P2.7输出低电平时, 0至 7=1,各位显示字符不变。当锁存允许信号
LE由低电平变为高电平时,锁存了输入端ABCD的状态,译码输出也相应保持不变
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页