毕业设计(论文)基于AT89C51的智能温度预警系统的设计

上传人:痛*** 文档编号:44458034 上传时间:2021-12-05 格式:DOC 页数:57 大小:1.45MB
收藏 版权申诉 举报 下载
毕业设计(论文)基于AT89C51的智能温度预警系统的设计_第1页
第1页 / 共57页
毕业设计(论文)基于AT89C51的智能温度预警系统的设计_第2页
第2页 / 共57页
毕业设计(论文)基于AT89C51的智能温度预警系统的设计_第3页
第3页 / 共57页
资源描述:

《毕业设计(论文)基于AT89C51的智能温度预警系统的设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51的智能温度预警系统的设计(57页珍藏版)》请在装配图网上搜索。

1、毕业设计(论文)课 题 名 称 基于 AT89C51 的智能温度 预警系统的设计 学 生 姓 名 学 号 系、年级专业 信息工程系 07 级通信工程 指 导 教 师 职 称 讲 师 2011 年 5 月 25 日I摘 要本设计系统地介绍了基于AT89C51 的智能温度预警系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。DS18B20多点温度测量系统是以AT89C51单片机作为控制核心,数字温度传感DS18B20为控制对象,运用C语言编程实现系统的各种功能。该系统由单片机最小系统、传感器电路、报警电路、LCD显示电路、行列式键盘电路、电源电路六大部分组成。借助PROTEUS软件,实现了

2、系统电路设计和仿真。它适用于电力工业、煤矿、森林、火灾、高层建筑等场所,还可以用于环境恶劣的工业控制现场。通过DS18B20的单总线技术,系统实现了对远程环境的温度测量与监控。关键词:DS18B20;仿真;测量系统;PROTEUS;单片机IIAbstractThe design systematically introduced the composition, the design, the circuit theory, the program design and the system simulation process of the multipoint temperature me

3、asurement system which based on the AT89C51.The AT89C51 intelligence temperature measurement system, the AT89C51 MCU as its control core, digital temperature sensing DS18B20 as its control target, use the C-language programming system to realize the functions. The system composed of six major compon

4、ents, which are the smallest MCU system, the sensor circuit, the alarm circuits, the LCD display circuit, the keyboard, the power circuit. The system realizes the circuit design and simulation with PROTEUS software. It applies to the power industry, coal, forest, fire, high-rise buildings and other

5、places, it can also applies to industrial control field with the bad environment. Through the monobus technology of the DS18B20, the system achieves the measurement and monitoring of the long-range environmental temperature. Key words: DS18B20;simulation;measurement system;PROTEUS;MCU目 录摘 要.IABSTRAC

6、T .II第 1 章 绪 论.11.1 课题来源.11.2 课题研究的目的意义.11.3 国内外现状及水平.11.4 课题研究内容.2第 2 章 统方案设计.32.1 基于模拟温度传感器的设计方案.32.2 基于数字温度传感器的设计方案.42.3 方案论证.4第 3 章 电路设计.63.1 工作原理.63.2 DS18B20 与单片机接口技术.73.3 键盘电路设计.133.4 显示电路设计.143.5 报警电路设计.153.6 电源电路设计.16第 4 章 程序设计.184.1 系统资源分配.184.2 系统流程设计.184.3 程序设计.24第 5 章 系统仿真.345.1 PROTEUS

7、 仿真环境介绍 .345.2 原理图绘制.355.3 程序加载.355.4 系统仿真.365.5 仿真结果分析.39第 6 章 PCB 板设计 .406.1 PCB 板设计.406.2 PCB 板制作方法.42总 结.45参考文献.46附 录.47致 谢.52邵阳学院毕业设计(论文)1第 1 章 绪 论1.1 课题来源温度是国际单位制七个基本量之一,与人类的生活环境息息相关。它是一种在生产、科研、生活中需要测量和控制的重要物理量,同时也是一种最基本的环境参数。在实验研究和工业生产中,在机械、电力、化工、生物、冶金、农业、实验等行业和人们的家居生活里经常需要对环境温度进行检测和控制。例如,汽车发

8、动机气缸的温度必须保持在一定的范围内;在合适温度微生物的新陈代谢才能正常进行。许多化学反应在不同的温度下会生成不同的反应物;温度过高,粮仓的粮食就会霉烂变质,电子设备的工作效率会降,低使用寿命会缩短,饭菜会变馊。由此可见,研究温度测量工具有着极其重要的实用价值。随着现代嵌入式技术和传感器技术的发展,作为各种信息的采集、处理、传输的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本课题结合现在嵌入式技术和传感技术设计的智能温度预警系统就是满足生产生活中人们对温度测量的需求。1.2 课题研究的目的意义随着

