毕业论文:基于单片机的水温控制系统设计内容摘要:

运算中间结果及输出结果等十几个变量 .因而 8051 片内的 RAM 能够满足要求 ,可不必再扩展。 后向通道 : 后向通道是实现控制型号输出的通道 ,单片机系统产生的控制信号经过功率放大器的放大控制电炉的输入功率 ,以实现水温的控制的目的 .根据系统的总误差要求 ,后向通道的控制精度也要应控制在 %之内 . 4 系统软件设计 系统软件由主程序、键盘扫描、 LED 显示、串行口中断组成。 由于本模块就进行键盘与显示任务,且键盘扫描与 LED 扫描是用同个 74LS138 来完成,可以将程序精简,即把键盘和显示的程序合在一起放在主程序里。 ( 1)初始化。 设定可编程芯片的工作方式,对内存中的工作参数区进行初始化,显示系统初始状态。 ( 2)读温度程序 . 通过 DS18B20 的侧温 . ( 3)调用 PID 算法子程序通过键盘模块发送过来的数据 ,即给定值 ,和测量值进行计算 ,输出 PWM 波 .对电炉的水温度进行控制 . ( 4)返回 定时中断服务程序 采样定时由定时器 o 的定时操作完成,定时器 o 的定时初值时间由 PID的运算结果控制。 程序流程如 下 图所示 : 脉宽调制输出子程序 N Y Y N Y N N Y 开始 初始化 、 、 =000 消抖 31H „0‟ ‟ P130H 延时 Flaga=1 等待 按键放开 =0。 =0。 消抖 等待 按键 放开 Flaga=1。 、 、 =001 P131H 延时 Flagb=1。 Flagb 1 ‟ 32H „0‟ ‟ Flagb0 ‟ ………… ………… . ………… . ………… . ………… . ………… . 、 、 =010 、 、 =011 ………… . 、 、 =101 、 、 =100 、 、 =110 、 、 =111 系统控制总程序 N 初始化 调读温度子程序 调 PID 子程序 调发送子程序 定时时间到 Y PID 子程序 T1=T1+K(EkE(K1)) 设置温度大于实测温度 设置温度减实际温度 实际温度减设置温度 置标志位 清标志位 差 值 放30H Y N 入口 输出高电平 脉宽标志位清 0 返回 脉宽标志位是高电平 ? 输出低电平 把脉宽标志位置 1 Y N 初始化 调用水温检测子程序 调用 PID 算法子程序 开起定时器 定时时间到 ? 调用脉宽子程序 返回 Y N 5 参数计算 系统调试包括硬件调试和 软件 调试。 按 +键设定温度值加一;按 键设定温度值减一;按设温键,可任意设置温度,输入相应的数值,按确定键即可,按取消键则返回前一次设置的值;按初始键则返回刚一开机的状态。 软件的调试府在仿真器提供的单步、断点、跟踪等功能的支持下对各子程序分别进行调试.将调试完的工程序连接起来再调试.逐步扩大调试范围。 系统各模块设计及参数计算 温度采集部分及转换部分 我们使用 AD590 来采集外界的温度。 AD590 是美国模拟器件公司生产的单片集成两端感温电流源。 它的主要特性如下 : 流过器件的电流( mA)等于器件所处环境的热力学温度(开尔文)度数,即: mA/K 式中: — 流过器件( AD590)的电流,单位为 mA; T— 热力学温度,单位为 K。 AD590 的测温范围为 55℃~ +150℃。 AD590 的电源电压范围为 4V~ 30V。 电源电压可在 4V~6V 范围变化,电流 变化 1mA,相当于温 度变化 1K。 AD590 可以承受 44V 正向电压和 20V 反向电压,因而器件反接也不会被损坏。 输出电阻为 710MW。 精度高。 AD590 共有 I、 J、 K、 L、 M 五档,其中 M 档精度最高,在 55℃~ +150℃范围内,非线性误差为177。 ℃。 由于 AD590 采集的输出数据是模拟量 — 电流,而且很小,不易测量,所以我们要将电流量转换成电压量,这样有利于后面的放大及 D/A 转换。 我们改用一个固定电阻( 或 10k)和一个电位器 (1K)串接的方法,这样可以通过调节电位器使得每路输出电压基本一致。 如以 0℃为参考值则应 使其电压输出为 ;如以 25℃为参考值,则应使其电压输出为 . 传感器输出信号放大电路部分 由于取得的电压量很小,我们选用 LM324 做为运放,以为其内部带有四个运放,可以使得运放部分在电路版上不占用太大的体积。 我们用了其内部的三个运放。 第一级运放我们做成射级跟随器的形式,起到阻抗匹配的作用。 第二级运放设计为反相比例求和电路,根据反相比例求和电路公式,我们设计了如下图的电路, U=(( 10/10) *U1+10/( 20+R) ),其中 U 为第二级输出电压, R 为 50k 的电位器。 可以通过调节电 位器使得输出电压达到要求。 设0℃时,第二级的输出为 =0V,而 25℃时,第二级的输出为= (反相)(零位调整)。 第三级运放设计为反相比例放大电路,我们设计为将第二级的输出电压放大 5倍。 所以我们选用了 10k 和 50k的电阻来实现。 模数转换电路部分 这部分最初想用 ADC0809 的,但为了配合使用 CD4051,我们最终选择了 ADC0804。 ADC0804 的规格及引脚图 8 位 CMOS 逐次逼近型的 A/D 转换器 三态锁定输出 存取时间: 135μ s; 分辨 率: 8位; 转换时间: 100μ s; 总误差:177。 1LSB; 工作温度: ADC0804LCN—— 0℃~ +70℃; ADC0804LCD—— 40℃~ +85℃; 引脚图及说明如图所示: /CS:芯片选择信号。 /RD:外部读取转换结果的控制脚输出信号。 /RD 为高时, DB0~ DB7 处于高阻抗; /RD为低时,数字数据才会输出。 /WR:用来启动转换的控制输入,相当于 ADC 的转换开始( /CS=0 时),当 /WR由高变为低时,转换器被清除;当 /WR 回到高时,转换正式开始。 CLK IN, CLK R:时钟输入 或接振荡元件( R,C) ,频率约限制在 100kHz~ 1460kHz,如果使用 RC电路则其振荡频率为 1/( ) . /INTR:中断请求信号输出,低电平动作。 VIN(+)、 VIN(- ):差动模拟电压输入。 输入单端正电压时, VIN(- )接地;而差动输入时,直接加入 VIN(+)、 VIN(- )。 AGND,DGND:模拟信号及数字信号的接地。 VREF:辅助参考电压。 DB0~ DB7: 8位的数字输出。 VCC:电源供应以及作为电路的参考电压。 众所周知 , 精度是数据采集系统的重要指标 , 模数转换器的量化误差是 影响系统精度的主要因素 ,A/D转换器的位数越多 , 其量化误差越小 , 一个 M 位的 A/D 转换器的量化误差可表示为 : 式中 V ref为模数转换器的参考基准电压。 设 A/D 转换电路的模拟输入电压为 Vi, 则经 A/D 转换后的相对误差表示为 : (2)上式表明 , 当模数转换器的位数选定后 , 其相对误差 D与其模拟输入电压 V i 成反比。 因此只有将输入信号 V i 预放大到接近参考电压 V ref, 才能充分发挥 A/D 转换器位数的效能 , 减小量化误差 , 提高系统数据采集精度。 此即为引入前置放大器的目的之所在。 逐 步逼近式 A/D的转换公式: UrNUx n  2 , nUre 2 、 Ux为输入电压、 N 为输出值 ( 11) eUxN ( 12) 当选定参考电压和 A/D 位数时, e 为常数,由误差传递公式得: UxUxNN  , Ux是输入绝对误差 ( 13) 由式( 13)知:当输入电压越大, A/D 转换的相对误差越小,当然输入电压不能大于 A/D 最大转换电压。 因此为了减少 A/D 转换误差,对输入信号进行放大。 ADC0804 芯片外围电路的设计 脚的 CLKR 端接一个 10k的电阻和 150PF 的电容,根据公式 f=1/(。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。