分布式温度控制系统的设计与实现.docx_第1页
分布式温度控制系统的设计与实现.docx_第2页
分布式温度控制系统的设计与实现.docx_第3页
分布式温度控制系统的设计与实现.docx_第4页
分布式温度控制系统的设计与实现.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式温度控制系统的设计与实现 目录 第一章 绪论- -1 1.1 问题的提出- -2 1.2 课题相关的背景知识 1.2 设计目的及系统功能 3 第二章 硬件电路设计 3 2.1 基本硬件设计思路 3 2.2 基本设计框图 4 2.3 AT89S52 单片机 4 2.3.1 主要性能:5 2.3.1 引脚排列及功能 5 2.3.2 存储器组织和特殊功能寄存器 7 2.3.3 低功耗节电模式 9 2.3.4 定时器 10 2.3.5 中断 13 2.3.6 时钟 15 2.4 ZLG7290 键盘/显示接口芯片 15 2.4.1 ZLG7290 特点 16 2.4.2 引脚及说明 16 2.4.3 功能描述 17 2.4.4 寄存器详解 19 2.4.5 通信接口 20 2.4.6 指令详解 20 2.5 数字温度传感器 DS18B2023 2.5.1 DS18B20 的主要特性 23 2.5.2 引脚及其说明 24 2.5.3 内部结构 24 2.5.4 工作过程及时序 24 第三章 软件设计 27 3.1 主程序框图- -27 致 谢 31 参考文献 32 附录一 电路原理图- -33 附录二 毕业设计硬件电路元件清单 34 第一章 绪 论 自从 1976 年 Intel 公司推出第一批单片机以来,80 年 代单片机技术进入快速发展时期,近年来,随着大规模集 成电路的发展,单片机继续朝快速、高性能方向发展,从 4 位、8 位单片机发展到 16 位、32 位单片机。单片机主要 用于控制,它的应用领域遍及各行各业,大到航天飞机, 小至日常生活中的冰箱、彩电,单片机都可以大显其能。 单片机在国内的三大领域中应用得十分广泛:第一是家用 电器业,例如全自动洗衣机、智能玩具;第二是通讯业, 包括电话、手机和 BP 机等等;第三是仪器仪表和计算机外 设制造,例如软盘、硬盘、收银机、电表。除了上述传统 领域外,汽车、电子工业在国外也是单片机应用十分广泛 的一个领域。它成本低、集成度高、功耗低、控制功能多 能灵活的组装成各种智能控制装置,由它构成的智能仪表 解决了长期以来测量仪器中的误差的修正、线性处理等问 题。 单片机将微处理器、存储器、定时/计数器、I/O 接口 电路等集成在一个芯片上的大规模集成电路,本身即是一 个小型化的微机系统。单片机技术与传感与测量技术、信 号与系统分析技术、电路设计技术、可编程逻辑应用技术、 微机接口技术、数据库技术以及数据结构、计算机操作系 统、汇编语言程序设计、高级语言程序设计、软件工程、 数据网络通信、数字信号处理、自动控制、误差分析、仪 器仪表结构设计和制造工艺等的结合,使得单片机的应用 非常广泛。同时,单片机具有较强的管理功能。采用单片 机对整个测量电路进行管理和控制,使得整个系统智能化、 功耗低、使用电子元件较少、内部配线少、成本低,制造、 安装、调试及维修方便。 目前单片机渗透到我们生活的各个领域,几乎很难找 到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上 各种仪表的控制,计算机的网络通讯与数据传输,工业自 动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录象机、摄象机、全 自动洗衣机的控制,以及程控玩具、电子宠物等等,这些 都离不开单片机。更不用说自动控制领域的机器人、智能 仪表、医疗器械了。 1.1 问题的提出 分布式温度控制系统广泛应用在使用了中央空调的大 型商场、厂房、办公大楼等大型建筑内。本课题主要针对 分布在建筑物内有关各处的结点控制单元,用温度传感器 对环境温度实施实时监测,利用单片机实施对冷风机开关 的最佳控制;各结点控制单元可将有关信息上传给中央处 理单元,也可接收中央处理单元发来的控制命令;必要时 可由中央处理单元直接控制冷水机组的启、停。监测过程 中温度传感器采样所得到的信号送给单片机处理;控制过 程中,利用单片机控制电路发送出 TTL 电平,转换强电开 关量信号实现对各风机开关的控制。本课题研究主要解决 的问题为分布式计算机控制结构设计、多单片机串行通信、 温度的采集与处理、弱电控制强电以及设计制作成本等。 本设计是以基于单片机 AT89S52 设计的实时温度采集 仪,采用 DS18B20 可以采集多路温度数据(本设计只用了一 路)。通过小键盘实现对温度数据的设定,对于超过此限的 温度数据 CPU 将起动动执行机构做出相应的处理。同时实 时显示所采集到的温度值。 1.2 设计目的及系统功能 本设计的目的是以单片机为核心设计出一个智能温度 控制系统。通过本课题设计,综合运用单片机及接口技术、 微机原理、微电子技术,锻炼动手操作能力,综合运用能 力,学习论文的写作方法和步骤。 设计的温度控制系统有以下功能及特点: (1) 测温范围:099; (2) 温度显示:采用八个七段段数码管,前四位显示采 样温度值,后四位显示 温度设定值; (3)上位机和键盘都可设定温度和温度的上下限,且上 位机的权限大于键盘 的权限; (4) 温度初始值可进行灵活设定; (5) 系统控制精度不高. 第二章 硬件电路设计 硬件是实现本系统的重要基础,硬件电路做的是否合 理直接影响系统的稳定性和可靠性。下面对我的硬件系统 作具体的介绍。 2.1 基本硬件设计思路 本设计用温度传感器将被测温度转换为数字量,无需 放大即可与单片机相连。CPU 采用 AT89S52 单片机,它与 MCS-51 系列单片机完全兼容,同时具有较大的存储空间以 及具有在线编程功能,减少了编程时配套工具的使用.键盘 /显示通过可编程的键盘显示接口芯片 ZLG7290 实现温度限 值的设定和显示,同时使用具有实时性能的动态显示模块. 2.2 基本设计框图 总体设计框图如图 1-1 所示。说明如下: (1) DS18B20 检测温度,将温度值送 CPU 处理; (2) CPU 接受 DS18B20 传送的温度,并送 ZLG7290 芯片, 由数码管显示; (3) CPU 将接受的温度与设定的最大值、最小值进行比 较,如果温度超过所 设温度限值,转报警处理程序; (4) 由小键盘控制所需显示路数的温度,并在数码管 上显示; (5) CPU 将实时温度与设定的温度进行比较,若设定温 度低于实时温度,则开暖风机,若设定温度高于时温度, 则开冷风机。 图 1-1 基本设计框图 2.3 AT89S52 单片机 AT89S52 是一个低功耗,高性能,采用 CMOS 工艺的 8 位单片机,其片内含 8kB 的可在线编程。此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入和时器/计数器 2 的触发输入,具体如表 2.1 所示。 表 2.1 P1 口的替代功能 引脚号第二功能 P1.0T2,时钟输出 P1.1T2EX P1.5 MOSI P1.6MISO P1.7 SCK 在 flash 编程和校验时,P1 口接收低 8 位地址字节。 P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入口使用。作为输入使用时,被外部拉低的引脚由于内 部电阻的原因,将输出电流。在访问外部程序存储器或用 16 位地址读取外部数据存储器时,P2 口送出高八位地址。 在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8 位地址访问外部数据存储器时,P2 口输出 P2 锁存器的内 容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节 和一些控制信号。 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口 写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电 阻的原因,将输出电流。P3 口亦作为 AT89S52 特殊功能使 用,如表 2.2 所示。 表 2.2 P3 口的替代功能 引脚号第二功能 P3.0RXD P3.1TXD P3.2INT0(外部中断 0) 续表 2.2 P3.3INT1 (外部中断 0) P3.4T0 P3.5T1 P3.6WR (外部数据存储器写选通) P3.7RD (外部数据存储器写选通) 在 flash 编程和校验时,P3 口也接收一些控制 RST: 复位输入。晶振工作时,RST 脚持续 2 个机器 周期高电平将使单片机复位。看门 狗计时完成后,RST 脚 输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH) 上 的 DISRTO 位可以使此功能无效。DISRTO 默认状态下, 复位高电平有效。 ALE/PROG: 地址锁存控制信号是访问外部程序存储器 时,锁存低 8 位地址 的输出脉冲。在 flash 编程时,此引 脚也用作编程输入脉冲。在一般情况下,ALE 以晶振六分 之一的固定频率输出脉冲,可用来作为外部定时器或 时钟 使用。然而,特别强调,在每次访问外部数据存储器时, ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置“1”,ALE 操作将无效。这一位置“1”, ALE 仅在执行 MOVX 或 MOVC 指令时有效。否则,ALE 将被 微弱拉高。这个 ALE 使 能标志位的设置对微控制器处于外 部执行模式下无效。 PSEN:外部程序存储器选通信号是外部程序存储器选通 信号。 当 AT89S52 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次,而 在访问外部数据存储器时, PSEN 将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,EA 必须接 GND。 为了执行内部程序指令,EA 应该接 VCC。 在 flash 编程期间,EA 也接收 12 伏 VPP 电。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入 端。 XTAL2:振荡器反相放大器的输出端。 2.3.2 存储器组织和特殊功能寄存器 特殊功能寄存器(SFR)的地址空间都有具体的定义。但 并不是所有的地址都被定义了。片上没有定义的地址是不 能用的。读这些地址,一般将得到一个随机数据;写入的 数据将会无效。用户不应该给这些未定义的地址写入数据 “1”。由于这些寄存器在将来可能被赋予新的功能,复位 后,这些位都为“0”。 定时器 2 寄存器 寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态 位,寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉/自动重 载寄存器。 中断寄存器 各中断允许位在 IE 寄存器中,六个中断源的两个优先 级也可在 IE 中设置。 双数据指针寄存器 表 2.3 T2CON:定时器/计数器 2 控制寄存器 T2CON 地址:0C8H(可位寻址) 复位值:0000 0000B TF2EXF2RCLKTCLKEXEN2RT2C/T2CP/TL2 76543210 符 号功 能 TF2 定时器 2 溢出标志位,必须软件清零,RCLK 或 TCLK=1 时,该位不用置位 EXF2T2 外部标志。EXEN2=1 时,T23EX/P1.1 引脚上的 负跳变将引起 T2 的捕捉/重装操作,此时 EXF2=1。在 T2 中 断允许的条件下,EXF2=1 将引起中断。EXF2 位只能用软件 清除。在 T2 的向上/向下计数模式下,EXF2 的置位将不引 起中断。 RCLK 接收时钟允许。当 RCLK=1 时,T2 的溢出脉冲可 用做串行口的接收时钟信号,适用于串行模式 1 和 3。当 RCLK=0 时,T1 的溢出脉冲用做串行口接收时钟信号。 TCLK 发送时钟允许。当 TCLK=1 时,T2 的溢出脉冲可 用做串行口的发送时钟信号,适用于模式 1 和 3。当 TCLK=0 时,T1 的溢出脉冲可用做串行口的发送时钟信号。 EXEN2T2 的外部事件允许。当 EXEN2=1 时,如果 T2 没 有作串行时钟输出,则在 T2EX/P1.1 引脚的负跳变将引起 T2 的捕捉/重装操作。 当 EXEN2=0 时,T2EX/P1.1 的负跳变不起作用。 RT2T2 的启动/停止控制。当 TR2=1 时,T2 为外部计数 方式。当 TR2=0 时,T2 为定时器 C/T2T2 的计数/定时方式的选择。当 C/T2=1 时,T2 为 外部计数方式。当 C/T2=0 时,T2 为定时器。 CP/RL2 捕捉/重装载选择。 当 CP/RL2=1 且 EXEN2=1 时, T2EX/P1.1 引脚的负跳变将引起捕捉操作。当 CP/RL2=0 且 EXEN2=1 时,T2EX/P1.1 引脚的负跳变将引起自动重装载操 作。当 CP/RL2=0 且 EXEN2=0 时,T2 溢出将引起 T2 的自动 重装操作。 为了更有利于访问内部和外部数据存储器,系统提供 了两路 16 位数据指针寄存器:位于 SFR 中 82H83H 的 DP0 和位于 84H85。特殊寄存器 AUXR1 中 DPS0 选择 DP0;DPS=1 选择 DP1。用户应该在访问数据指针寄存器前 先初始化 DPS 至合理的值。 掉电标志位 掉电标志位位于特殊寄存器 PCON 的第四位。上电期间 POF 置“1”。POF 可以软件控制使用与否,但不受复位影 响。 存储器结构 MCS-51 器件有单独的程序存储器和数据存储器。外部 程序存储器和数据存储器都可以 64K 寻址。 程序存储器 如果 EA 引脚接地,程序读取只从外部存储器开始。对 于 89S52,如果 EA 接 VCC,程序读写先从内部存储器开始, 接着从外部寻址,寻址地址为:XXHFFFFH。 数据存储器 AT89S52 有 256 字节片内数据存储器。高 128 字节与 特殊功能寄存器重叠。也就是说高 128 字节与特殊功能寄 存器有相同的地址,而物理上是分开的。当一条指令访问 高于 7FH 的地址时,寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功 能寄存器。堆栈操作也是间接寻址方式。因此,高 128 字 节数据 RAM 也可用于堆栈空间。 2.3.3 低功耗节电模式 有两种节电模式:空闲模式和掉电模式。 空闲模式 在空闲工作模式下,CPU 处于睡眠状态,而所有片上 外部设备保持激活状态。这种状态可以通过软件产生。在 这种状态下,片上 RAM 和特殊功能寄存器的内容保持不变。 空闲模式可以被任一个中断或硬件复位终止。由硬件复位 终止空闲模式只需两个机器周期有效复位信号,在这种情 况下,片上硬件禁止访问内部 RAM,而可以访问端口引脚。 空闲模式被硬件复位终止后,为了防止预想不到的写端口, 激活空闲模式的那一条指令的下一条指令不应该是写端口 或外部存储器。 掉电模式 在掉电模式下,晶振停止工作,激活掉电模式的指令 是最后一条执行指令。片上 RAM 和特殊功能寄存器保持原 值,直到掉电模式终止。掉电模式可以通过硬件复位和外 部中断退出。复位重新定义了 SFR 的值,但不改变片上 RAM 的值。在 VCC 未恢复到正常工作电压时,硬件复位不 能无效,并且应保持足够长的时间以使晶振重新工作和初 始化。 在空闲模式和掉电模式下各引脚的状态如表 2.4 所示。 表 2.4 空闲模式和掉电模式下的外部引脚状态 模式程序存储器 ALEPSENPORT0PORT1PORT2PORT3 空闲内部 11 数据数据数据数据 空闲外部 11 浮空数据数据数据 掉电内部 00 数据数据数据数据 掉电外部 00 浮空数据数据数据 2.3.4 定时器 AT89S52 系列单片机含有 3 个可编程定时器/计数器 (T0、T1、T2)和 1 个看门狗定时器。 狗定时器 WDT 是一种需要软件控制的复位方式。WDT 由 13 位计 数器和特殊功能寄存器中的看门狗定时器复位存储器构成。 WDT 在默认情况下无法工作;为了激活 WDT,户用必须往 WDTRST 寄存器中依次写入 01EH 和 0E1H。当 WDT 激活后, 晶振工作,WDT 在每个机器周期都会增加。WDT 计时周期依 赖于外部时钟频率。除了复位,没有办法停止 WDT 工作。 当 WDT 溢出,它将驱动 RSR 引脚一个高个电平输出。 定时器 0 和定时器 1 在 AT89S52 中,定时器 0 和定时器 1 的操作与 AT89C51、AT89C52 和 MCS-51 系列单片机一样。 定时器 2 定时器 2 是一个 16 位定时/计数器,它既可以做定时 器,又可以做事件计数器。其工作方式由特殊寄存器 T2CON 中的 C/T2 位选择。定时器 2 有三种工作模式:捕捉方式、 自动重载和波特率发生器。如表 3 所示,工作模式由 T2CON 中的相关位选择。定时器 2 有 2 个 8 位寄存器:TH2 和 TL2。在定时工作方式中,每个机器周期,TL2 寄存器都 会加 1。由于一个机器周期由 12 个晶振周期构成,因此, 计数频率就是晶振频率的 1/12。 表 2.5 定时器 2 工作模式 RCLK+TCLKCP/RL2TR2MODE 00116 位自动重载 01116 位捕捉 1X1 波特率发生器 XX0 不用 默认在计数工作方式下,寄存器在相关外部输入角 T2 发生 1 至 0 的下降沿时增加 1。在这种方式下,每个机器 周期的 S5P2 期间采样外部输入。一个机器周期采样到高电 平,而下一个周期采样到低电平,计数器将加 1。在检测到 跳变的这个周期的 S3P1 期间,新的计数值出现在寄存器中。 因为识别 1 0 的跳变需要 2 个机器周期,所以,最大的计 数频率不高于晶振频率的 1/24。为了确保给定的电平在改 变前采样到一次,电平应该至少在一个完整的机器周期内 保持不变。 自动重载 当定时器 2 工作于 16 位自动重载模式,可对其编程 实现向上计数或向下计数。这一功能可以通过特殊寄存器 T2MOD 中的 DCEN 来实现。通过复位,DCEN 被置为 0,因此, 定时器 2 为向上计数。DCEN 设置后,定时器 2 就可以取决 于 T2EX 向上、向下计数。 表 2.6 T2MOD-定时器 2 控制寄存器 T2MOD 地址:0C9H 复位值:XXXX XX00B -T2OEDCEN 76543210 符号功 能 -无定义,预留扩展 T2OE 定时器 2 输出允许位 DCEN 置 1 后,定时器 2 可配置成向上/向下计数 如图 2-2 所示,DCEN=0 时,定时器 2 自动计数。通 过 T2CON 中的 EXEN2 位可以选择两种方式。如果 EXEN2=0,定时器 2 计数,计到 0FFFFH 后置位 TF2 溢出标 志。计数溢出也使得定时器寄存器重新从 RCAP2H 和 RCAP2L 中加载 16 位值。定时器工作于捕捉模式,RCAP2H 和 RCAP2L 的值可以由软件预设。如果 EXEN2=1,计数溢出 或在外部 T2EX 引脚上的 1 到 0 的下跳变都会触发 16 位重 载。这个跳变也置位 EXF2 中断标志位。 如图 2-2 所示,置位 DCEN,允许定时器 2 向上或向下 计数。在这种模式下,T2EX 引脚控制着计数的方向。T2EX 上的一个逻辑 1 使得定时器 2 向上计数。定时器计 0FFFFH 溢出,并置位 TF2。定时器的溢出也使得 RCAP2H 和 RCAP2L 中的 16 位值分别加载到定时器存储器 TH2 和 TL2 中。T2EX 上的一个逻辑 0 使得定时器 2 向下计数。当 TH2 和 TL2 分别等于 RCAP2H 和 RCAP2L 中的值的时候,计数器下溢。 计数器下溢,置位 TF2,并将 0FFFFH 加载到定时器存储器 中。定时器 2 上溢或下溢,外部中断标志位 EXF2 被锁死。 在这种工作模式下,EXF2 不能触发中断。 图 2-2 定时器 2 重载模式 波特率发生器 通过设置 T2CON 中的 TCLK 或 RCLK 可选择定时器 2 作 为波特率发生器。如果定时器 2 作为发送或接收波特率发 生器,定时器 1 可用作它用,发送和接收的波特率可以不 同。如图 2.3 所示,设置 RCLK 和 TCLK 可以使定时器 2 工作于波特率产生模式。 波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转使得定时器 2 寄存器重载被软件预置 16 位值的 RCAP2H 和 RCAP2L 中的值。 模式 1 和模式 3 的波特率由定时器 2 溢出速率决定, 具体如下公式: 定时器可设置成定时器,也可为计数器。在多数应用 情况下,一般配置成定时方式。定时器 2 用于定时器操作 与波特率发生器有所不同,它在每一机器周期都会增加; 然而,作为波特率发生器,它在每一机器状态都会增加。 波特率计算公式如下: 图 2-3 定时器 2 波特率发生器模式 其中,是 RCAP2H 和 RCAP2L 组成的 16 位无符号整数。 定时器 2 作为波特率发生器,如图 2-3 所示。图中仅仅在 T2CON 中 RCLK 或 TCLK1 才有效。特别强调,TH2 的翻转 并不置位 TF2,也不产生中断; EXEN2 置位后,T2EX 引脚 上 10 的下跳变不会使重载到中。因此,定时器 2 作为波 特率发生器,T2EX 也还可以作为一个额外的外部中断。 定时器 2 处于波特率产生模式,TR2=1,定时器 2 正常 工作。TH2 或 TL2 不应该读写。在这种模式下,定时器在每 一状态都会增加,读或写就不会准确。寄存器 RCAP2 可以 读,但不能写,因为写可能和重载交迭,造成写和重载错 误。在读写定时器 2 或 RCAP2 寄存器时,应该关闭定时器。 2.3.5 中断 AT89S52 有 6 个中断源:两个外部中断,三个定时中 断和一个串行中断。如图 2-4 所示。每个中断源都可以通 过置位或清除特殊寄存器 IE 中的相关中断允许控制位分别 使得中断源有效或无效。IE 还包括一个中断允许总控制位 EA,它能一次禁止所有中断。 如表 2.7 所示,IE.6 位是不可用的。对于 AT89S52,IE.5 位也是不能用的。用户软件不应给这些位写 1。它们为 AT89 系列新产品预留。 定时器 2 可以被寄存器 T2CON 中的 TF2 和 EXF2 的或逻 辑触发。程序进入中断服务后,这些标志位都可以由硬件 清 0。实际上,中断服务程序必须判定是否是 TF2 或 EXF2 激活中断,标志位也必须由软件清 0。 定时器 0 和定时器 1 标志位 TF0 和 TF1 在计数溢出的 那个周期的 S5P2 被置位。它们的值一直到下一个周期被电 路捕捉下来。然而,定时器 2 的标志位 TF2 在计数溢出的 那个周期的 S2P2 被置位,在同一个周期被电路捕捉下来。 图 2-4 中断源 表 2.7 中断允许控制寄存器 EAET2ESET1EX1ET0EX0 中断允许控制位=1,允许中断 中断允许控制位=0,禁止中断 续表 2.7 符 号位地址功 能 EAIE.7 中断总允许控制位。EA=0,中断禁止;EA=1, 各中断由各自的控制位设定 IE.6 预留 ET2IE.5 定时器 2 中断允许控制位 ESIE.4 串行口中断允许控制位 ET1IE.3 定时器 1 中断允许控制位 EX1IE.2 外部中断 1 允许控制位 ET0IE.1 定时器 0 中断允许控制位 EX0IE.0 外部中断 1 允许控制位 2.3.6 时钟 如图 2-5 所示,AT89S52 单片机有一个用于构成内部 振荡器的反相放大器,XTAL1 和 XTAL2 分别是放大器的输入、 输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激 振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接, 而从 XTAL1 接入,如图 2-6 所示。由于外部时钟信号经过 二分频触发后作为外部时钟电路输入的,所以对外部时钟 信号的占空比没有其它要求,最长低电平持续时间和最少 高电平持续时间等还是要符合要求的。 图 2.5 内部振荡电路连接图 图 2.6 外部振荡电路连 接图 2.4 ZLG7290 键盘/显示接口芯片 ZLG7290 是广州周立功单片机发展有限公司自行设计的 数码管显示驱动及键盘扫描管理芯片。一种 I2C 接口键盘 及 LED 驱动管理器件,提供数据译码和循环、移位、段寻 址等控制。能够直接驱动 8 位共阴式数码管,同时还可以 扫描管理多达 64 只按键,它可采样 64 个按键或传感器,单 片即可完成 LED 显示、键盘接口的全部功能。ZLG7290 的从 地址为 70H,器件内部通过 I2C 总线访问的寄存器地址范围 为 00H17H,任一寄存器都可按字节直接读写,并支持自 动增址功能和地址翻转功能。其中有 8 只按键还可以作为 功能键使用,就像电脑键盘上的“Ctrl”、“Shift”、 “Alt”键一样。另外 ZLG7290 内部还设置有连击计数器, 能够使某键按下后不松手而连续有效。采用 I2C 总线方式, 与微控制器的接口仅需两根信号线。该芯片为工业级芯片, 抗干扰能力强,在工业测控中已有大量应用。 2.4.1 ZLG7290 特点 I2C 串行接口,提供键盘中断信号,方便与处理器接口; 可驱动 8 位共阴数码管或 64 只独立 LED 和 64 个按键; 可控扫描位数,可控任一数码管闪烁; 提供数据译码和循环,移位,段寻址等控制; 8 个功能键,可检测任一键的连击次数; 无需外接元件即直接驱 LED,可扩展驱动电流和驱动电 压; 提供工业级器件,多种封装形式 PDIP24,SO24. 2.4.2 引脚及说明 采用 24 引脚封装引脚图如图 2-7 所示其引脚功能分述 如下: 图 2-7 ZLG7290 引脚图 引脚说明如下表: 2.4.3 功能描述 键盘部分 ZLG7290 可采样 64 个按键或传感器,可检测每个按键 的连击次数。其基本功能如下: 键盘去抖动处理 当键被按下和放开时,可能会出现电平状态反复变化, 称作键盘抖动。若不作处理会引起按键盘命令错误,所以 要进行去抖动处理,以读取稳定的键盘状态为准。 双键互锁处理 当有两个以上按键被同时按下时,ZLG7290 只采样优先 级高的按键。 连击键处理 当某个按键按下时,输出一次键值后,如果该按键还 未释放,该键值连续有效,就像连续压按该键一样,这种 功能称为连击。连击次数计数器可区别出单击或连击。判 断连击次数可以检测被按时间,以防止某些功能误操作。 功能键处理 功能键能实现 2 个以上按键同时按下来扩展按键数目 或实现特殊功能。如 PC 机上的“Shift”、“Ctrl”、 “Alt”键典型应用图中的 S57S64 为功能键。 图 2-8 系统功能框图即寄存器映象图 显示部分 在每个显示刷新周期,ZLG7290 按照扫描位数寄存器可 改变闪烁频率和占空比。 ZLG7290 提供两种控制方式:寄存器映象控制和命令 解释控制,如上述对显示部分的控制,寄存器映象控制是 指直接访问底层寄存器,实现基本控制功能,这些寄存器 须字节操作 命令解释控制是指通过解释命令缓冲区中的指令,间 接访问底层寄存器实现扩展控制功能。如实现寄存器的位 操作;对显示缓存循环,移位;对操作数译码等操作。请 参考指令详解部分 2.4.4 寄存器详解 系统状态部分 系统寄存器:地址 00H,复位值 11110000B。系统寄存 器保存 ZLG7290 系统状态,并可对系统运行状态进行配置, 其功能分位描述如下: KeyAvi: 置 1 时表示有效的按键动作/INT 引脚信号 有效;清 0 表示无按键动作,/INT 引脚信号无效。有效的 按键动作消失后或读 Key 后,KeyAvi 位自动清 0。 键盘部分 键值寄存器:地址 01H,复位值 00H。Key 表示被压按 键的键值。当 Key=0 时表示没有键被压按。 连击次数计数器地址 02H,复位值 00H。RepeatCnt=0 时,表示单击键。RepeatCnt 大于 0 时表示键的连击次数。 用于区别出单击键或连击键,判断连击次数可以检测被按 时间。 功能键寄存器地址 03H,复位值 0FFH。FunctionKey 对 应位的值=0 表示对应功能键被压按。 命令接口部分 命令缓冲区地址 07H08H 复位值 00H00H 用于传输 指令。 显示部分 闪烁控制寄存器:地址 0CH,复位值 0111B/0111B。高 4 位表示闪烁时亮的时间,低 4 位表示闪烁时灭的时间,改 变其值同时也改变了闪烁频率,也能改变亮和灭的占空比。 FlashOnOff 的 1 个单位相当于 150250ms 所有象素的闪烁 频率和占空比相同。 扫描位数寄存器地址 0DH,复位值 7。用于控制最大的 扫描显示位数,减少扫描位数可提高每位显示扫描时间的 占空比,以提高 LED 亮度。不扫描显示的显示缓存寄存器 则保持不变。如 ScanNum3 时,只显示 DpRam0DpRam3 的内容。 显示缓存寄存器:地址 10H17H,复位值 00H00H。 缓存中一位置 1 表示该像素亮,DpRam7DpRam0 的显示内 容对应 Dig7Dig0 引脚。 2.4.5 通信接口 ZLG7290 的 I2C 接口传输速率可达 32kbit/s,容易与 处理器接口,并提供键盘中断信号,提高主处理器时间效 率。ZLG7290 的从地址( slave address )为 70H(01110000B) 有效的按键动作(普通键的单击连击和功能键状态变化)都 会令系统寄存器(SystemReg)的 KeyAvi 位置 1,/INT 引脚 信号有效(变为低电平)。用户的键盘处理程序可由/INT 引 脚低电平中断触发,以提高程序效率。也可以不采样/INT 引脚信号节省系统的 I/O 数,而轮询系统寄存器的 KeyAvi 位。要注意读键值寄存器会令 KeyAvi 位清 0。并会令/INT 引脚信号无效。为确保某个有效的按键动作所有参数寄存 器的同步性。可利用 I2C 通信的自动增址功能连续读 RepeatCnt,FunctionKey 和 Key 寄存器,但用户无需太担 心寄存器的同步性问题,应为键参数寄存器变化速度较缓 慢 ZLG7290 内可通过 I2C 总线访问的寄存器地址范围为: 00H17H,任一寄存器都可按字节直接读写,也可以通过 命令接口间接读写或按位读写,请参考指令详解部分。支 持自动增址功能自动加一)和地址翻转功能后,寄存器子 地址翻转为 00H)。ZLG7290 的控制和状态查询全部都是通 过读/写寄存器实现的。用户只需象读写 24C02 内的单元一 样即可实现对 ZLG7290 的控制。 2.4.6 指令详解 ZLG7290 提供两种控制方式:寄存器映象控制和命令解 释控制,寄存器映象控制是指直接访问底层寄存器,实现 基本控制功能,请参考寄存器详解部分。命令解释控制是 指通过解释命令缓冲区中的指令,间接访问底层寄存器实 现扩展控制功能。如实现寄存器的位操作;对显示缓存循 环,移位;对操作数译码等操作。 一个有效的指令由一字节操作码和数个操作数组成, 只有操作码的指令称为纯指令,带操作数的指令称为复合 指令。一个完整的指令须在一个 I2C 帧中连续传输到命令 缓冲区中否则会引起错误。 纯指令 左移指令 该指令使与 ScanNum 相对应的显示数据和显示属性自 右向左移动 N 位+1)移动后右边 N 位无显示。与 ScanNum 不相关的显示数据和显示属性则不受影响。 右移指令 与左移指令类似,只是移动方向为自左向右,移动后, 左边 N 位+1)无显示。 循环左移指令 与左移指令类似,不同的是在每移动一位后,原最左 位的显示数据和属性转移到最右位。 循环右移指令 与循环左移指令类似,只是移动方向相反。 SystemReg 寄存器位寻址指令 当 On1 时,第 S 位置 1,当 On0 时,第 S 位清 0。 复合指令 显示像素寻址指令 当 On1 时,第 S 点像素亮;当 On0 时,第 S 点像 素灭。该指令用于点亮/关闭数码管中某一段,或 LED 矩阵 中某一特定的 LED;该指令受 ScanNum 的内容影响。S6S0 为像素地址,有效范围从 00H3FH,无效的地址不会产生 任何作用。像素位地址映象如下表: 像素地址 SaSbScSdSeSfSgSh DpRam000H01H02H03H04H05H06H07H DpRam108H09H0AH0BH0CH0DH0EHOFH . DpRam738H39H3AH3BH3CH3DH3EH3FH 按位下载数据且译码指令 其中 A3A0 为显示缓存编号,DP=1 时点亮该位小数点, Flash=1 时该位闪烁显示,Flash=0 时该位正常显示, D4D0 为要显示的数据,按以下表规则进行译码: 闪烁控制指令 当 Fn=1 时该位闪烁当 Fn=0 时,该位不闪烁。该指令 会改变所有像素的闪烁属性! 2.5 数字温度传感器 DS18B20 DS18B20 是 DALLAS 公司生产的一线式数字温度传感器, 具有 3 引脚 TO92 小体积封装形式;温度测量范围为 55125,可编程为 9 位12 位 A/D 转换精度,测 温分辨率可达 0.0625,被测温度用符号扩展的 16 位数字 量方式串行输出;其工作电源既可在远端引入,也可采用 寄生电源方式产生;多个 DS18B20 可以并联到 3 根或 2 根 线上,CPU 只需一根端口线就能与诸多 DS18B20 通信,占用 微处理器的端口较少,可节省大量的引线和逻辑电路。以 上特点使 DS18B20 非常适用于远距离多点温度检测系统。 2.5.1DS18B20 的主要特性 适应电压范围更宽,电压范围:3.05.5V,在寄生电 源方式下可由数据线供电 独特的单线接口方式,DS18B20 在与微处理器连接时仅 需要一条口线即可实现微处理器与 DS18B20 的双向通讯 DS18B20 支持多点组网功能,多个 DS18B20 可以并联在 唯一的三线上,实现组网多点测温 DS18B20 在使用中不需要任何外围元件,全部传感元件 及转换电路集成在形如一只三极管的集成电路内 温度范围55125,在-10+85时精度为 0.5 可编程的分辨率为 912 位,对应的可分辨温度分别 为 0.5、0.25、0.125和 0.0625,可实现高精度测 温 在 9 位分辨率时最多在 93.75ms 内把温度转换为数字, 12 位分辨率时最多在 750ms 内把温度值转换为数字,速度 更快 测量结果直接输出数字温度信号,以“一线总线“串行 传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠 错能力 负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 图 2-9 DS18B20 的外形及引脚排列 2.5.2 引脚及其说明 DS18B20 的外形及引脚排列如图 2-9 所示,其引脚说明 如下: 序号名称引脚功能描述 1GND 地信号 2DQ 数据输入/输出引脚。开漏单总线接口引脚。当被 用着在寄生电源下,也可以向器件提供电源 3VDD 可选择的 VDD 引脚。当工作于寄生电源时,此引 脚必须接地。 2.5.3 内部结构 DS18B20 内部结构如图 2-10 所示,主要由 4 部分组成: 64 位 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。 图 2-10 DS18B20 的内部结构 2.5.4 工作过程及时序 DSl820 工作过程中的协议如下: 初始化:RoM 操作命令;存储器操作命令;处理数据。 初始化 单总线上的所有处理均从初始化开始 ROM 操作品令 总线主机检测到 DSl820 的存在 便可以发出 ROM 操作 命令之一 这些命令如 下表: 指令代码 Read ROM(读 ROM)33H Match ROM(匹配 ROM55H Skip ROM(跳过 ROMCCH Search ROM(搜索 ROM)F0H Alarm search(告警搜索)ECH 存储器操作命令 指令代码 Write Scratchpad(写暂存存储器)4EH Read Scratchpad(读暂存存储器)BEH Copy Scratchpad(复制暂存存储器)48H Convert Temperature(温度变换)44H Recall EPROM(重新调出)B8H Read Power supply(读电源)B4H 时 序 主机使用时间隙(time slots)来读写 DSl820 的数据位 和写命令字的位 初始化 时序见图 2-11,主机总线 to 时刻发送一复位脉冲(最 短为 480us 的低电平信号),接着在 tl 时刻释放总线并进 入接收状态,DSl820 在检测到总线的上升沿之后,等待 15-60us 接着 DS1820 在 t2 时刻发出存在脉冲(低电平持续 60-240 us),如图中虚线所示: 图 2-11 写时间隙 当主机总线 to 时刻从高拉至低电平时,就产生写时间 隙,见图 2-12、图 213,从 to 时刻开始 15us 之内应将 所需写的位送到总线上,DSl820 在 to 后 15-60us 间对总线 采样。若低电平,写入的位是 0,见图 2-12;若高电平, 写入的位是 1,见图 213。连续写 2 位间的间隙应大于 1us 图 2-12 图 2-13 读时间隙 见图 2-14,主机总线 to 时刻从高拉至低电平时,总线 只须保持

温馨提示

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

评论

0/150

提交评论