电冰箱温度控制系统设计 - 图文

更新时间:2024-03-22 01:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验设计报告

学 院: 自动化工程学院 专 业: 测控技术与仪器

学 生 姓 名:

学 号:

实验设计名称: 测控系统控制原理与设计 实验设计题目: 电冰箱温度控制系统设计

指 导 教 师:

1

目录

一、引言 ........................................................................................................................................ 3 二、电冰箱温度控制系统硬件电路设计 ............................................................................. 4

1. 总体设计方案.................................................................................................... 4 2. 主控制部分方案................................................................................................ 5

2.1 AT89S51主要性能特点 ............................................................................ 5 2.2管脚说明.................................................................................................... 5 2.3下载程序.................................................................................................... 7 2.4 AT89S51单片机的中断系统 .................................................................. 10 2.5 AT89S51单片机的优势 .......................................................................... 12 3.测温模块的选择方案........................................................................................ 13

3.1 DS18B20简介 ......................................................................................... 13 3.2 DS18B20的工作时序 ............................................................................. 16 3.3 DS18B20的连接电路 ............................................................................. 17 4.各单元的设计.................................................................................................... 18

4.1单片机时钟电路及复位电路.................................................................. 18 4.2 键盘......................................................................................................... 20 4.3温度控制及超温和超温警报单元.......................................................... 21 4.4数码管的显示电路.................................................................................. 22 4.5蜂鸣器电路.............................................................................................. 24 4.6接口通讯单元.......................................................................................... 24 5.程序设计............................................................................................................ 26

5.1程序结构分析.......................................................................................... 26 5.2主程序...................................................................................................... 27

三、课程设计总结及心得 ...................................................................................................... 27 参考文献 ...................................................................................................................................... 28

2

一、引言

电冰箱是每个家庭现代化厨房必备的家用电器之一,它是利用电能在箱体内形成低温环境,用于冷藏冷冻各种食品和其他物品的家用电器设备。它的主要任务就是控制压缩机、化霜加热等来保持箱内食品的最佳温度达到食品保鲜的目的,即保证所储存的食品在经过冷冻或冷藏之后保持色、味、水分、营养基本不变。从1918年世界上第一台电机压缩式电冰箱研制成功,随着科学技术的飞速发展电冰箱也在不断的演变和更新尤其是近年来高新技术的迅猛崛起更使得电冰箱的发展日新月异。

现代社会每一个家庭都处在快节奏的生活中人们大多已无闲暇的时间和精力花费在经常性的采购日常生活用品上。因此集中时间大量采购的新型生活方式已为越来越多的人所接受从而决定了大容量电冰箱将是一种国际化的发展趋势。传统的机械式直冷式电冰箱的控制原理是根据蒸发器的温度控制制冷压缩机的启、停,使电冰箱内的温度保持在设定温度范围内。一般,当蒸发器温度升至3~5℃时启动压缩机制冷;当温度低于-10 ~ -20℃时停止制冷,关断压缩机。

随着微机技术的飞速发展,单片机以其体积小、价格低、应用灵活等优点在家用电器、仪器仪表等领域中得到了广泛的应用。采用单片机进行控制,可以使电冰箱的控制更准确、灵活、直观。

本次所设计的就是基于51单片机的电冰箱温度控制系统,以AT89C51单片机为核心控制压缩机的启动和停止,解决了传统电冰箱控制系统存在的不足,可以使控制更准确、更灵活。

本次设计的目的是设计一个温度控制系统,要求:

1. 利用键盘分别控制冷藏室、冷冻室温度(0~5℃,-7 ~ -18℃); 2. 显示各室的温度值;

3. 制冷压缩机运行后若突然断电要有30秒延时; 4. 各个门开后超过2分钟要报警。

本次设计的意义是通过此次设计加深对测控系统原理与设计课程的理解,掌握微机化测控系统设计的思路,了解一般设计过程。

3

二、电冰箱温度控制系统硬件电路设计

1. 总体设计方案

以AT89S51单片机为核心,来实现各个模块的功能。温度传感器模块、键盘输入模块作为系统的输入模块,液晶显示模块、温度控制器模块、报警模块作为系统的输出模块,构成基本电路,原理框图如图2-1所示:

温度传感器(经指导老师建议,使用DS18B20,因其自带A/D转换模块)从设备环境的不同位置采集温度,单片机AT89S51获取采集的温度值,经处理得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器),当采集的温度经处理后低于设定温度下限时,单片机通过三极管驱动继电器开启升温设备 (加热器)。

