万年历单片机课程设计(编辑修改稿)内容摘要:

2 在双电源系统中提供主电源,在这种运用方式中, Vcc1 连接到备份电,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 Vcc1 或 Vcc2 中较大者供电。 当 Vcc2 大于 单片机课程设计 8 Vcc1+ 时, Vcc2 给 DS1302 供电;当 Vcc2 小于 Vcc 时, DS13026 由 Vcc1供电。 DS1302 数据操作原理 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。 无论是读周期还是写周期,开始 8 位指定 40 个寄存器中哪个将被访问到。 在开始 8 个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作是写入时写入数据。 时钟脉冲的个数在单字节 方式下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。 如果在传送过程中置 RST 脚为低电平,则会终止本次数据传送,并且 I/O引脚变为高阻态。 上电运行时,在 Vcc 大于等于 ,RST 脚必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 内部结构图如图 33 所示,表 32 为各引脚的功能。 电源控制输入移位寄存器实时时钟31 8 RAM振荡器与分频器命令与控制逻辑Vcc 1Vcc 2GNDI / OSCLKRSTX 1 X 232 . 768 KHz 图 33 DS1302内部结构 表 32 DS1302引脚功能 引脚号 引脚名称 功 能 1 Vcc2 主电源 2,3 X1, X2 振荡源,外界 晶振 4 GND 地线 单片机课程设计 9 5 RST 复位 /片选线 6 I/O 串行数据输入 /输出端 (双向 ) 7 SCLK 串行数据输入端 8 Vcc1 后备电池 DS1302 的控制字如图 34 所示。 控制字节的最高位(位 7)必须是逻辑 1;如果它为 0,则不能把数据写入到 DS1302 中。 位 6 如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。 位 5~ 1( A4~ A0)指示操作单元的地址。 最低有效位(位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。 控制字节总是 从最低位开始输入 /输出。 图 34 DS1302的控制字 为了提高对 32 个地址的寻址能力(地址 /命令位 1~ 5=逻辑 1),可以把时钟/日历或 RAM 寄存器规定为多字节( burst)方式。 位 6 规定时钟或 RAM,而位0 规定读或写。 在时钟 /日历寄存器中的地址 9~ 31 或 RAM 寄存器中的地址 31不能寄存数据。 在多字节方式中,读或写从地址 0 的位 0 开始。 必须按数据传送的次序写最先的 8 个寄存器。 但是,当以多字节方式写 RAM 时,为了传送数据不必写所有 31 字节。 不管是否写了全部 31 字节,所写的每一字节都将传送至RAM。 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。 其日历、时间寄存器及其控制字见表 33,其中奇数为读操作,偶数为写操作。 表 33 内部寄存器地址和内容 积存器名 命令字节 取值范围 积存器内容 写 读 7 6 5 4 3 2 1 0 秒积存器 80H 81H 00~59 CH 10S SEC 单片机课程设计 10 分积存器 82H 83H 00~59 0 10 min MIN [小 ]时积存器 84H 85H 00~23 或 01~12 12/24 0 10A/P HR HR 日积 存器 85H 87H 01~28, 29, 30, 31 0 0 10DATE DATE 月积存器 88H 89H 01~12 0 0 0 10M MONTH 周积存器 8AH 8BH 01~07 0 0 0 0 0 DAY 年积存器 8CH D3H 00~99 10YEAR YEAR 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。 当它为 1 时, DS1302 停止震荡,进入低功耗的备份方式。 通常在对 DS1302 进行写操作时(如进入时钟调整程序),停止震荡。 当它为 0 时,时钟将开始启动。 AM- PM/12- 24[小 ]时方式: [小 ]时寄存器的位 7 定义为 12 或 24[小 ]时方式选择位。 它为高电平时,选择 12[小 ]时方式。 在此方式下,位 5 是 AM/PM 位,此位是高电平时表示 PM低电平表示 AM。 在 24[小 ]时方式下,位 5为第二个 10[小 ]时位( 20~ 23h)。 DS1302 的晶震选用 ,电容推荐值为 33pF,因为震荡频率较低,也可以不接电容,对计时精度影响不大。 本系统即采用了 DS1302 时钟芯片,其外部电路如图 35 所示。 其中 VCC2接 5V 系统稳压电源, VCC1 接备用干电池, SCLK、 I/O、 RST 端口与主控制 器相对应的端口相连接, X X2 外界晶振。 图 35 时钟电路 显示电路的设计 显示部分采用普通的共阴极数码管显示,采用动态扫描,以减少硬件电路。 单片机课程设计 11 为了减少 I/O 接口,在使用两个 LG3641 共阴极数码管的情况下,采用 2 片74HC573 分别作为数码管的驱动,输出位选和段选信号驱动数码管显示相应内容。 数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元 DP( decimal point),其基本单元是发光二极管。 本系统采 用动态显示驱动。 动态显示驱动是将所有数码管通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示。 将所有数码管的 8 个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极 COM增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 图 36 74HC573引脚图 74HC573 包含八进制 3 态非反转透明锁存器,是一种高性能硅门 CMOS 器件。 SL74HC573 跟 LS/AL573 的管脚一样,其引脚图见图 36。 器件的输入是和标准 CMOS 输出兼容的,加上拉电阻他们能和 LS/ALSTTL 输出兼容。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。 当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 本系统所采用的显示电路接线图如图 37 所示。 其中,第一片 74LS573 作为数码管的段码驱动,输入端与单片机的 P0 口相连接,输出端接八位共阴数 码管相应的段码输入端( adp) ,端口 C 与单片机相应的段码输出端相连接, VCC 接主电源, GND、 OC 接地。 相应的,第二片 74LS573 作为数码管的位码驱动,输 单片机课程设计 12 入端与单片机的 P0 口相连接,输出端接八位共阴数码管相应的位码端口相连接,CC 接主电源, GND、 OC 接地。 图 37 数码管显示电路 键盘接口的设计 由于按键有 8 个,用普通按钮接 10K 上拉电阻,用查询法完成读键功能。 其线路连接图下图所示。 图 38 按键电路 4 系统软件设计 本系统软件分为主程序、中断服务程序、子程序三个模块进行编写。 由于本 单片机课程设计 13 系统程序相对来讲比较简单,用轮询法对键盘进行反复扫描,用中断法进行数码管显示,每隔一段时间,定时器向 CPU 申请中断,调用中断服务子程序,根据当前的键值,显示日期、时间或者周秒。 而子程序为一些常用的延时函数、显示函数等。 主程序设计 由于本系统程序相对来讲比较简单,主程序流程图如图 41 所示。 系统上电启动后,定义后续过程中要使用到的全局变量,对定时器和 DS1302 进行初始化之后,进入主循环对键盘进行扫描,若检测到有按键按下,进入相应的键处理程序;若没有检测到按键按下,继续扫描键盘。 定义全局变量NY取得相应的键值。 开始定时器初始化DS 1302 初始化调用键盘扫描程序执行相应的键处理程序 图 41 主程序流程图 中断服务程序设计 定时器 0 定时时间到,向 CPU 申请中断而进入中断服务程序。 进入中断服务程序后,先清中断标志位,再对定时器 0 赋初始值,接着调用数码管扫描子程序达到数码管动态显示的目的,延时 100ms 后,读标志位置 1,这里的 “读 ”是指从时钟芯片 DS1302 中读取相关数据。 单片机课程设计 14 清中断标志位开始定时器赋初值调用数码管扫描子程序延时 100 ms读标志位置 1结束 图 42 中断服务程序流程图 子程序设计 延时子程序 此延时子程序可用于对延时时间不是 特别精确的场合,其程序流程图如图43 所示,主体是一个循环结构,先对 t 赋初始值 255,通过循环执行“ t”指令而达到延时的目的。 定义变量 t=255NYt=0?开始t结束 图 43 延时子程序流程图 数码管动态扫描子程序 本系统使用 8 位八段共阴极数码管用于显示时间和日期,而 74LS73 作为数码管的驱动芯片,如要控制数码管的显示只需要用程序控制 74LS73 即可。 子程序中定义 i 为需要显示的位数,通过对段码和位码的锁存达来到数码管动态显示的目的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。