温度控制器Word格式.docx

上传人:b****2 文档编号:3865040 上传时间:2023-05-02 格式:DOCX 页数:18 大小:140.50KB
下载 相关 举报
温度控制器Word格式.docx_第1页
第1页 / 共18页
温度控制器Word格式.docx_第2页
第2页 / 共18页
温度控制器Word格式.docx_第3页
第3页 / 共18页
温度控制器Word格式.docx_第4页
第4页 / 共18页
温度控制器Word格式.docx_第5页
第5页 / 共18页
温度控制器Word格式.docx_第6页
第6页 / 共18页
温度控制器Word格式.docx_第7页
第7页 / 共18页
温度控制器Word格式.docx_第8页
第8页 / 共18页
温度控制器Word格式.docx_第9页
第9页 / 共18页
温度控制器Word格式.docx_第10页
第10页 / 共18页
温度控制器Word格式.docx_第11页
第11页 / 共18页
温度控制器Word格式.docx_第12页
第12页 / 共18页
温度控制器Word格式.docx_第13页
第13页 / 共18页
温度控制器Word格式.docx_第14页
第14页 / 共18页
温度控制器Word格式.docx_第15页
第15页 / 共18页
温度控制器Word格式.docx_第16页
第16页 / 共18页
温度控制器Word格式.docx_第17页
第17页 / 共18页
温度控制器Word格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

温度控制器Word格式.docx

《温度控制器Word格式.docx》由会员分享,可在线阅读,更多相关《温度控制器Word格式.docx(18页珍藏版)》请在冰点文库上搜索。

温度控制器Word格式.docx

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。

表4-1为P1口第二功能。

表1系统P1口第二功能表

端口引脚

第二功能

P1.5

MOSI(用于ISP编程)

P1.6

MISO(用于ISP编程)

P1.7

SCK(用于ISP编程)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。

