成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系
4.1.程序流程图
主程序的功能是:初始化系统,调用显示,将测量值与给定值比较,如过大于60℃时,发出警报.其流程图为
开 始
初 始 化
读 温 度T
开 放 外 中 断
数据报警处理
转换送显示
返 回
图4-1 主程序的流程图
T0中断程序 保 护 现 场 19 成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系
置T0值,关蜂鸣器,清刷新 N 比较 数据 Y 蜂 鸣 器 打 开
Y 恢 复 现 场 T0断程序
图4-2 T1中断程序流程图
4.2.数据调用方法选择
4.2.1.由于该温度测试系统中被测值与A/D转换结果为线性关系,在温度值在处理输出的时候可以使用线性标度来完成。线性标度变换公式为:
Y=(Ymax-Ymin)×(X-Nmin)/(Nmax-Nmin)+Ymin
其中,Y表示参数测量值,Ymax表示参数测量的最大值,Ymin表示参数量
20
成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系
程的最小值,Nmax表示Ymin对应的A/D转换后的输出值,Nmin表示Ymin对应的A/D转换后的输出值,X表示测量Y对应的准换值。
在一般的程序设计中,为简化程序,一般把被测参数的起点min所对应的A/D转换设定为0,即Nmin=0.这样就为:
Y=(Ymax-Ymin)*X/Nmax+Ymin 4.2.2.查表法
利用数组和EPROM,快速完成温度值调用处理!
在实际过程中,单片机对于公式进行高精度的计算式完全没有必要的,在许多嵌入式控制系统应用过程中,人们更愿意采用表格而不是数学公式,特别是对于传感器的信号转化,因为表格查找执行起来速度更快,所用代码较少。故在本设计中采用的是查表法。表如下
4.2.1温度模拟信号与存储的地址对应表
温度(℃) 电压(V) ADC输入值
-50 1 33H -49 1.02 34H -48 1.04 35H -47 1.06 36H -46 1.08 37H -45 1.10 38H -44 1.12 39H -43 1.14 3AH -42 1.16 3BH -41 1.18 3CH -40 1.20 3DH -39 1.22 3EH -38 1.24 3FH -37 1.26 40H
21
成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系
-36 1.28 41H -35 1.30 42H -34 1.32 43H -33 1.34 44H -32 1.36 45H -31 1.38 46H -30 1.40 47H -29 1.42 48H -28 1.44 49H -27 1.46 4AH -26 1.48 4BH -25 1.50 4CH -24 1.52 4DH -23 1.54 4EH -22 1.56 4FH -21 1.58 50H -20 1.60 51H -19 1.62 52H -18 1.64 53H -17 1.66 54H -16 1.68 55H -15 1.70 56H -14 1.72 57H -13 1.74 58H -12 1.76 59H -11 1.78 5AH -10 1.80 5BH -9 1.82 5CH -8 1.84 5DH
22
成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系
-7 1.86 5EH -6 1.88 5FH -5 1.90 60H -4 1.92 61H -3 1.94 62H -2 1.96 63H -1 1.98 64H 0 2.00 65H 1 2.02 66H 2 2.04 67H 3 2.06 68H 4 2.08 69H 5 2.10 6AH 6 2.12 6BH 7 2.14 6CH 8 2.16 6DH 9 2.18 6EH 10 2.20 6FH 11 2.22 70H 12 2.24 71H 13 2.26 72H 14 2.28 73H 15 2.30 74H 16 2.32 75H 17 2.34 76H 18 2.36 77H 19 2.38 78H 20 2.40 79H 21 2.42 7AH
23