您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页基于单片机温度控制系统

基于单片机温度控制系统

来源:客趣旅游网

基于单片机温度控制系统

重庆三峡学院
单片机课程设计报告书

(基于单片机的温度控制系统)

学院(系):

年级专业:


:

www.taodocs.com

教师职称:

绩:

制作日期2012112

目 录

...。。。..。。。..。。.。。..。。..。。。。。。。..。。.....。。.....。。。....


基于单片机温度控制系统

.............。。。。。.。。.。。.。。。...。。。.....。。。3

...........。。..。。。。。。.....。。..。。.。。.。。。.。。....。。.。。。.

。。。。。...。。.。。。..。。..。。..。。..。。。。.。。。....。。。4

言。。..............。。..。。。。.。。。..。。..。。.。。......。。..。。.......

..。。。.4

1

1

.。。。。。。........。。。。.。。....。。。..。。...。。。。。。........。。。.。。。..

4

1

2

....。。。...。。。..........................。。。。。。。..。。。4

..。。.......。。.。。............。。。..。。.。。..。。5

..。。。..。。。。。.。。。...。。.......。。。。。。。。。。。。5 2 1

2 2 分及 实现

.......

2.2

2

.........。。.。。...。。。...。。。.。。。。。.。。。。。...。。。。。。。。.....

5

2

2.3

器。...。。。.。。..。。......。。........。。。..。。...。。.。。....。。...。。.8

2

3

能。。...。。..。。...。。.............。。..........。。。。。...11

2

3

1

..。。。..。。...。。。.。。。....。。.................。。。.......11

2 32 显示

......。。。。.................。。..........。。....


基于单片机温度控制系统

12

2.3

3

.....。。...。。。。.......。。。。...。。。。。.........。。....12

2.3.4

....。。.......。。.........。。。。..。。.。。。。...。。....13

2.3

5

......。。。。。.。。.....。。...。。........。。。......13

2.3.6

路。...........。。.。。。。...。。。。......。。。。。....。。。.。。.....

14

.....。。..。。...。。.。。。..。。.。。.。。.。。......。。.。。..。。....。。。..

。。。.。。。。.。。..15

3 1 程序流

.15
图。。。。...。。。。。..。。。。 ......。。......。。。。

......

16

3.3 传感
3

图。。。..。。.......。。。.。。.。。。。。。...。。..。。..。。.。。..........17

第四章 仿真与调试..。。...。。。.....。。...........。。。。.。。。17

4.1

试。....。。。...。。.....。。......。。.......。。.。。..。。。.....

...17

4.2

法。。。..。。。。。。。。。.。。。。。..。。.。。..。。........。。。。...17

4

3

..。。.。。.....。。。..。。....。。。。.。。..。。。.。。..。。.。。。..。。。。.。。。。

17

4 仿

4

..。。.....。。...。。.....。。。。....。。。.。。....。。。。。.。。..18


基于单片机温度控制系统

五章

..........。。。。。.。。...。。.。。.。。....。。...。。。。......2

0

....。。..。。。。...。。。...........。。.。。。..。。。。。。。..........。。。。。

...21

基于单片机STCC51的温度显示系统的设计

本设计是基于单片机的温度控制系统,采用DS18B20 温度传感器采

摘要:

线范围内.DS18B20 所测量的环境温度低于设定温度下限时,蜂鸣器

和指示灯发出报警,控制外部加热装置的继电器动作,使外部加热器工

作,直到温度高于温度设定下限时,警报解除。加热装置停止加热.当环

境温度高于温度上限时,蜂鸣器发出报警,控制外部降温装置的电机动

,使外部降温装置工作,直到环境温度低于温度上限,警报解除,降温装

置停止工作(实现对温度在0℃-99℃控制的自动化)。

该温度控制器的显示部分采用液晶显示,具有显示当先温度、温度

上限值、温度下限值的功能。按键部分采用四个按键,每个按键的功能

不同,用过各个按键的配合使用,可以实现切换液晶显示,调节温度上下

限的功能。

基于单片机温度控制系统

关键字:单片机;传感器;温控;DS18b20

第一章

