当前位置:文档之家› 嵌入式系统设计性实验报告

嵌入式系统设计性实验报告

嵌入式系统设计性实验报告水温控制系统院别:控制工程学院专业:自动学号:5090633姓名:邱飒飒指导老师:孙文义2012年6月8日嵌入式系统设计性实验报告作者:邱飒飒班级:50906 学号:5090633摘要:在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。

其中,温度控制也越来越重要。

在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。

采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大的提高产品的质量和数量。

因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题.该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了基于单片机的水温自动控制系统的设计该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了水温自动控制系统的设计。

关键字:水温控制单片机MC9S12DG128一、系统设计的功能1.1 水温控制系统设计任务和要求该系统为一实验系统,系统设计任务:设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。

水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。

同时满足以下要求:(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。

(2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。

(3)用十进制数码管显示水的实际温度保留一位小数。

(4)采用适当的控制方法(如数字PID),当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。

(5)温度控制的静态误差≤0.2℃。

(6)从串口输出水温随时间变化的数值。

1.2 水温控制系统部分水温控制系统是一个过程控制系统,组成框图如下所示,有控制器、执行器、被控对象及其反馈作用的测量变送组成。

图1 控制系统框图1.3 系统总体功能分析本系统是一个简单的单回路控制系统,为了实现温度的测量及自动控制,根据任务要求及要求,系统由单片机系统,前向通道,后向通道,及人机通话四个模块构成。

总体框图如图2 所示。

图2 水温控制系统总体框图1.3.1 各功能模块作用分析(1) 单片机系统是控制系统的核心,MC9S12DG128可以提供系统所需的IO口及内置的功能模块。

A/D转换模块是将外部采集到的模拟量转换为数字量,不需要加另外的AD转换芯片,在本设计实验中采用内部10位AD转换方式测量温度值。

PWM模块通过软件编程可以输出任意占空比的波形,在本设计实验中可以通过输出电压波形控制电阻丝的通断,从而模拟水的加热程度,达到控制水温的目的。

SCI模块使单片机与PC机连接,将采样温度值上传到PC机,从而可以通过PC机实时地看到温度的变化,还可以从PC机下载程序,人机交互方便。

(2)前向通路:用电位器模拟温度变化,然后进行温度值采样,主要包括热电阻的传感器,信号放大电路组成。

pt100是铂热电阻,它的阻值跟温度的变化成正比。

PT100的阻值与温度变化关系为:当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。

它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的;(3) 数据显示:采用了四位共阴极数码管进行显示设定温度值及测量温度值。

(4) 键盘采用4*4扫描键盘用于设定温度值(5) 继电器、电阻丝电路:通过PWM输出电压波形控制SSR固态继电器的通断,从而控制电阻丝的加热程度。

交流固态继电器(缩写 SSR)是一种全部由固态电子元件组成的新型无触点通断电子开关,为四端有源器件。

其中两个端子为输入控制端,另外两端为输出受控端,中间采用光电隔离,作为输入输出之间电气隔离(浮空)。

在输入端加上直流或脉冲信号,输出端就能从关断状态转变成导通状态(无信号时呈阻断状态),从而控制较大负载。

整个器件无可动部件及触点,可实现相当于常用的机械式电磁继电器一样的功能。

二、硬件设计原理及内容1 硬件设计原理图图3 硬件原理图硬件原理图主要包括:1.单片机最小系统部分:电源电路,晶振时钟电路,复位电路,串口通信电路,BDM调试电路2.键盘设置电路3.数码管显示电路4.输入采样电路5.输出驱动电路2 各部分电路分析2.1单片机最小系统部分2.1.1 单片机电源电路图4 单片机电源电路最小系统电源电路中,用两个电容构成滤波电路,可以改善系统的电磁兼容性,降低电源波动对系统的影响,增强电路工作稳定性。

2.1.2 单片机晶振电路图5 单片机晶振电路最小系统电路采用的是有源晶振电路。

晶振电路采用科尔皮兹振荡器,其中的晶体直接连接于有源器件(通常为双极性晶体管或场效应管)输入端与输出端之间。

一般应接一个电容、电感调谐电路,但不是必须的。

2.1.3 单片机复位电路图6 单片机复位电路复位电路可以使单片机在响应到各种外部或监测到内部系统故障时可以进行系统复位,同时可以保证系统上电时进行可靠的初始化,同时也保证对电源的监视。

2.1.4 单片机串口通信电路图7 串口通信电路串口电路主要用于连接计算机。

本次采用的是9芯接头的串行口,引脚含义如下:1.接收线信号检测(载波检测DCD) 6. 数据通信设备准备就绪(DSR)2. 接受数据线(RxD)7. 请求发送(RTS)3. 发送数据线(TxD)8.清除发送4 .数据中断准备就绪(DTR)9.振铃指示5.信号地(SG)2.1.5 单片机BDM调试电路图8 BDM调试电路单片机内置BDM仿真调试电路,外围只需接一个简单的BDM接口实现单片机的仿真调试。

由上图可以看出背景调试电路非常简单,只需两根信号线、电源和地信号即可。

注意:不能将接头插反,否则将导致硬件的损坏。

2.2 键盘设置电路图9 键盘设置电路键盘设置电路中,数字0~9用于温度值的设置,并另设两个键用于设定及确认。

2.3数码管显示电路图10 数码管显示电路数码管作为单片机系统最为常用的输出器件,在显示时候可以由数字和少量字母组合完成输出功能的系统中应用十分广泛。

数码管显示电路用于显示当前温度值。

2.4输入采样电路图11 输入采样电路输入采样电路采用热电阻测量实际温度,并转换为电压值输入到单片机的A/D模块。

2.5输出驱动电路图12 输出采样电路输出采样电路采用固态继电器来可控制电阻丝的通断。

如图所示为稳定的阻性负载,为了防止输入电压超过额定值,需设置一限流电阻Rx;当负载为非稳定性负载或感性负载时,在输出回路中还应附加一个瞬态抑制电路其中三极管用来驱动继电器。

三、系统软件设计流程3.1 程序框架结构一个整体的系统软件设计是由各个在系统里起着不同作用的模块整合在一起,从而实现系统的所要实现的功能。

此系统包括主控制程序,A/D采样数据处理程序,PID算法程序,LED显示及按键处理程序。

结构框架如下图:程序结构图3.2系统软件主程序流程图由于模块化程序的设计,通过调用程序即可实现所需使用的功能,主程序流程图如下图:图13 主程序流程框图3.3 A/D采样数据处理当采样到温度数据时,为了防止在采样过程中外界干扰而造成采样数据的不准确,必须调用温度均值处理程序,然后确定温度系数使采样转换得到的电压信号转换成温度值,并进行十进制转换,用于显示和PID计算。

其中均值处理是一个比较重要的环节,是A/D转换前必不可少的工具,流程图如下图所示:3.4 键盘及LED显示3.5数据采样中断下图是数据采样中断服程序的流程图,此中断程序采用的是2Hz中断,定时0.5秒采样一次。

4.2.5 继电器控制继电器是和单片机HCS12的PWM口相连的,它的开断完全取决于PID计算的结果。

当输出小于零说明设定值小于实际输出值,这是就要关闭电炉,同时关闭定时器的计时。

如果输出值大于设定值2摄氏度时就可以开电炉对水开始加热。

如果设定值与实际输出值差值在2摄氏度以内时,我们就调用中断程序定时加热。

下图控制程序的中断服务程序,用来对继电器定时加热。

它利用中断定时器10ms 确定加热时间,当加热时间未到时,继续时间累积,若加热时间到时,就调用关定时器子程序,停止计时。

控制程序中断程序流程图四、调试过程及数据在开始做这个设计的时候,先是把系统的每一部分都分成不同模块,每一个模块先单独调试,其具体的方法是在main.c中编写程序使每一个模块成功实现其具体的功能,之后才将各部分组合在一起,最终调试成为一个系统的。

系统的模块分为:SCI串行口输入输出模块、LED数码管显示模块、KB键盘输入模块,AD转换输入模块,PWM模块。

模块的调试过程:1.SCI串行口调试使用方法:先将SCI的初始化,让接受程序,发送程序编译通过,然后在SCI的调试主程序中通过输入字符,并让其在串口助手中显示,如果串口助手成功显示我们在主函数中输入的字符,则说明SCI串行口模块可以调用,如果显示不成功则需要继续对程序进行修改和编译。

串行口这里我遇到的问题是:a.开始串口助手中不显示主函数中发的字符解决办法:实验板的晶振16M,但是单片机MC9S12DG128中未启用锁相环,故单片机的内部总线实际上只有16M/2=8M .所以在串行口波特率要求9600时,需要在程序的串口初始化中将SCI0BDL=0X80改为SCI0BDL=0X34。

b.主函数中调用函数的功能是显示一个字符,但串口中显示一连串的相同的字符解决办法:调试程序时为全步运行,当选择单步运行时,则只显示一个字符,函数功能正确。

2.LED数码管调试使用方法:分析数码管的共阴或者共阳,让后将LED编程初始化,然后编译数码管的段选函数,位选函数。

在数码管的测试主函数中编程保证数码管能够显示我们输入的静态数字。

比如我们在主函数中,让数码管显示“0000”,4位数码能够正常显示0000,则说明数码管模块中的函数可以被调用,否则需要继续对程序进行修改和编译。

3. KB键盘输入模块在理解了4*4矩阵键盘的编程原理后,自己结合课本成功编译通过键盘程序。

并联合之前做的数码管模块和串行口通讯模块,达到了让矩阵键盘按键,数码管显示数字,同时通过串口助手在电脑上显示矩阵键盘按键的数字。

在键盘这里我遇到的问题是:a、键盘输入的数字,在数码管上不显示原因及解决办法:检查主函数后发现,键值所对应的数据类型与串口接收函数的形参类型不一致。

4.AD转换输入模块在编译通过AD转换程序后,联系数码管显示模块,用一个可变电阻(电位器)的检测采样,用单片机的AD转换通道AN06输入采样信号,将其转化为0~100可变数字,用以模拟温度0~100度的变化,并在数码管上显示。

在AD转换这里我遇到的问题是:AD采样周期的设置有问题,只需更改一下即可。

相关主题