智能温度控制器显示end(如何用实验的方法确定温度控制器的相关参数)
一、急需智能仪器课程设计·· 加急
第1章系统设计 1
1.1温度采集报警系统 1
第2章硬件设计 2
2.1测温和控制电路 2
2.2显示控制电路 5
2.3声光报警电路 6
第3章软件设计 8
总结 9
参考文献 10
附录1整体电路图 11
附录2源程序 12
第1章系统设计
1.1温度采集报警系统
如图1.1所示为温度采集报警系统框图。该课程设计将以单片机控制的温度采集系统为主,利用单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。
系统在温度采集时主要应用了DS18B20芯片,该器件经过初始化后单片机首先进行ROM匹配,当受到测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很高,可以精确到小数点后四位。设计中还应用了HD7279芯片进行数码管显示的驱动,一共应用了6位数码管。报警电路采用由NE555所组成多谐振荡电路。
图1.1系统框图
第2章硬件设计
2.1测温和控制电路
(1)测温
测温使用的DS18B20是典型的应用单总线技术的器件。1-wire单总线是Maxim全资子公司Dallas的一项专有技术。与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE不同,它采用单根信号线,既传输数据位,又传输数据位的定时同步信号,而且数据传输是双向的。大多数1-wire器件不需要额外的供电电源,可直接从单总线上获得足够的电源电流(即寄生供电方式)。它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
1-wire单总线适用于单个主机系统,能够控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统*作;而当多个从机位于总线上时,则系统按照多节点系统*作。
为了较为全面地介绍单总线系统,将系统分为三个部分讨论:硬件结构、命令序列和信号方式(信号类型和时序)。
硬件结构:
顾名思义,单总线只有一根数据线。设备(主机或从机)通过一个漏极开路或三态端口,连接至该数据线,这样允许设备在不发送数据时释放数据总线,以便总线被其它设备所使用。单总线端口为漏极开路,其内部等效电路如图1所示。
单总线要求外接一个约5k的上拉电阻;这样,单总线的闲置状态为高电平。不管什么原因,如果传输过程需要暂时挂起,且要求传输过程还能够继续的话,则总线必须处于空闲状态。位传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态(高电平)。如果总线保持低电平超过480μs,总线上的所有器件将复位。另外,在寄生方式供电时,为了保证单总线器件在某些工作状态下(如温度转换期间、EEPROM写入等)具有足够的电源电流,必须在总线上提供强上拉[1]。
(2)控制
At89S51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机;片内含有4k字节的可反复擦写的只读程序存储器(PEROM)和128字节的随机存取数据存储器(RAM);器件采用AMTEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统;片内置通用2位**处理器(CPU)和Flash存储单元,功能强大的AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。功能特性概述
AT89S51提供以下标准功能:4k字节Flash闪速存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、1个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路,同时,AT89S51可降至0Hz的静态逻辑*作并支持两种软件可选的节电工作模式;空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作;掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作一直到下个硬件复位[2]。
引脚功能说明
Vcc:电源电压
GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口;作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或者程序存储器时,这组口线分时转换地址(低8位)和数据总线复用;在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻
P1口:P1是一个带内部上拉电阻的8位双向I/O口;P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址
P2口:P2口是一个带有内部上拉电阻的8位双向I/O口;P2的输出缓冲级可驱动个(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据;在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口线上的内容(即特殊功能寄存器(SFR)区中的R2寄存器的内容),在整个访问期间不改变;
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:P3口是一个带有内部上拉电阻的8位双向I/O口;P2的输出缓冲级可驱动个(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能;如下表2-1所示:
表2-1
端口引脚第二功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2(外中断0)
P3.3(外中断1)
P3.4 T0(定时/计数器0)
P3.5 T1(定时/计数器1)
P3.6(外部数据存储器写选通)
P3.7(外部数据存储器读选通)
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:复位输入;当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节;即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的;要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE*作,该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外该引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。
EA/VPP:外部访问允许;欲使CPU仅访问外部程学存储器(地址为0000H FFFFH),EA端必须保持低电平(接地)。需要注意的是,如果加密位LB1被编程,复位时内部会锁存EA端的状态[3]。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTML1:振荡器反相放大器的及内部时钟发生器的输入端。
XTML2:振荡器反相放大器的输出端。
图2.1测温和控制电路
2.2显示控制电路
HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64个LED点阵)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵。该芯片内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279(A)还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279与单片机仅需4条接口线,其中CS为片选信号。当MCU访问HD7279时,应将片选端置为低电平。DATA为串行数据/输出端,当向HD7279发送数据时,DATA为输入端;当HD7279A输出键盘代码时,DATA为输出端。其特点为:
-串行接口,无需外围元件可直接驱动LED
-各位独立控制译码/不译码及消隐和闪烁属性
-(循环)左移/(循环)右移指令
-具有段寻址指令,方便控制独立LED
-64键键盘控制器,内含去抖动电路
-有DIP和SOIC两种封装形式供选择
图2.2显示控制电路
2.3声光报警电路
555集成定时器是一种模拟和数字电路相混合的集成电路。它结构简单,使用灵活,用途十分广泛,可以组成多种波形发生器、多谐振荡器、定时延时电路、双稳触发电路、报警电路、检测电路、频率变换电路等。
555定时器的电路原理图及管脚排列图分别如图2.3和2.4所示。
555含有两个比较器A1、A2,其中5端为电压控制端,通过外接一个参考电源,可以改变上、下触发电位值,不用时,可通过一个0.01μF旁路电容接地。4端为触发器复位端,不用时应接高电平。总之,555相当于一个可用模拟电压来控制翻转的R-S触发器。图2.5就是用555构成的多谐振荡电路,产生的振荡脉冲信号经过三极管放大后驱动扬声器报警,由单片机的P1.5端口输出高电平发出报警。
图2.5报警电路
第3章软件设计
该课程设计中主要利用了DS18B20芯片进行测温,该芯片是单总线器件,顾名思义单总线只有一根数据线,因此在通信时时序就显得十分重要,我们在编程时也要十分注意这一点。在程序中测温时首先要对DS18B20进行初始化,初始化过程由单片机发出的复位脉冲和芯片响应的应答脉冲组成,应答脉冲使主机知道,总线上有从机设备,且准备就绪。由于总线上只挂接了一片测温芯片,因此可直接跳过ROM匹配发出测温命令。该设计可实时显示温度值,便于连续观测。系统源程序见附录2。软件流程图如下所示:
图3.1软件流程图
总结
这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,进而提高自己的实际动手能力和独立思考的能力。整个设计过程可以说不是很顺利,因为有很多知识已经淡忘,还有很多新的东西没有掌握,所以这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。后我要衷心感谢老师的辛勤指导,感谢帮助我同学。
参考文献
[1]张毅坤,陈善久.单片微型计算机原理及应用[M].西安:西安电子科技大学出版社,2002.
[2]张友德,赵志英,徐时亮.单片微机原理应用与实验[M].上海:复旦大学出版社,2000.
[3]蔡美琴,张为民,沈新群,张荣娟.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,1992.
附录1整体电路图
附录2源程序
TEMPH EQU 35H
TEMPL EQU 34H
DQ EQU P1.2;18B20
BIT_COUNT EQU 30H
TIMER EQU 31H
TEN EQU 32H
DATA_IN EQU 20H
DATA_OUT EQU 21H
TIMER1 EQU 33H
DAT BIT P1.0
CLK BIT P1.1
CS BIT P1.3
ORG 0000H
AJMP START
ORG 0003H
LJMP INT0
ORG 0030H
MAIN:
MOV SP,#60H
MOV P1,#11011101
START:
LCALL GET_TEMPER
LCALL CHULI_1;36H-37H-38H存有温度值
LCALL DELAY
LCALL DELAY
SETB P1.4;报警灯灭
CLR P1.5;报警铃停
AJMP START
;--------------------------------------------
GET_TEMPER:
SETB DQ
LCALL INIT_1820;复位
MOV A,0CCH;跳过ROM
LCALL WRITE_1820
MOV A,#44H
LCALL WRITE_1820
LCALL DELAY
LCALL INIT_1820;复位
MOV A,0CCH;跳过ROM
LCALL WRITE_1820
MOV A,#0BEH;读取温度值
LCALL WRITE_1820
LCALL READ_1820;29H(低),28H(高)
RET
;----------------------------------------
INT0:
PUSH PSW
PUSH ACC
MOV DATA_OUT,#15H
LCALL SEND
LCALL RECEIVE
SETB CS
MOV R2,DATA_IN
POP ACC
POP PSW
RETI
;-------------发射子程------------------
SEND:
MOV BIT_COUNT,#8
CLR CS
CALL LONG_DELAY
SEND_LOOP:
MOV C,DATA_OUT.7
MOV DAT,C
SETB CLK
MOV A,DATA_OUT
RL A
MOV DATA_OUT,A
CALL SHOUT_DELAY
CLR CLK
CALL SHOUT_DELAY
DJNZ BIT_COUNT,SEND_LOOP
CLR DAT
RET
;---------------------------------------
RECEIVE:
MOV BIT_COUNT,#8
SETB DAT
CALL LONG_DELAY
RECEIVE_LOOP:
SETB CLK
CALL SHOUT_DELAY
MOV A,DATA_IN
RL A
MOV DATA_IN,A
MOV C,DAT
MOV DATA_IN.0,C
CLR CLK
CALL SHOUT_DELAY
DJNZ BIT_COUNT,RECEIVE_LOOP
CLR DAT
RET
;-------------------------------------
LONG_DELAY:
MOV TIMER,#25;50US
DELAY_LOOP:
DJNZ TIMER,DELAY_LOOP
RET
SHOUT_DELAY:
MOV TIMER,#4;8US
DELAY_LOOP1:
DJNZ TIMER,DELAY_LOOP1
RET
;-------------处理的数据从36H起始-------------
CHULI_1:
MOV 36H,#00H
MOV 37H,#00H
MOV 38H,#00H
MOV C,28H.7
JC FUSHU
MOV TEMPH,28H;高位
MOV TEMPL,29H;低位
INC TEMPH;修正
S1:
MOV A,36H
ADD A,#25H
DA A
MOV 36H,A
MOV A,37H
ADDC A,#06H
DA A
MOV 37H,A
MOV A,38H
ADDC A,#00H
DA A
MOV 38H,A
DJNZ TEMPL,S1
DJNZ TEMPH,S1
LCALL DISPLAY_1
RET
FUSHU:
MOV TEMPH,28H
MOV TEMPL,29H
XRL TEMPL,#0FFH;变为原码
XRL TEMPH,#0FFH
MOV A,TEMPL
ADD A,#01H
MOV TEMPL,A
MOV A,TEMPH
ADDC A,#00H
MOV TEMPH,A
INC TEMPH;修正
S2:
MOV A,36H
ADD A,#25H
DA A
MOV 36H,A
MOV A,37H
ADDC A,#06H
DA A
MOV 37H,A
MOV A,38H
ADDC A,#00H
DA A
MOV 38H,A
DJNZ TEMPL,S2
DJNZ TEMPH,S2
LCALL DISPLAY_2
RET
;----------------------复位子程序----------------
INIT_1820:
SETB DQ
NOP
CLR DQ
;主机发出延时480微秒的复位低脉冲
MOV R1,#3
TSR1:
MOV R0,#80
DJNZ R0,$
DJNZ R1,TSR1
SETB DQ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#25H
TSR2:
JNB DQ,TSR3;等待DS18B20回应
DJNZ R0,TSR2
LJMP TSR4;延时
TSR3:
SETB F0;置标志位,表示DS1820存在
LJMP TSR5
TSR4:
CLR F0;清标志位,表示DS1820不存在
LJMP TSR7
TSR5:
MOV R0,#117
TSR6:
DJNZ R0,TSR6;时序要求延时一段时间
TSR7:
SETB DQ
RET
;-------------------------------------------------
;写DS18B20的子程序(有具体的时序要求)
WRITE_1820:
MOV R2,#8;一共8位数据
CLR C
WR1:
CLR DQ;置低电平,开始写输出
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
;-------------------------------------------------
;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_1820:
MOV R4,#2;将温度高位和低位从DS18B20中读出
MOV R1,#29H;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
RE00:
MOV R2,#8;数据一共有8位
RE01:
CLR C
SETB DQ
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#9
RE10:
DJNZ R3,RE10
MOV C,DQ
MOV R3,#23
RE20:
DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV@R1,A
DEC R1
DJNZ R4,RE00
RET
;---------------------显示程序----------------------
DISPLAY_1:
MOV DATA_OUT,#0A4H;复位
LCALL SEND
SETB CS
MOV A,36H
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000000B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,36H
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000001B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,37H
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000010B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,37H
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000011B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,38H
ANL A,#0FH
ORL A,#80H;DP=1
MOV R3,A
MOV DATA_OUT,#84H
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,38H
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#85H
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
;判断是否报警,设为50度--38H
MOV A,38H
ANL A,#0F0H
SWAP A
MOV R4,A
MOV A,#00H
BCD_H:
ADD A,#0AH
DJNZ R4,BCD_H
MOV 40H,A
MOV A,38H
ANL A,#0FH
ADD A,40H
SUBB A,#32H
JC JIXU;判断温度
CLR P1.4;报警灯亮
SETB P1.5;报警
JIXU:;小于50度
RET
;-----------------------------------------
DISPLAY_2:
MOV DATA_OUT,#0A4H;复位
LCALL SEND
SETB CS
MOV A,36H;直接取高位
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000000B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,37H
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000001B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,37H
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#10000010B
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,38H
ANL A,#0FH
ORL A,#80H;DP=1
MOV R3,A
MOV DATA_OUT,#83H
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV A,38H
SWAP A
ANL A,#0FH
MOV R3,A
MOV DATA_OUT,#84H
LCALL SEND
MOV DATA_OUT,R3
LCALL SEND
MOV DATA_OUT,#85H
LCALL SEND
MOV DATA_OUT,#0AH
LCALL SEND
RET
;------------------------------------------
DELAY:
MOV R5,#06H;750ms
DELAY2:
MOV R7,#0H
DELAY1:
MOV R6,#0H
DJNZ R6,$
DJNZ R7,DELAY1
DJNZ R5,DELAY2
RET
;------------------------------------------
END
二、如何用实验的方法确定温度控制器的相关参数
智能控制方法。智能温度控制方法包括自适应控制算法、智能PID算法以及参数自整定方法。自适应控制算法能根据控制对象的特点建立数学模型,通过一系列优化运算决定控制量的大小。智能PID算法是在纂本PID算法的基础上,附加一些新的规则使PID调节适应过程变量的变化,达到较好的控制效果。控制器不仅能完成PID参数自整定,而且还能在程序运行中,根据给定条件调用不同的PID参数组。
多种工作方式。智能温度控制器具有准备(READY)、运行(RUN)、保持(HOLD)、测试(TEST)、结束(END)、PV启动、自动(AUTO)、手动(MANUAL)等多种工作方式,以满足温度过程控制的需要。
强大的程序功能。支持工艺曲线数量,每条工艺曲线的段数,参数的设置范围,曲线的链接和循环,各种**的数量等内容反映了控制器的程序处理能力。例如DCP31智能温度控制器,工艺曲线数量19条,每条工艺曲线30段,时间设置范围从0到99小时59分,曲线的链接0~19,程序循环次数0~9999,还有8种*作和时间**在编程时可供选择。
多种报警设置。智能温度控制韶支持多种报警形式,如温度上、下限报警,温度偏差报警,温度绝对值报警等,报警是否生效,在什么条件下报警都可以通过参数设置完成。
模块化结构。硬件和软件的模块化结构是智能温度控制器的一大特点,根据使用者的不同要求,采用不同的模块组合,完成特定的控制功能。在进行选择时,主要考虑与输人信号有关的输人模块,与输出控制相关的输出模块,与数据通讯相关的通讯模块及与控制相关的控制模块等。
参数化设置。简单而方便的参数化设置,使得智能温度控制器应用更加灵活,强大的控制能力和过程适应性都是通过参数设置完成的。参数可分为功能参数、传感器参数、控制参数和工艺参数等4类。功能参数决定了控制器的软硬件组成和结构,传感器参数与输人信号有关,控制参数与过程变量控制有关,工艺参数取决于现场工艺要求。
较强的过程显示功能。智能温度控制器采用LED或LCD显示器,支持测量值(PV),设定值(SP),程序号,段号,工艺曲线,工作状态和工作信息显示等。这些显示信息基本能满足温度过程控制要求,使*作者一目了然地观察到控制器工作状态,了解过程控制变量的变化情况。