9、科学技术的高速发展,科技的进步带动了传感技术的发展,自动控制设备的性能和性价比发生了巨大的变化,新世纪是嵌入式技术迅猛发展的时代,传感技术也成为当今科技的主流之一,被广泛地应用于生产和生活中。基于 AT89C51 的智能温度预警系统的设计,其目的在于:(1) 掌握数字温度传感器 AT89C51 单片机的工作原理、和使用方法,利用C 语言编写单片机程序。(2) 掌握数字温度传感器 DS18B20 的工作原理、和使用方法,利用 C51 对系统进行编程。(3) 本课题综合了现代嵌入式技术和传感器技术专业领域方面的知识,可全面提高学生的理论水平和动手能力。1.3 国内外现状及水平传感器属于信息技术的前

10、沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经邵阳学院毕业设计(论文)2历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器;数字温度传感器。目前,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。1.4 课题研究内容本设计研究的主要内

11、容如下:(1)本设计以 AT89C51 单片机为控制系统,来实现对温度的监测、处理等功能。在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。(2) 在比较各元器件的特点和功能后,选择合适的元器件。(3) 设计硬件系统。设计主要包括:温度传感器采集温度数据、单片机处理温度数据、LCD 显示温度、键盘设置参数、报警电路等模块。(4) 设计软件系统。本以 C 语言为设计语言,用 Source Insight 软件编辑代码,采用 Keil 软件编译程序。本设计的重点分为软件和硬件两个方面。其中硬件开发的难点在于各种元器件的选择

12、和使用。软件开发的难点在于温度传感器的时序。邵阳学院毕业设计(论文)3第 2 章 统方案设计2.1 基于模拟温度传感器的设计方案该方案由 AD590 模拟温度传感器、运算放大器、AD 转换器、51 单片机、键盘、液晶显示屏、集成功率放大器、报警器组成,如图 2.1 所示。本方案采用 AD590 模拟温度传感器检测温度,传感器将测量的温度变换转换成变化的电流,再通过模拟电路将电流的变化转换成电压的变化,使用运算放大器将信号进行适当的放大,最后通过 AD 转换器将模拟信号转换成数字信号,传送给AT89C51。AT89C51 将温度值进行处理之后用液晶显示屏显示 ,有报警信号时,信号通过集成功放放大

13、,传给报警器。图 2.1 基于模拟温度传感器的设计方案本方案使用的测温元件的性能指标如下:(1)模拟温度传感器的测温范围为55+150。(2)模拟温度传感器的电源电压范围为 4V30V,电源电压可在 4V6V 范围变化,电流 变化 1mA,相当于温度变化 1K。模拟温度传感器可以承受 44V 正向电压和 20V 反向电压,因而器件反接也不会被损坏。单 片 机AD590AD590LCD显示电路集成功放报警器44键盘AD590AD590运算放大器多路选择器A/D转换邵阳学院毕业设计(论文)4(3) 输出电阻为 710MW。 (4) 精度高,模拟温度传感器共有 I、J、K、L、M 五档,其中 M 档

14、精度最高,在55+150范围内,非线性误差为0.3。 集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便、温度测量范围广等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为 10mV/K,温度 0时输出为 0,温度 25时输出 2.982V。电流输出型的灵敏度一般为 1mA/K。2.2 基于数字温度传感器的设计方案该方案以数字温度传感器 DS18B20 为温度测量元件,使用 AT89C51 单片机作为控制核心,使用 4 个 DS18B20 进行温度检测,通过 44 键盘设置正常温度的最大值,采用 12864 液晶显示电路,使用 LM38

15、6 作为功率放大器报警电路中的喇叭。 图 2.2 基于数字温度传感器的设计方案本课题采用 DS18B20 数字温度传感器作为测为测温元件,它具有如下特点:(1) 测量温度范围在55C 到125C 之间。(2) 每个 DS18B2 都有唯一的 ID。(3) 912 位分辨率可调。(4) 只要一个端口即可通信。(5) 实际应用中不需要外部接任何元器件即可实现测温。(6) 内部有温度上、下限告警设置。单 片 机DS18B20DS18B20LCD显示电路集成功放报警器44键盘DS18B20DS18B20邵阳学院毕业设计(论文)52.3 方案论证本设计要求测温范围为-20+80,精度为 0.5,测量的点

16、数为 4。采用LCD 显示,显示数据每秒刷新 1 次。综合分析数字温度传感器和模拟温度传感器的性能指标,以上两个方案都能实现设计的需求。方案一采用了 DS18B20 数字温度传感器。它能在现场采集温度数据,直接将温度物理量转换为数字信号并以总线方式传送到单片机,再由单片机进行数据处理,并且可根据实际要求通过简单的编程实现 9-12 位的数字式读取方式,因而使用数字温度传感器可使系统结构更加简单,可靠性更高,大大提高系统的抗干扰能力。数字温度传感器体积小、经济、使用方便灵活、测试精度高、较高的性能价格比,有CRC 校验,系统简明直观,适合于恶劣环境的现场温度测量,如: 测温类消费电子产品、环境控