在访问8位地址的外部数据存储器(如执行:

MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。

Flash编程或校验时,P2也接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表2。

表2系统P3口的第二功能表

端口功能

RXD(P3.0)

串行输入口

T0(P3.4)

定时/计数器0外部输入

TXD(P3.1)

串行输出口

T1(P3.5)

定时/计数器1外部输入

INT0(P3.2)

外中断0

WR(P3.6)

外部数据存储器写选通

INT1(P3.3)

外中断1

RD(P3.7)

外部数据存储器读选通

RST:

复位输入。

当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。

WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,高有两次有效的PSEN信号。

AT89S51单片机内部构造及功能:

特殊功能寄存器:

特殊功能寄存器的片内空间分存如下图3所示。

这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。

中断寄存器:

各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。

下图为AUXR辅助寄存器。

电源空闲标志:

电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。

存储器结构:

MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。

程序存储器:

如果EA引脚接地(GND),全部程序均执行外部存储器。

在AT89S51假如接至Vcc(电源+),程序首先执行从地址0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。

数据存储器:

在AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。

看门狗定时器(WDT):

WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。

外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。

引脚图详见图3

图3AT89S51单片机引脚图

二、各单元硬件设计

(1)键盘单元单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。

键开关状态的可靠输入:

为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响对照图示的4*4键盘,说明线反转法工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;

如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

键盘共有16个按键,用于方便设定温度。

…,数字按键,输入数字0----9;

设置的确认,修改设置温度时进行确认;

设置的清除,修改设置温度时进行删除;

开启电源

关闭电源

显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管闪烁;

显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管闪烁;

表3系统键盘的按键分布表

P2.0

1

2

3

P2.1

4

5

6

7

P2.2

8

9

F1

F2

P2.3

清除

开启

关闭

确定

P2.4

P2.5

P2.6

P2.7

 

(2)温度控制及超温和超温警报单元当采集的温度经处理后超过规定温度上限时,单片机通过P1.4输出控制信号驱动三极管D1,使继电器K1开启降温设备(压缩制冷设备):

当采集的温度经处理后低于设定温度下限时,单片机通过P1.5输出控制信号驱动三极管D2,使继电器K2开启升温设备(加热器1)。

当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。

(3)温度测试单元采用温度芯片DS18B20。

使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。

(4)温度控制器件电路单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。

当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与电热器接通,电热器加热。

温度慢慢升高。

当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器的弹片打到另一侧,使电热器与电源断开,电热器停止加热。

继电器电路中有一个三极管8050的保护电路,即将一个二极管反向接到三机管的两端。

连接方法如图4所示。

图4单片机控制信号

其原理是:

当继电器突然断电时,继电器产生很大的反向电流。

二极管的作用是将反向电流分流,使流过三级管8050的电流比较小,达到保护三极管8050的作用。

(5)七段数码管显示单元本部分电路主要使用七段数码管和移位寄存器芯片74LS164。

单片机通过I2C总线将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示

当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。

串行数据输入端(A,B)可控制数据。

当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。

当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态,逻辑封装图如图5:

图5逻辑封装图

引出端符号:

CLOCK时钟输入端;

CLEAR同步清除输入端(低电平有效);

A,B串行数据输入端;

QA-QH输出端。

真值表:

表4

表4系统真值表

Input

Output

Clear

Clock

A

B

QA

QB

QH

L

X

H

QAD

QBD

QHD

QAN

QGN

图6数码管实际连线图

(6)接口通讯单元max232资料简介:

该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。

51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。

进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。

在本设计中采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:

第5脚的GND、第2脚的RXD、第3脚的TXD。

这是最简单的连接方法,但是对我来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,串口通讯具体如图7

图7通讯接口连线图

(7)电源输入部分控制系统主控制部分电源需要用5V直流电源供电,其电路如图10所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。

由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。

稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。

本电路使用集成稳压芯片7805解决了电源稳压问题。

如图8

图8电源部分连线图

三、软件设计

(1)程序结构分析

键盘扫描电路及按键处理程序:

键盘的输入按键的识别及进入相应的程序。

温度信号处理程序:

对温度芯片送过来的数据进行处理,进行判断和显示。

数码管显示程序:

向数码的显示送数,控制系统的显示部分。

继电器控制程序:

控制继电器动作

串口通讯程序:

实现PC机与单片机通讯,将温度数据传送给PC机。

(2)主程序

图9主程序图

程序开始的时候先设置初始化,然后就控制数码管显示当前温度。

接着就判断F1、F2按键是否被按下。

按下F1进入温度控制点1的程序、按下F2进入温度控制点2的程序。

程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。

有按键按下的时候进入按键处理程序。

按下“确定”按键后,程序进入判断程序和继电器控制程序。

继电器动作后,程序回到显示当前程序,并开始循环。

(3)程序代码

主程序:

ORG0000H;

DS18B20.ASM

DS18SLEQU41H;

用于保存读出温度的低8位

DS18SHEQU40H;

用于保存读出温度的高8位

DS18FIGEQU8H;

是否检测到DS18B20标志位

A_BIT1EQU31H;

数码管个位数存放内存位置

B_BIT1EQU32H;

数码管十位数存放内存位置

D_BIT1EQU35H 

;

数码管百位数存放内存位置

DS18CD1EQU42H;

DS18CD1-DS18CD8暂存64位ROM

DS18CD2EQU43H;

从低到高

DS18CD3EQU44H

DS18CD4EQU45H

DS18CD5EQU46H

DS18CD6EQU47H

DS18CD7EQU48H

DS18CD8EQU49H

DS1864BEQU4AH

DS18ADSEQU4BH

DS18DQEQUP1.0;

30H,31H,32H,33H:

X个位十位X

MOD7:

MOVSP,#60H

LCALLGET_TEMPER;

调用读温度子程序

LCALLREADCODE

AJMPMOD7

INIT_1820:

;

DS18B20初始化

SETBDS18DQ

CLRDS18DQ 

延时,500US低MC

MOVR7,#250

DJNZR7,$

MOVR7,#150

SETBDS18DQ 

释放总线

LCALLDELAY60US 

15-60US的等待时间

MOVR6,#4

SETDSDQ:

LCALLDELAY60US

JNBDS18DQ,SETDSDQFH;

60-240US内是否有返回信号,为0跳

DJNZR6,SETDSDQ

CLRDS18FIG

RET

SETDSDQFH:

SETBDS18FIG

MOVR7,#250 

MOVR7,#100

RET;

数据处理程序:

TEMP0:

INCA

AJMPTEMP1

TEMPCOV:

MOVA,DS18SL;

数据处理子程序

TEMPCOV

MOVB,#16

DIVAB

JBB.3,TEMP0

TEMP1:

MOV34H,A;

将DS18SL的高四位右移四位,存入34H中(温度值)

MOVA,B;

将DS18SL的低四位X10/16得小数后一位数.

MOVB,#10

MULAB

MOV30H,A;

将小数后一位数.存入30H中

MOVA,DS18SH;

DS18SH中存放高8位数,权重16

ADDA,34H;

34H中存入温度值的整数部分

MOV31H,B;

个位存入31H中

MOVB,#10;

DIVAB;

MOV32H,B;

十位存入32H中

MOV35H,B;

百位存入33H中

MOVA,DS18SH

MOV33H,#10H;

JBACC.7,EXIT7

MOV33H,#00H

EXIT7:

RET

GET_TEMPER:

读出转换后的温度值,并显示

LCALLINIT_1820;

先复位DS18B20

JBDS18FIG,TSS2

RET;

判断DS1820是否存在?

若DS18B20不存在则返

TSS2:

MOVDS18ADS,#0

DS18JX:

LCALLDS18CODP

MOVA,DS18ADS

ADDA,#9

MOVDS18ADS,A

CJNEA,#63,DS18JX

DS18CODP:

LCALLMRCOVT;

转换指定的DS18B20的温度

LCALLMRRDTEDP;

显示温度

TEMP:

LCALLINIT_1820

JBDS18FIG,NEXT4

NEXT4:

MOVDS18ADS,#9

MOVA,#0CCH;

SKIPROM

LCALLWRITE_1820

MOVA,#44H;

温度转换命令

LCALLDELAY1S

LCALLMRRDTEDP

写DS18B20的子程序(有具体的时序要求)

WRITE_1820:

写DS18B20

MOVR5,#8

DS18JXWE:

初始化

CLRDS18DQ

MOVR7,#5

DJNZR7,$;

拉低15US内,写入数据

CLRC

RRCA

MOVDS18DQ,C

LCALLDELAY60US;

持续60US

写完一个位

DJNZR5,DS18JXWE

READ_1820_CODE:

读取CODE64位

MOVR4,#8 

读8次数

MOVR1,#DS18CD1 

低位地址存在R1

DS18JXRD3:

MOVR5,#8 

8位数据

DS18JXRD2:

前两句完成初始化

NOP

NOP 

延时至少1US

上升沿,并在,15US内读数

MOVC,DS18DQ

读时序,最少60US

DJNZR5,DS18JXRD2

MOV@R1,A

INCR1

DJNZR4,DS18JXRD3

读DS18B20的程序,从DS18B20中读出两个字节的温度数据

READ_18200:

MOVR4,#2 

读两次数

MOVR1,#DS18SL 

DS18JXRD1:

DS18JXRD:

DJNZR5,DS18JXRD

DECR1

DJNZR4,DS18JXRD1

READ_1820_1:

读取1位

SETB

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2