基于51单片机的智能家居控制系统设计内容摘要:

,数秒即可完成一片。 ( 8) 具有 EEPROM 功能。 5 ( 9) 具有 看门狗 功能。 ( 10) 共 3个 16位 定时器 /计数器。 即 定时器 T0、 T T2。 ( 11) 外部中断 4路, 下降沿中断或低电平触发电路, Power Down模式可由 外部中断低电平触发 中断方式 唤醒。 ( 12) 通用异步 串行口 ( UART),还可用定时器 软件 实现多个 UART。 ( 13) 工作温度范围: 40~ +85℃ (工业级) /0~ 75℃ (商业级)。 ( 14) PDIP 封装 [5]。 DS12C887 ( 1) 器件特性 : DS12C887 实时时钟芯片功能丰富,可以用来直接代替 IBM PC 上的时钟日历芯片DS12887,同时,它的管脚也和 MC146818B、 DS12887 相兼容。 由于 DS12C887 能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决了 “千年 ”问题; DS12C887 中自带有锂电池,外部掉电时,其内部时间信息还能够保持 10 年之久;对于一天内的时间记录,有 12 小时制和 24 小时制两种模式。 在 12小时制模式中,用 AM 和 PM 区分上午和下午 ;时间的表示方法也有两种,一种用二进制数表示,一种是用 BCD 码表示; DS12C887 中带有128字节 RAM,其中有 11 字节 RAM用来存储时间信息, 4字节 RAM用来存储 DS12C887的控制信息,称为控制寄存器, 113直接通过 RAM使用户使用;此外用户还可对 DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽 [6]。 ( 2) 引脚功能 : DS12C887 的引脚图排列如图 所示,各管脚说明如下: GND、 VCC:直流电源,其中 VCC 接 +5 输入, GND 接地,当 VCC 输入为 +5V 时 ,用户可以访问 DS12C887 内 RAM 中的数据,并可对其进行读、写操作;当 VCC 的输入小于 + 时,禁止用户对内部 RAM 进行读、写操作,此时用户不能正确获取芯片内的时间信息;当 VCC 的输入小于 +3 时, DS12C887 会自动将电源转换到内部自带的锂电池上,以保证内部的电路能够正常工作。 MOT:模式选择脚, DS12C887 有两种工作模式,即 Motorola 模式和 Intel模式,当MOT接 VCC 时,选用的工作模式是 Motorola 模式,当 MOT接 GND 时,选用的是 Intel模式。 本文主要讨论 Intel模式。 6 图 DS12C887 引脚图 SQW:方波输出脚,当供电电压 VCC 大于 时, SQW 脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到 13 种方波信号的输出。 AD0~ AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在 AD0~ AD7 上的是地址信息,可用以选通 DS12C887 内的 RAM,总线周期的后半部分出现在 AD0~ AD7 上的数据信息。 AS:地址选通输入脚,在进行读写操作时, AS 的上升沿将 AD0~ AD7 上出现的地址信息锁存到 DS12C887 上,而下一 个下降沿清除 AD0~ AD7 上的地址信息,不论是否有效, DS12C887 都将执行该操作。 DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当 MOT接 VCC 时,选用Motorola 工作模式,在这种工作模式中,每个总线周期的后一部分的 DS 为高电平,被称为数据选通。 在读操作中, DS 的上升沿使 DS12C887 将内部数据送往总线 AD0~ AD7上,以供外部读取。 在写操作中, DS 的下降沿将使总线 AD0~ AD7 上的数据锁存在DS12C887 中;当 MOT接 GND 时,选用 Intel 工作模式,在该模式中,该引脚是读允许输入 脚,即 Read Enable。 R/W:读 /写输入端,该管脚也有 2 种工作模式,当 MOT 接 VCC 时, R/W 工作在Motorola 模式。 此时,该引脚的作用是区分进行的是读操作还是写操作,当 R/W 为高电平时为读操作, R/W 为低电平时为写操作;当 MOT接 GND 时,该脚工作在 Intel 模式,此时该作为写允许输入,即 Write Enable。 CS:片选输入,低电平有效。 IRQ:中断请求输入,低电平有效,该脚有效对 DS12C887 内的时钟、日历和 RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应 用中, RESET可以 7 直接接 VCC,这样可以保证 DS12C887 在掉电时,其内部控制寄存器不受影响。 在 DS12C887 内有 11 字节 RAM 用来存储时间信息, 4 字节用来存储控制信息,其具体的地址及取值如表 所列。 由表 可以看出: DS12C887 内部有控制寄存器的 AB等 4 个控制寄存器,用户都可以在任何时候对其进行访问以对 DS12C887 进行控制操作 [7]。 表 DS12C887 的存储功能 地址 功能 取值范围十进制数 取值范围 二进制 BCD 码 0 秒 059 003B 0059 1 秒闹钟 059 003B 0059 2 分 059 003B 0059 3 分闹钟 059 003B 0059 4 12 小时模式 112 010C AM 818C PM 0112 AM 8192 PM 24 小时模式 023 0017 0023 5 时闹钟, 12 小时制 112 010C AM 818C PM 0112 AM 8192 PM 时闹钟, 24 小时制 023 0017 0023 6 星期几(星期天 =1) 17 0107 0107 7 日 131 011F 0131 8 月 112 010C 0112 9 年 099 0063 0099 10 控制寄存器 A 11 控制寄存器 B 12 控制寄存器 C 13 控制寄存器 D 50 世纪 099 NA 19, 20 8 DS18B20 DSl8B20 数字温度计提供 9 位 (二进制 )温度读数,指示器件的温度信息经过单线接口送入 DSl8B20 或从 DSl8B20 送出,因此从主机 CPU 到 DSl8B20 仅需一条线 (和地线 )。 DSl8B20 的电源可以由数据线本身提供而不需要外部电源。 因为每一个 DSl8B20 在出厂时已经给定了唯一的序号,因此任意多个 DSl8B20 可以存放在 同一条单线总线上。 这允许在许多不同的地方放置温度敏感器件。 DSl8B20 的测量范围从 55℃ 到 +125℃ ,增量值为 ℃ ,可在 ls(典型值 )内把温度变换成数字 [8]。 每一个 DSl8B20 包括一个唯一的 64 位长的序号,该序号值存放在 DSl8B20 内部的ROM(只读存贮器 )中。 开始 8 位是产品类型编码 (DSl8B20 编码均为 10H)。 接着的 48 位是每个器件唯一的序号。 最后 8 位是前面 56 位的 CRC(循环冗余校验 )码。 DSl8B20 中还有用于贮存测得的温度值的两个 8 位存贮器 RAM,编号为 0 号和 1 号。 1 号存贮器存放温度值的符号,如果温度为负 (℃ ),则 1 号存贮器 8 位全为 1,否则全为 0。 0 号存贮器用于存放温度值的补码, LSB(最低位 )的 “1”表示 ℃。 将存贮器中的二进制数求补再转换成十进制数并除以 2 就得到被测温度值 (55℃ ——125℃ )。 DSl8B20 的引脚如图 所示。 每只 DS18B20 都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。 采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快 [9]。 图 DS18B20 引脚图 DS18B20 电路图如图 所示: 9 图 DS18B20 电路图 74HC138 74HC138 是一款高速 CMOS 器件, 74HC138 引脚兼容低功耗肖特基 TTL( LSTTL)系列。 74HC138 译码器可接受 3 位二进制加权地址输入( A0, A1 和 A2),并当使能时,提供 8 个互斥的低有效输出( Y0 至 Y7)。 74HC138 特有 3 个使能输入端:两个低有效( E1和 E2)和一个高有效( E3)。 除非 E1 和 E2 置低且 E3 置高,否则 74HC138 将保持所有输出为高。 利用这种复合使能特性,仅需 4 片 74HC138 芯片和 1 个反相器,即可轻松实现并行扩展,组合成为一个 132( 5 线到 32 线)译码器。 任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则 74HC138 亦可充当一个 8 输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态 [10]。 74HC138 与 74HC238 逻辑功能一致,只不过 74HC138 为反相输出。 74HC138 的功能表如 表 所示: 表 74HC138 功能表 10 74HC138 引脚图如图 所示: 图 74HC138 引脚图 74HC595 74HC595是硅结构的 CMOS器件,兼容低电压 TTL电路,遵守 JEDEC 标准。 74HC595是具有 8 位 移位寄存器 和一个 存储器 ,三态输出功能。 移位寄存器和 存储器 是分别的时钟。 数据在 SHcp 的上升沿输入到 移位寄存器 中,在 STcp 的上升沿输入到存储寄存器中去。 如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入( Ds),和一个串行输出( Q7’) ,和一个异步的低电平复位,存储寄存器有一个并行 8 位的,具备三态的总线输出,当使能 OE时(为低电平), 存储寄存器的数据输出到总线 [11]。 8 位串行输入 /输出或者并行输出移位寄存器,具有高阻关断状态。 三态。 将串行输入的 8 位数字,转变为并行输出的 8 位数字,例如控制一个 8 位数码管,将不会有闪烁。 特点: 8 位串行输入 /8 位串行或并行输出;存储状态寄存器,三种状态;输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。 )可以直接清除 100MHz的移位频率 [12]。 引脚说明: Q0Q7: 8 位并行数据输出,其中 Q0 为第 15 脚。 GND:第 8 脚,地。 Q7’:第 9 脚,串行数据输出。 MR:第 10 脚,主复位(低电平)。 SHCP:第 11 脚,移位寄存器时钟输入。 STCP:第 12 脚,存储寄存器时钟输入。 11 OE:第 13 脚,输出有效(低电平)。 DS:第 14 脚,串行数据输入。 VCC:第 16 脚,电源。 74HC595 引脚图如图 所示: 图 74HC595 引脚图 系统各个模块硬件电路介绍 单片机最小系统设计 单片机最小系统原理图如图 所示: 图 单片机最小系统 12 以 STC89C52 单片机为核心,选用 12MHZ的晶振,由于晶振的频率越高,单片机的运行速度就越快, 但考虑到单片机的运行速度快会导致对存储器的要求就会变高,因此 12MHZ晶振为最佳选择。 外接电容的值虽然没有严格的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用 30pF 的电容作为起振电容。 复位电路为按键高电平复位,当按键按下, RES 端为高电平,当高电平持续4us 的时间就可以使单片机复位 [13]。 DS12C887 时钟电路设计 本系统采用 DS12C887 时钟芯片定时及计时功能, DS12C887 时钟芯片共需要 13条信号线。 GND、 VCC:直流电源,其中 VCC 接 +5V 输入, GND 接地。 MOT:模式选择脚,本系统采用 Intel模式。 SQW:方波输出脚,当供电电压 VCC 大于 时, SQW 脚可进行方波输出。 AD0~ AD7:复用地址数据总线,该总线采用分时复用技术,在总线周期的前半部分,出现在 AD0~ AD7 上的是地址信息,可用以选通 DS12C887 内的 RAM,总线周期的后半部分出现在 AD0~ AD7 上的数据信息。 AS:地址选通输入脚。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。