17、制设备或过程控制等。方案二采用 AD590 模拟温度传感器,转换结果需要经过 AD 转换器和运算放大器。它虽然成本低,控制简单,但是后续电路复杂,而且需要进行温度标定。AD590 集成温度传感器输出为电流,且输出信号较弱,所以需要后续放大及 A/D 转换电路。如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。方案一程序设计稍微复杂一些,使用有大量的资料可以查询,该方案完全可行,经济上也有很大的优势,同时体现了技术的先进性。综上所述,本设计采用方案一进行系统设计。邵阳学院毕业设计(论文)6第 3 章 电路设计3.1 工作原理 基于 AT89C51 的智能温度预警系统以 A

18、T89C51 为控制芯片,以 Keil 软件为系统开发平台,用 C51 进行程序设计,以 PROTEUS 作为仿真软件。系统主要由传感器电路、单片机最小系统、键盘电路、液晶显示电路、报警电路、电源电路组成,系统原理图如图 3.1 所示。图 3.1 系统原理图DS18B20 数字温度传感器,每个 DS18B20 有自己的序列号,因此本系统可以在一根总线上挂接了 4 个 DS18B20,通过 CRC 校验,对各个 DS18B20 的 ROM 进行寻址,地址符合的 DS18B20 数字温度传感器才作出响应,接收主机的命令,向主机发送转换的温度。采用这种寻址技术,单片机使用一个 IO 口即能实现对四点

19、环境的温度数据进行采集,使系统硬件电路更加简单,系统更加稳定。它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据 DS18B20 内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个 IO 口(P1.7)模拟 DS18B20 的时序,发送命令(初始化命令、ROM 命令、RAM 命令)给S1S5S9S13S2S6S10S14S3S7S11S15S4S8S12S1612593U274LS21Y 112MC230pFC330pFC110uFR210K+5VVSS1VDD2VO3RS4R/W5E6RET17VEE18LEDA19LEDK20DB07DB18DB2

20、9DB310DB411DB512DB613DB714CS115CS216J1LCM_128_64123456789RP11KR110KR410KR310K+5VC410uF+5V+5V2351864U1LM386C5100nC647nLS18GNDR510k+5P3.4P3.4CS1CS2ERWRSRWECS1CS2RSP3.2P3.2L0L1L2L3H0H1H2H3H0H1H2H3L0L1L2L3P210kR610C8220uP110kC710uVCC1GND3DQ2U3DS18B20VCC1GND3DQ2U4DS18B20VCC1GND3DQ2U5DS18B20VCC1GND3DQ2U6D

21、S18B20R7RES2+5VP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9P3.0/RXD10P3.1/TXD11P3.2/INTO12P3.3/INT113P3.4/TO14P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RSEN29ALE/PROG30VPP/EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VDD40IC?AT89C51H0H1H

22、2H3邵阳学院毕业设计(论文)7DS18B20,转换完成之后单片机读取温度值,在内部进行相应的数值处理,用12864LCD 显示各点的温度。在系统启动的时候,可以通过 44 键盘设置各点温度的上限值,当某点的实际温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值以及路数和该路的状态,从面实现了对各点温度的测量和实时监控。3.2 DS18B20 与单片机接口技术3.2.1 DS18B20 的引脚功能DS18B20 的引脚功能描述见表 3.1。表 3.1DS18B20 引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生

23、电源时,可向电源提供电源3VDD可选择的 VDD 引脚,当工作于寄生电源时,该引脚必须接地3.2.2 DS18B20 与单片机接口电路如图 3.2 所示,为单片机和 DS18B20 的接口电路。DS18B20 只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的 P1.7 口,电源与数字输入输出脚间需要接一个 4.7K 的电阻。图 3.2 DS18B20 与单片机接口电路3.2.3 温度寄存器格式和温度/数据对应关系DS18B20 温度寄存器如表 3.2 所示。寄存器有 16 位,高 5 位为符号位,低 13 位为 DS18B20 单 片 机P1.7VDDGNDDQ4.7K邵阳学

24、院毕业设计(论文)8数据位。当寄存器高 5 位为 1 时,表示温度为负,否则为正。表 3.2 温度寄存器格式 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0LS ByteB bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8MS Byte如果测得的温度大于 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,测得的数值需要取反加 1 再乘 0.0625,即可得到实际的温度值。如表 3.3 所示,是 DS18B20 的温度与数据的对应关系。表 3.3 温度/数据的关系3.2.4 单片机对 DS18B2