随着电子技术,特别是随大规模集成电路的产生而出现的微型计算
引言

机技术的飞速发展,人类生活发生了根本性的改变。如果说微型计算机

单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠

性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。本课题研究的内容就是以单片机ATc51为主要控制元件,通过温度传感器DS18B20实现对温度的测量,并通过LCD1602直接显示所测温度。

1.1项目概

温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损


基于单片机温度控制系统

失,给生活生产带来许多利的因素,基于ATC51的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好.

12设计任务和要求:
本温度控制器系统可以实现以下功能:
1)采集温度,并通过液晶显示当前温度.

2)通过按键调节温度上下限,并通过液晶显示设定的温度上下限值.

3)控制继电器或电机,从而达到控制外部加热、制冷装置。使环境温度保持在设定温度范围内。

4)具有报警装置。当温度高于上限、或低于下限时,蜂鸣器发出报警声.通过指示灯就可以分辨出是温度过高还是过低。


2.1硬件设计概要
根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节模块、报警电路模块,显示模块.

1 结构图


基于单片机温度控制系统

22各部分及其实现的功能

2.2.1控制芯片STCC51
STCC51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—FlashProgrammable and Eraseable Read Only Memory)的8CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容.主要性能:
MCS—51微控制器产品系列兼容.片内有4KB可在线重复编程的快闪擦写存储器;存储数据保存时间为10年;宽工作电压范围:Vcc可为27V6V;全静态工作:可从0Hz16MHz;程序存储器具有3级加密保护;128*8位内部RAM
32条可编程I/O线,两个16位定时器/计数器;中断结构具有5个中断源和2个优先级,可编程全双工串行通道 ,空闲状态维持低功耗和掉电状态保存存储内容。

2.22 温度传感器DS18B20:
采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换,直接输出被测温度值(9 位二进制数,含符
1DS18B20 的性能特点:

号位).

适配各种单片机或系统机
用户可分别设定各路温度的上、下限
内含寄生电源。口较少,可节省大量的引线和逻辑电路。

2.DS18B20的内部结构
DS18B20内部结构如图1所示,主要由4部分组成:ROM、温度传感器、非挥发的温度报警触发器THTL、配置寄存器。DS18B20 VDD管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。ROM中的位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20位序列号均不相同。ROM的排的循环冗余校验码(CRC=X8X5X41)ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20

基于单片机温度控制系统

目的。

2 DS118B20 的内部结构


3 DS18B20 的管脚排列

3.DS18B20的工作时序

DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操

作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,

3(a)(b)(c)所示。

基于单片机温度控制系统

(a)初始化时序


b)写时序

(c)读时序
4 DS18B20 的工作时序图4DS18B20高速暂存器共9个存储单元,如表所示:

序号

寄存器名称

作 用

序号

寄存器名称


0

温度低字节

16 位补码形式存放

4

配置寄存器


1

温度高字节

567

保留 下载高

2

TH/用户字节1

存放温度上限

8


CRC





基于单片机温度控制系统

3

HL/用户字节2

存放温度下限




4.112位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于00625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。

8

S

S

S

S

S

26

25

24

8

23

22

21

20

2—1

2—2

2-3

2-4

4.2DS18B20有六条控制命令,如表所示:


指 令

约定代码

操 作 说 明

温度转换

44H

启动DS18B20 进行温度转换

读暂存器

BEH


写暂存器

4EH

将数据写入暂存器的THTL 字节

复制暂存器

48H

把暂存器的THTL 字节写到E2RAM

重新调E2RAM

B8H


读电源供电方式

B4H

启动DS18B20 发送电源供电方式的信号给主CPU

223液晶显示模块(LCD1602

从液晶显示器的显示内容来分,可分为段式、字符式、点阵式.字符型LCD1602专门用于显示数字、字母、符号及几个自定义符号。它可以显示2x16个字符。

1).接口定义
注:V0LCD1602的对比度调整端,接正电源时对比度最弱,接地时对比度最强,一般接10K可调电阻的中端,该可调电阻一端接正电源另一端接地.在读状态下,E为高电平时,LCD1602将所需数据送到数据线上;在写状态下,E为下降沿时LCD1602从数据线上读取

基于单片机温度控制系统


管脚号

名称

LEVEL

功能

1

VSS

0V

电源地

2

VDD

+5V

电源正(30V-5.5V

3

VEE


对比调整电压

4

RS

0/1

0:输入指令 1:输入数据

5

R/W

0/1

0:向LED 写入指令或数据1:从LED读取数据

6

E

11→0

使能信号,1 时读取数据,1→0 执行指令

7

D0

0/1

数据总线line0(最低位)

8

D1

0/1

数据总线line1

9

D2

0/1

数据总线line2

10

D3

0/1

数据总线line3

11

D4

0/1


12

D5

0/1










(2)。控制指令

1。清屏

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

0

1

指令代码为01H,向显示DDRAM中写入ASCII代码20H,清除显示

内容,同时光标移到左上角。

2.光标归位


RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

1

X

指令代码为02H,地址计数器AC 被清0DDRAM 内的数据不变,光标移到左上角。X 表示可为0 1.


基于单片机温度控制系统

3.输入方式设置

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

1

I/D

S

该指令设置光标及字符移动的方式,具体设置入下表:

状态位

指令代码

功能

I/D

S

0

0

04H

光标左移1 格,AC 值减1,字符不动

0

1

05H

光标不动,AC 值减1,字符全部右移1

1

0

06H

光标右移1 格,AC 值加1,字符不动

1

1

07H

光标不动,AC 值加1,字符全部左移1

4.显示开关控制


RS

R/W

DB7

DB6

DB2

DB1

DB0

0

0

0

0

D

C

B

保持不变. C 是光标显示状态位,C=1 时光标显示;C=0 时光标消失,光标的

位置由地址计数器AC确定,并随其变动而移动,当AC值超出了字符的显示范围,光标将随之消失。

B是光标闪烁显示状态位,B=1时光标闪烁;B=0时光标不闪烁.

5。光标、字符移位

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

1

S/C

R/L

X

X

执行该指令将产生字符或光标向左或右滚动一个字符位,如果定时间隔地执行该指令,将产生字符或光标的平滑滚动。

具体设置如下:

状态位

指令代码

功能

S/C

R/L


基于单片机温度控制系统

0

0

10H

光标左滚动

0

1

14H

光标右滚动

1

0

18H

字符左滚动

1

1

1CH

字符右滚动

6。功能设置

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

1

DL

N

F

0

0

该指令用于设置LCD1602的控制方式.

DL用于设置与计算机的接口方式,DL=18位数据总线方式;DL=04位数据总线方式,其高4位有效,在该方式下8位指令或数据将按先高4位后低4位的顺序分两次传送.

N用于设置显示的字符行数,N=1为两行,N=0为一行。

F用于设置显示字符的字体,F=15x10点阵字体,F=05x7点阵字

体。

7. CGRAM 地址设置

RS










0










片机对数据的操作是对CGRAM的读/写操作。

8.DDRAM 地址设置

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

1

A6

A5

A4

A3

A2

A1

A0

该指令将7DDRAM地址写入地址指针计数器AC内,随后,单片机对数据的操作是对DDRAM的读/写操作。

9.BFAC


RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

1

BF

AC6

AC5

AC4

AC3

下载

高清

AC0

BF LCD 的忙闲标志位,BF=1 时为忙,不能对其进行操作BF=0


基于单片机温度控制系统

时为闲,可以对其进行操作。而另外的D6D0的值表示CGRAMDDRAM中的地址。

10.写数据到CGRAMDDRAM

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

1

0










先设定CGRAM DDRAM 地址,再将数据写入D7D0 中,以使LCD

显示出字符,也可将自创的字符写入CGRAM.

11.CGRAMDDRAM读取数据

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

1

1










先设定CGRAM DDRAM 地址,再读取其中的数据。 23 主要电路及功能

它们决定了单片机的工作时间精度为1 微秒。ATC51单片机作为整个

硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。该单片机为51系列增强型8位单片机,它有32I/O口,片内含4KFLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1μS.使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路。


基于单片机温度控制系统

4单片机模块

线是背光电源线VCC15脚)字符型LCD 通常有14 条引脚线或16条引脚线的LCD和地线GND(16),其控制原理与14脚的LCD多出来的22.3.2。显示电路

完全一样。

5 显示电路

2.3.3.温度传感器电路

温度检测控制模拟电路图DS18B20原件及其连线如图温度此传感器

上显示的温度同步显示到液晶显示器上,并有加温,减温按钮.

基于单片机温度控制系统

6温度检测控制模拟电路

23.4。升温和降温调节电路

通过控制外部加热装置的继电器动作,使外部加热器工作来达到升

温效果.或控制外部降温装置的电机动作,使外部降温装置工作来达到降

温效果.

7 加温和降温控制电路

2.35. 温度上下限调节电路

通过按键控制键选着调节对象,通过上升下降调节值大小,控制开关,


基于单片机温度控制系统

温开关,降温开关,复位开关分别为,k1,k2k3K4,开始显示的是当前温度,K1开关,用来控制进入温度上限,下限的调节界面。按k1,一次进入三个界面。按K2为加1开关,按一下,加1k31开关,按一下,减1K4开关用来复位返回到当前温度。

8 上下限调节电路

236。报警电路电路

扬声器

9 报警指示灯

10 报警

基于单片机温度控制系统

开始

第三章软件系统的设计S51寄存器初始化

N

3.1程序流程图 18b20存在?

Y

温度转换命令

开始

读取温度

总线置1并延时

温度数据处理温度显示

总线置1

返回

DS18B20初图

温度低于低温下限,低



基于单片机温度控制系统

温报警

32液晶显示流程图

上电
设定进入点

进入设定点控制字

显示数据

3.3温度传感器流程图




基于单片机温度控制系统

数据口复位

上电

延时

单片机拉低总线

初始化

延时

忽略ROM指令

读暂存器指令

释放总线

延时,传感器

发生存在脉冲

数据处理

LCD显示

41硬件调试 首先调试液晶程序。单片机STCC51P2口接液晶数据口,根据

液晶手册,将RS1RE借口接高电平;RSR/WEN接口接单片机

P0^3P0^4,P0^5,单独调试液晶程序,将hex文件下载到单片机,看看

是否在液晶第一排是否显示“温度”,在第三排是否显示“液晶温度显示"

然后根据DS18B20的手册书写程序,将液晶程序设为头文件,若DS18B20程序无误,则在液晶的第一排首位开始会显示“温度”,第二排的第三个字符开始会显示温度值XX℃,第三排不显示,第四排首位开始显示“液晶温度显示"。如果程序有误,则再看看芯片资料和程序的书写是否有出入,如有错误则再更正,直至显示正确为止。

4.2软件电路故障与解决办法

基于单片机温度控制系统

1.以断点或连续方式运行时,目标测试系统没有按照规定的功能进行操作或什么结果也没有,可能是由于程序转移到意外之处或在某处死循环所造成的.

2。不响应中断Cpu不响应中断或者是不响应某一个中断这种错误的现象是连续运行时不执行中断程序的操作.当断点在中断入口或者中断服务程序中时碰不到断点。错误可能由中断寄存器(IEIP)的初值设置不当,使CPU没有开放中断或者不许某个中断源请求,或者对片内的定时器、串行口等特殊功能的寄存器和I/O接口程序有错误,造成中断没有被激活.又或者某一中断程序不是RET指令作为返回主程序的指令,CPU虽然已经返回到主程序但内部中断状态寄存器没有被消除,从而不影响中断,或者外部中断源的硬件故障使得外部中断请求无效。

43 软件调试方法

调试法、综合调试法等。

软件调试所使用的方法有:计算程序的调试方法、I/O 处理程序的
1、计算程序的调试方法:

试时,用仿真器写命令。将命令数据写入计算程序的缓冲单元,然后从计算程序开始运行到结束,运行结果与计算的正确数据做比较,如果对有的测试数据进行测试没有发现错误,则该计算程序调试成功。如果发现结果不正确,改用单步运行的方法找出错误所在。如果是计算错误,则需 如果是局部的指令错误,
修改局部程序就可以了。要修改重新设计程序,如果是用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行中暴露出来。

2I/O接口处理程序的调试:

对于A/D转换器一类的I/O接口处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方法进行调试。

3。综合调试:


基于单片机温度控制系统

在完成了各个程序模块的调试工作之后,就可以进行系统的综合调试。综合调试采用全速运行或断点运行方式,这个阶段的主要工作是检测系统里面遗留的错误以及提高系统的动态性能和精度。在综合调试阶段,应该注意系统的晶振频率工作,使系统全速运行目标程序,实现预定功能技术指标之后,就可以将软件固化,然后在运行固化的目标程序,成功后目标系统就可以脱机运行。

44仿真后,显示成果:


11调节温度上下限


基于单片机温度控制系统

12 显示当前温度

基于单片机温度控制系统

13温度高于温度上限,高温报警灯亮,蜂鸣器鸣叫


第五章总结
基于ATC51单片机的温度控制系统的设计,对整个硬件电路和软件程序设计做了分析,文中介绍了温度控制的现状及发展,介绍了仿真软件proteuskeil的基本知识,学习了proteus的仿真方法和步骤,介绍了温度控制器的设计方案选择及原理介绍,加深了51单片机的知识了解,介绍51单片机的结构、特点等。并学习了温度传感器DS18B20,设计软件仿真,更直观的反应设计的正确性。温度控制利用在很多领域,在一些人不能直接进入的场所,利用单片机控制的温度控制,可以设置并控制其中的温度,温度控制还可以利用在温室中,这样就可以控制温室中的温度,当温度超过所要求的温度时,可发生报警.单片机的功能都为我们实现电路提供了非常有利的条件,同时也为开发环境带去了简单,易用,方便,大大加快本系统设计开发。总之温度控制器用在很多领域。从
本次实习中,发现自己还存在许多的不足,对汇编程序不是很熟悉,不

基于单片机温度控制系统

会灵活运用,导致代码读起来有点困难。还有对数据手册中的时序图理解不是很透彻,以后我会通过实践和理论结合来弥补自己的不足之处。

参考文献:
[1]谢辉主编。单片机原理及应用.化学工业出版社.20108,第一版[2]曹巧媛主编。单片机原理及应用(第二版)。北京电子工业出版社,2002[3]何力民编。单片机高级教程.北京航空大学出版社,2000
[4]陈强等.传感器技术与应用。高等教育出版社,2010
[5]王锦标,方崇智.过程计算机控制。清华大学出版社,1997:36~40

6]胡寿松.自动控制原理,北京:国防工业出版社,2000103-124

2025
7]刘伯春.智能PID 调节器的设计及应用、电子自动化,1995:(3):

西安电子科技大学出版社,2007
10]赵娜,赵刚,于珍珠等。基于51单片机的温度测量系统[J]。微计算机信息,20071-2
附录:

附录一

系统整体电路图:


基于单片机温度控制系统

附录二

程序代码:

基于单片机温度控制系统

;-————--——--—--—-——--——--—--—-—————————-———-——————
;简单功能说明:一个显示实时温度的小系统,可以自行设
;定高温报警和低温报警值,实现温度控制电机带动外围器
;件功能。



—----———-—————---—-————------—-———--———--——————--

DQEQU

P1.7

;DS18B20 控制口

RS

EQU P24

RW

EQU P2.5

E

EQU P2.6

LCD

EQU P0

FLAG EQU

30H

GEWEI EQU

29H

TEMPH

EQU

22H ;温度高字节

TEMPLEQU

23H ;温度低字节

TEMP EQU

24H

K1 EQU

P3.0

K2 EQU

P3.1

K3 EQU

P3.2

K4 EQU

P3.3


===============================================

MAIN

MOV TEMP_TH,#25


MOV TEMP_TL,#01


基于单片机温度控制系统

ACALL INIT_LCD;初始化液晶
ACALLWR_THL ;写入高温限值和低温限值寄存器
ACALLWR_PROM
ACALLRE_PROM ;从EEPROM中返回高温限值和低温限值ACALLRESET
;初始化1820JB FLAG,LOOP

