基于单片机与pc机的温度控制系统的软件设计内容摘要:
样周期可使控制回路性能改善,但采样周期缩短时,频繁的采样必然会占用较多的计算工作时间,同时也会增加计算机的计算负担,而对有些变化缓慢的受控对象无需很高的采样频率即可满意地进行跟踪,过多的采样反而没有多少实际意义。 二、选择采样周期的原则――采样定理 最大采样周期 maxmax 21fT (20) 式中 maxf 为信号频率组分中最高频率分量。 三、选择采样周期应综合考虑的因素 加到被控对象上的给定值变化频率越高,采样频率应越高,以使给定值的改变通过采样迅速得到反映,而不致在随动控制中产生大的时延。 (1)考虑对象变化的缓急,若对象是慢速的热工或化工对象时, T 一般取得较大。 在对象变化较快的场合, T 应取得较小。 (2)考虑干扰的情况,从系统抗干扰的性能要求来看,要求采样周期短,使扰动能迅速得到校正。 式和执行机构的类型 (1)采样周期太小,会使积分作用、微分作用不明显。 同时,因受微机计算精度的影响,当采样周期小到一定程度时,前后两次采样的差别反映不出来,使调节作用因此而减弱。 (2)执行机构的动作惯性大,采样周期的选择要与之适应,否则执行机构来不及反应数字控制器输出值的变化。 要求控制的回路较多时,相应的采样周期越长,以使每个回路的调节算法都有足够的时间来完成。 控制的回路数 n与采样周期 T有如下关系: nj jTT 1 (21) 式中, Tj 是第 j个回路控制程序的执行时间。 基于单片机与 PC机的温度控制 系统软件 设计 10 数字 PID控制的参数选择 一、数字 PID 参数的原则要求和整定方法 : 被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输出应能保持在给定值,操作变量不宜过大,在系统与环境参数发生变化时控制应保持稳定。 显然,要同时满足上述各项要求是困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。 参数整定方法: 理论计算法――依赖被控对象准确的数学模型(一般较难做到) 工程整定法―― 不依赖被控对象准确的数学模型,直接在控制系统中进行现场整定(简单易行) 二、常用的简易工程整定法 [6]――适用于有自平衡特性的被控对象 整定数字调节器参数的步骤是: (1)选择采样周期为被控对象纯滞后时间的十分之一以下。 (2)去掉积分作用和微分作用,逐渐增大比例度系数 PK 直至系统对阶跃输入的响应达到临界振荡状态 (稳定边缘 ),记下此时的临界比例系数 K 及系统的临界振荡周期 KT。 (3)选择控制度。 模拟控制度0202)(e)(edttdttDDC (22) 通常,当控制度为 时。 就可以认为 DDC 与模拟控制效果相当。 (4)根据选定的控制度,得 T、 KP、 TI、 TD的值。 ――适用于多容量自平衡系统 参数整定步骤如下: (1)让系统处于手动操作状态,将被调量调节到给定值附近,并使之稳定下来,然后突然改变给定值,给对象一个阶跃输入信号。 (2)用记录仪表记录被调量在阶跃输入下的整个变化过程曲线,如 图 37 所示。 基于单片机与 PC机的温度控制 系统软件 设计 11 图 37 被调量在阶跃输入下的整个变化过程曲线 (3)在曲线最大斜率处作切线,求得滞后时间τ,被控对象时间常数 Tτ以及它们的比值 Tτ /τ。 (4)由求得的τ、 Tτ及 Tτ /τ,即可求得数字调节器的有关参数 KP、 TI、 TD及采样周期 T。 令 KTT , KI TT , KD TT 。 则增量型 PID 控制的公式简化为 )2()1()()( neneneKnu P (23) 改变 KP,观察控制效果,直到满意为止。 基于以上的分析在本设计中 ,采用扩充响应曲线法对参数进行整定。 基于单片机与 PC机的温度控制 系统软件 设计 12 4. 系统软件设计 软件开发工具简介 一 、单片机开发工具 本系统开发工具采用 KEIL51 标准 C 编译器 KEIL C51,在 保留汇编代码高效 、 快速 性的同时 为 8051 微控制器的软件开发提供 C 语言环境。 C51 集成到 uVision2 开发环境 ,这个环境 包 括 :编译器,汇编器,实时操作系统,调试器。 SLISP 支持 串行 、 并行 两种 通信下载线 , 支持的 AT89S51/52 和 AVR 系列器件。 烧录文件格式 为 INTEL 格式的 HEX 文件、 EEP 文件,二进制 BIN 文件。 通过串口和下载线相连接,支持 USB 转换成的串口通信。 在使用并行下载线编程时,编程速度是可以调节的, 可以 根据自己系统的时钟频率选择 模式。 二 、 PC 机开发工具 VB VB是微软公司出品的一个快速可视化程序开发工具软件,借助微软在操作系统和办公软件的垄断地位, VB 在短短的几年内风靡全球。 VB 是极有和功能强大的软件,主要表现在:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成代码 [6]。 美国微软公司在 1991 年推出 至今 ,版本已经演变到 Visual Basic 2020(也被称为 VB8)[7], 本系统采用各方面均较为成熟的 运行在 win2020, winxp, windowsNT等操作系统下,是一个 32 位的应用程序开发工具。 它主要有以下几个特点:。 它在 windows 平台上提供了图形用户界面( GUI)的集成开发环境( IDE)。 Basic 语言。 它既适用于没有任何编程经验的开发者学习,也适合于开发各种复杂的底层应用 程序。 Visual Basic 提供了许多现成的字符串处理函数。 除了简单易学的特点以外, Visual Basic 还是一种易于扩充功能的开发系统。 IntelliSense 技术。 当你在 Visual Basic 的代码窗口敲进对象名称的时候IntelliSense 技术会自动向你显示一些相关的信息,例如对象的属性和方法等。 利用这些向导,你可以快速地完成一般性的任务,例如生成其控件不绑定到数据控件上的纯代码窗体,建立查询,添加工 具,制作图表,以及发布创建的应用程序等。 C51 单片机软件开发语言 C语言是一种通用的计算机程序设计语言。 由于汇编程序的可读性和可移植性都较差,基于单片机与 PC机的温度控制 系统软件 设计 13 而 C语言既是一种高级语言,又兼有一些汇编语言才具有的特点,其表达能力和运算能力和运算能力都很强,并且具有很好的可移植性的硬件控制能力,编写代码效率高,软件调试直观,维护升级方便。 同时, C 语言具有完善的模块程序结构和功能丰富的库函数,在软件开发中可以采用模块化程序设计方法,并可以方便地调用库函数一些常用的功能。 再说现在的单片机程序存储器容量越来越大,因此 不用像过去那样对程序规模大小斤斤计较,这也有利于 C 语言程序在单片机上的推广应用。 此外,使用 C 语言进行 MCS51 系列单片机系统开发,编程者可以专注于应用软件部分的设计,不必将大量的精力花在内存分配等底层工作上,从而大大地加快了软件的开发速度, C 语言程序的可读性比汇编语言好得多,对于程序的改进和扩充也方便得多,因此越来越多的设计人员选用 C语言来开发单片机控制程序 [8]。 鉴于 C 语言在功能上、结构性、可读性和可维护性上比汇编有明显的优势, 编程有众 多优点,在本设计中,采用的是 C 语言编写程序。 一、 C语言的关键字共有 32 个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 ( 12 个): char :声明字符型变量或函数 double :声明双精度变量或函数 enum :声明枚举类型 float:声明浮点型变量或函数 int: 声明整型变量或函数 long :声明长整型变量或函数 short :声明短整型变量或函数 signed:声明有符号类型变量或函数 struct:声明结构体变量或函数 union:声明共用体(联合)数据类型 unsigned:声明无符号类型变量或函数 void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) ( 12 个): (1)循环语句 for:一种循环语句 (可意会不可言传) do :循环语句的循环体 while :循环语句的循环条件 break:跳出当前循环 continue:结束当前循环,开始下一轮循环 (2)条件语句 if: 条件语句 else :条件语句否定分支(与 if 连用) 基于单片机与 PC机的温度控制 系统软件 设计 14 goto:无条件跳转语句 (3)开关语句 switch :用于开关语句 case:开关 语句分支 default:开关语句中的 “ 其他 ” 分支 (4)返回语句 return :子程序返回语句(可以带参数,也看不带参数) ( 4 个) auto :声明自动变量 一般不使用 extern:声明变量是在其他文件正声明(也可以看做是引用变量) register:声明积存器变量 static :声明静态变量 ( 4 个): const :声明只读变量 sizeof:计算数据类型长度 typedef:用以给数据类型取别名(当然还有其他作用 volatile:说明变量在程序执 行中可被隐含地改变 二、 C 语言中的 9 中控制语句 goto 语句 :无条件转向。 if语句 :判断语句。 while 循环语句。 dowhile 语句 :先执行循环体 ,然后判断循环条件是否成立 . 之后继续循环。 for 语句 :循环 ,可替代 while 语句。 只是用法不同。 break 语句跳出本层的循环。 (只跳出包含此语句的循环 ) continue语句 :继续 (一般放到循环语句里 ,不在执行它下面的语句 ,直接跳到判断语句例 :for 语句 ,就直接跳到第二个分号处 ,while 语句 ,就直接跳到 while()的括号里。 switch 语句 :多相选择。 return 语句 :返回。 单片机主程序的软件 设计 由于系统程序比较复杂,为了便于编写、调试、修改,统程序的编写采用了模块化的结构,整个系统包括主模块、初始化模块、温度检测模块、中断服务模块、控制算法模块、输出控制模块等几个部分,其软件总体结构如图 41所示。 基于单片机与 PC机的温度控制 系统软件 设计 15 图 41单片机 软件总体结构 图 42单片机 程序结构框图 图 43单片机 程序初始化结构 单片机 中断服务子程序的实现 中断是指当计算机执行正常程序时,由于系统中出现某些需要紧急处理的情况或特殊请求时,计算机打断当前正在运行的程序,转而对这些紧急情况进行处理,处理完毕后,再返回继续执行原来被打断的程序。 中断控制方式使单片机在平时可以有充分的时间去处理主要事件,而当外界有特殊情况需要处理时单片机也不会错过。 充分地利用单片机的中断功能,可以提高单片机的工作效率,尤其是在编制实时性要求较高的控制程序时。 8051 系列单 片机的中断共分 2个优先级, 5个中断源。 每个中断源的优先级都是可以编程的。 8051 单片机的 5 个中断源分别是: 外部中断请求 0,由 INT0 输入。 外部中断请求 1,由 INT1 输入。 片内定时器 /计数器 0溢出中断请求。 片内定时器 /计数器 1溢出中断请求。 片内串行口发送 /接收中断请求。 除了以上 5个中断外,对于 8052 系列单片机来说,还增加了一个片内定时器 /计数器主模块 初始化 温度检测模块 控制算法模块 中断服务模块 控制输出模块 串口通信模块 初始化 读温度 处理温 度数据 显示温度 传送温度至 PC 机 初始化端口 开机显示 8888 开机先转换一次温度 初始化定时器 开启定时器 基于单片机与 PC机的温度控制 系统软件 设计 16 2溢出中断请求。 一、定时中断服务程序 通过单片机内部的定时器 T0 进行 10ms 定时,再通过寄存器进行计数,以实现 2s 定时中断的要求。 进入中断服务程序后, 可进行当前温度的检测及显示,根据所测值与设定值比较进行温度控制等。 图 44 为定时器 T0。基于单片机与pc机的温度控制系统的软件设计
相关推荐
DS18B20 中的每个器件上都有独一无二的序列号。 实际应用中不需要外部任何元器件即可实现测温。 测量温度范围在- 55。 C到+ 125。 C之间。 数字温度计的分辨率用户可以从 9位到 12 位选择。 内部有温度上、下限告警设置。 DS18B20 的数据输入 /输出端连接于 Atmega16L 的 PA7 引脚 ,电路原理如图 6所示。 AGND31X113X212R E
口输出) 运行状态 空 黄灯 绿灯 红灯 空 黄灯 绿灯 红灯 1 0 0 1 1 0 1 0 0x9a ① 1 0 0 1 1 1 1 0 0x9e ② 1 0 1 0 1 0 0 1 0xa9 ③ 1 1 1 0 1 0 0 1 0xe9 ④ 1 0 0 1 1 0 0 1 0x99 ⑤ 1 0 0 1 1 0 1 0 0x9a ⑥ 1 0 1 0 1 0 0 1 0xa9 ⑦ 单片机
(如执行 MOVX@RI 指令)时, P2 口输出 P2 锁存器 的内容。 Flash 编程 或校验时, P2 亦接收高位地址和一些 控制信号。 P3 口 : P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门 电路。 对 P3 口写入 “ 1” 时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3
、幅度都能由计算机自动调节的信号源。 刚好可通过采用 D/A 转换芯片构成的可控信号源,产生正弦波、调频波、调幅波及方波等,并且其信号的频率和幅度可由微机来实现控制,调节非常方便。 另外随着 21 世纪的到来,人类正在跨入信息时代。 现代通信系统的发展方向是功能更强,体积更小,速度更快,功耗更低。 所以今天无论是民用的移动电话、程控交换机、集群电台、 广播发射机和调制解调器 ,还是军用的雷达设备
测误差,温度对于传感器器件的影响很大,为此需要对 MPX5050GP 传感器的工作温度范围进行分析其正常工作范围如下图6,在图中在 0 到 80 摄氏度时显示温度误差系数为 不变化状态,在阈值外温度误差因素呈线性变化 图 6 温度对温度误差的关系 东华理工大学毕业设计(论文) 系统总体设计方案 7 A/D 转换器介绍 模数转换器的种类 非常 多,按 照 工作原理的不同,可分成间接 型 ADC
U 的处理字长或提高时钟频率。 采用双 CPU 结构,这样可以提高处理能力,改进系统设计提升系统的速度:高性能单片机增加数据总线宽度,提高了数据处理能力。 存储器的发展:主要是存储容量的扩展。 采用存储器不仅大大提高了程序固 10 化的速度,而且程序的檫写次数也高达 10 万次:内部程序存储器容量的扩大等。 单片机的应用 单片机的应用很广,分别在以下领域中得到了广泛的应用。 工业自动化