25、0 的控制方法DS18B20 采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写 0、写 1、读 0 和读 1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节为单位,且低位在前,高位在后。(1) 初始化序列:复位脉冲和应答脉冲232221202-12-22-32-4SSSSS262524温度输出(2 进制)输出(16 进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+20.06250000 0001 1001 00010191H+10.125000

26、0 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH25.06251110 1110 0110 1111EE6FH-551111 1110 1001 0000FE90H邵阳学院毕业设计(论文)9在初始化过程中,主机通过拉低单总线至少 480s,以产生复位脉冲(TX)。然 后主机释放总线并进入接收(RX)模式。当总线被释放后,5k 的上拉电阻将单总线拉高。DS18B20 检测到这个上升

27、沿后,延时 15s60s,通过拉低总线 60s240s产生应答脉冲。初始化脉冲如图 3.3 所示。图 3.3 DS18B20 初始化时序DS18B20 的初始化应答 C 语言程序如下所示:bit resetpulse(void)DQ=0;delay600us(); DQ=1;delay60us();return(DQ); DS18B20 的初始化 C 语言程序如下所示: void Ds18b20_Init(void)while(1)if(!resetpulse() /收到 ds18b20 的应答信号DQ=1;delay600us();/延时 240usbreak; else至少480us至少4

28、80us主机初始化主机初应答Presence pulse60-240us邵阳学院毕业设计(论文)10 resetpulse(); /否则再发复位信号(2) DS18B20 的读写控制在写时序期间,主机向 DS18B20 写入数据;而在读时序期间,主机读入来自DS18B20 的数据。在每一个时序,总线只能传输一位数据。读/写时序如图 3.4 所示。 DS18B20 写时序DS18B20 存在两种写时序:“写 1”和“写 0” 。主机在写 1 时序时向 DS18B20图 3.4 DS18B20 读写时序写入逻辑 1,而在写 0 时序向 DS18B20 写入逻辑 0。所有写时序至少需要 60s,且在

29、两次写时序之间至少需要 1s 的恢复时间。两种写时序均以主机拉低总线开始。写 1 时序:主机拉低总线后,必须在 15s 内释放总线,然后由上拉电阻将总线拉至高电平。写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60s) 。在写时序开始后的 15s60s 期间,DS18B20 采样总线的状态。如果总线为高电平,则逻辑 1 被写入 DS18B20;如果总线为低电平,则逻辑 0 被写入 DS18B20。 时序DS18B20 只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数主机写”0”时序主机写”1时序主机读”0”时序主机读”1时序30us15us15us15us15us30

30、us30us15us15us15us15us30us邵阳学院毕业设计(论文)11据命令后,必须马上产生读时序,以便 DS18B20 能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要 1s 的恢复时间。每次读时序由主机发起,拉低总线至少 1s。在主机发起读时序之后,DS18B20 开始在总线上传送 1 或 0。若 DS18B20 发送 1,则保持总线为高电平;若发送 0,则拉低总线。当传送 0 时,DS18B20 在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20 发出的数据在读时序下降沿起始后的15s 内有效,因此主机必须在读时序开始后的 15s

31、内释放总线,并且采样总线状态。 DS18B20 写命令子程序如下:void ds18b20_writecommand(uchar command) uchar i; for(i=0;i8;i+) if(command & 0 x01)=0) DQ=0;delay60us();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=1; _nop_();_nop_(); else DQ=0;邵阳学院毕业设计(论文)12_nop_();_nop_(); DQ=1;delay60us(); _nop_();_nop_();_nop_();_nop_();

32、command=_cror_(command,1); DS18B20 读温度子程序如下:uchar Ds18b20_Readdata(void) uchar readdata; uchar i; for(i=0;i8;i+) DQ=0; _nop_(); _nop_(); _nop_(); DQ=1; if(DQ=0) readdata=readdata&0 x7f; delay60us(); else邵阳学院毕业设计(论文)13readdata=readdata|0 x80;delay60us();if(i7)readdata=_cror_(readdata,1); return readd

33、ata; DS18B20 的命令序列根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。ROM 命令通过每个器件 64-bit 的 ROM 码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20 的 ROM 如表 3.4 所示,每个 ROM命令都是 8 bit 长。表 3.4 DS18B20 ROM 命令指令协议功能读 ROM33H读 DS18B20 中的编码(即 6

34、4 位地址)符合 ROM55H发出此命令后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS18B20,使之作出响应,为下一步对该 DS18B20 的读写作准备搜索 ROM0F0H用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址,为操作各器件作好准备跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS18B20 温度转换命令,适用于单个 DS18B20 工作告警搜索命令0ECH执行后,只有温度超过报警值上限或下限的 DS18B20 才做出响应温度转换44H启动 DS18B20 进行温度转换,转换时间最长为 500ms(典型为200ms

35、),结果丰入内部 9 字节 RAM 中读暂存器BEH读内部 RAM 中 9 字节的内容写暂存器4EH发出向内部 RAM 的第 3、4 字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将 RAM 中第 3、4 字内容复制到 E2PROM 中重调E2PROM0B8H将 E2PROM 中内容恢复到 RAM 中的第 3、4 字节读供电方式0B4H读 DS18B20 的供电模式,寄生供电时 DS18B20 发送“0” ,外部供电时 DS18B20 发送“1”邵阳学院毕业设计(论文)143.3 键盘电路设计3.3.1 行列式键盘与单片机接口电路根据本设计需要,本系统采用了 44

