基于AT89C51温度智能控制系统的软件设计
2.2 功能实现模块
功能实现模块主要由A/D转换子程序、中断处理子程序、键盘处理子程序和显示子程序等组成。
(1)A/D转换子程序。
先送地址锁存允许ALE一上跳沿,使A、B、C地址状态送入地址锁存器中,然后发送给START一个上跳沿使内部寄存器清0,再给其发送一个下跳沿,开始进行A/D转换,然后判断转换结束状态信号EOC是否为1,为0则继续等待转换,为1则将转换好的数字量经ADC0808的8个数据输出端送到AT89C51的P0.0~P0.7口,A/D转换流程图如图3所示。本文引用地址:https://www.eepw.com.cn/article/161463.htm
(2)T0中断子程序。
该中断是单片机内部5 s定时中断,为低优先级,但却是最重要的处理子程序。在该中断响应中,单片机要完成的工作有:A/D数据采集和转换、数字滤波、标度变换处理、显示设定值、调用PID算法及PWM处理子程序。产生控制信号PWM波是单片机上常用的模拟量输出方法,通过外接转换电路,可以将脉冲的占空比变成电压。程序中通过调整占空比调节输出模拟电压,PWM的占空比由定时器通过定时来实现,定时长短取决于PID运算的结果。
(3)T1中断子程序。
T1中断子程序嵌套在T0中断子程序中,为高优先级的中断。T0的定时初值由PID算法子程序提供,T0中断的响应时间用于对电热丝的控制,也就是产生PWM波。
(4)键盘处理子程序。
作为高优先级的功能键,系统要实时准备响应实时中断。在中断的响应过程中,应能显示设定值和控制处理后的值,其流程图如图4所示。
评论