




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的温度及压力智能控制系统设计 摘摘 要要 本文设计了以 AT89C51 单片机为核心的温度和压力控制系统的工作原理以及设计方法 温度信号由温度传感器 PT100 采集 再由变送器将信号变换为 0 5V 的信号给 PCF8591 芯片 单片机最后通过 IIC 总线将模拟量信号读回来或者发送出去 压力信号也是由压力传感器 采集回来 再由变送器变换为 0 5V 的电压信号给 PCF8591 芯片 PCF8591 芯片是支持 4 路 模拟量输入 1 路模拟量输出的 8 位芯片 并且支持 IIC 总线 最大可以同时接 8 个同样 的芯片 单片机将采集回来的信号经过计算与处理后将温度和压力值显示在 LCD1602 液晶 上 设计中介绍了控制系统的硬件电路 包括 温度 压力检测电路 温度控制电路 压 力控制电路 电源电路 报警电路 显示电路 单片机最小系统电路 按键电路和其他一 些单片机的接口电路 本设计中还介绍了软件程序编写部分 都采用模块化的结构编程 软件程序部分主要包括 主程序 显示程序 温度和压力采集子程序 按键子程序 控制 输出子程序等 关键词 关键词 A D 转换 单片机 温度及压力采集 智能控制 Abstract In this paper the design of the working principle and designing method of AT89C51 microcontroller as the core to the temperature and pressure control system Temperature signal from the temperature sensor PT100 acquisition and then by the transmitter signal into the 0 5V signal to the PCF8591 chip SCM through IIC bus to analog signals read back or send out The pressure signal is returned from the pressure sensor the transmitter is converted to the 0 5V voltage signal to the PCF8591 chip The PCF8591 chip is supported by 4 analog input 8 bit chip 1 analog output and support for IIC bus the maximum can connect 8 of the same chip SCM will the collected signals through the calculation and processing after the temperature and pressure values are displayed in the LCD1602 crystal the design introduces the hardware circuit control system includes temperature pressure detecting circuit temperature control circuit pressure control circuit power supply circuit alarm circuit display circuit MCU minimum system circuit a key circuit and some other mcu This design also describes the software programming the programming modular structure The software includes main program display program temperature and pressure acquisition subroutine subroutine keys control output subroutine Keywords A Dtransformation temperature and pressure acquisition intelligent control 目目 录录 1 1 绪论绪论 1 11 1 研究背景及现状研究背景及现状 单片机自从 20 世纪 70 年代产生以来 已经广泛地应用在工业自动化控制 自动检测 机电一体化设备 智能仪器仪表 家用电器 汽车电子等各个方面 单片机具有功能齐全 抗干扰能力强 应用可靠 前景广阔 简单方便等优点 此外 单片机还具有体积小 应用灵活性强 性能价格比高等特点 在嵌入式 微控制系统中具有非常重要的地位 从工业自动化 智能仪器仪表 自动控制 消费类电子产品等方面直到国防尖端技术领域 单片机都起着十分重要的作用 近些年来 随着微机的发展 单片机的应用在人们的日常生活和工作中显 得越来越重要 工业过程控制也是它的一个重要应用领域 由单片机而构成的 嵌入式系统越来越受到世人的关注 因此 可以毫不夸张的说 没有单片机的 仪器不能算是先进的仪器 没有单片机的过程控制系统不能称做是智能控制系 统 温度控制是与人们日常生活息息相关的 在各个领域温度的控制都有不同 的意义 很多控制领域中都有大量的用电来加热的设备 比如用于热处理的电 加热炉 用于融化金属的电阻炉以及温度控制箱等 使用单片机来对它们进行 控制不仅具有控制方便 灵活性大 简单等一些特点 而且还可以大大提高产 品的质量 通常单片机将采集到的温度数据与设定的温度上 下限进行比较 并由此作出判断是否启动继电器来开启加热设备 在设计中通常还加入常用的 LCD 液晶显示或者 LED 显示等常用的显示电路 使得整个设计更加灵活 完全 国内外的温度控制系统发展都非常迅速 并在智能化 参数自整定 自适 应等方面取得了不同的成果 目前的温度控制大多都是采用智能调节器 国产 调节器的精度和分辨率比较国外的较低 温度的控制效果也不是很理想但价格 非常便宜 国外的调节器精度和分辨率都比较高 价格较贵 德国 美国 日 本 瑞典等技术领先 都生产出了商品化的 性能优异的温度控制器以及仪器 仪表 并在各个行业已经广泛应用 压力的测量对于实时监测以及安全生产都具有非常重要的意义 在工业应 用中 为了高效并且安全的生产 就必须要有效的控制生产过程中的一些重要 数比诸如压力 温度 流量等主要参数 因为压力的控制在一般生产过程中都 起着决定性的安全作用 因此更有必要准确的测量压力 为了测得不同位置的 压力数据 本设计的压力测量系统 通过压力传感器将需要测量的压力信号转 变为电信号 再由变送器最终转换为 0 5V 的电压信号给 PCF8591AD DA 芯片 单片机通过 IIC 总线将模拟数据读回来再根据变换公式做数据处理 最终将温度 和压力值显示在 LCd1602 上 芯片转换时间受 IIC 总线速率影响 可以最大支持 8 个相同的 PCF8591 芯片 即最大支持 32 路模拟量输入 8 路模拟量输出 键盘输入是单片机控制系统常用的实现人际对话的输入设备 通过键盘 向单片机控制系统输入各种数据或者命令 也可以通过键盘 设置单片机控制 系统工作于预定的模式 1 21 2 实现温度及压力智能控制的意义实现温度及压力智能控制的意义 温度 压力都是过程生产中非常重要的参数 它们是生产过程中判断设备 是否正常运行的关键因素 在生产过程中对于温度和压力的控制也就显的极为 重要 比如在化工生产过程中 压力能影响物料平衡 也能影响化学的反应速 度 是标志着生产过程是否可以正常进行的极为重要的参数 从安全生产的角 度 压力的检测也是很重要的 如 保证压力容器内的压力值要在安全的指标 之内 确保易燃易爆等介质的压力不能超标等等 总之 温度与压力的检测是通常是生产过程中不可缺少的环节 只有严格 按照生产工艺的要求来保持温度及压力的稳定 才能保证生产的正常进行 因 此温度及压力准确测量与控制在现实生活中是非常重要的 2 2 系统方案设计及论证系统方案设计及论证 2 12 1 温度 压力采集方案选择温度 压力采集方案选择 2 1 12 1 1 温度采集方案比较温度采集方案比较 1 使用 DS18B20 模块 本方案的优点是 采集温度精度较高 接线简单 缺点 单总线方式 当系统需要扩容时要另外占用单片机管脚资源 并且远距 离传输时 因为是单总线方式 不能传到太远 2 普通热敏电阻 优点 价格低廉 缺点 电路设计相对较为复杂些 精度低 3 PT100 铂电阻方式 优点 精度高 使用方便 配合专用的变送器能远距离传输 缺点 价格较为低廉 2 1 22 1 2 压力采集方案压力采集方案 1 压力传感器配合变送器方式 优点 价格相对低廉 可靠性高 能较远距离传输 精度较高 缺点 相对带通信功能的压力模块 扩容是需要占用 AD 通道 2 压力采集带通信专用模块 优点 采集精度高 更智能 扩容时不需要占用任何硬件资源 缺点 造价高 本设计中温度采集选用 PT100 铂电阻的测温方式 PT100 铂电阻传感器会 根据温度的不同 自身阻值也会有相应的变化 专用的变送器只需要街上 PT100 铂电阻及电源就可以输出标准的 4 20mA 或者是 0 20mA 信号 本设计选 用输出 0 20mA 信号 选用电流信号是因为当较远距离传输时变送器相当于恒流 源输出 减小线路阻值带来的误差 当接到本设计中的控制板时 再通过串接 250 欧姆的电阻来将电流信号转换为 0 5V 的电压信号 压力采集方案选用压力 传感器配合变送器方式 压力采集原理也是如此 不同的是前端传感器不是 PT100 而是压力传感器 接线示意图如图 2 1 所示 设计温度控制输出采用开关量的输出方式 控 制原理为当温度实际值大于等于温度上限值时停止加热 当温度实际值小于等 于下限值时 开始加热 压力控制方式采用外接变频器控制电机 进而控制管道压力的方式 原理 为当压力实际值小于等于下限值时 控制板将电机的供电 并给变频器输入相 应的控制值 控制算法采用建议的模糊控制算法 即在一定的时间内检测到前 后两次的压力值变化的大小 如果变化很小 说明给出的值小了 需要加大此 值 如果变化一般 说明给出的值合适 如果变化很大 说明给出的值大了 需要减小此值 本设计默认分为 6 档判断 即压力差值的 6 个档位分别为小于 等于 0 05MPa 大于 0 05MPa 并且小于等于 0 1MPa 大于 0 1MPa 并且小于等于 0 15MPa 大于 0 15MPa 并且小于等于 0 2MPa 大于 0 2MPa 并且小于等于 0 25MPa 大于 0 25MPa 并且小于等于 0 3MPa 图 2 1 接线示意图 2 22 2 系统结构总框图系统结构总框图 本控制系统的主控部分由单片机 AT89C51 构成 通过按键电路可以进行温 度及压力的上 下限值的设定 温度及压力的实际值通过 PCF8591AD DA 芯片 采集 模拟量的输出也是通过 PCF8591 芯片输出的 当压力超过报警限值时 有蜂鸣器报警 显示部分用的主要期间是 LCD1602 液晶屏 按键部分采用四按 键的方式进行设定 温度及压力的开关量输出方式使用继电器 电源需要外接 5V 的干净电源 图 2 2 系统结构总框图 2 32 3 单片机的选择单片机的选择 单片机 AT89C51 是美国的 ATMEL 公司生产的一款低电压 高性能的 CMOS 的 8 位单片机 芯片内部含有 4K 字节的可擦写的只读程序存储区以及 128 个字 节的数据存储器 该芯片是采用高密度和非易失性存储技术生产的 兼容了以 往标准的 MCS 51 产品的指令系统 单片机片内含有通用的 8 位中央处理器 AT89C51 单片机具有不错的性价比以及可靠性和应用性 此单片机可以灵活的 应用在各种控制领域之中 AT89C51 芯片提供以下一些标准的功能 1 4K 字节的闪存 2 128 字节的内部数据存储区 3 32 个 I O 口线 可以输入或者输出 4 两个 16 位定时或者计数器 5 一个 5 向量两级的中断结构 6 有一个全双工的串行口 单片机 AT89C51 的工作可以降至 0HZ 的静态的逻辑操作 并且还支持两 种可以通过软件来选择节约电能的工作模式 1 空闲工作方式 停止单片机的工作 但是允许数据存储器 RAM 定时 或者计数器 通信口以及中断程序的工作 2 掉电的方式 保存数据存储器 RAM 中的内容 但是单片机的晶振电路 停止工作并且禁止其它所有部件的工作一直到下一个硬件复位 AT89C51 引脚图如图 2 3 所示 图 2 3 AT89C51 单片机引脚图 引脚功能说明 Vcc 电源电压正 GND 电源电压负 P0 口 P0 口是 8 位的漏极开路型的双向 I O 口 即地址或者数据总线的复 位口 如果 P0 口作为输出端口时 每个端口能驱动 8 个逻辑门电路 如果对端 口写 1 时 可以作为高阻抗输入端口来使用 如果在访问外部数据存储器或者程序存储器的时候 这组口线分时转换地 址 低 8 位 和数据总线复用 此时的 P0 端口激活内部的上拉电阻 P1 口 P1 端口是带有内部上拉电阻的 8 位的双向口 P1 端口的输出可以驱 动 输入或输出 4 个 TTL 逻辑门电路 如果对端口写 1 时 通过内部的上 拉电阻把端口拉到高电平 此时可以当作输入端口使用 因为内部存在上拉电 阻 假如某个引脚被外部信号拉低时会输出一个电流 P2 口 P2 端口是带有内部上拉电阻的 8 位的双向口 P2 端口可以驱动 输 入或输出电流 4 个 TTL 逻辑门电路 如果对端口写 1 通过内部的上拉电 阻把 P2 端口拉到高电平 此时 P2 端口可以作为输入口 P3 口 P3 端口是带有内部上拉电阻的 8 位的双向口 P3 端口输出缓冲级可 以驱动 输入或输出 4 个 TTL 逻辑门电路 如果 P3 端口写入 1 时 他们 被内部上拉电阻拉高并可作为输入口 此时 被外部拉低的 P3 端口将用上拉电 阻输出电流 P3 端口还接收一些用于闪存编程和程序校验的控制信号 RST 复位 当单片机工作时 复位引脚如果有两个机器周期以上的高电平 信号就可以让单片机复位 XTAL1 XTAL2 振荡器输入端 2 42 4 温度传感器温度传感器 pt100是铂热电阻 铂电阻的阻值会随着温度的不同而改变 PT 字符后的 100即表示此电阻在0 时的阻值为100欧姆 当它在100 时它的阻值大约为138 5 欧姆 工作原理 当 PT100铂电阻在0 的时候它的阻值大约为100欧姆 它的阻 值会随着温度上升而近似匀速的增长 但是它们之间的关系却并不是简单的正 比的直线关系 而是更趋近于一条抛物线 铂电阻阻值随温度变化的计算公式如下 200 t 0 Rt R0 1 At Bt t C t 100 t t t 1 0 t 850 Rt R0 1 At Bt2 2 Rt 为当 t 时的铂电阻的电阻值 R0为当0 时的铂电阻的阻值 公式中的 A B 系 数都是实验测定的 标准的 DIN IEC751系数 A 3 9083E 3 B 5 775E 7 C 4 183E 12 根据韦达公式求得阻值大于等于100欧姆的 Rt t 的换算公 式 0 t 850 t sqrt A R0 2 4 B R0 R0 Rt A R0 2 B R0 PT100铂电阻温度传感器器是一种以白金 Pt 作成的电阻式的温度检测器 属于正阻系数 它的电阻和温度变化的关系式如下 R Ro 1 T 式中 0 00392 Ro 为100 在0 的电阻值 T 为摄氏温度因此白金作成的电 阻式温度检测器 又称为 PT100 2 52 5 压力传感器压力传感器 液压压力传感器是工业中最为常见的一种压力传感器 它广泛应用于各种 工业自控的环境中 涉及石油管道 铁路交通 水利水电 生产自控 智能建 筑 航空航天 石化 军工 电力 油井 船舶 管道送风 机床 锅炉负压 等等众多的行业 工作原理 液压压力传感器的工作原理为压力直接作用在传感器的薄膜片 上 使膜片产生与介质压力成正比的微小位移 让传感器的电阻发生了变化 再用电子线路检测这一变化 并且转换输出一个对应于这个压力的标准的电信 号 常见参数 全密封 平膜型不锈钢焊接结构 高灵敏度 小体积 零点满 度可调节 应用领域 液压 中央空调系统 压铸 恒压供水 机械 机车制动系统 轻工 冶金 环保 石化 空压机等其他自动控制系统 实物图如图 2 4 所示 图 2 4 平模传感器 量 程 0 1 0 1 1000 MPa 输出信号 4 20mA 二线制 0 5V 1 5V 0 10V 三线制 综合精度 0 1 FS 0 25 FS 0 5 FS 供电电压 24DCV 9 36DCV 介质温度 20 85 150 环境温度 常温 20 85 量程温度漂移 0 05 FS 零点温漂移 0 05 FS 补偿温度 0 70 安全过载 150 FS 极限过载 200 FS 响应时间 5 mS 上升到 90 FS 绝缘电阻 大于 2000M 100VDC 负载电阻 电流输出型 最大 800 电压输出型 大于 5K 密封等级 IP65 长期稳定性能 0 1 FS 年 振动影响 在机械振动频率 20Hz 1000Hz 内 输出变化小于 0 1 FS 机械连接 螺纹接口 M20 1 5 等 其它螺纹可依据客户要求设计 电气接口 信号接口 紧线螺母 四芯屏蔽线 2 62 6 A D D AA D D A 转换器转换器 PCF8591 芯片是一个单片集成 低功耗 单独供电 8 bit CMOS 数据获取 器件 PCF8591 具有 4 个模拟量输入 1 个模拟量输出以及 1 个串行 I C 总线接 口 PCF8591 芯片的 3 个地址引脚 A0 A1 和 A2 可以用于硬件地址编程 允许 在同个 I C 总线上最多接入 8 个 PCF8591 器件 而不需要额外的硬件 在 PCF8591 芯片上输入输出的地址和控制和数据信号都是通过双线双向 I C 总线 以串行的方式进行传输的 PCF8591 的功能包括多路模拟输入 内置跟踪保持 8 bit 模数转换和 8 bit 数模转换 PCF8591 的最大转化速率由 I C 总线的最大速率决定 AIN0 AIN3 模拟信号的输入端 A0 A3 引脚的地址端 VDD VSS 电源端 2 5 6V SDA SCL IIC 总线的数据线 时钟线 OSC 外部时钟的输入端 内部时钟的输出端 EXT 内 外部时钟选择线 使用内部时钟时 EXT 要接地 AGND 模拟信号接地端 图 2 5 PCF8591 引脚图 2 72 7 液晶液晶 LCD1602LCD1602 LCD1602 字符型的液晶显示模块是一种专门用于显示字母 符号 数字等 点阵式的 LCD 目前常用的有 16 1 16 2 20 2 以及 40 2 行等样式的模块 下面以长沙太阳人电子有限公司的生产的 LCD1602 字符型液晶显示器为例 来 做简单的介绍 一般的 LCD1602 字符型液晶显示器实物如图 2 6 所示 图 2 6 LCD1602 液晶实物图 3 3 锅炉温度和压力控制系统硬件电路的设计锅炉温度和压力控制系统硬件电路的设计 3 13 1 最小单片机系统最小单片机系统 单片机的最小系统 是指用最少的元器件组成的并可以正常工作的单片机 系统 对本设计来说 单片机最小系统应该包括 单片机 晶振电路以以及复 位电路 3 1 13 1 1 晶振电路晶振电路 典型的晶振值一般取 11 0592MHz 因为可以准确地计算得到 9600 波特率 和 19200 波特率 常用用于有串口通讯的场合 12MHz 在图 3 1 中 晶振 Y2 与电容 C8 C9 构成了单片机的晶体振荡电路 本设 计当中的晶振选用的是无源晶振 晶振为 11 0592MHz 起振电容选用的是两个 22pF 的小电容 图 3 1 晶振电路 3 1 23 1 2 复位电路复位电路 在图 3 2 中 S2 C6 及 R18 构成了复位电路 此单片机是高电平复位 即 当按键 S1 按下时 单片机的 RST 引脚被拉高 单片机被复位 当按键 S1 松开 后 单片机的 RST 引脚被下拉电阻 R18 拉低 单片机开始执行用户程序 电容 C6 是滤波电容 防止按键 S1 按下的瞬间 单片机的 RST 引脚电平信号抖动 影响单片机的工作 图 3 2 复位电路 刚上电的时候或者触动按钮后 C6 两端的电压为 0 这时 RST 为高电平 而 它高电平保持的时间是由电阻 R18 和电容 C6 的时间常数决定 由公式 3 1 可 知 电容 C6 充电的时间常数 等于 0 22ms 远远大于 2 s 即使复位管脚 RST 高电平的时间保持 2 s 以上 保证了单片机正常复位 R C 3 1 3 23 2 温度及压力采集电路设计温度及压力采集电路设计 如图 3 3 所示 PCF8591 芯片是一个带 4 路模拟量输入 1 路模拟量输出以 及 IIC 总线的芯片 此 IIC 总线上最多可以挂 8 片 PCF8591 芯片 温度采集占 用第一路模拟量采集通道即 AN0 压力采集占用模拟量采集通道第二路即 AN1 模拟量输出接 AOUT 即 J6 此处的信号电平都是 0 5V 的电平信号 图 3 3 模拟量采集模块 3 3 3 3 温度及压力控制输出电路温度及压力控制输出电路设计设计 温度及压力控制输出电路如图 3 4 所示 图中控制原理石油 PNP 三极管控 制继电器 从而控制外界强电 Q1 部分电路为温度控制电路 Q2 部分电路为压 力控制电路 以 Q1 部分电路举例来说明此部分电路的工作原理 Q1 与 Q2 部分 的电路原理是一样的 D2 是指示灯 R3 是限流电阻 当 P3 0 为高电平时 Q1 截至 继电器不吸合 当 P3 1 为低电平时 Q1 导通 继电器吸合 当继电器吸 合时 指示灯亮 继电器不吸合时 指示灯灭 图 3 4 温度及压力控制输出电路 3 43 4 键盘及显示电路键盘及显示电路 显示器件用 LCD1602 如图 3 5 所示 排阻 Rp2 为 P0 口的上拉电阻 单片 机管脚 P2 4 P2 5 P2 6 P2 7 分别对应按键 S3 S4 S6 S7 按键 S3 为菜 单 确定 键 S4 为设置高位按键 S6 为设置中位按键 S7 为设置低位按键 高 中 低位按键都是每按一次相应位置数据加一 设置好后按 S3 确定键 设 置顺序分别为设置温度上限 压力上限 温度下限 压力下限 最后设置完后 按确定键 S3 则退出设置环境 图中的 D8 为模拟量采集指示灯 正常运行时 D8 会每隔几秒就闪烁一次 图 3 5 键盘及显示电路 3 63 6 报警电路设计报警电路设计 本系统采用蜂鸣器报警的方式来发出报警信息 图 3 6 中 U5 为蜂鸣器 三 极管 Q3 为驱动三极管 R5 为限流电阻 当单片机管脚 P3 3 为高电平时 三极 管 Q3 截至 蜂鸣器不发声 当单片机管脚 P3 3 为低电平时 三极管 Q3 导通 蜂鸣器发出声音 来达到报警提示的功能 本设计只设计了压力报警提示 当 压力实际值超过设定的报警限值时 蜂鸣器会发出声音报警 当压力实际值在 正常范围内时 蜂鸣器停止发声 图 3 6 报警电路 3 73 7 电源电路设计电源电路设计 在图 3 7 中 D9 为电源指示灯 R6 为限流电阻 电容 C10 与 C11 都为滤波电 容 本设计选用外界直流 5V 电源的方式供电 图 3 7 电源电路 4 4 系统软件设计系统软件设计 4 4 1 1 系统总流程图系统总流程图设计设计 系统程序的流程图如图 4 1 所示 图 4 1 系统程序流程图 上电后 系统首先初始化 初始化完成后开始采集模拟量值 判断按键程 序 之后再判断各值是否在正常范围内 如果不在范围内做出相应的操作 最 后输出控制逻辑 4 24 2 部分程序说明部分程序说明 程序部分大致分为主程序 LCD 显示程序 模拟量采集程序 模拟量输出 程序 按键设置程序 自动控制程序等部分 4 2 14 2 1 主程序主程序 main LCD Initialise LCD 初始化 AD CHANNEL 0 T OUT 1 关闭温度输出 alarm OUT 1 关闭报警输出 while 1 ISendByte PCF8591 0 x41 D 0 IRcvByte PCF8591 ADC0 模数转换 1 Delay 1ms 5 Convert To Voltage D 0 0 求温度 LCD Line 1 2 Voltage 2 LCD Line 1 3 Voltage 1 LCD Line 1 5 Voltage 0 ISendByte PCF8591 0 x40 D 1 IRcvByte PCF8591 ADC0 模数转换 1 Delay 1ms 5 Convert To Voltage D 1 1 求压力 LCD Line 2 2 Voltage 2 LCD Line 2 4 Voltage 1 LCD Line 2 5 Voltage 0 P time P time 1 时间计数 ISendByte PCF8591 0 x42 D 2 IRcvByte PCF8591 ADC2模数转换 3 ISendByte PCF8591 0 x43 D 3 IRcvByte PCF8591 ADC3 模数转换 4 while menu bit 1 key read 按键读取函数 P0 0X0e 显示开 光标开 闪烁 lcd enable if set bit 0 set bit 2 key set 按键设置 else if set bit 1 set bit 3 key set1 按键设置 if set bit 0 set bit 1 P0 0X80 设置第 1 行显示地址 else if set bit 2 set bit 3 P0 0XC0 设置第 2 行显示地址 lcd enable 调用 LCD 显示设置函数 if set bit 0 set bit 1 write h else if set bit 2 set bit 3 write l key read 按键读取函数 RC4 RC5 RC6 RC7 分别为四 个按键 按下瞬间 Trg 值分别为 16 3 64 128 if Trg 16 菜单键按下时 bai TH 100 shi TH 100 10 ge TH 10 menu bit 1 菜单键标志 auto t p 自动控温及控压子程序 Delay 1ms 5 DACconversion PCF8591 0 x40 D 2 DAC 数模转换 LCD Display A Line 0 x00 LCD Line 1 LCD Display A Line 0 x40 LCD Line 2 4 2 24 2 2 LCDLCD 显示程序显示程序 bit LCD Busy Check LCD 忙检测 bit Result 结果标志位 LCD RS 0 LCD RW 1 LCD EN 1 Delay4us 延时 4us Result bit P0 LCD EN 0 return Result 输出结果标志位 void LCD Write Command uchar cmd LCD 控制命令 while LCD Busy Check while 循环 LCD RS 0 LCD RW 0 LCD EN 0 nop 短延时 nop P0 cmd Delay4us 延时 4us LCD EN 1 Delay4us LCD EN 0 void LCD Write Data uchar dat LCD 写数据 while LCD Busy Check while 循环 LCD RS 1 LCD RW 0 LCD EN 0 P0 dat Delay4us LCD EN 1 Delay4us LCD EN 0 void LCD Initialise LCD 初始化 LCD Write Command 0 x38 Delay 1ms 5 LCD Write Command 0 x0c Delay 1ms 5 LCD Write Command 0 x06 Delay 1ms 5 LCD Write Command 0 x01 Delay 1ms 5 void LCD Set Position uchar pos LCD 设置显示位置 LCD Write Command pos 0 x80 void LCD Display A Line uchar Line Addr uchar s LCD 显示行设 置 uchar i LCD Set Position Line Addr for i 0 i 16 i LCD Write Data s i 4 2 34 2 3 模拟量采集程序模拟量采集程序 void Convert To Voltage unsigned long int val uchar a 数据转 换 转换到电压值 if a 0 求温度 val 100 val 26 数据转换 Voltage 2 val 100 0 Voltage 1 val 100 10 0 Voltage 0 val 10 0 T R Voltage 2 0 100 Voltage 1 0 10 Voltage 0 0 温度实际值 else 求压力 val 100 val 255 数据转换 Voltage 2 val 100 0 Voltage 1 val 100 10 0 Voltage 0 val 10 0 P R Voltage 2 0 100 Voltage 1 0 10 Voltage 0 0 压力实际值 DAC 变换 转化函数 bit DACconversion unsigned char sla unsigned char c unsigned char Val Start I2c 启动总线 SendByte sla 发送器件地址 if ack 0 return 0 SendByte c 发送控制字节 if ack 0 return 0 SendByte Val 发送 DAC 的数值 if ack 0 return 0 Stop I2c 结束总线 return 1 ADC 发送字节 命令 数据函数 bit ISendByte unsigned char sla unsigned char c Start I2c 启动总线 SendByte sla 发送器件地址 if ack 0 return 0 SendByte c 发送数据 if ack 0 return 0 Stop I2c 结束总线 return 1 ADC 读字节数据函数 unsigned char IRcvByte unsigned char sla unsigned char c Start I2c 启动总线 SendByte sla 1 发送器件地址 if ack 0 return 0 c RcvByte 读取数据 0 Ack I2c 1 发送非就答位 Stop I2c 结束总线 return c 4 2 44 2 4 按键设置程序按键设置程序 按键设置函数 函数名 key 函数功能 按键函数 1 无按键按下时 P1 0 xff ReadData 0 Trg 0 Cont 0 2 P1 0 按下时 P1 0 0 ReadData 0 x01 Trg 0 x01 Trg 只会在这 个时候对应位的值为 1 其它时候都为 0 Cont 0 x01 3 P1 0 长按住时 P1 0 0 ReadData 0 x01 Trg 0 x00 Cont 0 x01 如果是 P1 1 按键那么 Trg Cont 对应值都为 2 如果是 P1 2 按键那么 Trg Cont 对应值都为 4 是 P1 3 按键那么 Trg Cont 对应值都为 8 输入 无 输出 无 void key read 按键读取函数 unsigned char temp P2 0 x0f 将临时变量 temp 的低高四位 置一 高四位不变 unsigned char ReadData temp 0 xff 1 Trg ReadData 2 Cont ReadData 延时函数 void delay int i for i 0 i9 bai 0 else if Trg 64 设置十位键按下 shi if shi 9 shi 0 else if Trg 128 设置个位键按下 ge if ge 9 ge 0 else if Trg 16 设置菜单键按下 set bit set bit 1 result bai 100 shi 10 ge P0 0X0C 显示开 光标关 lcd enable if set bit 1 TH result bai1 PH 100 shi1 PH 100 10 ge1 PH 10 else if set bit 3 TL result bai1 PL 100 shi1 PL 100 10 ge1 PL 10 if set bit 4 menu bit 0 标志清零 set bit 0 4 2 54 2 5 自动控制子程序自动控制子程序 void auto t p 自动控温及控压子程序 if T R TH 如果实际温度大于等于设定上限温度 T OUT 1 停止加热 if P R PH 如果实际温度大于等于设定上限温度 P OUT 1 停止升压 D 2 0 升压系数输出清零 alarm OUT 0 报警输出 else if P R PL 关闭报警输出 5 5 仿真运行仿真运行 本设计通过 proteus7 8 仿真已经完全没有问题 仿真如图 5 1 所示 单片 机的管脚 P2 4 P2 5 P2 6 P2 7 接的按键分别为菜单 确定 按键 设置高 位数据按键 设置中位数据按键 设置低位数据按键 P3 0 P3 1 P3 2 P3 3 管脚接的 LED 分别代表温度控制开关量输出 压力开 关量控制输出 模拟量采集指示及报警输出指示 LCD1602 上显示的 T 25 3C 表示当前实际温度为 25 3 P 0 70MPa 表示当前压力值为 0 70MPa 调节温度或者压力可以通过前端的可调电阻来调节 PCF8591 芯片的 AN0 通道接入的可调电阻代表温度模拟量输入 PCF8591 芯片的 AN1 通道接入的 可调电阻代表压力模拟量输入 输出仿真用电压表指示 本设计采用模糊控制 当在定长的时间段内 检测前后两次采集到的压力值 判断此压力的差值在模 糊表中的哪个区间 对应给出相应的输出 图 5 1 proteus7 8 仿真效果图 温度低于下限时如图 5 2 所示 当温度低于下限时 P3 0 端控制输出加热 当温度在正常范围内温度控制输出端状态不变 当温度高于上限时 温度控制 输出端停止加热 图 5 2 温度低于下限图 压力低于下限是如图 5 3 所示 当压力低于下限时开始升压 升压的大小 根据前后两次采集的压力差值及建立的模糊表控制 即当此差值很大时 控制 变频器全额升压 当此差值一般时 升压中速控制 当此差值很小时 以很小 的升压 原理大致如此 图 5 3 压力低于下限图 按键设置如图 5 4 所示 按键设置顺序为温度上限 压力上限 温度下限 压力下限 图 5 4 按键设置仿真 6 6 结论结论 本设计是基于 AT89C51 单片机的温度及压力智能控制系统 方案的选择是 课程设计的主要的环节 软件编程通过数据线连接电脑下载编译好的程序 再 进行调试 在调试的过程中 遇到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度海原县农业农村局公开招聘基层农技推广体系改革与建设项目特聘农技员(防疫员)招聘模拟试卷及答案详解一套
- 共有产权房屋转让协议书标准范本5篇
- 童话里的世界:森林精灵的故事11篇
- 2025年灵璧高考历史试卷及答案
- 番禺公考面试试题及答案
- 企业流程管理与系统集成平台
- 刑法主观真题题目及答案
- 数据分析基本操作步骤教程模板
- 企业资产管理数据化处理模板
- 2025年北京公需课《人工智能赋能制造业高质量发展》试题及答案
- 2025年全国保密教育线上培训考试试题库含完整答案(必刷)
- 六年级语文下册《浪淘沙》教学过程中实录
- 财务部安全培训课件
- 工贸企业公司级安全培训课件
- 企业合规法律体检详尽报告
- 新能源工程机械设备配置计划
- 临床管路滑脱课件
- 辽宁省2025年档案系列中、初级专业技术资格考试档案工作实务+档案基础理论知识自测试题及答案解析
- QC/T 222-2025自卸汽车
- 2025至2030中国文档存储和管理服务行业项目调研及市场前景预测评估报告
- 事业单位招聘综合基础知识真题及答案(精准题库)
评论
0/150
提交评论