基于AVR单片机设计的加热控制系统
此显示电路采用“单片机→串入并出芯片→数码管”的动态显示技术。单片机与 74HC164型串入并出电路使用同步串口SPI方式连接,单片机工作在主机模式,时钟输出端SCK接至74HC164的CLK引脚,数据输出端MOSI接至74HC164的数据输入引脚AB。
单片机将需要显示的 8位字段码通过SPI传至74HC164,由74HC164输出8位并行逻辑电平驱动数码管显示。单片机依次使能4位共阳极数码管的位选择端,按顺序点亮4位数码管的各位。由于人眼观察时特有的“视觉暂存”效应,当亮灭频率达到一定程度时无法觉察数码管明暗的变化,认为4位数码管各位始终点亮,即实现了4位数码管的动态显示。通过使用同步串口SPI与74HC164型串入并出芯片驱动数码管的8位字段码,比传统并行驱动方式节约6个单片机I/O口,并且利用ATmega8自带的硬件SPI单元,无需软件模拟SPI通信。
由于采用动态显示技术,编程时必须注意每次更新显示数值应先将待显示字段送到 74HC164,再通过PC1—PC4使能数码管中某一位点亮,否则就会发生错位显示现象。
3.4 加热驱动电路
ATmega8的I/O口输出负载能力最大为40mA,无法直接驱动工业环境中使用的电炉、电机等大功率设备,必须通过中间驱动电路实现单片机对功率设备工作状态的控制。实际应用中,通常采用继电器或交流接触器间接驱动。由于继电器或交流接触器具有机械接触特点,因而很大程度上降低了控制系统整体的稳定性和可靠性。
为了避免机械接触开关的缺点,本系统选用以可控硅为主体的完全光电隔离的中间驱动电路。可控硅是大功率开关型半导体器件。能在高电压、大电流条件下工作,具有无器械接触、体积小、便于安装等优点,广泛应用于电力电子设备中。加热驱动电路示意图如图3所示。
ATmega8根据现场温度的和用户设定的目标温度计相关的控制参数算出实时控制量。将此控制量写入单片机定时器1的OC 1A 寄存器,以决定输出 PWM波的占空比。在PWM波的高电平期间,通过限流保护电阻器R4的双向光电耦合器上电工作,双向可控硅TRIAC1栅极被经由R1、R2和双向光电耦合器的信号触发导通,加热电路得电工作;PWM波低电平期间,双向光电耦合器截止,双向可控硅TRIAC1栅极无触发信号被关断,加热电路断电停止工作。
电路中的 R3、C2组成阻容吸收单元,可减少可控硅关断时加热电路中感性元件产生的自感电动势对可控硅的过压冲击。R1、C1组成低通滤波单元,能降低双向光电耦合器误触发对后续电路的影响。同时、双向光电耦合器的使用彻底隔离了强弱电路,避免了大功率器件对单片机的干扰。
4 软件设计
系统程序由主程序、温度采集子程序、加热控制子程序、键盘扫描子程序、串行通信子程序和中断子程序等部分组成。主程序主要完成加热控制系统各部件的初始化和自检,以及实际测量中各个功能模块的协调。键盘扫描和控制算法等子程序利用 ATmega8丰富的中断资源,在外部中断和定时器溢出中断子程序中完成上述工作。与上位机的串行通信采用ATmega8自带的UART硬件传输中断,以满足数据双向传输的异步性和实时性要求。单片机温度采集子程序和加热控制子程序流程如图4所示。
上位机监控程序基于 Visual C++6.0环境开发。使用微软公司提供的MsComm控件有效避免了直接调用Win32API造成的编程烦琐等弊端,以较少代码量实现本系统要求的全双工步通信。用户可通过上位机程序完成温控参数设定、温度数据保存和离线分析等操作。
5 结束语
笔者设计的温度测量及加热控制系统充分发挥了 ATmega8型单片机的特点,结合现有技术,大大降低了硬件电路的设计复杂度。该系统已经设计制作完成,并在仿真深海高温热液环境试验中取得了良好的效果,具有温控准确、操控界面友好、稳定性高,抗干扰能力强等优点。
- 锁相环控制及初始化简析(08-27)
- 基于AVR单片机的串口转FSK的通信模块设计(01-23)
- 基于AVR单片机的服装压力检测系统设计(05-03)
- 基于Atmel AVR单片机的无线图像侦检系统(10-19)
- avr单片机串口多机通讯及实例(12-03)
- AVR单片机入门系列(25)AVR PWM OC0(12-03)