LED数据显示 MAX232电平转换芯片 PC机 键盘电路 AT89S51 复位电路 时钟电路 报警电路 DS18B20 温度芯片数据传输 输入电源 继电器1 加热器 压缩制冷器 继电器2 图2-1 冰箱控制原理图

当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单

4

片机通过三极管驱动扬声器发出警笛声。

系统中将通过串口通讯连接PC机存储温度变化时的历史数据,以便观察整个温度的控制过程及监控温度的变化全过程。

2. 主控制部分方案

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。

2.1 AT89S51主要性能特点

1、4k Bytes Flash片内程序存储器;

2、128 bytes的随机存取数据存储器(RAM); 3、32个外部双向输入/输出(I/O)口; 4、2个中断优先级、2层中断嵌套中断; 5、6个中断源;

6、2个16位可编程定时器/计数器; 7、2个全双工串行通信口; 8、看门狗(WDT)电路; 9、片内振荡器和时钟电路; 10、与MCS-51兼容;

11、全静态工作:0Hz-33MHz; 12、三级程序存储器保密锁定; 13、可编程串行通道;

14、低功耗的闲置和掉电模式。

2.2管脚说明

5

VCC:电源电压输入端。 GND:电源地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 PDIP封装的AT89S51管脚图

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能:

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)

P3.4 T0(T0定时器的外部计数输入) P3.5 T1(T1定时器的外部计数输入) P3.6 /WR(外部数据存储器的写选通)

6

