简易万年历的设计(编辑修改稿)内容摘要:

平约等于 5V,使用灌电流的方式驱动数码管,故选用PNP 型三极管 9012;数码管能正常工作的段电流为 3mA10 mA,压降为,三极管发射极和集电极的压降为 ,因此限流电阻的压 降为 , 所以选用限流电阻的阻值 R=470 欧 . 独立式按键模块 独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其它 I/O 口线的状态。 独立式按键的典型应用如(图 33)所示。 h g f e d c b a 16 进制 0 1 1 0 0 0 0 0 0 0XC0H 1 1 1 1 1 1 0 0 1 0XF9H 2 1 0 1 0 0 1 0 0 0XA4H 3 1 0 1 1 0 0 0 0 0XB0H 4 1 0 0 1 1 0 0 1 0X99H 5 1 0 0 1 0 0 1 0 0X92H 6 1 0 0 0 0 0 1 0 0X82H 7 1 1 1 1 1 0 0 0 0XF8H 8 1 0 0 0 0 0 0 0 0X80H 9 1 0 0 1 0 0 0 0 0X90H c 1 1 0 0 0 1 1 0 0XC6H 1 0 1 1 1 1 1 1 0XBFH L 1 1 0 0 0 1 1 1 0XC7H H 1 0 0 0 1 0 0 1 0X89H  500105mAVR 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O 口线,因此,在按键较多时, I/O 口线浪费较大,但本设计只用到四个按键,顾采用独立式按键电路。 K0K1K2K3P24P25P26P27按键模块 图 33 独立式按键电路 时钟 模块 DS1302 通过三根口线实现与单片机的通信,因 DS1302 功耗很小,即使电源掉电后通过 3V 的纽扣电池仍能维持 DS1302 精确走时。 DS1302 特性介绍 DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM 数据。 实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31 天时可以自动调整,且具有闰年补偿功能。 工作电压宽达 ~。 采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。 DS1302 引脚介绍 各引脚的 功能为: Vcc2: 5V 电源。 当 Vcc2Vcc1+ 时,由 Vcc2 向 DS1302 供电, 当 Vcc2 Vcc1 时,由 Vcc1 向 DS1302 供电。 2 和 X X2 是外接晶振脚 ( 的晶振) 地( GND) CE/RST:复位脚 I/O:数据输入输出口; SCLK:串行时钟,输入; Vcc1:备用电池端; DS1302 有关日历、时间的寄存器 寄存器的说明如下: 秒寄存器( 81h、 80h)的位 7 定义为时钟暂停标志( CH)。 当初始上 电时该位置为 1,时钟振荡器停止, DS1302 处于低功耗状态;只有将 秒寄存器的该位置改写为 0 时,时钟才能开始运行。 小时寄存器( 85h、 84h)的位 7 用于定义 DS1302 是运行于 12 小时模 式还是 24 小时模式。 当为高时,选择 12 小时模式。 在 12 小时模式时, 位 5 是 ,当为 1 时,表示 PM。 在 24 小时模式时,位 5 是第二个 10 小时位 控制寄存器( 8Fh、 8Eh)的位 7 是写保护位( WP),其它 7 位均置为 0。 在对任何的时钟和 RAM 的写操作之前, WP 位必须为 0。 当 WP 位为 1 时,写保护位防止对任一寄存器的写操作。 也就是说在电路上 电的初始态 WP 是 1,这时是不能改写上面任何一个时间寄存器的, 只有首先将 WP 改写为 0,才能进行其它寄存器的写操作。 DS1302 控制字介绍 位 7: 必须是逻辑 1,如果它为 0,则不能把数据写入到 DS1302 中。 位 6: 如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据; 位 5 至位 1( A4~ A0): 指示操作单元的地址; 位 0(最低有效位): 为 0,表示要进行写操作, 为 1 表示进行读操作。 读数据: 读数据时在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降 沿,读出 DS1302 的数据,读出的数据是从最低位到最高位。 写数据: 控制字总是从最低位开始输出。 在控制字指令输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入也是从最低位 ( 0 位)开始。 位 0(最低有效位):为 1 表示进行读操作。 如为 0, 表示要进行写操作,控制字后 SCLK 下降沿 读数据 SCLK 上升沿写 数据。 DS1302 单字节读写时序介绍 DS1302 的 数据读写是通过 I/O 串行进行的。 当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302 是读还是写操作,是对 RAM 还是对 CLOK 寄存器操作,以及操作的址。 第二个字节就是要读或写的数据了。 单字节写:在进行操作之前先得将 CE(也可说是 RST)置高电平,然后单片机将控制字的位 0 放到 I/O 上,当 I/O 的数据稳定后,将 SCLK置高电平, DS1302 检测到 SCLK 的上升沿后就将 I/O 上的数据读取,然后单片机将 SCLK 置为低电平,再将控制字的位 1 放到 I/O 上,如此反复,将一个字节控 制字的 8 个位传给 DS1302。 接下来就是传一个字节的数据给 DS1302,当传完数据后,单片机将 CE 置为低电平,操作结束。 单字节读操作的一开始写控制字的过程和上面的单字节写操作是一样,但是单字节读操作在写控制字的最后一个位, SCLK 还在高电平时,DS1302 就将数据放到 I/O 上,单片机将 SCLK 置为低电平后数据锁存, 单机机就可以读取 I/O 上的数据。 如此反复,将一个字节的数据读入单片机。 读与写操作的不同就在于,写操作是在 SCLK 低电平时单片机将数据放到 IO 上,当 SCLK 上升沿时, DS1302 读取。 而 读操作是在 SCLK 高电平时 DS1302 放数据到 IO 上,将 SCLK 置为低电平后,单片机就可从IO 上读取数据。 DS1302 操作指令介绍 操作说明: 1 首先要通过 8EH 将写保护去掉,将日期,时间的初值写时各个寄器。 2 然后就可以对 80H、 82H、 84H、 86H、 88H、 8AH、 8CH 进行初值 的写入。 同时也通过秒寄存器将位 7 的 CH 值改成 0,这样 DS1302 就 开始走时了。 3 将写保护寄存器再写为 80H,防止误改写寄存器的值。 4 不断读取 80H- 8CH 的值,将它们格式化后显示 到数码管上 DS1302 与单片机接口电路 V c c 21X12X23G N D4R S T5I /O6S C L K7V c c8U1D S 1 30 2V C CV C CX T 232 76 8H ZR 145KR 155KP32P33P34+12J P 13V时钟模块 温测 模块 DS18B20 通过单总线实现与单片机的通信,每个 DS18B20 都有一个唯一的序列号,可以方便的实现组网检测。 单总线介绍 ,系统中的数据交换,控制都由这根线完成。 — 10K 的上拉电阻,这样,当总线 闲置时其状态为高电平。 DS18B20 特性介绍 DS18B20 单线数字温度传 感器,即“一线器件”,其具有独特的优点: 1. 采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现 微处理器与 DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能 力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻 松地组建传感器网络,为测量系统的构建引入全新概念。 2. 测量温度范围宽,测量精度高 DS18B20 的测量范围为 55 ℃ ~+ 125 ℃ ; 在 10~+ 85176。 C 范围内,精度为 177。 176。 C。 3. 在使用中不需要任何外围元件。 4. 支持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多 点测温。 5. 供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电 源。 因此,当数据线上的时序满足一定的要求时,可以不接外部电源, 从而使系统结构更趋简单,可靠性更高。 6. 测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。 7. 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常作。 8. 掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它 仍可保存分辨率及报警温度的设定值。 9. DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方 式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也 就被设计者们所青睐。 DS18B20 管脚介绍 DS18B20 的管脚排列 1 . GND 为电源 地; 2. DQ 为数字信号输入/输出端; 3. VDD 为外接供电电源输入端,在寄生 电源接线方式时接地; DS18B20 内部结构 DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM 、温度传感器、非挥发的温度报警触发器 TH 和 TL 、配置寄存器。 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。 64 位光刻 ROM 的排列是:开始 8 位(地址: 28H )是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,并且每个 DS18B20 的序列号都不相同,因此它可以看作是该 DS18B20 的地址序列码;最后 8 位则是前面 56 位的循环冗余校验码( CRC=X8+X5+X4+1 )。 由于每一个 DS18B20 的 ROM 数据都各不相同,因此微控制器就可以通过单总线对多个 DS18B20 进行寻址,从而实现一根总线上挂接多个 DS18B20 的目的。 DS18B20 中的温度传感器完成对温度 的测量,用 16 位二进制形式提供,形式表达,其中 S 为符号位。 DS18B20 温度转化示例 DS18B20 时序介绍 DS18B20 的一线工作协议流程是: 初始化→ ROM 操作指令→存储器操作指令→数据传输。 其工作时序包括: 1. 初始化时序 2. 写时序 3. 读时序 初始化时序: 主机首先发出一个 480- 960 微秒的低电平脉冲,然后释放总线变为高电平,并在随后的 480 微秒时间内对总线 进行检测,如果有低电平出现说明总线上有器件已做出应答。 若无低电平出现一直都是高电平说明总线上无器件应答。 做为从器件的 DS18B20 在一上电后就一直在检测总线上是否有 480- 960 微秒的低电平出现,如果有,在总线转为高电平后等待 15- 60 微秒后将总线电平拉低 60- 240 微秒做出响应存在脉冲,告诉主机本器件已做好准备。 若没有检测到就一直在检测等待。 写操作: 写操作就是主机发出各种操作命令,但各种操作命令都是向 DS18B20写 0 和写 1 组成的命令字节,接收数据时也 是从 DS18B20 读取 0 或 1 的过程。 写周期最少为 60 微秒,最长不超过 120 微秒。 写周期一开始做为主机先把总线拉低 1 微秒表示写周期开始。 随后若主机想写 0,则继续拉低电平最少 60。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。