基于PID算法的中医理疗恒温控制器设计毕业论文.doc_第1页
基于PID算法的中医理疗恒温控制器设计毕业论文.doc_第2页
基于PID算法的中医理疗恒温控制器设计毕业论文.doc_第3页
基于PID算法的中医理疗恒温控制器设计毕业论文.doc_第4页
基于PID算法的中医理疗恒温控制器设计毕业论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计(论文) 2013 届 题 目 基于 pid 算法的中医理疗恒温控制器 专 业 电子信息工程 学生姓名 学 号 指导教师 论文字数 完成日期 本科毕业论文 i 基于 pid 算法的中医理疗恒温控制器 摘 要:在科技与医疗技术高速发展的今天,医用理疗设备趋于高精度化,高智能化来极大 地发挥中药的物理疗效。本文设计了一个基于 pid 算法的中医理疗恒温控制系统,阐述了 系统的工作原理、硬件电路以及软件设计,论述了数字 pid 控制器的原理及其在恒温控制 系统中的应用。控制器由单片机、温度采集模块、温度控制模块、显示模块等模块组成, 可结合现场温度与用户设定的目标温度,采用 pid 算法和 pwm 脉宽调制技术,使温度逐步 稳定于用户设定的目标值。可应用按键设定目标温度值、加热时间,用 lcd 液晶显示实时 时间、温度以及加热倒计时,通过绿、黄、红彩灯显示正在加热、定时倒计时、报警这三 种状态。该控制器可满足理疗温控设备使用需求与控制精度,且更便捷、智能,具有广大 的市场需求。 关键词: pid 算法,恒温控制,中医理疗 本科毕业论文 ii constant temperature control system of tcm physiotherapy based on pid abstract:in the rapid development of science and technology, and medical technology, medical physiotherapy equipment tends to be high-precision, high intelligence to play the physical efficacy of traditional chinese medicine. designed a pid algorithm-based chinese medicine treatments thermostatic control system on the working principle of the system hardware circuit and software design, discusses the principle of digital pid controller and its constant temperature control system. controller by the microcontroller, temperature acquisition module, temperature control module, display modules and other modules can be combined with on-site temperature and the target temperature set by the user, using pid algorithms and pwm technology, the temperature is gradually stable set by the user target. the application button is set target temperature, heating time, the lcd display real-time, temperature and heating countdown display is being heated, timer countdown, alarm status of the three green, yellow, red lantern. the controller can meet the the physiotherapy temperature control equipment needs and control accuracy, more convenient, intelligent, with the majority of the market demand. key words: pid , constant temperature control , physiotherapy 本科毕业论文 iii 目 录 第一章 绪论 1 1.1 选题的背景与意义 1 1.1.1 课题来源 .1 1.1.2 研究意义 .1 1.2 研究现状及发展趋势 1 1.2.1 研究现状 .1 1.2.2 发展趋势 .2 1.3 论文研究的目标及主要内容 2 1.3.1 论文研究目标 .2 1.3.2 论文主要研究内容 .2 第二章 硬件电路设计 4 2.1 系统硬件总体框图 .4 2.2 系统主要模块方案的设计与论证 4 2.2.1 测温模块 4 2.2.2 温度控制模块 .5 2.2.3 显示模块 .5 2.3 stc89c52 单片机最小系统 .5 2.3.1 stc89c52 单片机简介 .5 2.3.2 单片机复位电路 6 2.3.3 单片机时钟电路 7 2.3.4 控制器 i/o 口分配 .7 2.4 按键接口电路 7 2.5 显示电路 .8 2.5.1 lcd1602 概述 .8 2.5.2 lcd1602 引脚功能 .8 2.6 指示灯与报警电路 .9 2.7 温度采集电路 .10 2.7.1 ds18b20 简介 .10 2.7.2 ds18b20 测温原理 .10 2.7.3 ds18b20 与单片机接口电路 .10 2.8 温度控制电路 .11 2.8.1 pwm 波控制 .11 2.8.2 控制电路图 .12 2.9 串行通信电路 12 2.10 ds1302 时钟电路 13 2.10.1 ds1302 的结构 .13 2.10.2 ds1302 与单片机接口电路 .14 2.11 供电电路 .14 第三章 系统软件设计 16 本科毕业论文 iv 3.1 系统总体程序流程图 .16 3.2 按键功能程序 .18 3.3 显示程序 .22 3.4 温度采集程序 .23 3.5 温度控制程序 .25 3.5.1pid 简介 .25 3.5.2 温度控制程序 25 3.6 定时和报警程序 27 图 3-7 定时报警程序流程图 .28 3.7 ds1302 时钟程序 .29 第四章 总结及实验结果 31 4.1 设计总结 .31 4.2 实验结果 .31 4.3 实物图 .31 参 考 文 献 32 结 束 语 33 致 谢 34 附录 35 本科毕业论文 1 第一章 绪论 1.1 选题的背景与意义 1.1.1 课题来源 选择该课题的最初想法是来自医用理疗方面的应用,如中药薰蒸疗法。这是传统中医 常用的一种给身体局部位置治疗的方法。一般做法是把中药煎煮后倒入容器中,然后利用 它产生的蒸汽向病人的病患部位进行薰蒸式的渗透,从而达到逐步治疗的目的。由于自然 散热较快或其他种种因素,不仅难以控制药液的温度,也难以确保在恒温时间内使药液充 分渗透于病人的病变部位,无法达到最佳效果。设计类似于中药薰蒸治疗仪的智能恒温控 制器,可以响应市场的需求。用户可自行设定的所需温度、恒温时间等参数。本课题针对 恒温控制的特点以及实现准确温度控制的意义,设计了一款基于 pid 算法的医用理疗恒温 控制器。 1.1.2 研究意义 1948 年世界卫生组织(world health organization.who)在世界卫生组织章程 中确定了健康的定义。20 世纪 70 年代以后,随着科学技术的发展和医学的进步,新的生 物-心理-社会的医学模式代替了旧的生物医学模式,尤其是物理治疗技术 1在医学临床上 的作业日益突出。在物理治疗中,温度是一个重要参数,当传统的温度控制方式已不能满 足高精度、高速度的要求时,选择采用 pid 控制技术 2,它具有算法简单,鲁棒性好和可 靠性高的优点,新型 pid 控制理论和工程应用也是近年来的热门课题。采用 pid 控制来提 高理疗温控设备的温度控制精度,能使医用理疗设备恒温控制系统简便化、智能化。 本课题所采用的 pid 算法应用于理疗恒温控制系统中,由系统的键盘电路输入设定温 度信号给单片机,温度采集电路将现场温度信号送至单片机,单片机则根据输入与反馈信 号的差值进行计算,输出控制信号给温度控制电路,实现加热和停止,同时显示电路实现 对现场温度的实时监控。该技术能有效提高恒温控制系统的温度控制的准确性,元器件价 格低廉,方便实用,相信一定会有较好的市场效益。 1.2 研究现状及发展趋势 1.2.1 研究现状 现在市场上的温度控制器所选用电热元件一般都是电发热丝。接通电源时电热丝正常 工作,其内部温度很高。当被加热物体的温度达到用户设定的温度时,温度控制器发出信 号,停止加热。但这时电热丝的温度会高于用户设定的温度,还会继续对物体进行加热, 使得被加热器件的温度继续上升。自然冷却之后,物体的温度下降到所设定的下限温度, 则温度控制器发出加热信号,由于发热丝在进行温度传递时需要一定时间,难以达到较好 的恒温效果。电热丝的降温是通过自然冷却的方式,温度过高就几乎没有办法使其降温, 本科毕业论文 2 所以难以用数字方法建立精确的模型。而应用传统的模拟电路来控制,不仅元器件多、电 路复杂,而且抗干扰能力差,很难达到理想的控制效果。 1.2.2 发展趋势 目前,国内外对于恒温控制系统的研究也越来越深入。温度控制系统由人工调节发展 到由单片机控制,温度采集由热电偶、热电阻发展到可编程的数字温度传感器,制冷和加 热的设备都有所改善,可控制的温度范围越来越大,精度逐步提高,恒温箱的应用也越来 越细化。虽然恒温箱的应用在生活生产中比较多,但绝大部分都仅仅有维持温度的功能, 但在医学领域中,对其实际应用有很高的标准。本课题主要是研究恒温控制系统在医学上 的应用,将温度控制性能和可实现运动的机械结构结合起来,达到精确恒温的目的。 在当今科技迅速发展的时代,现代物理学,现代医学、生物学的迅猛发展,物理治疗 也越来越受人们的关注,已成为临床综合治疗及康复医疗 3中的一个重要组成部分。而国 粹中医学钱学森早在上世纪 80 年代就提出“中医现代化,是中医的未来化,也就是 21 世 纪我们要实现的一次科学革命,是地地道道的尖端科学” ,进而提出“中医的现代化可能引 起医学的革命,而医学的革命可能要引起整个科学的革命”等观点。中医理疗恒温控制实 现了控制系统专业化,也成为控制领域研究的热点和发展的趋势之一。应用于控制系统的 pid 技术被业界普遍认为前景光明 4。 1.3 论文研究的目标及主要内容 1.3.1 论文研究目标 本课题研究的目标是以 stc89c52 单片机为控制器件,设计一款恒温控制器,主要完成 对恒温加热的控制,同时具有报警、定时加热、实时时间显示等功能。 课题研究的主要内容及技术参数有以下几点: (1)通过按键设定加热目标温度和恒温时间; (2)通过 lcd 液晶显示温度和时间,当目标温度到达时,倒计时; (3)通过绿、黄、红彩灯显示正在加热、定时倒计时、报警; (4)红灯闪烁报警的同时,结合蜂鸣器发出声音报警; (5)应用 pid 算法提高控制精度;温度误差0.2; (6)系统加热温度100。 1.3.2 论文主要研究内容 本课题是基于 pid 算法的中医理疗恒温控制器,通过查找相关资料,以及对现存问题 的调研,初步要研究的内容有以下几点: (1)研究 stc89c52 单片机原理及其应用,形成设计方案的框架; (2)研究 pid 算法的具体内容,理解几个典型环节的作用和应用方法。 (3)研究温度采集的相关资料,选择灵敏、简便的温度传感器; 本科毕业论文 3 (4)对温度控制部分进行研究,实现加热、恒温的精确控制功能; (5)对硬件输入输出部分进行研究,实现良好的人机交流界面; (6)对其他额外功能进行拓展,实现温度控制器的智能化、简便化; (7)对系统的整个电路图设计及程序设计进行研究。 本科毕业论文 4 第二章 硬件电路设计 2.1 系统硬件总体框图 论文利用单片机技术实现对温度的控制,从而使中医理疗更智能化、简便化。基于单 片机,对各功能模块进行控制,从而实现各模块的功能。 控制器以 stc89c52 单片机作为控制核心,主要包括单片机的晶振电路和复位电路, 还有温度测量模块、加热控制模块、实时时钟模块、串口通信模块、液晶显示模块以及报 警电路、指示灯电路和键盘电路等。根据中医理疗设备上恒温控制应用需求及对温度精度 的要求,将 pid 算法应用于温度控制中,设计以下控制器设计方案,即以 stc89c52 单片机 为核心控制器件,采用 ds18b20 数字温度传感器,无需数模拟数字转换,直接与单片机 进行数字传输。应用 pid 算法 5提高温度的精度,使温度保持在要求的一个恒定范围内。 配有按键用于输入设定温度,配有 lcd 液晶用来显示温度,并通过绿、黄、红彩灯显示正 在加热、定时倒计时、报警这三种状态。系统总体硬件框图,如图 2-1 所示。 单片机 显示模块 报警模块 指示灯模块 串口通信模块 温度测量模块 实时时钟模块 键盘电路 晶振电路 复位电路 温度控制模块 图 2-1 系统硬件总体框图 2.2 系统主要模块方案的设计与论证 2.2.1 测温模块 方案一: 采用热敏电阻(如 pt100) pt100 测温的模拟电路是把当前 pt100 热电阻传感器 6的电阻值,转换为容易测量的 电压值,经过放大器放大信号后送给 a/d 转换器把模拟电压转为数字信号后传给单片机 at89s51,单片机再根据公式换算把测量得的温度传感器的电阻值转换为温度值,并将数据 送出进行显示,连接电路比较复杂。pt100 温度传感器的测温范围从200650, b 级别的 pt100 精度能达到 0.5%,其市场价是每个 20 元左右。 方案二:采用 ds18b20 温度传感器 ds18b20 数字温度传感器是单总线器件,线路简单,体积小,耐磨耐碰,接线方便, 能直接输出数字信号,无须 a/d 转换。使用方便,封装形式多样,适用于各种狭小空间设 本科毕业论文 5 备数字测温和控制领域。其测量范围在-50- +125,在-10至+85范围内精度为 0.5,当电源电压在 510v 之间,稳定度为 1。其市场价大约在 5-6 元之间。 比较方案一与方案二: 综上所述, ds18b20 具有体积小、使用方便、精密度高、全数字化、性能稳定等优点。 各方面特性都满足设计要求,且价格低,电路连线简单,故选择方案二。 2.2.2 温度控制模块 方案一: 继电器控制 由单片机输出高低电平控制电加热的继电器来控制火线。输出高电平时,三极管不导 通使得继电器中无电流,所以电加热器不工作。输出低电平时使得三极管导通,有较大电 流通过继电器,使电加热器得以正常工作。 方案二: 光耦(具有过零比较功能)+ 可控硅 采用单片机为核心器件,结合 pid 算法计算实时 pwm 脉冲的输出参数,再由产生的 pwm 波来决定双向可控硅的通断,进而控制电热丝来实现对温度的控制。用单片机并结合 pid 算法对温度进行控制,大大减少了温度的抖动,使温度处于相对稳定值,也减少了双 向可控硅道通次数,打破了频繁通断继电器的传统温度控制方式。 比较方案一与方案二,方案一虽然电路简单,容易控制,但控制器所要求温度波动为 0.2,无法满足,而且频繁的接通和断开继电器会产生较大的噪音,甚至损坏器件。故 选择方案二。 2.2.3 显示模块 方案一:数码管显示 在单片机的应用中,数码管显示器常采用两种显示方法:静态显示和动态扫描。在显 示位数较多时单片机中 i/o 口的开销很大,需要提供的 i/o 接口电路也较复杂,功耗比较 大,扫描消耗资源比较多,占用 cpu 的时间多,反应不灵敏。 方案二:lcd1602 液晶显示 lcd1602 液晶是字符型液晶显示,是一种专门用于显示数字、字母、符号等点阵式 lcd,常用的有 16*1,16*2,20*2 和 40*2 等。具有显示质量高,数字式接口,体积小,重 量轻功耗低等优点。与数码管相比,开销小,需要提供的 i/o 接口电路也较简单,功耗低, 反应灵敏。 比较方案一与方案二,应选择方案二。 2.3 stc89c52 单片机最小系统 2.3.1 stc89c52 单片机简介 本设计采用 stc89c52 单片机为核心处理器 7。stc89c52 是一种低功耗、高性能的 8 位微控制器。具有以下标准功能: 8k 字节 flash,512 字节 ram, 32 位 i/o 口线,看门 本科毕业论文 6 狗定时器,内置 4kb eeprom,max810 复位电路,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口。另外 stc89c52 可降至 0hz 静态逻辑操作,支持 2 种软件 可选择节电模式。空闲模式下,cpu 停止工作,允许 ram、定时器/计数器、串口、中断继 续工作。掉电保护方式下能保存 ram 的内容,此时单片机停止一切工作,等到下一个中断 或硬件复位再工作。最高运作频率 35mhz,6t/12t 可选。stc89c52 单片机引脚图如图 2-2 所示。 图 2-2 stc89c52 单片机引脚图 2.3.2 单片机复位电路 如图 2-3 所示为单片机复位电路。复位是单片机的初始化操作。其主要功能是把 pc 初 始化为 0000h,使单片机从 0000h 单元开始执行程序,不仅能使系统正常初始化,而且在 程序运行出错或操作错误时,也可以按复位键重新启动系统,防止 cpu 发出错误的指令、 执行错误操作,来可以提高电磁兼容性能。复位电路可分为上电复位与按键复位。 s1 key1 r4 1k vcc c1 22uf rst r2 1k 图 2-3 单片机复位电路 本科毕业论文 7 2.3.3 单片机时钟电路 如图 2-4 所示为单片机时钟电路。stc89c52 内部有一个用于构成振荡器的高增益反相 放大器,可驱动晶振振荡从而产生单片机工作所需的时序。时钟有内部产生方式和外部产 生方式。如图 2-4 为外部时钟产生方式,即采用石英晶体和电容组成的并联谐振回路。晶 体振荡频率为 0 到 40mhz 之间,电容值为 5 到 30pf 之间,电容值可对频率作微小调节。 1 2 y1 12m c2 cap 30pf c3 cap 30pf xt1 xt2 图 2-4 单片机时钟电路 2.3.4 控制器 i/o 口分配 根据控制器要求设计控制器硬件电路,在硬件设计中,对单片机的 i/o 口 8进行分配, 分配方案具体如下: p0.0p0.7 为 lcd1602 的数据口输出端; p2.4p2.6 为 lcd1602 的 rs,rw,en 输出端; p2.7 为温度信号输入端; p1.7 为 pwm 脉冲输出端; p1.4p1.6 为指示灯输出端; p1.0 为设置键输入端; p1.1 为设定“+”键的输入端; p1.2 为设定“-”键的输入端; p3.5p3.7 实时时钟芯片时钟、数据、复位输入端。 2.4 按键接口电路 控制器共设置 5 个按键,其中 3 个功能按键,用来设置温度和时间,如下图 2-5 所示。 其中设置键 s2,接单片机的 p1.0 引脚判断是否需要对温度与时间进行设置,当按第一次 时设置时间秒,按第二次时设置时间分,按第三次时设置时间小时,当按第四次时系统功 能为设置目标温度值。加键 s4,用于向上调整参数,每按一次加 1;减键 s5,用于向下调 整参数,每按一次减 1。当参数全部修改完毕后,再次按设置键:用于完成设置并退出。 本科毕业论文 8 s4 减 s2 减减 s5 减 p1.0 p1.1 p1.2 图 2-5 键盘接口电路图 2.5 显示电路 2.5.1 lcd1602 概述 字符型液晶显示是一种用于显示字母、数字、符号等点阵式 lcd,目前常用 16*1,16*2,20*2 和 40*2 行等的模块。在单片机系统中应用晶液显示器作为输出器件, 有显示质量高、数字式接口、体积小、重量轻、功耗低等优点。控制器采用 16*2 液晶显示 模块 lcd1602,其实物如下图 2-6 所示: 图 2-6 1602 字符型 lcd 实物图 2.5.2 lcd1602 引脚功能 1602lcd 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如下: 第 1 脚:vss 为地电源。 第 2 脚:vdd 接 5v 正电源。 第 3 脚:vl 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最强,使 用时可以接 10k 的电位器来进行调整。 第 4 脚:rs 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:r/w 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 rs 和 r/w 都 为低电平时,可写入指令或者显示地址,都为高电平时则可读忙信号,当 rs 为高电平 r/w 为低电平时可写入数据。 第 6 脚:e 端是使能端,低电平时执行命令。 第 714 脚:d0 到 d7 为 8 位双向数据线。 本科毕业论文 9 第 15 脚:背光源正极。 第 16 脚:背光源负极。 单片机与 lcd1602 接口电路 9如图-7 所示,可调电阻用于设计对比度,背光常亮, lcd1602 数据线与单片机的 p0 相连。 p2.4 p2.5 p2.6 vss1 vcc2 vl3 rs4 wr5 en6 d07 d18 d29 d310 d411 d512 d613 d714 vcc15 gnd16 u2 lcd1602 vcc r5 10k vcc p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 图 2-7 lcd1602 接口电路 2.6 指示灯与报警电路 控制器采用发光二极管作为状态指示、采用发光二极管与蜂鸣器作为报警器。报警器 采用三极管控制,蜂鸣器与发光二极管接三极管的集电极,另一端接正 5 伏。并且通过 p1.4 口控制报警电路,当温度超标时 p1.口输出低电平报警,不报警时将 p1.4 口置高电平。 电路图如图 2-8 所示: q1 8550 d4 减减减减 r8 1k ls1 r7 470 vcc p1.4 d2 减减 d3 减减 r1 470 r6 470 vcc p1.5 p1.6 图 2-8 指示灯、报警电路 控制器采用三个发光二极管指示工作状态,2 黄灯表示恒温保持定时倒计时;绿灯 本科毕业论文 10 表示控制器正在控制加热;红灯表示恒温时间到,停止工作。 2.7 温度采集电路 2.7.1 ds18b20 简介 ds18b2010是dallas公司最新推出的单线数字温度传感器,新的“一线器件”体积更 小、适用电压更宽、更经济,能够通过简单的编程,直接读取被测温度。ds18b20可以程序 设定9-12位的分辨率,精度为0.5c。 而且读取信息仅需要一根口线, 温度变换功率来 源于数据总线, 因总线本身也可供电而无需额外电源。所以使用ds18b20温度传感器使系统 简单化,可靠性良好,也比较节约成本。测量温度范围为55+125。c,在一 10+85。c范围内,精度为0.5。ds1822的精度较差为2。温度是以“一线总 线”的数字方式进行传输,增强了系统的抗干扰能力,也便于处理。 ds18b20 有三个引脚,和脚为电源引脚,脚为数据引脚。 2.7.2 ds18b20 测温原理 如图 2-9 所示为 ds18b20 测温原理图。ds18b20 的测温原理 11为:低温度系数晶振的 振荡频率受温度影响小,把产生固定频率的脉冲信号送到计数器 1。高温度系数晶振的震 荡频率受温度影响大,所产生的脉冲信号送至计数器 2。计数器 1 和温度寄存器预置一个- 55时的基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计算,当计数器 1 的预置值减到 0 时,温度寄存器的值加 1,重新装入计数器 1 的预置值,计数器 1 重新计 数,当计数器 2 计数到 0 时,温度寄存器值停止累加,这时温度寄存器中的数值就是所测 温度。斜率累加器用来补偿感温振荡器的非线性。在正常使用时,ds18b20 的测温分辨率 为 0.5,若要提高精度,可采取直接读取 ds18b20 内部暂存寄存器的方式,将分辨率提 高到 0.10.01。 图 2-9 ds18b20 测温原理图 2.7.3 ds18b20 与单片机接口电路 电路采用温度传感器 ds18b20,可直接输出数字量,单线器件和单片机的接口只需一 本科毕业论文 11 根信号线。能达到 0.5c 的固有分辨率,使用读取温度暂存寄存器的方法能达到 0.2c 以 上的精度。 p2.7 口和 dsl8b20 的引脚 dq 连接,作为单一数据线,并且接 4.7k 上接电阻, 连接电路图如图 2-10 所示。 1 2 3 j1 ds18b20 r9 4k7 vcc p2.7 图 2-10 ds18b20 与单片机的接口电路 2.8 温度控制电路 2.8.1 pwm 波控制 一般的加热系统具有较大的热惯性,温度难以精确控制,无法满足市场需求,本控制 器采用 pwm 波控制,当系统输出高电平时,双向可控硅道通,电热丝通电开始加热;输出 低电平时,双向可控硅截止,电热丝断电,停止加热。脉冲宽度 t1 与周期 t 的比值为 (占空比) ,他反映了系统的输出控制量,我们实质控制的就是这量,从而控制加热器加 热时间,达到对温度的控制。 当环境温度下降时, 输出信号增大,输出脉宽增大, 电热丝加热时间增长,环境温度上 升。反之, 当环境温度上升时,输出减少,输出脉宽减少, 电热丝加热时间减少,环境温度 下降。温控过程中功率电路输出的脉冲电流方波宽度始终受温度差信号的调节控制原理如 图 2-11 所示。 图 2-11 pwm 控制原理图 本科毕业论文 12 2.8.2 控制电路图 本温度控制器采用对加热器 pwm 控制 12,以过到对温度的控制。通过温度传感器测得 的实际温度并与设定温度值进行比较,计算温度差,通过 pid 算法,计算加热时间,即改 变给定控制周期内加热管的导通和关断时间,达到调节温度的目的。 当单片机的 p1.7 口输出低电平时,moc3043 输出端的双向可控硅导通,此时对向可控 硅 bta12-600 导通,加热管通电加热;当 p1.7 口输出高电平时,moc3062 输出短的双向可 控硅关断,对向可控硅 bta12-600 截止,加热管断电,不加热。控制电路如图 2-12 所示。 光电耦合器的光敏三极管可以通过的电流可以触发 5a 的双向可控硅,在这之中不需要 功放环节。当接通电源时,因为它具有绝缘耐压性,可以迅速地将系统与 220v 强电隔离开。 由双向可控硅 bta12-600d 和光电耦合器 moc3043 组成加热管驱动电路 13。双向可控硅和 加热装置串联在 220v 的电路中,单片机经运算后输出模拟 pwm 波,通过光电耦合器来控制 双向可控硅的通断,从而实现控制电加热管的加热。 vcc r12 470 p1.7 u4 moc3043 r11 减减减 200 r13 减减减 200 q2 bta12-600d r10 减减减 39 c8 0.01uf l1 减减减 v1 220v 图 2-12 温度控制电路 2.9 串行通信电路 串行通信是指依次传送数据,每位数据占有一个固定的时间长度。所以,只需几个数 据线就可以在系统间交换信息,特别适用于计算机之间、计算机与外设之间的远距离通信。 本控制器可以通过此模块,可以实现微机和单片机之间的数据交换。硬件电路如图 2-13 所 示。 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 1611 22 33 44 55 66 77 88 p2 max232 c7 104 c9 104 c4 104 c6 104 vcc c5 104 1 2 3 4 5 6 7 8 9 11 10 j2 d connector 9 p3.0 p3.1 图 2-13 串行通信电路 本科毕业论文 13 2.10 ds1302 时钟电路 2.10.1 ds1302 的结构 ds1302 时钟芯片的结构主要包含有:移动寄存器、振荡器、实时时钟、控制逻辑以及 ram。有 12 个寄存器,其中 7 个与时钟、日历有关,并以 bcd 码的存放数据形式。时钟芯 片 ds1302 具有一个实时时钟和 31 字节静态 ram。ds1302 含有的 ram 分为两种,一种是单 个的 ram 单元,一共有 31 个,其中每个单元有 8 位的字节,命令控制字为 c0h-fdh,奇数 为读操作。另一种是突发方式下的 ram,可一步到位的读写所有 ram 的 31 个字节, 命令 控制字 feh 为读,ffh 为写。 1、 ds1302 外部引脚: 表 2-1 为 ds1302 外部引脚 引脚号 引脚名称 功能 1 vcc2 主电源 2、3 x1、x2 振荡源,外接 32768hz 晶振 4 gnd 地线 5 rst 复位/片选线 6 i/o 串行数据输入/输出端(双向) 7 sclk 串行时钟输入端 8 vcc1 后备电源 2、 ds1302 的控制字节 表 2-2 为 ds1302 的控制字节 7 6 5 4 3 2 1 0 1 ramck a4 a3 a2 a1 a0 ram k 控制字节的位 1 到位 5 指示操作单元的地址,控制字节的位 6 如果为 0,则表示存取 日历时钟数据,如果为 1,则表示存取 ram 数据。控制字节的最高有效位(位 7)必须为逻 辑 1,否则就不能把数据写入 ds1302。最低有效位(位 0) ,如果为 0,表示要进行写操作, 如果为 1,则表示进行读操作。 3、ds1302 时序 在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据写入 ds1302,数据输入从 最低位即位 0 开始。在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿时,读出 ds1302 数据,从低位 0 位至高位 7 位读出数据,如图 2-14 所示为数据读写时序。 本科毕业论文 14 图 2-14 为 ds1302 数据读写时序图 2.10.2 ds1302 与单片机接口电路 时钟芯片 ds1302 与单片机的接口是由 3 条线完成的,单片机 stc89c52 的 p3.6 与时钟 芯片的 i/o 串行数据引脚端相连,p3.5 控制 ds1302 的 sclk 串行时钟引脚端,p3.7 控制 ds1302 的复位输入端。ds1302 接的晶振为标准 32.768khz 石英晶振,图 2-15 所示为 ds1302 与单片机接口电路。 vcc21 x12 x23 gnd4 rst 5 i/o 6 sclk 7 vcc 8 u3 ds1302 p3.5 p3.6 p3.71 2 y2 32.768k vcc bt1 3v 图 2-15 为 ds1302 与单片机接口电路 2.11 供电电路 在日常生活中,最常用、最方便的电源是 220v 的工频交流电源 14,但该恒温控制系 统需要的是稳定的+5v 电源,所以要为控制系统设计直流电源电路。 由于本设计由+5v 电 压供电,并且+5v 是主电源。变压器分别采用 220/8 的变压器,稳压电路分别采用集成稳 压器件 7805 进行稳压。其工作原理与元器件的选择如下: 变压器输入端经过一个保险连接电源插头,变压器后面的 4 个二极管组成一个桥式整 流电路,整流后就得到一个电压波动很大的直流电源,所以后面需接一个点解整容电流变 压器输出端的 12v 电压经桥式整流并电容滤波,在电容 c1 两端较大的电压,假如从电容两 端直接接一个负载,当负载变化或交流电源有少许波动都会使 c1 两端的电压发生较大幅度 的变化,因此要得到一个比较稳定的电压,在这里接一个三端稳压器的元件。 三端稳压器 是一种集成电路元件,在电路中相当于一个有自动调节功能的电阻,当负载电流较大时, 其内部电阻自动变小,而当负载电流变小时,其内部电阻又会自动变大,这样就能使稳压 器的输出电压较为恒定。 因为要输出 5v 的电压,所以选用 7805,lm7805 最大可以输出 本科毕业论文 15 1a 的电流,内部有限流式短路保护。 三端稳压器后接的电容有滤波和阻尼作用。如图 2- 16 为系统+5v 直流电源的整体图。 t120v减d5bridgenoutgnr78fc4ap3 图 2-16 变压器电路图 本科毕业论文 16 第三章 系统软件设计 3.1 系统总体程序流程图 系统总体流程图如图 3-1 所示,首先进行初始化,再读取温度值并显示、进行按键扫 描与处理、显示温度与时间值、进行 pid 运算并输出控制信息对加热驱动电路进行控制, 以此循环执行。 开始 d s 1 3 0 2 初始化 l c d 1 6 0 2 初始化 显示制作者信息 获取温度 按键标志位 = 1 获取温度 显示当前时间 、 定时时间 、 恒温温度 p i d 处理子程序 清屏 第一次温度转换 键盘扫描子程序 y n 图 3-1 系统总体流程图 本科毕业论文 17 系统主程序如下: void main() initds1302(); tmpchange(); temp=tmp(); init(); tr0=0; pidw=1; while(1) keyscan(); keyscanw(); compare_temp(); if(flag=1) tmpchange(); temp=tmp(); displaytemp(temp); henwentemp(tmph); showtime(); disdingshi(); if(miao1!=0)|(fen1!=0)|(shi1!=0) if(temp=tmph) henwenfl=1; if(flag=1) yellow=0; tr0=1; if(henwenfl=0) green=0; tr0=1; if(henwenfl=1) hengwenpid(); green=1; if(miao1=0) yellow=1; henwenfl=0; baojin=0; delay1(900); 本科毕业论文 18 showtime(); baojin=1; delay1(900); showtime(); baojin=0; delay1(900); showtime(); baojin=1; delay1(900); showtime(); baojin=0; delay1(900); showtime(); baojin=1; delay1(900); showtime(); baojin=0; delay1(900); showtime(); baojin=1; delay1(900); showtime(); tr0=0; pidw=1; high_time=0; 3.2 按键功能程序 系统按键功能流程图如图 3-2 所示。按键主要完成对温度保持时间、目标温度值等参 数时行设置。在编写程序时主要完成判断是否有按键、去抖、键值确定、功能确定、加、 减等功能。 本科毕业论文 19 开始 设置键是否按下 ? 延时消抖 设置键是否按下 ? 键盘标志位 “ 0 ” 设置键是否释放 ? 键盘功能值加 “ 1 ” 光标闪烁 功能值 = 9 ? 功能值置 “ 0 ” 、 键盘标志位置 “ 1 ” 加键是否按下 ? 加键是否按下 ? 减键是否按下 功能数据对应加 “ 1 ” 延时消抖 减键是否按下 ? 返回 调整时间写入 d s 1 3 0 2 功能数据对应减 “ 1 ” 延时消抖 功能值不为 “ 0 ” ? y n y n y n y n n y y n n n y n y 图 3-2 按键功能流程图 键盘部分程序如下: void keyscan(void) uchar i,addr; 本科毕业论文 20 if(set=0) delay1(2); if(set=0) lag=0; while(!set); num+; switch(num) case 1:write_com(0x80+15); /miao write_com(0x0f); break; case 2:write_com(0x80+12); /fen write_com(0x0f); break; case 3:write_com(0x80+9); /fen write_com(0x0f); break; case 4:num=0; flag=1; write_com(0x0c); /退出 break; if(num!=0) if(add=0) delay1(1); if(add=0); while(!add); switch(num) case 1: miao+; if(miao=60) miao=0; write_sfm(14,miao,1); break; case 2: fen+; if(fen=60) fen=0; write_sfm(11,fen,1); break; case 3: shi+; if(shi=24) 本科毕业论文 21 shi=0; write_sfm(8,shi,1); break; if(reduce=0) delay1(1); if(reduce=0); while(!reduce); switch(num) case 1: miao-; if(miao0)i-; dq=1; i=4; while(i0)i-; 功能:读 1 字节函数 uchar tmpread(void) 本科毕业论文 24 uchar i,j,dat; dat=0; for(i=1;i1); /读出的数据最低位在最前面,这样刚好一个字节在 dat 里 return(dat); 功能: 向 1820 写一个字节数据函数 void tmpwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 dq=0; i+;i+; dq=1; i=8;while(i0)i-; else dq=0; /write 0 i=8;while(i0)i-; dq=1; i+;i+; void tmpchange(void) 功能: ds18b20 开始获取数据并转换 dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus 写跳过读 rom 指令 tmpwritebyte(0x44); / initiates a single temperature conversion 写温 度转换指令 功能: 读取寄存器中存储的温度数据 uint tmp() float tt; uchar a,b; 本科毕业论文 25 dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); /读低 8 位 b=tmpread(); /读高 8 位 temp=b; temp 当前温度 ? 全速加热 停止加热 目标温度与当前 温度差值大于 0 ? 输出控制量 、 控制加热趋势 p i d 算法 目标温度与当前 温度差值大于 1 ? 返回 y y n n n y 图 3-6 温度比较子程序流程图 温度控制部分程序如下: unsigned int pidcalc( struct pid *pp, unsigned int nextpoint ) unsigned int derror,error; error = pp-setpoint - nextpoint; / 偏差 pp-sumerror += error; / 积分 derror = pp-lasterror - pp-preverror; / 当前微分 pp-preverror = pp-lasterror; pp-lasterror = error; return (pp-proportion * error / 比例项 + pp-integral * pp-sumerror / 积分项 + pp-derivative * derror); / 微分项 温度比较处理子程序 void compare_temp() unsigned char i; if(tmphtemp) if(tmph-temp10) high_time=100; /全速加热 low_time=0; else for(i=0;i0) high_time=0; /停止加热 low_time=100; else for(i=0;i=30) miao1=miao1-(60-abs(miao2-miao3); else miao1=miao1-abs(miao2-miao3); if(miao10) shi1=shi1-1; fen1=59; if(fen14)*10 + (readdat /bcd 码转化成 10 进制 本科毕业论文 31 readdat = readrtc_b(ds1302_minute); fen = (readdat readdat = readrtc_b(ds1302_hour); shi = (readdat readdat = readrtc_b(ds1302_day); day = (readdat readdat =readrtc_b(ds1302_week); week = (readdat readdat = readrtc_b(ds1302_month); yue = (readdat readdat = readrtc_b(ds1302_year); nian = (readdat 第四章 总结及实验结果 4.1 设计总结 通过查阅大量关于中医理疗设备上恒温控制应用的相关资料,对 pid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论