天津工程师范学院2009届专科生毕业设计
5.2 温控程序流程图
温度控制程序的设计应考虑如下问题:
1 温度采样,程序
2 键盘扫描,键码识别和温度显示程序 3 温度标高度AD590以及转换程序
为简化起见,本设计思想只给出有关89S51本身的初始化,温度显示和键盘扫
描等程序,详细见附录源程序清单,程序框图如图5-4所示。
开 始 89S51系统初始化 键盘显示控程序 输入被控参数 N 运 行 吗? Y 开中断
图 5- 4主程序流程简图
5.2.1 键盘扫描和温度显示程序设计
1. 为了简化电路,降低成本,将所有的段选线并联在一起,由一个8位I/O口控制,而选通断采用分时选通,LED显示器工作于共阳极动态显示,显示子程序流程图如图5-5所示。
21
天津工程师范学院2009届专科生毕业设计
2. 本设计采用独立式按键设计,单片机对它的控制采用程序扫描即中断查询方式,A口为选通口,B口为显示口,C口为查询输入口。
键盘扫描子程序功能如下:
(1)判断键盘上有无键按下,方法为:每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效。按键直接与89S51的I/O口线相连接。通过读I/O口的电平状态,即可识别出按下的按键。4个按键分别接到P1.0、P1.1、P1.2和RST。
(2)去键的机械抖动影响:在判断有键按下后,软件延时一断时间(5ms—10ms)后再判断键盘状态,如果仍为有键按下状态,则认为确实有键被按下;否则,按照键抖动处理。
(3)判别闭合键的键号:对键盘的列线进行扫描,扫描口为PA0—PA7,依次输出扫描字为FEH,FDH,FBH,F8H,EFH,DFH,BFH,7FH,读出PC口的状态,若全为1则列线输出为0的 这一列上没有键闭合;否则,这一列有键闭合。闭合键的键号等于处于低电平的列号加上低电平的行的首键号,例如:PA口的输出为11111101,读出PC1—PC0为01,则1行1列的键闭合,
(4)CPU对键的一次闭合仅作一次处理,采用的方法是等待键释放后再将键号送入累加器A中。
键盘扫描子程序流程图如图5-5所示。
22
天津工程师范学院2009届专科生毕业设计
开始 有键闭合否? N Y 调用子程序延迟12ms N 有键闭合否? Y 判断闭合键键号→栈 N 闭合键释放? Y 键入键号→A 返回
图5-5 键盘扫描子程序流程图 5.2.2 温度采样
采样子程序:流程图如图5-6所示。
23
天津工程师范学院2009届专科生毕业设计
采样值起始地址送R0 采样次数送R2 选通IN0启动AD590 延时 N A/D完成? N 所有采样结束 Y 返回
图5-6 采样子程序流程图
一般微机应用系统前向通道中,输入信号均含有个中噪音和干扰,它们来自被测信号源、传感器、外界干扰。为了进行准确的测量和控制,必须消除被测信号中的噪音和干扰,噪音有两大类:一类为周期性的,另一类为不规则随机的 。前者的典型代表为50HZ的工作干扰。对于这类信号要采用硬件滤波电路能有效地消除影响。后者为随机信号,可采用数字滤波方法予于消除。所谓数字滤波,就是通过程序计算或判断来减少干扰在信号中的比重,故实际上它是一中程序滤波。经常采用的是中值滤波、去极值法可对采样的信号进行数字滤波,以消除常态干扰。
数字滤波子程序FILTER:用滤波来控制对现场的采样值的干扰。数字滤波程序的算法很多,现以中值滤波为例作说明。
中值滤波原理得很简单,只需对2CH 、2DH 、2EH中三次采样值进行比较,取中间值存放到2AH单元内,以作为温度标度转换时使用。图5-7为数字滤波程序流程图。
24
相关推荐: