




免费预览已结束,剩余32页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 摘摘 要要 随着社会的发展、娱乐设施的普及,越来越多的开始构建游泳池,供人们 娱乐健身之用。而如何监测并控制游泳池的水温,则是建游泳池主要关心的技 术之一。本文课题主要研究的水温控制系统就是为了达到这样的温度控制要求。 本设计论述了一种以 stc89c52 单片机为主控制单元,以 ds18b20 为温度传感 器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时 间。系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括 stc89c52 单片机最小系统,测温电路、实时时钟电路、lcd 液晶显示电路以及报警模块 电路等。系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键 处理程序、lcd 显示程序以及数据存储程序等。 关键词关键词: at89c52 ds18b20 显示电路 按键电路 abstract i a abstractbstract with the development of society, key the popularity of entertainment facilities, more and more people begin to build a swimming pool, the use of fitness for entertainment. and how to monitor and control the temperature of the water, is swimming pool built one of the primary concern of swimming pool technology. this paper main research topics of the water temperature control system is to achieve this temperature control requirements. circuit .this design stc89c52 describes a kind of mainly by mcu control unit, for temperature sensor ds18b20 temperature control system. the control system can real-time storage temperature data and record related to the current time. system design related hardware circuit and related applications. stc89c52 microcontroller hardware circuit include temperature detection circuit smallest system, and real-time clock circuit, lcd display circuit,buttons circuit, etc. system programming mainly include main program, read temperature subroutine, the calculation of temperature subroutines, key processing procedures, lcd display procedures and data storage procedures, etc. keywords: at89c52 ds18b20 show circuit buttons 目 录 ii 目目 录录 摘摘 要要i abstract ii 目目 录录.iii 第一章第一章 引引 言言.1 1.1 课题研究背景1 1.2 课题研究的目的和意义1 1.3 题目设计要求1 1.3.1 基本要求.1 1.3.1 发挥部分.1 第二章第二章 硬件电路的设计硬件电路的设计.3 2.1 系统设计的框架3 2.2 单片机最小系统电路3 2.3 单片机的选型4 2.3.1 stc89c52 单片机简介.4 2.3.2 stc89c52 单片机时序.5 2.3.3 stc89c52 单片机时序.5 2.4 温度传感器电路7 2.5 按键接口电路12 2.6 报警系统电路13 2.7 显示模块电路13 第三章第三章 系统软件设计系统软件设计.15 3.1 软件系统设计框架15 3.1.1 计算温度子程序.15 3.1.2 按键处理子程序.16 3.1.3 计算温度子程序.16 3.1.4 显示数据刷新子程序.17 第四章第四章 总结与展望总结与展望.19 总结19 展望19 致致 谢谢.20 参考文献参考文献.21 附录附录 1 1 电路原理图电路原理图22 附录附录 2 2 温度扫描显示仿真温度扫描显示仿真23 附录附录 3 3 软件编程软件编程24 淮安信息职业技术学院毕业设计论文 0 第一章第一章 引引 言言 1.1 课题课题研究背景研究背景 正文部分工业控制是计算机的一个重要应用领域,计算机控制系统正是为 了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机 技术、通过信息技术和自动控制理论应用于工业生产过程,并设计出所需要的 计算机控制系统。随着微机测量和控制技术的迅速发展与广泛应用,以单片机 为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对 温度的控制水平。本设计就是基于单片机 stc89c52 温度控制系统的设计,通 过本次课程实践,我们更加的明确了单片机的广泛用途和使用方法,以及其工 作的原理。 1.2 课题课题研究的目的和意研究的目的和意义义 随着社会的发展,温度的测量及控制变得越来越重要。本文采用单片机 stc89c52 设计了温度实时测量及控制系统。单片机 stc89c52 能够根据温度 传感器 ds18b20 所采集的温度在液晶屏上实时显示,通过控制从而把温度控制 在设定的范围之内。所有温度数据均通过液晶显示器 lcd 显示出来。系统可以 根据时钟存储相关的数据。 通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规 控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步 锻炼同学们在微型计算机应用方面的实际工作能力。 1.3 题题目目设计设计要求要求 1.3.1 基本要求基本要求 (1)温度设定范围为 2040,最小区分度为 1。 (2)实现升温降温的自动控制。 (3)用十进制数码管显示水的当前温度值。 (4)按键实现温度范围设定的控制、手动控制升温降温功能。 (5)在水温加热到设定温度后蜂鸣器报警。 引 言 1 1.3.1 发挥发挥部分部分 能实现语音实时播报当前温度;具有通信能力,可接收其他数据设备发来 的命令,或将结果传送到其他数据设备。 淮安信息职业技术学院毕业设计论文 2 第二章第二章 硬件电路的设计硬件电路的设计 2.1 系系统设计统设计的框架的框架 本课题设计的是一种以 stc89c52 单片机为主控制单元,以 ds18b20 为温 度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当 前的时间。其主要包括:温度采集模块、按键处理模块、显示模块、报警电路 以及单片机最小系统。电路图如下 2.1: stc89c52 单单片片机机 温温度度采采集集模模块块 按按键键处处理理模模块块 led显显示示模模块块 报报警警模模块块 图 2.1 系统设计框架 2.2 单单片机最小系片机最小系统电统电路路 正在课题设计的温度控制系统设计中,控制核心是 stc89c52 单片机,该 单片机为 51 系列增强型 8 位单片机,它有 32 个 i/o 口,片内含 4k flash 工 艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶 振为 12mhz,一个指令周期为 1s。使用该单片机完全可以完成设计任务,其 最小系统主要包括:复位电路、震荡电路以及存储器选择模式(ea 脚的高低电 平选择) ,电路如下图 2.2 所示: 硬件电路的设计 3 图 2.2 单片机最小系统 2.3 单单片机的片机的选选型型 本课题设计的温度控制系统主控制芯片选型为 stc89c52 单片机,其特点 如下: 2.3.1 stc89c52 单单片机片机简简介介 目前,51 系列单片机在工业检测领域中得到了广泛的应用,因此我们可以 在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出 能力的综合应用系统,以增强人机对话的功能。stc89c52 单片机是深圳宏晶科 技有限公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个 组成部分。每一个单片机包括: 一个 8 位的微型处理器 cpu; 一个 512k 的片内数据存储器 ram; 4k 片内程序存储器; 四个 8 位并行的 i/o 接口 p0-p3,每个接口既可以输入,也可以输出;两个 定时器/记数器; 五个中断源的中断控制系统; 一个全双工 uart 的串行 i/o 口; 淮安信息职业技术学院毕业设计论文 4 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许 振 荡频率是 12mhz; 以上各个部分通过内部总线相连接。 2.3.2 stc89c52 单单片机片机时时序序 stc89c52 单片机的一个执器周期由 6 个状态(s1s6)组成,每个状态又持 续 2 个震荡周期,分为 p1 和 p2 两个节拍。这样,一个机器周期由 12 个振荡周 期组成。若采用 12mhz 的晶体振荡器,则每个机器周期为 1us,每个状态周期 为 16us;在一数情况下,算术和逻辑操作发生在 n 期间,而内部寄存器到寄 存器的传输发生在 p2 期间。对于单周期指令,当指令操作码读人指令寄存器时, 使从 s1p2 开始执行指令。如果是双字节指令,则在同一机器周期的 s4 读人第 二字节。若为单字节指令,则在 51 期间仍进行读,但所读入的字节操作码被忽 略,且程序计数据也不加 1。在加结束时完成指令操作。多数 stc89c52 指令周 期为 12 个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它 们需 4 个机器周期。 对于双字节单机器指令,通常是在一个机器周期内从程序 存储器中读人两个字节,但 movx 指令例外,movx 指令是访问外部数据存储器 的单字节双机器周期指令,在执行 movx 指令期间,外部数据存储器被访问且被 选通时跳过两次取指操作。 2.3.3 stc89c52 单单片机片机时时序序 stc89c52 单片机的 40 个引脚中有 2 个专用于主电源引脚,2 个外接晶振 的引脚,4 个控制或与其它电源复用的引脚,以及 32 条输入输出 i/o 引脚。 下面按引脚功能分为 4 个部分叙述个引脚的功能。 (1)电源引脚 vcc 和 vss vcc(40 脚):接+5v 电源正端; vss(20 脚):接+5v 电源正端; (2)外接晶振引脚 xtal1 和 xtal2 xtal1(19 脚):接外部石英晶体的一端。在单片机内部,它是一个反相 放大器的输入端,这个放大器构成采用外部时钟时,对于 hmos 单片机,该引 脚接地;对于 choms 单片机,该引脚作为外部振荡信号的输入端。 xtal2(18 脚):接外部晶体的另一端。在单片机内部,接至片内振荡器 的反相放大器的输出端。当采用外部时钟时,对于 hmos 单片机,该引脚作为 外部振荡信号的输入端。对于 chmos 芯片,该引脚悬空不接。 (3)控制信号或与其它电源复用引脚 硬件电路的设计 5 控制信号或与其它电源复用引脚有 rst/vpd、ale/p、psen 和 ea/vpp 等 4 种形式。 (a) rst/vpd(9 脚):rst 即为 reset,vpd 为备用电源,所以该引 脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现 持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。 当 vcc 发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源 vpd(+5v)为内部 ram 供电,以保证 ram 中的数据不丢失。 (b) ale/ p (30 脚):当访问外部存储器时,ale(允许地址锁存信号) 以每机器周期两次的信号输出,用于锁存出现在 p0 口的低 (c) psen(29 脚):片外程序存储器读选通输出端,低电平有效。当从外部 程序存储器读取指令或常数期间,每个机器周期 pesn 两次有效,以通过数据 总线口读回指令或常数。当访问外部数据存储器期间,pesn 信号将不出现。 (d) ea/vpp(31 脚):ea 为访问外部程序储器控制信号,低电平有效。 当 ea 端保持高电平时,单片机访问片内程序存储器 4kb(ms52 子系列为 8kb) 。若超出该范围时,自动转去执行外部程序存储器的程序。当 ea 端保持 低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含 有 eprom 的单片机,在 eprom 编程期间,该引脚用于接 21v 的编程电源 vpp。 (4)输入/输出(i/o)引脚 p0 口、p1 口、p2 口及 p3 口 (a).p0 口(39 脚22 脚):p0.0p0.7 统称为 p0 口。当不接外部存储器与 不扩展 i/o 接口时,它可作为准双向 8 位输入/输出接口。当接有外部程序存储 器或扩展 i/o 口时,p0 口为地址/数据分时复用口。它分时提供 8 位双向数据总 线。 对于片内含有 eprom 的单片机,当 eprom 编程时,从 p0 口输入指令字 节,而当检验程序时,则输出指令字节。 (b).p1 口(1 脚8 脚):p1.0p1.7 统称为 p1 口,可作为准双向 i/o 接口 使用。对于 mcs52 子系列单片机,p1.0 和 p1.1 还有第 2 功能:p1.0 口用作 定时器/计数器 2 的计数脉冲输入端 t2;p1.1 用作定时器/计数器 2 的外部控制 端 t2ex。对于 eprom 编程和进行程序校验时,p0 口接收输入的低 8 位地址。 淮安信息职业技术学院毕业设计论文 6 (c).p2 口(21 脚28 脚):p2.0p2.7 统称为 p2 口,一般可作为准双向 i/o 接口。当接有外部程序存储器或扩展 i/o 接口且寻址范围超过 256 个字节时, p2 口用于高 8 位地址总线送出高 8 位地址。对于 eprom 编程和进行程序校验 时,p2 口接收输入的 8 位地址。 (d).p3 口(10 脚17 脚):p3.0p3.7 统称为 p3 口。它为双功能口,可以 作为一般的准双向 i/o 接口,也可以将每 1 位用于第 2 功能,而且 p3 口的每一 条引脚均可独立定义为第 1 功能的输入输出或第 2 功能。p3 口的第 2 功能见下 表: 表 2.1 表名单片机 p3.0 管脚含义 引脚引脚第第 2 2 功能功能 p3.0rxd(串行口输入端 0) p3.1txd(串行口输出端) p3.2int0(部中断 0 请求输入端,低电平有效) p3.3int1(中断 1 请求输入端,低电平有效) p3.4t0(时器/计数器 0 计数脉冲端) p3.5t1(时器/计数器 1 数脉冲端) p3.6wr(部数据存储器写选通信号输出端,低电平有效) p3.7rd(部数据存储器读选通信号输出端,低电平有效) 综上所述,mcs51 系列单片机的引脚作用可归纳为以下两点: 1).单片机功能多,引脚数少,因而许多引脚具有第 2 功能; 2).单片机对外呈 3 总线形式,由 p2、p0 口组成 16 位地址总线;由 p0 口分 时复用作为数据总线。 2.4 温度温度传传感器感器电电路路 采用一线制数字温度传感器 ds18b20 来作为本课题的温度传感器。传感器 输出信号进 4.7k 的上拉电阻直接接到单片机的 p3.7 引脚上。 ds18b20 温度传感器是美国达拉斯(dallas)半导体公司推出的应用单总线 技术的数字温度传感器。该器件将半导体温敏器件、a/d 转换器、存储器等做 在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件 ds18b20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因: (1)系统的特性:测温范围为-55+125 ,测温精度为士 0.5;温度 转换精度 912 位可变,能够直接将温度转换值以 16 位二进制数码的方式串行 硬件电路的设计 7 输出;12 位精度转换的最大时间为 750ms;可以通过数据线供电,具有超低功 耗工作方式。 (2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电 路功能越来越强大,体积越来越小,而价格也越来越低。一支 ds18b20 的体积 与普通三极管相差无几,价格只有十元人民币左右。 (3)系统复杂度:由于 ds18b20 是单总线器件,微处理器与其接口时仅 需占用 1 个 i/o 端口且一条总线上可以挂接几十个 ds18b20,测温时无需任何 外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的 复杂度,减少工程的施工量。 (4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系 统的调试带来方便。同时因为 ds18b20 是全数字元器件,故障率很低,抗干扰 性强,因此,减少了系统的日常维护工作。 ds18b20 温度传感器只有三根外引线:单线数据传输总线端口 dq ,外供 电源线 vdd,共用地线 gnd。ds18b20 有两种供电方式:一种为数据线供电 方式,此时 vdd 接地,它是通过内部电容在空闲时从数据线获取能量,来完成 温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个 i/o 口来完成对 ds18b20 总线的上拉。另一种是外部供电方式(vdd 接+5v),相应 的完成温度测量的时间较短。 ds18b20 外形及引脚说明如图 2.3 所示 图 2.3 管脚排列图 1(gnd):地 2(dq):单线运用的数据输入输出引脚 3(vdd):可选的电源引脚 ds18b20 工作过程及时序 淮安信息职业技术学院毕业设计论文 8 ds18b20 内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡 器,为计数器 1 提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器 2 提 供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55,每当计数器 1 从预置数开始减计数到 0 时,温度寄存器中寄存的温度值就增加 1,这个过程重复进行,直到计数器 2 计数到 0 时便停止。 初始时,计数器 1 预置的是与-55相对应的一个预置值。以后计数器 1 每 一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性, 斜率累加器提供的预置数也随温度相应变化。计数器 1 的预置数也就是在给定 温度处使温度寄存器寄存值增加 1计数器所需要的计数个数。 ds18b20 内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效 位。在计数器 2 停止计数后,比较器将计数器 1 中的计数剩余值转换为温度值 后与 0.25进行比较,若低于 0.25,温度寄存器的最低位就置 0;若高于 0.25,最低位就置 1;若高于 0.75时,温度寄存器的最低位就进位然后置 0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后 位代表 0.5,四舍五入最大量化误差为1/2lsb,即 0.25。 温度寄存器中的温度值以 9 位数据格式表示,最高位为符号位,其余 8 位 以二进制补码形式表示温度值。测温结束时,这 9 位数据转存到暂存存储器的 前两个字节中,符号位占用第一字节,8 位温度数据占据第二字节。 ds18b20 测量温度时使用特有的温度测量技术。ds18b20 内部的低温度系 数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转 换成频率信号。当计数门打开时,ds18b20 进行计数,计数门开通时间由高温 度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。 测量结果存入温度寄存器中。一般情况下的温度值应该为 9 位,但因符号位扩 展成高 8 位,所以最后以 16 位补码形式读出。 ds18b20 工作过程一般遵循以下协议:初始化rom 操作命令存储 器操作命令处理数据 初始化 单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出 一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道 ds1820 在总线上且已准备好操作。 rom 操作命令 一旦总线主机检测到从属器件的存在,它便可以发出器件 rom 操作命令之 一。所有 rom 操作命令均为 8 位长。这些命令列表如下: read rom(读 rom)33h 硬件电路的设计 9 此命令允许总线主机读 ds18b20 的 8 位产品系列编码,唯一的 48 位序列 号,以及 8 位的 crc。此命令只能在总线上仅有一个 ds18b20 的情况下可以使 用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将 发生数据冲突的现象(漏极开路会产生线与的结果) 。 match rom( 符合 rom)55h 此命令后继以 64 位的 rom 数据序列,允许总线主机对多点总线上特定的 ds18b20 寻址。只有与 64 位 rom 序列严格相符的 ds18b20 才能对后继的存贮 器操作命令作出响应。所有与 64 位 rom 序列不符的从片将等待复位脉冲。此 命令在总线上有单个或多个器件的情况下均可使用。 skip rom( 跳过 rom )cch 在单点总线系统中,此命令通过允许总线主机不提供 64 位 rom 编码而访 问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在 skip rom 命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生 数据冲突(漏极开路下拉会产生线与的效果) 。 search rom( 搜索 rom)f0h 当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知 道其 64 位 rom 编码。搜索 rom 命令允许总线控制器用排除法识别总线上的 所有从机的 64 位编码。 alarm search(告警搜索)ech 此命令的流程与搜索 rom 命令相同。但是,仅在最近一次温度测量出现告 警的情况下,ds18b20 才对此命令作出响应。告警的条件定义为温度高于 th 或低于 tl。只要 ds18b20 一上电,告警条件就保持在设置状态,直到另一次温 度测量显示出非告警值或者改变 th 或 tl 的设置,使得测量值再一次位于允许 的范围之内。贮存在 eeprom 内的触发器值用于告警。 存储器操作命令 write scratchpad(写暂存存储器)4eh 这个命令向 ds18b20 的暂存器中写入数据,开始位置在地址 2。接下来写 入的两个字节将被存到暂存器中的地址位置 2 和 3。可以在任何时刻发出复位命 令来中止写入。 read scratchpad(读暂存存储器)beh 这个命令读取暂存器的内容。读取将从字节 0 开始,一直进行下去,直到 第 9(字节 8,crc)字节读完。如果不想读完所有字节,控制器可以在任何时 间发出复位命令来中止读取。 copy scratchpad(复制暂存存储器)48h 这条命令把暂存器的内容拷贝到 ds18b20 的 e2 存储器里,即把温度报警 触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读 淮安信息职业技术学院毕业设计论文 10 时间隙,而 ds18b20 又正在忙于把暂存器拷贝到 e2 存储器,ds18b20 就会输 出一个“0”,如果拷贝结束的话,ds18b20 则输出“1”。如果使用寄生电源,总 线控制器必须在这条命令发出后立即起动强上拉并最少保持 10ms。 convert t(温度变换)44h 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后 ds18b20 保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙, 而 ds18b20 又忙于做时间转换的话,ds18b20 将在总线上输出“0”,若温度转 换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立 即起动强上拉,并保持 500ms。 recall e2(重新调整 e2)b8h 这条命令把贮存在 e2 中温度触发器的值重新调至暂存存储器。这种重新调 出的操作在对 ds18b20 上电时也自动发生,因此只要器件一上电,暂存存储器 内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间 片,器件会输出温度转换忙的标识:“0”=忙, “1”=准备就绪。 read power supply(读电源)b4h 对于在此命令发送至 ds18b20 之后所发出的第一读数据的时间片,器件都 会给出其电源方式的信号:“0”=寄生电源供电, “1”=外部电源供电。 处理数据 ds18b20 的高速暂存存储器由 9 个字节组成,其分配如图 2.4 所示。当温 度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存 储器的第 0 和第 1 个字节。单片机可通过单线接口读到该数据,读取时低位在 前,高位在后。 图 2.4 高速暂存存储器分配图 ds18b20 温度采集转化后得到的 12 位数据,存储在 ds18b20 的两个 8 比 特的 ram 中,二进制中的前面 5 位是符号位,如果测得的温度大于或等于 0, 这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。 温度转换计算方法举例: 例如当 ds18b20 采集到+125的实际温度后,输出为 07d0h,则: 实际温度=07d0h0.0625=20000.0625=1250c。 例如当 ds18b20 采集到-55的实际温度后,输出为 fc90h,则应先将 11 位数据位取反加 1 得 370h(符号位不变,也不作为计算) ,则: 实际温度=370h0.0625=8800.0625=550c。 硬件电路的设计 11 在本设计中采用外部供电方式实现 ds18b20 传感器与单片机的连接,其接 口电路如图 2.5 所示。 图 2.5 温度传感器接口 2.5 按按键键接口接口电电路路 键盘是单片机应用系统中的主要输入设备,单片机使用的键盘分为编码键 盘和非编码键盘。编码键盘采用硬件线路来实现键盘的编码,每按下一个键, 键盘能够自动生成按键代码,并有去抖功能。因此使用方便,但硬件较复杂。 非编码键盘仅仅提供键开关状态,由程序来识别闭合键,消除抖动,产生相应 的代码,转入执行该键的功能程序。非编码键盘中键的数量较少,硬件简单, 在单片机中应用非常广泛。 图为按键和 at80c51 的接线图,检测仪共设有 4 个按键,每个按键由软件 来决定其功能,4 个按键功能分别为: (1) sw1:设定按键(设定按键) (2) sw2:加法按键(当前位加 5) (3) sw3:减法按键(当前位减 5) (4) sw4:退出设置键(系统初始化) 本课题设计采用的键盘模块,其接口原理图如下图 2.6 所示: 淮安信息职业技术学院毕业设计论文 12 图 2.6 键盘模块电路 2.6 报报警系警系统电统电路路 报警采用喇叭报警,当温度加热至设定温度开始声音报警,喇叭通过一个 放大器连接至单片机的 p1.7 口,当水温被加热至设定温度后,p1.7 给出一个信 号, 通过放大器放大后使喇叭发出声音,便实现了报警的功能。报警系统原理 图如图 2.7 所示: 图 2.7 报警模块电路 2.7 显显示模示模块电块电路路 基于数字显示的位数仅仅是三位显示,所以本设计采用四位数码管显示; 其显示系统接口原理图如图 2.8 所示: 硬件电路的设计 13 图 2.8 显示模块电路 淮安信息职业技术学院毕业设计论文 14 第三章第三章 系统软件设计系统软件设计 3.1 软软件系件系统设计统设计框架框架 系统的软件主要是采用 c 语言,对单片机进行变成实现各项功能。主程序 对模块进行初始化,而后调用读温度、处理温度、显示、键盘等模块。用的是 循环查询方式,来显示和控制温度,主程序的主要功能是负责温度的实时显示、 读出并处理 ds18b20 的测量的当前温度值并负责调用各子程序,其程序流程如图 3.1 系统程序流程图。 开开始始 初初始始化化 启启动动ds18b20 读读温温度度 计计算算温温度度 数数码码显显示示 图 3.1 系统程序流程图 3.1.1 计计算温度子程序算温度子程序 读出温度子程序的主要功能包括初始化,判断 ds18b20 是否存在,若存在则 进行一系列的读操,作若不存在则返回。其程序流程图如图 3.2 所示。 开开始始 从从arm读读取取温温度度 计计算算小小数数温温度度bcd值值 计计算算小小数数温温度度bcd值值 开开始始 是是 否否 图 3.2 读取温度流程图 总结与展望 15 3.1.2 按按键处键处理子程序理子程序 按键处理子程序主要是负责参数的设置,主程序每循环一次都要对按键进 行扫描,判断是否有输入键按下则进行一系列的按键输入操作。其程序流程框图 如图 3.3 所示。 开开始始 enter键键是是否否按按下下 enter-flag为为1 是是否否由由enter按按下下 是是否否有有up按按下下 是是否否有有down按按下下 display显显示示 退退出出子子程程序序返返回回子子程程序序 否否 是是 是是 否否 enter子子程程序序flag=1 是是 否否 否否 否否 是是 up子子程程序序 是是 是是 down子子程程序序 图 3.3 读取温度流程图 3.1.3 计计算温度子程序算温度子程序 计算温度子程序将 ram 中读取值进行 bcd 码的转换运算,并判断是否从 arm 中读取温度值,其程序流程图如图 3.4 所示。 淮安信息职业技术学院毕业设计论文 16 开开始始 初初始始化化 ds18b20存存在在 rom操操作作命命令令 读读取取温温度度值值 返返回回 是是 否否 图 3.4 计算温度流程图 3.1.4 显显示数据刷新子程序示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当 最高显示位为 0 时将符号显示位移入下一位。程序流程图如图 3.5。 温温度度数数据据移移入入显显示示寄寄存存器器 个个位位数数0? 十十位位数数0? 开开始始 结结束束 个个位位数数显显示示十十位位不不显显示示十十位位数数显显示示 是是 是是 否否 否否 图 3.5 数据刷新子程序流程图 总结与展望 17 淮安信息职业技术学院毕业设计论文 18 第四章第四章 总结与展望总结与展望 总结总结 通过本次的设计,使我们不仅对单片机这门课程有了更深刻的认识,懂得 了如何运用课本知识结合实际来完成定时器的显示和编程方法以及数码显示电 路的驱动方法,使我们能够很快的适应现代控制技术发展的需求,同时也提高 了我们的思维能力和实际操作能力,为以后更好的走上工作岗位奠定了坚实的 基础。实践过程中我们遇到了一些困难,但在解决问题的过程中,我们学会了 团队合作精神和怎样发现问题、分析问题,进而解决问题。此次课程设计不仅 增强了我们学习专业课的兴趣,而且给了我们勇气和信心,更重要的是它为我 们以后的学习指明了方向。 另外,这次的设计还让我更进一步的认识了关于 at80c51 等芯片的引脚 功能以及使用方法,使我学会了应用不同的芯片来配合完成整个设计的操作。 在做硬件电路的这段时间里,从思考设计到对电路的调试经过了许多困难。 同样在对软件进行设计时,也可为一路坎坷。但是通过对软硬件不断撞墙,不 断思考解决问题的过程中,我学会了很多东西,同时对单片机也有了更深的认 识。在做设计的时候,很需要耐心和对事物的细心,很多时候一个简单问题的 一个简单的疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才 能真正完成一个设计的制作。只有不断的发现问题解决问题,才能从问题中改 变自己,提升自己对单片机的能力。 展望展望 此设计虽然能够完成温度的显示和控制,但功能和精度有待于进一步提高。 在后面的研究中,我们还将致力于提高该设备的综合性能,例如提高对温度采 集的精确性,提高加热时对温度的控制准确度,提高控制性,比如加热速度可 以改变,提高其智能型,拓展其应用领域等等。对于这些所提出的改进要求, 不仅要从电子系统上进行完善改进,还应从工艺上不断改进,例如器皿的保温 能力、由于水温惯性而造成测量的误差的补偿,加热系统的工艺也很重要。对 此,我将继续努力,已达到可能的最好! 总结与展望 19 致致 谢谢 经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个专科生的 毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的 督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。 首先感谢甘本鑫老师出的这些论文选题,给了我这么一个展现自己能力的平台。 在论文工作中,遇到了论文格式修改、标题型号字号大小修改及单片机程 序编写、仿真修改的错误和不清楚的地方,一直得到甘本鑫老师的亲切关怀和 悉心指导,使我在对论文格式的要求方面有了进一步的了解,并掌握了论文的 书写、注意要点,为我在以后的学习与工作赢得了宝贵的经验。同时,在修改 单片机软件程序中,甘老师给我们指出了编写程序是容易出现错误的地方及编 写程序的便捷途径与技巧,使我们对单片机的使用以及其程序的相关编写有了 更深的了解,并能更加的灵活应用单片机的其他功能。甘本鑫老师以其渊博的 学识、严谨的治学态度、求实的工作作风和他敏捷的思维给我留下了深刻的印 象,我将终生难忘。 尤其是,甘老师一遍遍为我们讲解程序的编写原理,不厌其烦的为我们讲 解毕业设计论文的格式并修改。对此,再一次向他表示衷心的感谢,感谢他为 学生营造的浓郁学术氛围,以及学习、生活上的无私帮助! 值此论文完成之际, 谨向甘本鑫老师致以最崇高的谢意! 特别感谢我的师兄樊道瑞、孙欢欢,师姐刘莉莉以及我的朋友吕成伟、吕 方硕、张鸥、龙传奇对我的学习和生活所提供的大力支持和关心!还要感谢一直 关心帮助我成长的室友马荣誉、王丽! 在我即将完成学业之际,我深深地感谢我的家人给予我的全力支持! 最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授! 参考文献 20 参考文献参考文献 1 徐江海.单片机实用教程.北京:机械工业出版社,2006.12(2008.6 重印) 2 彭伟.单片机 c 语言程序设计实训 100 例(基于 avr+proteus 仿真).北 京:北京航空航天大学出版社,2010.5 3 张慧敏.数字电子技术.北京:化学工业出版社,2002.8-2008.6 4 田淑华.电路基础.第二版.北京:机械工业出版社,2007.9-2008.8 5 郑军、张玉琴.光伏技术基础与技能.北京.电子工业出版社,2010.9 6 黄法、袁照刚.模拟电子技术.天津;天津大学出版社,2008.9 7 张秀国.单片机 c 语言程序设计(教程与实训):基于 visual c+6.0 环 境. 天津:北天津大学出版社,2009.8 8冯成龙、刘洪恩.传感器应用技术项目化教程.北京:清华大学出版社;北 京交通大学出版社,2009.7 9殷庆纵、李福勤.北京:北京大学出版,2009.8 10冯洋.基于 at89c52 的水温控制系统n.渭南师范学院报;2011-02 (49-52) 附录 21 附录附录 1 1 电路原理图电路原理图 附 录 22 附录附录 2 2 温度扫描显示仿真温度扫描显示仿真 附录 23 附录附录 3 3 软件编程软件编程 延时程序 void display(uchar x) if(shan=1) else p0=tablex/10; wei1=0; delay(5); wei1=1; p0=tablex%10+0x80; wei2=0; delay(5); wei2=1; p0=table0; wei3=0; delay(5); wei3=1; 按键部分程序 void key1(); void key2(); void key3(); void key4(); void key() if(flag_1=1) if(key_1=0) display(temp(); if(key_1=0) key1(); while(key_1) display(temp_0); 附 录 24 if(shan!=0) if(key_2=0) display(temp_0); if(key_2=0) key2(); while(key_2) display(temp_0); if(key_3=0) display(temp_0); if(key_3=0) key3(); while(key_3) display(temp_0); if(key_4=0) display(temp_0); if(key_4=0) key4(); while(key_4) if(flag_1=1) display(temp_0); else display(temp(); void key1() shan=shan; 附录 25 void key2() if(shan) temp_0+; if(temp_040) temp_0=20; void key3() if(shan=2) temp_0-; else temp_0=temp_0-10; if(temp_010) flag=1; else flag=0; if(count=20) count=0; 闪烁部分程序 #define uchar unsigned char 附 录 26 #define uint unsigned int uchar table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf; /阳码 uchar flag=0; /半秒钟 bit flag_1=0;/设置/测量值转换 bit shan; /数码管闪烁位置 uchar temp_0; /设置值 sbit key_1=p20; /按键 sbit key_2=p21; sbit key_3=p22; sbit key_4=p23; sbit ds=p37;/18b20 sbit wei1=p27; sbit wei2=p26; /数码管控制位 sbit wei3=p25; sbit buzz=p17;/蜂鸣器 void init() temp_0=22; tmod=0x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; shan=0; buzz=0; 蜂鸣器部分程序 void feng() if(temp=temp_0) buzz=0; ds18b20 部分程序 # include “reg51.h“ # include “intrins.h“ 附录 27 # define disdata p0 # define discan p2 # define uchar unsigned char # define uint unsigned int sbit dq = p37; /温度输入口 sbit din = p07;/led 小数点控制 sbit p3_4 = p34; /温度输入口 sbit p3_5 = p35; /温度输入口 sbit p3_6 = p36; /温度输入口 sbit p3_7 = p37; /温度输入口 uint h; uchar code ditab16= 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0 x09,0x09; uc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 9.2 金属的化学性质说课稿-2024-2025学年九年级化学鲁教版(2024)下册
- 《“爱拼才会赢”》实践课教学设计
- 国有土地使用权转让合同
- 第5课 古代非洲与美洲 教学设计- 2023-2024学年高一下学期统编版(2019)必修中外历史纲要下
- 自考本科传播学概论课件
- 中医试题及答案03
- 双语商务英语合同终止协议及后续技术支持协议
- 信托投资公司外汇借款利率调整及风险管理合同
- 高新技术园区物业前期全面服务合同
- 餐饮企业厨师长全面承包运营合同
- 萨福双脉冲气保焊说明书DIGIPLUS课件
- 高中期中考试家长会PPT课件 (共51张PPT)
- JJG 573-2003膜盒压力表
- GB/T 39634-2020宾馆节水管理规范
- GB/T 13234-2018用能单位节能量计算方法
- 营业线施工单位“四员一长”施工安全知识培训考试题库
- 紧急采购申请单
- 全球卫生治理课件
- 工程地质学:第7章 岩体结构及其稳定性
- 实验室生物安全程序文件
- 非洲猪瘟防控讲座课件
评论
0/150
提交评论