ACALL ERROR

;报错

LOOP

ACALL READ_T

;1820 读取温度

ACALL DISP_TEMP

;液晶显示实时温度

ACALL KEYSCAN

;键盘设定高温限值和低温限值

ACALLTEMP_COMP

JMP

LOOP

;=============

18b20

READ_TSETB DQ ====================

READ_T1

MOVA#0CCH
ACALLWR_1820
MOVA,44H
ACALLWR_1820
ACALLRESET
MOVA,#0CCH
ACALLWR_1820
MOVA,0BEH
ACALLWR_1820
ACALLREAD_1820

RET

;=========把高温和低温限值写入寄存器=================


基于单片机温度控制系统

WR_THL JBFLAG,WR_HL
RET
WR_HL: ACALLRESET
MOVA,#0CCH
ACALLWR_1820
MOVA,#4EH
ACALLWR_1820
MOVATEMP_TH
ACALLWR_1820
MOVA,TEMP_TL
ACALLWR_1820
RET

;==========

WR_PROM:ACALL RESETEEPROM=================

ACALL WR_1820

RET

;========EEPROM的值返回到高温和低温限值寄存器========RE_PROM
ACALLRESET
MOVA#0CCH
ACALLWR_1820
MOVA,#0B8H
ACALLWR_1820
RET
=========== 1820==================================

基于单片机温度控制系统

RESET:SETB DQ
NOP
CLR DQ
MOVR5,250
DJNZR5,$

SETB DQ
NOP

MOVR5,#25H
RESET1JNB DQ,FLAG1
DJNZR5RESET1

JMP

NDQ

FLAG1: SETB FLAG

DJNZ R5$ MOV R5#100

SETB DQ

NDQ

CLR

FLAG

ACALLERROR
RETU:SETB DQ
RET

;=============18b20写字节========================

WR_1820:
MOVR6,#8

CLR

C


WR1: CLR

DQ

MOV R5,7


基于单片机温度控制系统

DJNZR5,
RRC A
MOVDQC
MOVR5,25
DJNZR5,$
SETB DQ
NOP
NOP
DJNZR6WR1
SETB DQ
RET

;==============

18b20

======================

READ_1820

MOV R2,#4
MOV R1,TEMPL

RE2SETB RE1MOV R6,#8

CLR DQ

CLR

C

NOP
NOP

SETB DQ
MOVR5,#9
DJNZR5,

MOVC,DQ
MOVR5,#24

DJNZ R5$

RRC

A

基于单片机温度控制系统

DJNZR6RE2
MOVR1,A
DEC R1
DJNZR2,RE1
RET
;===========转换数据=============================

TURN:MOV XIAOSHU,TEMPL ;保存TEMPL值,后面用于取低4位转换小数部分
MOVATEMPL
MOVC,16 ;22H 的位寻址
RRC A
MOVC,17

RRC

A

MOV C18

MOV C,19

RRC A RRC A

MOV XIAOSHU,A

RET
========键盘扫描=============================

KEYSCAN
JBK1,RETUN ;按下K1,进入键盘扫描
ACALLDELAY20

JNB

K1,

ACALL CLR_LCD

;清屏

ACALL DISP_THL ;显示高温限值和低温限值

ACALL SET_HL

;设定限值

ACALL WR_THL

;把高温限值和低温限值写入RAM


基于单片机温度控制系统

ACALL WR_PROM

;限值复制到EEPROM

RETUN:

RET

;-—-———-—-——-

-——————-——--—-—--——-—

SET_HL

JBK1KEY4

ACALLDELAY20

JNB

K1,$

;标志位,标志设定高温限值或低温限值

CPL

20H.1

JB20H1,SET_H

JMP

SET_L

--———--————-—

-—-—-—-—--—--—-————-—-——

SET_H

KEY2H: JNB K1SET_L ;高温限值与低温限值间设定转换
ACALL TH_SHAN ;光标闪,进入设定

ACALL DELAY20

JNB

K2,$

INC

TEMP_TH

MOVATEMP_TH

CJNE A,#99A0

MOVTEMP_TH,00

A0:ACALLDISP_THL

KEY3H

JB K3KEY2H

;按下K3,值减1

ACALL DELAY20

JNB

K3,$

DEC

TEMP_TH


基于单片机温度控制系统

MOVA,TEMP_TH
CJNE A,#0A1
MOVTEMP_TH,#99
A1:ACALLDISP_THL

JMP

SET_H

-—————--——-——

-——--——-—-—-—---———-----—————
SET_L:
ACALLTL_SHAN
KEY2L:JNB K1SET_H;高温限值与低温限值间设定转换 JNB K4,EXIT
JBK2,KEY3L ;按下K2,值加1

ACALLDELAY20

JNB

K2,$

MOV ATEMP_TL CJNE A,#99,A2 INC TEMP_TL

A2KEY3L: JB K3,KEY2L ACALL DELAY20

JNB

K3,$

DEC

TEMP_TL

MOVA,TEMP_TL
CJNE A,#0A3
MOVTEMP_TL,99

A3 ACALLDISP_THL
JMP SET_L

;--—-—-—————--——--—----

KEY4: JNB

K4EXIT

K4 用于退出设定

JMP

SET_HL

EXITACALL DELAY20


基于单片机温度控制系统

JNB

K4$

;设置液晶光标不显示、不闪烁

MOV

LCD,00001100B

ACALL

WR_COMM

ACALLCLR_LCD
ACALLDISP_TEMP
RET

;==============

======================================

TEMP_COMPCLR

P10

;对所用端口清零

CLRP11

CLR

P12

CLR

P1.3

CLR

P14

SUBB ATEMP MOV A,TEMP_TH CLR P15

ACALL DIANJI2

RET
;=============启动电机========================

;电机接口是P14位,因为P17是温度传感器的控制口;避免冲突,电机接口按位控制
DIANJI: JCDIAN0
RET
DIAN0MOVR0,#4
DIAN1

SETB

P14

SETB

P10

CLR

P11


基于单片机温度控制系统

ACALLDELAY
CLR P10
SETB P1.1
ACALLDELAY
DJNZR0DIAN1
CLR
P10 CLR P1.1
CLR P14
RET
DELAY: MOVR5,5
DLY1 MOVR6,#10
DLY2:MOV R7,#50
DJNZR7,$
DJNZR6DLY2

DJNZ R5,DLY1

=============================================
RET

DIANJI2JC DIAN2

DIAN2: DIAN3:

SETB

P1.5

SETBP1.0
CLR P13
ACALLDELAY1
CLR P10
SETB P13
ACALLDELAY1
DJNZR0,DIAN3

CLR

P1.0

CLR

P13

CLR

P1.5

基于单片机温度控制系统

RET
DELAY1: MOVR5,#5
DLY3 MOVR6,#10
DLY4 MOVR7#50
DJNZR7,$
DJNZR6DLY4
DJNZR5,DLY3
RET
;============清屏=============================

CLR_LCD
MOVLCD,#80H
ACALLWR_COMM
MOVR0,#16

CLR1: MOV LCD#’ ’

ACALL WR_DATA DJNZ R0,CLR1

CLR2: MOV LCD#’ ’

ACALLWR_DATA
DJNZR0,CLR2
RET
;===============报错============================

ERROR: MOVLCD,80H
ACALLWR_COMM
MOVDPTR,#ERORTAB
ACALLDISP0
RET

ERORTAB

DB ’INIT ERROR!’,0H

================温度标志===================


基于单片机温度控制系统

DISP_C:MOV LCDA
ACALL WR_COMM
MOVLCD,#0DFH
ACALLWR_DATA
MOVLCD,#’C'
ACALLWR_DATA
RET

;=================数码显示======================

SHUMAMOVDPTR,#SHUTAB
MOVCA,@A+DPTR
MOVLCD,A
ACALLWR_DATA

RET
SHUTAB: DB 30H,31H,32H33H34H DB 35H,36H37H38H39H

DISP_TEMP: ACALL TURN

MOV

LCD,#80H

ACALL WR_COMM
MOV DPTR,CURRENT
ACALL DISP0

MOVLCD,#0CAH
ACALL WR_COMM