36、 键盘实现对温度值和功能键的设定。行列式键盘与单片机的接口电路如图 3.5 所示,H0-H3 为行线,接单片机 P2 口的高 4 位,L0-L3 为列线,接单片机 P2 口的低 4 位。初始化时键盘行线为高电平,列线为低电平。键盘的行线接 4 输入与门,4 输入与门的输出接单片机的外部中断 0 引脚 P3.2 口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。图 3.5 44 键盘结构3.3.2 键盘面板键盘面板如图 3.6 所示,本系统使用的键盘有 10 数字键,5 个功能按键。在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值

37、。按“确认”键之后系统正式启动。系统在运行过程之中可以通过按“重新设置”键,对温度重新进行设置。 图 3.6 键盘面板 0213设置确认右移左移重新设置987645邵阳学院毕业设计(论文)153.4 显示电路设计3.4.1 LCD 引脚分布及功能(1) 12864 液晶显示屏共有 20 个引脚,其引脚名称及引脚编号的对应关系如图 3.7 所示:图 3.7 12864 液晶显示模块引脚分布图(2) 引脚功能如表 3.5 所示:表 3.5 12864 液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1 芯片选择左边 64*64 点2VDD电源正+

38、5V16CS2CS2=1 芯片选择右边 64*64 点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD 驱动负电源5R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块 19、20 脚为空脚3.4.2 单片机与图形液晶的接口电路 LCD 与单片机的接口电路如图 3.8 所示:单片机对 LCD 的控制方法将在下一章中详细介绍。3.5 报警电路设计本系统设计中有报警器,使用 LM386 作为报警器的功率放大器,如图 3.9 所示。LM386 是一种音频集成功放,具有自身

39、功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。1234567891011121314151617181920VSSVDDVORSR/WEDB0DB7DB6DB5DB4DB3DB2DB1CS1CS2 /RSTVEEAK邵阳学院毕业设计(论文)16LM386 的输入端接单片机的引脚 P3.4,输出端接扬声器。当实际温度超过设置的温度值时,单片机引脚输出一定频率的信号,信号经过音频功放放大之后,发出报警声。图 3.8 LCD 与单片机的接口电路图 3.9 LM386 功放电路3.6 电源电路设计电源是整个系统的能量来源,它直接关系到系统能否运行

40、。在本系统中单片机、液晶显示、报警等电路需要 5V 的电源,因此电路中选用稳压芯片 7805,其最大输出电流为 1.5A,能够满足系统的要求,其电路如图 3.10 所示。邵阳学院毕业设计(论文)17图 3.10 电源电路邵阳学院毕业设计(论文)18第 4 章 程序设计4.1 系统资源分配4.1.1 系统硬件资源分配本系统电路连接及硬件资源分配如图 4.1 所示。采用 AT89C51 单片机作为核心器件,DS18B20 作为温度测量装置,通过 AT89C51 的 P1.7 口将温度值送入单片机处理,利用 12864LCD 显示器和 44 键盘作为人机接口。图 4.1 系统硬件资源分配4.1.2

41、系统软件资源分配本系统采用了 C 语言进行程序设计,系统自动为各个变量分配内存区域。用户可以将变量定义在 DATA 区、IDATA 区、PDATA 区、XDATA 区,常量定义在CODE 区。用 C 语言写较复杂的程序时,要特别注意使用的内存不能超过单片机RAM。4.2 系统流程设计4.2.1 主程序流程设计主程序先对系统资源进行初始化,调用 LCD 显示子程序,显示启动画面。然后进入键盘设置界面。当设置键按下后,开始设置各点的温度,设置完之后,如果确认键按下,则系统开始工作。首先调用 DS18B20 初始化子程序,再发送 ROM 命令,读取 DS18B20 转换的温度值。当读取的温度大于设置

42、的温度值时,报警器开始报警,LCD 显示温度的实际值、设置值、路数、状态。接下来对第二、三、四路温度进行采集,处理,显示。P0.0P0.712864LCD显示模块P3.4P3.3报警器P3.5P3.7344键盘P2.0P2.3P2.4P2.744L0L3H0H3P3.2/INT0AT89C51P1.7四输入与门DS18B20P3.0P3.12邵阳学院毕业设计(论文)19主程序流程如图 4.2 所示:图 4.2 主程序流程初始化设置键按下?设置各点温度确认键按下?YN读取温度值温度值高于设置值调用LCD显示报警YN初始化命令发送ROM命令匹配第一路读取温度值温度值高于设置值调用LCD显示报警YN

