一、 温度控制系统上位机编程思想 上位机软件用C++Builder6.0开发。 上位机与下位机通讯采用RS232或RS485通讯方式。其中串口配置为9600波特率。上位机中可以设置PID参数,可以设定设定温度参数,也可以实时显示当前温度值。可以进行温度PID的启停控制。 界面设计图如下: 其中,串口通讯使用MSCOMM控制。Label4为用于显示北京时间的标签控件。温度曲线中,红色线设定温度,绿色线为实时温度。在串口打开后,实时显示实时温度值并在TChart控件中添加数据点以绘制曲线。 由于支持半双工RS485通讯方式,上位机设为主机,单片机控制设为从机。主机在下发命令后,从机回传数据。PID温度的启动需在打开串口后按下启动按钮,启动时,会下发启动命令且将PID参数及设定温度参数下传。在修改设定温度时,需按下旁边的“确定”按键,下传温度设定参数。定时器控件设有两个,一个触发事件实现显示北京时间,一个触发事件下传温度采集命令。打开串口后,每S钟进行一次实时温度采集。 通讯协议定义如下: 上位机向下位机传送的命令: 1. 启动命令:7个字节 0xAA 0x01 设定温度值 P参数 I参数 D参数 0xFF 2. 停止命令:4个字节 0xAA 0x04 0x00 0xFF 3. 设定温度命令:4个字节 0xAA 0x03 设定温度值 0xFF 4. 温度采集命令:4个字节 0xAA 0x02 0x00 0xFF
温度控制运行界面分析如下: 一、 下位机编程设计 下位机使用Easy51-CRE9.2开发板。主芯片为STC89C52RC,采用4位共阴极数码管进行显示。 其中当使用485通讯时,RS485收发控制引脚定义为P13,当P13为低电平时,MCU处于接收数据状态。当P13为高电平时,MCU处于数据发送状态。 单片机定时器0用于定时器功能,2MS定时中断,扫描数码管进行显示。定时器1用于波特率发生器,设为9600BPS。串口中断实现通讯功能。 数码管显示具有五种模式,定义如上: 模式0:温度实时值显示(前1位数码管显示模式,后2位显示实时温度值,精确到0.1C //模式1:目标温度设定(建议在常温至65度) //模式2:PID参数中的P参数调节模式(0.0-50.0) //模式3:PID参数中的I参数调节模式(0.0-50.0) //模式4:PID参数中的D参数调节模式(0.0-50.0) 二、 具体代码请参考例程
四、其它备用参考
|