MOV LCD,2EH

;小数点


ACALL

WR_DATA

MOV A,0CCH

ACALL DISP_C

;温度标志


基于单片机温度控制系统

-——----—-———————-—-—---—--—--- MOVAXIAOSHU
MOVDPTR,XIAO
MOVC A,@A+DPTR
MOVXIAOSHU,A
MOVATEMP
MOVB,#10
DIV AB
MOVSHIA
MOVGEWEI,B

MOVA,XIAOSHU
MOVLCD#0CBH
ACALLWR_COMM

ACALL SHUMA
MOV ASHI MOV LCD#0C8H
ACALL SHUMA

RET
CURRENT:DB’Tempreture Now: ’0H

XIAO:DB 00H00H01H,01H02H,03H,03H,04H DB05H,05H06H06H,07H,08H08H,09H

;================

=============================

DISP0: MOV R1#0

NEXT: MOV

A,R1


MOVC

A,@A+DPTR

JZ RETT

MOV

LCD,A


基于单片机温度控制系统

INC

R1

ACALL

WR_DATA

JMP

NEXT

RETT:

RET

==========

======================

DISP_THL:
MOVDPTR,#SETTHL
MOVLCD,#80H
ACALLWR_COMM
ACALLDISP0

MOVDPTR#THL
MOVLCD,#0C1H

;—-—-—————-—————-—-—-———-—--ACALL DISP0 ACALL WR_COMM

F5_THL:

DIV AB

MOVSHIA //SHI
MOVGEWEI,B //GE

MOVASHI
MOVLCD#0C4H
ACALLWR_COMM
ACALLSHUMA
MOVAGEWEI
ACALLSHUMA
MOVA,#0C6H

ACALL DISP_C
;—------—-—--———-MOV ATEMP_TL



基于单片机温度控制系统

MOVB#10
DIV AB
MOVSHIA //SHI
MOVGEWEI,B //GE

MOVA,SHI
MOVLCD,#0CCH
ACALLWR_COMM
ACALLSHUMA
MOVAGEWEI
ACALLSHUMA
MOVA,#0CEH
ACALLDISP_C
RET

SETTHL

THLDB 'TH: TL:’,0H DB 'Set TH/TL:’,0H

INIT_LCD: ;==========

MOV LCD,#00000001B
ACALLWR_COMM
MOV LCD,00111000B
ACALLWR_COMM
MOV LCD#00001100B
ACALLWR_COMM
MOV LCD,#00000110B
ACALLWR_COMM
RET

============TH

============================== TH_SHAN:


基于单片机温度控制系统

MOV LCD,#00001111B
ACALLWR_COMM
MOVLCD,#0C5H
ACALLWR_COMM
RET

;=============TL

=============================

TL_SHAN
MOV LCD#00001111B
ACALLWR_COMM
MOVLCD,#0CDH
ACALLWR_COMM
RET

============================

WR_COMM
;============

ACALL CHECK_BF

SETB E
RET

==============

==============================
WR_DATA:
SETBRS
CLRRW
CLRE
ACALLCHECK_BF

SETB E

RET

;============



基于单片机温度控制系统

============================
CHECK_BF:
MOV LCD, 0FFH
CLR RS
SETBRW
CLR E
NOP
SETBE
JB LCD7CHECK_BF
RET


======================================================

DELAY20

DLY: MOV R6,#100

DJNZ R6,$ MOV R5#50

END
==========================================

附录三

元器件清单:

元件名

电路中编号

元件名

电路中编

大小


基于单片机温度控制系统





单片机

ATC51

-

1

晶振

X1

12M HZ

1

电动机

MOTOR—S TEPPER

-—

1

电容

C2/C3

20uf

2

按键

K1/K2/K3/K 4


4

加热器

SIL-100-0 2

——

1

扬声器

SOUNDER

-—

1

电阻

R3

4.7K

1

电阻

R5/R6

1K

2

液晶
LCD1602

LCD1602

-

1

温度传感器

DS18B20

-

1

电动机驱动器

ULN2003 A

——

1

液晶显示驱动器

RESPACK-8

-




LED-RED

-—

2






Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务