43、初始化命令发送ROM命令匹配第二路读取温度值温度值高于设置值调用LCD显示报警YN初始化命令发送ROM命令匹配第三路读取温度值温度值高于设置值调用LCD显示报警YN初始化命令发送ROM命令匹配第四路开始邵阳学院毕业设计(论文)204.2.2 DS18B20程序流程设计由上一章单片机对 DS18B20 的控制方法,设计出如下程序流程: 图 4.3 写命令子程序流程图 图 4.4 DS18B20 复位子程序流程图 图 4.5 DS18B20 读温度子程序流程图 DQ置1DQ置0延时573微秒DQ置1延时,等待DS18B20响应DQ=0?初始化成功返回DQ初始化不成功YNi=8置DQ0DQ=DAT&

44、0X01DQ置1DQ右移一位i-i=0返回YNi=8DAT右移一位DQ置0DQ置1DQ=1DAT=DAT|0X80读完8位?NYNY返回DAT邵阳学院毕业设计(论文)214.2.3 显示程序流程显示是实现人机对话的重要部分,在这里选用 12864LCD 显示器,可实现对汉字、字符和图片的显示, LCD 的引脚功能在上面已经做了说明,下面是其相关指令的介绍。(1) 读取状态字当 R/W=1,D/I=0 时,在 E 信号为高的作用下,状态分别输出到数据总线上。状态字是了解模块当前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字,判断 BUSY 是否为“0” 。若不为“0” ,则单片机

45、需要等待,直至BUSY =0 为止。(2) 显示开关设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:开显示;D=0 关显示。(3) 显示起始行设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)指令表中 DB5DBO 为显示起始行的地址,取值在 03FH(164 行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。(4) 页面地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00010111Page(07)页面地址是 DDRAM 的行地址,8 行为一页,DDRAM 共 64 行即

46、 8 页,DB2-DB0 表示 0-7 页。(5) 列地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Y address(063)列地址是 DDRAM 的列地址。共 64 列,DB5-DB0 取不同值得到 0-3FH(1-64) ,代表某一页面上的某一单元地址,列地址计数器在每一次读写数据后它将自动加D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ONOFFRST0000邵阳学院毕业设计(论文)22一。(6) 写显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010显 示 数 据该操作将 8 位数据写入先前已确定的显示

47、存储器的单元内。操作完成后列地址计数器自动加一。 (7) 读显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB011显 示 数 据该操作将 12864 模块中的 DDRAM 存储器对应单位中的内容读出,然后列地址计数器自动加一。先使用软件对要显示汉字进行取模,取出来存入程序中的数组中。汉字是 16*16的,使用 LCD 显示汉字时,先调用写指令子程序设定汉字的起始页地址和起始列地址,再调用写数据子程序写入汉字的 16 列,然后页地址加 1,重新设置起始列地址,调用写指令子程序设定起始页地址和起始列地址,再调用写数据子程序写入汉字的底下的 16 列。根据上面指令结合字符、汉字、

48、图片显示原理,设计出显示子程序流程如图 4.6所示。 图 4.6 显示子程序流程图i=0调用写数据子程序i=16?i=i+1NY写入页地址写入起始列地址j=j+1j=2?页地址加1结束N调用写数据子程序i=16?i=i+1NY写入起始页地址写入起始列地址结束i=0调用写数据子程序i=128?i=i+1NY写入页地址写入起始列地址j=j+1j=8?页地址加1结束Nj=0i=0j=0b) 写16*16汉字子程序流程图a) 写8*16字符子程序流程图c) 写图片子程序流程图邵阳学院毕业设计(论文)234.2.4 键盘程序程序流程键盘中断程序是用来设在系统起动时各环境温度的上限值,其程序流程图如图 4

49、.7所示:图 4.7 键盘程序流程读P2口高四位数据到ROWROW与LINE相与为KEYP2口低四位置1读P2口低四位数据到LINEKEY=0XEE ?KEY=0XEB ?KEY=0XED ?KEY=0XE7 ?KEY=0XDE ?KEY=0XDD ?KEY=0XDB ?KEY=0XD7 ?KEY=0XBD ?KEY=0XBE ?KEY=0XBB ?KEY=0XB7 ?KEY=0X7E ?KEY=0X7D ?KEY=0X7B ?KEY=0X77 ?数字键0数字键1数字键2数字键3数字键4数字键5数字键6数字键7数字键8数字键9设置功能键确认功能键左移功能键右移功能键重新设置功能键RETIYNN

50、NNNNNNNNNNNNNYYYYYYYYYYYYYYYP2口高四位置1N邵阳学院毕业设计(论文)244.3 程序设计4.3.1 主程序设计系统主程序如下所示:void main(void) uchar i; P2=0XF0; IT0=1; TMOD=0 x01; TH0=0 xff; TL0=0 xff; ET0=1; PT0=1; EA=1; Init_lcd(); Clr_Scr(); Display_ini(); delay(1500); EX0=1;out: Clr_Scr(); display1(); delay(1000); while(!flag2) KeyInput(); f