P3.7 /RD(外部数据存储器的读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。

RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端。

2.3下载程序

7

AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。

1.控制线,共4根。 (1)输入:

RST——复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。

EA/Vpp——片外程序存储器访问允许信号,低电平有效。在编程时,其上施加12V的编程电压。

(2)输入,输出:

ALE/PROG——地址锁存允许信号,输出。用做片外存储器访问时,低字节地址锁存。ALE以1/6的振荡频率稳定速率输出,可用做对外输出的时钟或用于定时。在EPROM编程期间,作输入。输入编程脉冲。ALE可以驱动8个LSTTL负载。

(3)输出:

PSEN——片外程序存储器选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。

2.I/O口:4个口,32根

单片机51系列共有四个8位双向并行I/O通道口,分别是P0、P1、P2、P3,各具有特殊的电路结构,每位均有自己的锁存器、输出驱动器和输入缓冲器。这种结构,在数据输出时可锁存,即输出新的数据之前,通道口上原数据一直保持不变,但对输入信息是不锁存的,因此从外部输入的信息必须保持到取数指令执

8

行完为止。在这四个8位双向并行I/O通道口中,我们应该选择哪一个通道口作为输入信号和输出信号的端口呢?下面我们先来了解一下四个通道口的结构。

(1)P0口介绍

P0口在访问外部存储器时,P0口既是一个真正的双向数据总线口,又是从分时输出8位地址口。它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路

(2)P1口介绍

P1口是专门为用户使用的I/O口,是准双向口,P1口为8位准双向口,每一位均可单独定义为输入或输出口。在编程校验期间,用做输入低位字节地址。P1口可以驱动4个LSTTL负载。

(3)P2口介绍

P2口也是双向口。它是供系统扩展时输出高8位地址。如果没有系统扩展时,也可以作为用户的I/O口使用。P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2=64k,所以89S51最大可外接64kB的程序存储器和数据存储器

(4)P3口介绍

P3口是个双功能口,第一功能作通用I/O口,第二功能是作变异功能用,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以说明。

9

P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。

表2-1 P3口的第二功能

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 功能特征 串行输入口(RXD) 串行输出口(TXD) 外中断0(INT0) 外中断1(INT1) 定时/计数器0的外部输入口(T0) 定时/计数器1的外部输入口(T1) 外部数据存储器写选通(WR) 外部数据存储器读选通(RD) 现在我们已经对四个8位双向并行I/O口有了初步的了解。根据以上的介绍我们知道只有P1口是标准的I/O口,所以我们选用P0口作为数据端口,P0口可逐位分别定义各口线为输入或输出线。 2.4 AT89S51单片机的中断系统

本次设计的报警器是利用外部中断触发单片机中断处理程序,以实现报警的功能。所以,以下内容是对89S51单片机的中断系统的介绍。

1.中断:程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理内部事件的中断服务程序中去;完成中断服务的程序后,CPU继续原来被打断的程序,这样的过程称为中断过程。

2.中断源:能产生中断的外部和内部事件。 89S51有5个中断源:

(1) INT0:外部中断0请求,低电平有效。通过P3.2引脚输入。 (2)INT1:外部中断1请求,低电平有效。通过P3.3引脚输入。 (3)T0:定时器/计数器0溢出中断请求。 (4)TI:定时器/计数器1溢出中断请求。

10

(5)TXD/RXD:串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。 每一个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。当这些中断源请求中断时,相应的标志分别有TCON和SCON中的相应位来锁存。 3.AT89S51中断系统有以下4个特殊功能寄存器: (1)定时器控制寄存器TCON(用6位); (2)串行口控制寄存器SCON(用2位); (3)中断允许寄存器IE; (4)中断优先级寄存器IP。 其中,TCON和SCON只有一部分用于中断控制。通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现各种中断控制功能。 4.中断的响应过程及中断矢量地址 中断处理过程可分为3个阶段:中断响应、中断处理和中断返回。89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志。如查询到某个中断标志为1,则将在接下来的机器周期S1期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。表2既是各个中断源对应的中断矢量地址。 由于89S51系列单片机的两个相邻的中断源中断服务程序入口地址相距只有八个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条常跳转指令LJMP,这样就可以转到64KB任何可用区域了。 表2-2 中断源及其对应的矢量地址 中断源 外部中断0() 定时器/计数器0(T0) 外部中断1() 定时器/计数器1(T1) 串行口中断(RI、TI) 中断矢量地址 0003H 000BH 0013H 001BH 0023H 中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入

11

堆栈保护断点地址从栈顶弹出,装入程序寄存器PC,使程序返回到被中断的程序断点处继续执行。

5.在编写中断服务程序时应注意:

(1)在中断矢量地址单元处存放一条无条件转移指令(如LJMP ××××H),使中断程序可灵活的安排在64KB程序存储器的任何空间。

(2)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。

(3)若要在执行当前中断程序时禁止更高优先级中断,则可先用软件关闭CPU中断或禁止某中断源中断,在中断返回前在开放中断。

2.5 AT89S51单片机的优势

1.性能强大

AT89S51具有完整的输入输出、控制端口、以及内部程序存储空间。与我们通常意义上的微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息的采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多I/O端口连接步进电机对外围设备进行精确操控,具有强大的工控能力。

2.易于学习

AT89S51系列单片机编写程序的基本流程。其语法结构与我们常用的计算机C语言基本相同,不同之处在于增加了控制具体引脚工作的语句和命令,相对于计算机C语言,单片机C语言更简练和明确.可以控制每个引脚的输入输出状态。其主要语句集中在例如:“ifelse”、“while”、“for”等循环与判断语句上,相比计算机C语言更简单。有过计算机C语言学习经历经过一段时间的熟悉就能够熟练进行编程.

使用AT89S51系列单片机编程,可以在没有实物单片机的情况下在普通电脑上进行程序编写甚至是调试工作。一般工作中使用Keil公司开发的51单片机编程软件进行编程,它采用目前流行的开友环境,集编辑,编译和仿真于一体。在该软件上用户可以编写汇编语言或C语言源程序,并利用该软件生成单片机能运行的程序。

12

3.价格低廉

AT89S51芯片价格便宜,适合对大批量的计量仪器进行规模化改造,其单片售价不超过5元。

3.测温模块的选择方案 3.1 DS18B20简介

DS18B20是一种单端通信的数字式温度传感器,这就大大减小了温度测量电路的复杂程度。我们把单片机的一条I/O分配给温度传感器,即可完成温度采集。单片机通过对温度传感器的初始化,发出温度转换命令,写入和读出数据的命令来实现温度的测量。

本系统在温度采集中使用的DS18B20测温原理图如图3-1所示:图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号,送给减法计数器1;高温度系数晶振振荡频率随着温度变化,变化明显,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定。每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中。

图3-1 DS18B20测温原理图

13

DS18B20是一种使用方便的温度传感器,其性能特点如下: (1)具有独特的单线接口方式,只要求一个端口即可实现通信; (2)内含64位经过激光修正的只读存储器ROM;(3)在DS18B20中的每个器件上都有独一无二的序列号;

(4)实际应用中不需要外部任何元器件即可实现测温;

(5)测量温度范围在-55℃到+125℃之间,测量分辨率为0.0625℃; (6)数字温度计的分辨率用户可以从9位到12位选择;

(7)内部有温度上、下限告警设置,用户可分别设定各路温度的上、下限; (8)支持多接点;

(9)可用数据线供电,电压范围:3.0~5.5V;

(10)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

系统所选的是3脚的PR-35封装DS18B20数字温度传感器,引脚功能如表3所示。

表3-1 DS18B20详细引脚功能描述

DS18B20的内部有一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL。高速暂存存储器由9个字节组成,其分配如表3.2所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第1和第2个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第3和第4字节是TH 和TL的拷贝,是易失性的,每次上电复位时被刷新,第5字节为配置寄存器,它主要用来确定温度值的数字转换分辨率。6、7、8字节保留未用,为全逻辑1,第9字节是冗余检验字节。

14

根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预订的操作。

表3-2 DS18B20暂存寄存器分布

表3-3 ROM指令

表3-4 RAM指令

15

主CPU将数据下拉500微秒,然后释放,DS18B20收到信号等待16到60微秒,然后发出60到240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令如表3-3所示,RAM指令如表3-4所示。

DS18B20的温度采集过程:如图3-2所示。

3.2 DS18B20的工作时序

DS18B20的工作时序主要包括初始化时序、写时序、读时序。 初始化时序下:

(1)先将数据线置高电平; (2)延时2ms;

(3)数据线拉到低电平;

(4)延时750us(从480us到960us);

16

(5)数据线拉到高电平;

(6)延时等待。如果初始化成功,在15到60us时间之内产生一个由DS18B20返回的低电平,据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时判断;

(7)若CPU读到了数据线上的低电平后,还要做延时,其延时的时间从发出的高电平算起(第五步的时间算起)最少要480us;

(8)将数据线再次拉高到高电平1后结束。 DS18B20写数据时序如下: (1)数据线先置低电平; (2)延时时间为15us;

(3)按从低位到高位的顺序发送数据(一次只发送一位); (4)延时时间为45us; (5)将数据线拉到高电平;

(6)重复上述步骤,直到发送完整个字节; (7)最后将数据线拉高。 从DS18B20读数据时序如下: (1)将数据线拉高; (2)延时2us; (3)将数据线拉低; (4)延时6us; (5)将数据线拉高; (6)延时4us;

(7)读数据线的状态得到1个状态位,并且进行数据处理; (8)延时30us;

(9)重复上述步骤,直到读取完一个字节。

3.3 DS18B20的连接电路

DS18B20 的常用连接电路图如图3-3所示。

17

图3-3 DS18B20连接电路

4.各单元的设计

4.1单片机时钟电路及复位电路

(1)时钟电路

时钟电路对于单片机系统而言是必须的,因为单片机内部是由各种各样的数字逻辑器件构成,而这些器件又必须按时间顺序完成。所以在管脚的XTAL1和XTAL2引脚外接石英晶体和俩个谐振电容,电容采用2个30u电容,采用12M的石英晶体。这样就可以构成单片机的基本时钟电路,时钟频率为12M。电路图如图4-1所示:

图4-1 单片机时钟电路

(2)复位电路

复位电路是对单片机进行初始化操作,使单片机处于一个确定的初始状态。而要AT89S51复位得在RESET引脚上加5V的高电平信号就可以了。复位电路参数为30U的电解电容和10kΩ的电阻。如图4-2为单片机的复位电路。

18

图4-2复位电路

复位电路的作用是使单片机实行位操作,复位主要操作是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。程序存储器的0003H单元即MCS-51单片机的外部中断0的中断处理程序的入口地址留出的0000H~00002H三个单元地址,仅能够放置一条转移指令,因此,单片机的主程序的第一条指令通常情况下是一条无条件转移指令。除PC之外,复位还对其他一些特殊功能的寄存器也有影响,它们的复位状态如下表所示。利用它们的复位状态,可以减少应用程序中的初始化编程,如表4-1所示,SP=07H,P0-P4的锁存器均为FFH外,其他所有的寄存器均为0.单片机的复位状态不影响片内RAM的状态。

表4-1 寄存器复位状态

寄存器 PC ACC PSW SP DPTR P0`P3 IP IE 复位状态 0000H 00H 00H 07H 0000H FFH 0xx00000B 0xx00000B 寄存器 TMOD TCON TL0 TH0 TL1 TH1 SCON PCON 复位状态 00H 00H 00H 00H 00H 00H 00H 0xx00000B (3)单片机最小系统

根据AT89S51的引脚定义,单片机、时钟电路、复位电路构成了单片机最小系统,如图4-3所示:

19

图4-3 单片机的最小系统

4.2 键盘

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

键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响

在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图示的4*4键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

20

判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

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

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

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

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

开启 : 开启电源

关闭 :关闭电源

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

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

表4-1键盘的按键分布

P2.0 P2.1 P2.2 P2.3 0 4 8 清除 P2.4 1 5 9 开启 P2.5 2 6 F1 关闭 P2.6 3 7 F2 确定 P2.7

4.3温度控制及超温和超温警报单元

当采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1 开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管 D2 ,使继电器 K2 开启升温设备 ( 加热器1) 。当由于环境温度变化太剧

21

烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。具体电路连接如图 4-1 所示。

图4-1具体电路连接图

4.4数码管的显示电路

(1)LED显示器

LED显示器是由若干个发光二极管组成的显示字段的显示器件,当发光二极管导通时,相应的一个点或一个笔画发光,控制不同组合的二极管导通就能显示不同字符。LED显示器有多种形状,如:米字型显示器、点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码管显示器。

七段LED数码显示器是由a、b、c、d、e、f、g、h这8段发光二极管组成的“8”字型显示器件。根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种。所有发光二极管的阳极连在一起称共阳极LED;阴极连在一起

22

称共阴极LED。LED的结构及连接图如图4-2所示

图4-2 LED结构及连接图

(2)LED的工作原理

当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极接高电平时,对应的二极管点亮。因此要显示某字型的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码或字形码。字形码与LED显示器各段的关系如表4-2所示:

表4-2 字形码与LED显示器各段的关系

D7 dp D6 g D5 f D4 e D3 d D2 c D1 b D0 a (3)LED的接口电路 LED数码显示接口电路分静态显示和动态显示两种。

所谓静态显示,就是每个显示器都要占用独立的具有锁存功能的I/O接口,显示的字型码送到接口电路。在字位数较多时,电路比较复杂,需要的接口芯片较多,成本也较高。因此在实际应用中常常应用动态显示器接口电路如图4-9所示。它是把所有显示器的同名字段互相连接在一起,并把它们连到字形口上。每个数码管的公共端受单片机的I/O口控制。CPU送出字段码,只有公共端符合条件的数码管才显示。根据这个原理,采用分时导通的办法,利用人眼的滞留性,达到动态扫描的目的。

23

图4-3 数码管的显示电路

4.5蜂鸣器电路

本次设计采用蜂鸣器电路如图4-11所示作为报警装置。

图4-4 蜂鸣器电路

4.6接口通讯单元

(1)max232资料简介:

该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电

24

平0 +5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。

该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。

(2)主要特点 : 1)、单5V电源工作

2)、 LinBiCMOSTM工艺技术 3)、 两个驱动器及两个接收器 4)、 ±30V输入电平

5)、低电源电流:典型值是8mA

6)、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.28 7)、ESD保护大于MIL-STD-883(方 法3015)标准的2000V

图4-5 通讯接口连线图

51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,

25

我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。

在本设计中采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,串口通讯具体如图4-5。

5.程序设计 5.1程序结构分析

主程序调用了5个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、单片机与PC机串口通讯程序。

图5-1 程序结构图

键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。

温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 继电器控制程序:控制继电器动作

26

串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。

5.2主程序

图5-2 主程序结构图

程序开始的时候先设置初始化,然后就控制数码管显示当前温度。接着就判断F1、F2按键是否被按下。按下F1进入温度控制点1的程序、按下F2进入温度控制点2的程序。程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。有按键按下的时候进入按键处理程序。按下“确定”按键后,程序进入判断程序和继电器控制程序。继电器动作后,程序回到显示当前程序,并开始循环。

三、课程设计总结及心得

本系统主要以AT89S51单片机为主要核心部件,在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不

27

振荡,对系统的快速性要求不高。在本次设计报告中,简单分析了单片机温度控制系统设计过程及实现方法。本系统的测温范围为-20℃~40℃,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。

89S51的时钟最高可达12M,I/O口可达32个,高的时钟频率和丰富的I/O,都为我们实现电路功能提供了非常有利的条件。同时也因为开发环境友好,易用,方便,大大加快本系统设计开发。

此次设计中使用了继电器控制的只是插座电路,因此,该系统的可扩展性很强。随着插入插座的电器的不同,可以实现许多其它功能的电路。

经过此次课程设计,使我更加扎实的掌握了有关测控技术方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手操作,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

但是由于水平有限,我的课程设计难免会有一些错误和误差,还望老师批评指正。

参考文献

[1]孙传友、孙晓斌.测控系统原理与设计.北京航空航天大学出版社.2011.11. [2]胡汉才.单片机原理及其接口技术.清华大学出版社.2004:126-130. [3]孙志良.单片机原理与控制技术.机械工业出版社.2001.

[4]李朝青.单片机原理及接口技术.北京航天航空大学出版社.2000: 208-215. [5]王福瑞.单片微机测控系统设计大全.北京航天航空大学出版社.2000:65-68

28

本文来源:https://www.bwwdw.com/article/9ka8.html

Top