微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STC89C58的温度测控系统设计

基于STC89C58的温度测控系统设计

时间:05-03 来源:互联网 点击:

时器、I/O口和中断系统的初始化,等待定时中断。在中断服务程序中,先判断是否到30 s。若不到30s,则返回;若到30s,进行以下操作:拨盘设定值检测、温度检测、标度变换、温度显示和温度控制,并根据温度检测值决定是否报警。

在应用程序总体结构中,将以下6个功能程序作为模块程序:温度设定输入、温度检测、温度值标度变换、温度显示、温度控制和报警程序模块。

2.2 程序模块设计

下面说明温度检测和温度控制这两个模块的程序设计。

1)温度检测程序模块。温度检测程序的功能是连续进行4次A/D转换,求取转换结果的平均值,存入内部50 H单元,A/D转换采用查询方式。

2)温度控制程序模块。温度控制程序的功能是将温度实测值(存于50H)与设定值(存于51H)作比较,如测值高于设定值1℃(注意,此值小于要求误差2℃,对应的数字量为04H),则关闭1台电炉;如实测值低于设定值,则接通一台电炉;否则不与调节。3台电炉接通的顺序是3#、2#、1#,这样可以保持电炉的通断具有相对稳定性。

3)主程序和中断服务程序设计。在定时中断服务程序中,各功能程序都已模块化,可直接调用。

先说明30 s定时的实现方法。当振荡频率为6 MHz时,STC89C58内部定时器的最大定时值为131 ms。要实现30 s定时,需要另外设置一软件计数器。现使定时器T0工作于方式1,定时时间为130 ms,则其时间常数为:

N=216-130*10-3*6*106/12=536=0218H

软件计数器的初值=30、0.13≈E7H

主程序清单:

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP T0INT//转定时中断服务程序

ORC 0030H

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top