51、lag2=0; Clr_Scr(); while(1) 邵阳学院毕业设计(论文)25if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0 xcc); ds18b20_writecommand(0 x44);delay(250);match_rom(ds18b20_num1); ds18b20_writecommand(0 xbe); for(i=0;inum0) flag7=1;else if(zhen_temp0num1) flag7=1; else if(zhen_temp1num2) flag7=1;

52、else if(zhen_temp2num3) flag7=1;else flag7=0; goto next; flag5=0; next: display2(0); delay(1000); if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0 xcc);邵阳学院毕业设计(论文)27 ds18b20_writecommand(0 x44);delay(250);match_rom(ds18b20_num2); ds18b20_writecommand(0 xbe); for(i=0;inum4) flag

53、7=1;else if(zhen_temp0num1) flag7=1; else if(zhen_temp1num6)flag7=1; else if(zhen_temp2num7)flag7=1; else flag7=0; goto next1; next1: Clr_Scr(); display2(1); delay(1000); if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20_writecommand(0 xcc); ds18b20_writecommand(0 x44); delay(250);match_rom(ds1

54、8b20_num3); ds18b20_writecommand(0 xbe); for(i=0;inum8) flag7=1;else if(zhen_temp0num9) flag7=1;else if(zhen_temp1num10)flag7=1; else if(zhen_temp2num11)flag7=1; else flag7=0; goto next2; next2: Clr_Scr(); display2(2);邵阳学院毕业设计(论文)30 delay(1000); if(flag4=1) flag4=0; goto out; Ds18b20_Init(); ds18b20

55、_writecommand(0 xcc); ds18b20_writecommand(0 x44);delay(250);match_rom(ds18b20_num4); ds18b20_writecommand(0 xbe); for(i=0;inum12) flag7=1;else if(zhen_temp0num13) flag7=1; else if(zhen_temp1num14)flag7=1; else if(zhen_temp2num15)flag7=1;else flag7=0; goto next3; next3: Clr_Scr(); display2(3); delay

56、(1000);4.3.2 子程序设计(1)LCD 图片显示子程序void Disp_Img (unsigned char code *img) unsigned char j,k; for(k=0;k8;k+)邵阳学院毕业设计(论文)32 left(); Delay(10); write_com(Page_Add+k); write_com(Col_Add+0); for(j=0;j64;j+) write_data(imgk*128+j); right(); write_com(Page_Add+k); write_com(Col_Add+0); for(j=0;j64;j+) write_

