基于pid算法的水温控制器的设计毕业论文内容摘要:

2.管脚说明: VCC:供电电压。 GND:接地。 P0 口: P0 口为一个 8 位漏 极 开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0外部必须被拉高 [8]。 P1 口: P1口是一个内部提供上拉电阻的 8位双向 I/O 口, P1口缓冲器能接收输出4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4个 TTL门电流,当 P2 口被写 “1” 时,其管脚被内部上拉电 阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2口输出地址的高八位。 在给出地址 “1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 当 P3口写入 “1” 后,它们被内部上拉为高电平,并用作输入。 作为输入, 由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) *******师范学院毕业设计说明书 (论文 ) 第 11 页 共 61 页 T0(记时器 0外部输入) T1(记时器 1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) RST:复位输入。 当振荡器复位器 件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/Vpp:当 /EA保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储 器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。 有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 : 8位 CPU;片内 振荡器和时钟电路; 32 根 I/O线;外部存贮器寻址范围 ROM、 RAM64K;2 个 16 位的定时器 /计数器; 5 个中断源,两个中断优先级;全双工串行口;布尔处理器。 89C51 与外围电路的接口 本系统采用 P1口与 键盘电路 连接, 口与 DS18B20 的数据端 连接。 P2 口作为显示与报警电路端口。 /EA 端接 5V 电源, X1, X2 接晶振电路, RESET 端接复位电路,其余INT1, INT0, T1, T0, /RD, /WR, RXD, TXD, ALE, PSEN 端置空。 *******师范学院毕业设计说明书 (论文 ) 第 12 页 共 61 页 图 24 89C51单片机引脚图 6. 复位电路 89C51 单片机的复位是由外部的复位电路来实现的。 最简单的上电自动复位电路,是通过外部复位电路的电容充电来实现的。 只要 Vcc 的上升时间不超过 1 毫秒 ,就可以实现自动上电复位。 当时钟频率选用 12MHz时, C 取 22uF, R取 1K。 除上电复位外,有时还需要按键手动复位。 按键手动复位有电平方式和脉冲方式两种。 其中电平复位是通过 RST 端经电阻和电源 Vcc 接通而实现的,按键手动电平复位电路如图 25 所示。 当时钟频率选用 12MHz 时, C1 选取 10uF, R18 选择 1000 欧 , R20 选择 10000 欧。 图 25 复位电 路 *******师范学院毕业设计说明书 (论文 ) 第 13 页 共 61 页 7. 晶振电路 晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。 一般的晶振的负载电容为 15pF或 ,如果再考虑元件引脚的等效输入电容,则两个 20pF 的电容构成晶振的振荡电路就是比较好的选择。 晶体振荡器与石英晶体谐振器都是提供稳定电路频率的一种电子器件。 石英晶体振荡器是利用石英晶体的压电效应来起振,而石英晶体谐振器是利用石英晶体和内置 IC来共同作用来工作的。 振荡器直接应用于电路中,谐振器工作时一般需要提供 电压来维持工作。 振荡器比 谐振器多了一个重要技术参数为:谐振电阻。 谐振器没有电阻要求。 RR 谐振电阻 的大小直接影响电路的性能,也是各商家竞争的一个重要参数 [9]。 本设计采用 12MHz 晶振,并联两个 20pF 电容构成晶振电路。 图 26 晶振电路 要想控制温度,就要采用良好的人 机界面。 选择用 5个按键组成一个小键盘执行某些功能 ,如 清 零、预置值、改变测量范围 等。 如图 27 所示。 图 27 按键电路 其中 S1 作为 加热系统的总开关,通过 软件配合 可实现电炉加热的通断 ; S2用来设*******师范学院毕业设计说明书 (论文 ) 第 14 页 共 61 页 定期望温度、上下限报警温度; S S4 用 来设定所需温度的具体数值; S5 用来确定温度设定,并启动温度测量程序。 LED 显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由 8 个发光二极管构成,通过不同的组合可用来显示 0~ A~ F 及小数点。 图 28 “ 8”字型共阳数码管管脚图 LED 显示器分为共阴极和共阳极,共阴极是将 8个发光二极管阴极连接在一起作为公共端,而共阳极是将 8个发光二极管的阳极连接在一起作为公共端。 我们这次就是采用的共 阳 极 LED,所以这里要介绍共 阳 极数码管 , 如图 28 所示。 表 21 段码与字型的关系 段码 D7 DP D6 G D5 F D4 E D3 D D2 C D2 B D0 A 字形 3FH 0 0 1 1 1 1 1 1 0 06H 0 0 0 0 0 0 1 0 1 5BH 0 1 0 1 1 0 1 1 2 4FH 0 1 0 0 1 1 1 1 3 66H 0 1 1 0 0 1 1 0 4 6DH 0 1 1 0 1 1 0 1 5 7DH 0 1 1 1 1 1 0 1 6 07H 0 0 0 0 0 1 1 1 7 7FH 0 1 1 1 1 1 1 1 8 6FH 0 1 1 0 1 1 1 1 9 在 51单片机系统中常用的数码管显示方法有两种:动态扫描显示和串行静态显示。 *******师范学院毕业设计说明书 (论文 ) 第 15 页 共 61 页 本系统中 DS18B20 的工作周期为几百毫秒,而且后续的 PID 运算涉及到浮点数运算, PWM波的中断周期小于温度采样周期控制,若采用动态扫描显示,显示时间短,且容易被中断打断,所以综上考虑,为使显示部分显示的是实时温度,且为了保持良好的人机界面,必须采用串行静态显示。 对于四位数码管的串行静态显示,工作周期不超过 40 微秒,完全 符合要求。 如图 29所示 ,共阳极数码管管 脚分别与移位寄存器 74HC164 的并行输出脚相连,DAT 为数据串行输入, CLK 为工作频率。 当 CLK 发生下降沿跳变时, DAT 输入一位,同时并行输出口移位输出 0、 1 驱动相应数码管的管脚。 图 29 串行静态显示电路 加热驱动模块 执行机构为一个固态继电器,程序中采用了模拟的 PWM 变换方法。 通过控制固态继电器的导通与关断达到控制电炉的通电和断电的目的。 固体继电器(亦称固态继电器)英文名称为 Solid State Relay,简称 SSR。 它是用半导体器件代替传统电接触 点作为切换装置的具有继电器特性 的无触点开关器件,单相 SSR为四端有源器件,其中两个输入控制端,两个输出端,输入输出间为光隔离,输入端加上直流或脉冲信号到一定电流值后,输出端就能从断态转变成通态。 *******师范学院毕业设计说明书 (论文 ) 第 16 页 共 61 页 图 210 固态继电器内部结构框图 固体继电器工作可靠,寿命长,无噪声,无火花,无电磁干扰,开关速度快,抗干扰能力强,且体积小,耐冲击,耐振荡,防爆、防潮、防腐蚀、能与 TTL、 DTL、 HTL 等逻辑电路兼容,以微小的控制信号达到直接驱动大电流负载。 主要不足是存在通态压降(需相应散热措施),有断态漏电流,交直流不能通用,触点组数少,另外过电 流、过电压及电压上升率、电流上升率等指标差。 固体继电器目前已广泛应用于计算机外围接口装置,电炉加热恒温系统,数控机械,遥控系统、工业自动化装置;信号灯、闪烁器、照明舞台灯光控制系统;仪器仪表、医疗器械、复印机、自动洗衣机;自动消防,保安系统,以及作为电网功率因素补偿的电力电容的切换开关等等,另外在化工、煤矿等需防爆、防潮、防腐蚀场合中都有大量使用 [10]。 图 211 加热驱动电路 如图 211所示 , CHG控制着整个电路的通断,当 CHG=0 时, PWM 口用来进行 PID 调节, 改变加热丝中电流通断时间。 为使系统的人机交互界面更好,设置了两路报警信号和两路标志信号,用于显示越*******师范学院毕业设计说明书 (论文 ) 第 17 页 共 61 页 限报警、强电电路通断情况、温度稳定情况。 当电炉中水温高于工作人员所设定的上限温度或者低于设定的下限温度时,则认为发生了越限, L2 和 L3 分别用来表示上限报警和下限报警。 值得一提的是,当系统从低温开始加热,到下限温度以前系统都会出现越限报警。 当出现越限报警时,工作人员应该注意是不是此种情况,此情况可以忽略 [11]。 图 212 报警电路 如图 212所示, L1用来标志强电电路的通断情况,当灯亮时,表示继电器被吸合;灯 灭时表示继电器复位,加热电路断开。 L4用来指示温度达到设定值的标志,当温度处于设定值的177。 ℃时,即可点亮此灯。 软件设计 系统的软件部分以主程序为入口,在初始化之后调用键盘管理程序,完成对键盘的扫描,读入键值,并根据相应的键值进行各类操作。 温度采样频率由软件延时控制,在每一次采样完成之后进行控制时间的计算和显示刷新。 软件部分主要包括主函数、延时子函数、温度采集子函数、按键扫描子函数、 PID 处理子函数、 PWM 波产生子函数、报警显示函数。 主函数 主程序作为程序的入口,控制各类程序的调用。 在系统中其主要的任务是调用键盘管理程序。 然后其它的功能都由 DS18B20 温度转换程序和中断程序完成。 可以说主程序起到了重启动后读入 E2PROM 中的设计温度和上、下限温度;设计各类定时器和开中断*******师范学院毕业设计说明书 (论文 ) 第 18 页 共 61 页 的,并调用键盘管理程序的功能。 这样处理主程序起到了分散功能的作用,即主程序会变得很容易编写,而具体的功能都由功能子程序完成。 流程图 如图 213 所示。 读 取 温 度按 键 扫 描输 出 P W MP I D 运 算显 示延 时初 始 化 图 213 主程序流程图 延时子函数 单片机在读取 DS18B20 时,需要用到多次微秒级的延时函数 ,而在显示和采样周期计算时,需要用到多次毫秒级延时函数,考虑到 89C51 的 ROM 和 RAM 足够,可设置两组延时函数,分别为微秒延时和毫秒延时。 程序如下: 1毫秒延时函数: void t1ms(void) { uchar i。 for(i=0。 i115。 i++)。 } Time 毫秒延时函数 void delayms(uint time) { uint i。 for(i=0。 itime。 i++) t1ms()。 } Time 微秒延时函数 void delay(uint time) { uint d。 *******师范学院毕业设计说明书 (论文 ) 第 19 页 共 61 页 d=time。 while(d ) {。 } } 按键设定函数 系统的被控温度、上下限报警温度等都是通过按键来设定的,由于采用键盘的接法是最普通的,所以按键处理函数并不会占用整个程序太多时序。 流程图 如图 214所示。 按 键 口 = 0。 消 抖 延 时按 键 口 = 0。 按 键 次 数 累 计 + 1按 键 次 数 = 2。 按 键 次 数 = 1。 按 键 次 数 = 3。 设 定 期 望 温 度 设 定 上 限 报 警 值 设 定 下 限 报 警 值YNYNY YYNNN 图 214 按键设定流程图 温度采集函数 DS18B20 是数字式温度传感器,它与单片机的硬件接口电路简单,采用单总线工作方式,所以使用 DS18B20需详细了解其工作时序和内部寄存器。 主机通过拉低单线 480微秒以上,产生复位脉冲,然后释放该线,进入 RX 接收模式。 主机释放总线时,会产生一个上升沿。 DS18B20 检测到上升沿后,延时 15 至 60 微秒, DS18B20 通过拉低总线60240 微秒来产生应答信号,主机接收到有应答信号后,说明有单线器件在线 [12]。 操作指令 : ROM 操作指令共有 5条,分别为: (1)读 ROM,命令字节为 33H,此命令读取激光 ROM 中的 64 位。 只能用于总线上单个 DS18B20 的情况,多挂则会发生数据冲突。 (2)匹配 ROM,命令字节为 55H, 此命令后跟 64 位 ROM 的序列号,寻址多挂接总线*******师范学院毕业设计说明书 (论文 ) 第 20 页 共 61 页 上的对应 DS18B20。 只有序列号完全匹配的 DS18B20 才能相应后面的内存操作。 (3)跳过 ROM,命令字节为 CCH,此命令用于单挂总线系统时,可以无需提供 64 位ROM 的序列号即可运行内存操作。 (4)搜索 ROM:命令字节为 F0H,主机。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。