57、data(imgk*128+64+j); (2)LCD 写 16*16 汉字子程序void Disp_Chinese(unsigned char pag,unsigned char col, char code *hzk) unsigned char j=0,i=0;for(j=0;j2;j+)write_com(Page_Add+pag+j);write_com(Col_Add+col);for(i=0;i16;i+) write_data(hzk16*j+i);(3)LCD 写 8*16 数字子程序邵阳学院毕业设计(论文)33void Disp_Digit(unsigned char pa

58、g,unsigned char col, unsigned char code *hzk) unsigned char j=0, i=0;for(j=0;j2;j+)write_com(Page_Add+pag+j);write_com(Col_Add+col);for(i=0;iNew Project,在弹出的对话框中输入工程的名字,点击保存;选择 ATMEL 公司的 AT89C51 单片机。邵阳学院毕业设计(论文)36图 5.2 系统电路原理图(2) 在 Source Group 1 上点击右键,选择“Add Files to Group Source Group 1 ” ,把所有的源文件

59、加进来。(3) 点击 Project-Build target 或者使用快捷键 F9,编译工程。当 Output Windows 中提示“0 Error”时,则程序编译成功,生成可执行文件 1.HEX。5.3.2 程序加载在编辑环境中双击 AT89C51,在弹出的对话框中将编译生成可执行文件 1.HEX加载进芯片中,设单片机的时钟工作频率为 12MHZ。5.4 系统仿真点击全速运行按钮,将出现如下仿真结果:(1) 系统的启动在系统的启动过程之中,液晶将会显示邵阳学院的图标,以及邵阳学院的校训“明德 求真 共生 超越” ,毕业设计课题等。在每副图片的切换过程之中,扬声器都会发滴”的声音。邵阳学院

60、毕业设计(论文)37(2) 温度值的设定系统中必须对四个不同环境的正常温度的上限值进行设定,当环境的实际温度超过设定的这个上限值时,系统将会报警。设置温度时,先点“设置”键,然后点击键盘上的按键输入温度值;如果温度值设置完毕,点击“确认键” ,则系统启动成功并开始对各个环境的温度进行测量。在设置过程之中可以通过“左移”或者“右移”按键对各个温度值进行设定,如图 5.3 和图 5.4 所示。图 5.3 设置温度界面 图 5.4 设置各个环境的温度(3) 系统运行系统运行之后,DS18B20 开始对环境进行测量,将环境的实际的温度显示在液晶屏上,同时液晶显示屏还显示环境温度的路数、事先设置的温度的

61、上限值和状态。当实际温度值低于或者等于设置温度值时,将显示“ 正常” ,否则将显示“报警”,图 5.5 第 1 路仿真结果 图 5.6 第 2 路仿真结果 同时报警器开始报警。在系统运行过程之中,如果需要重新对温度值进行设定,则邵阳学院毕业设计(论文)38点击“重新设置”按键,重新设置各个环境温度的上限值。在 PROTEUS 仿真过程之中,可以通过调节 DS18B20 的面板上的“”或者“” ,改变 DS18B20 测量的实际温度。系统仿真结果如图 5.5、图 5.6 、图 5.7 、图 5.8 、图 5.9 所示。图 5.7 第 3 路仿真结果 图 5.8 第 4 路仿真结果图 5.9 系统

62、仿真结果邵阳学院毕业设计(论文)395.5 仿真结果分析系统仿真结果如表 5.1 所示:由以上仿真结果可知,当 DS18B20 的实际温度大于设置温度时,报警器开始报警,否则处于正常状态。温度测量范围为-55125,能够达到设计的要求:-2080。温度测量的精度为 0.0625,满足设计的要求。LCD 屏幕每秒刷新一次,显示格式也达到了设计的要求。 表 5.1 系统仿真结果邵阳学院毕业设计(论文)40第 6 章 PCB 板设计6.1 PCB 板设计6.1.1 PCB板面规划在绘制电路板之前,首先要规划好 PCB 板板面,定义板框,定义板框主要包括:定义电路板的层数、电路板的外形尺寸和形状等。本

63、系统使用的是双面板,在顶层和底层都要进行布线,LCD 和按键占的面积比较大,综合考虑之后,把板框定义为 130mm120mm。6.1.2 PCB 网络表导入载入网络表和元件封装:执行DesignLoad Nets命令打开载入网络表对话框,在 Netlist File 选项中,输入所要载入的网络表文件名及路径,网络表没有错误后,按Execute执行8。载入网络表后,电路板中会出现由元件封装和连接关系组成的一些凌乱的图形散布在四周。6.1.3 PCB 元件布局设计 PCB 板时布局是十分重要的,合理的布局,不但能给布线工作带来方便,而且也可以使系统更加稳定、可靠。对 PCB 板布局,首先要考虑 P

64、CB 尺寸大小,再确定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。在确定特殊元件的位置时应遵守以下原则:(1) 尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元件不能相互挨得太近,输入和输出元件应尽量远离。时钟晶振特别容易受到外界干扰,所以应该将时钟晶振靠近 IC 时钟输入端。(2) 某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外的短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。路数设置温度实际温度状态第一路250-9正常第二路2601234正常第三路270255报警第四路280-14正常

65、邵阳学院毕业设计(论文)41(3) 重量超过 15g 的元器件,应当用支架加以固定,再焊接。那些又大又重,发热量多的元器件,应装在整机底板上,且考虑散热问题。热敏元件应远离发热元件。(4) 对于电位器,可调电感线圈,可变电容器,微动开关等可调元件的布局应考虑整机的结构要求。若是机内调节,应放在印制板上方便于调节的地方;若是机外调节,其位置要与调节旋钮在机箱板上的位置相适应。(5) 应留出印制板定位孔及固定支架所占用的位置。(6) 按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向。(7) 以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀,整

66、齐,紧凑地排列在 PCB 板上,尽量减少和缩短各元器件之间的引线和连接。(8) 在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列。这样,不但美观,而且装焊容易,易于批量生产。本设计的布局图见附录 16.1.4 布线布线是的一个重要的组成部分,是完成电子产品设计的重要步骤。本设计的布线结果见附录 为了使布线的可靠性高,干扰小,工艺好,具体在布线上应该遵循以下原则:(1) 当输入输出端的信号频率较高时,导线应尽量避免相邻平行。最好加线间地线,以免发生反馈藕合。(2) 印制摄导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流值决定。当铜箔厚度为 0.05mm、宽度为 115mm 时,通过 2A 的电流,温度不会高于 3。因此,导线宽度为 1.5mm 可满足要求。对于集成电路,尤其是数字电路,通常选 0.20.3mm 导线宽度。当然,只要允许,还是尽可能要宽线。尤其是电源线和地址线。导线的最小间距主要由最坏情况下的线间绝缘电阻和击穿电压决定。对于集成电路,只要工艺允许,可使间距小至 58mm。(3) 印制导线拐弯处一般取钝角,而直角或锐角在会影响电气

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!