实时日历和时钟显示单片机毕业设计内容摘要:

0 0 0 2 4 0 0 0 6 0 0 0 0 0 0 0 ≈ 4 0 0 0 6 0 0 0 R/C A2 A3 A0 A1 R/W A4 1 ≈ DATA I/O BYTE DATA I/O BYTE ≈ RST 广东 XX 大学 2020 届毕业设计 8 多字节读写 BEH BFH — — 表 35 片内时钟数据寄存器 的应用 实时时钟芯片 DS1302 采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以 关闭充电功能,芯片采用 32768Hz 晶振。 要特别说明的是,备用电源 BT1 可以用电池或超级电容( 10万μ F 以上)。 虽然 DS1302 在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。 如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替( 100μ F就可以保证 1 小时的正常走时)。 DS1302 在第一次加电后,需进行初始化操作。 初始化后就可以按正常方法调整时间。 DS1302 的时钟电路如图 36所示。 图 36 DS1302时钟电路 数码管 LED LED 显示器由若干个发光二 极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。 控制相应的管导通,就能显示出对应字符。 各段 LED 显示器需要由驱动电路驱动。 在七段 LED 显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。 将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;将阴极连在一起的叫共阴极显示器,用高电平驱动。 静态显示就是每一个显示器各笔画段都要独占具有一个锁存功能的输出口线, CPU 把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使 CPU 不在去访问它,因为各笔画段借口具有锁存功 能,显示的内容也不会消失。 广东 XX 大学 2020 届毕业设计 9 动态显示是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。 静态显示有并行输出和串行输出两种方式。 在本系统中数码管使用共阴极接法而且是用动态显示。 译码器 74HC138 74HC138 译码器是通过 3条线来达到控制 8条线的状态,就是通过 3条控制线 A0、 A A2 不同的高低电平组合来控制 Y0~ Y7的输出状态,其中 4 和 5 为使能地端,与 8 引脚共同接地,当接高电平时 Y0 到 Y7 输出高电平。 6号脚为使能端,为高电平时有效。 74HC138 封装如图 37。 当需要级联时只需要改变使 能端信号引脚即可,连接方法简单。 图 37 74HC138封装图 锁存器 74LS244 74ls244 由 2 组、每组四路输入、输出构成。 每组有一个控制端 G,由控制端的高或低电平决定该组数据被接通还是断开。 图 38 74LS244引脚图 9101112131415161 2 3 4 5 6 7 8A0 A1 A2Y\0 Y\1 Y\2 Y\3 Y\4 Y\5 Y\6Y\7 GNDVCCG1G\2A G\2B广东 XX 大学 2020 届毕业设计 10 电路设计框图 系统概述 本电路是由 AT89S52 单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由 DS1302 提供,它是一种高性能、低功耗 、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 ~。 采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 内部有一个 31*8的用于临时性存放数据的 RAM 寄存器。 可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由 15 个数码管, 74Hs13 74ls244 构成。 使用动态扫描显示方式对数字的显示。 硬件的结构和可靠性直接影响着整个系统的可 靠性,所以合理的安排电路能提高电子产品的性能。 电源设计 在这里因设计分工和侧重点不同,电源模块用通用的 5v 变压器。 AT89S52 主控制模 块 DS1302时钟模块 LED数码管动态扫描显示模块 键盘模块 复位电路 时钟电路 广东 XX 大学 2020 届毕业设计 11 单片机的复位电路 图 42手动复位电路 在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。 如图 42 所示。 这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在 RST 端就会出现一定时间的高电平信号,从而使单片机实现复位。 单片机系统的晶振电路 单片机必须在时钟的驱动下才能进行工作。 MCS51 系列 单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。 图 43 就是内部时钟工作方式的电路图,这是一种常用的方式。 这种方式是外界振荡源,本设计就采用这种外接晶振的方法。 电路中的两个电容的作用有两个:一是帮助振荡器起振( C1 C2 的值大,起振的速度慢;反之,速度快。 );二是对振荡器的频率起到微调的作用( C1 C2的值大,频率略有减少,反之,频率略有提高)。 C1 C2 的值采用 30pF。 广东 XX 大学 2020 届毕业设计 12 图 43单片机内部晶振电路连接图 主电路设计 主电路的功能是完成年、月、日、星期、时、分、秒之间的转换, 再送往LED 显示,并且接受键盘操作,对日期和时间进行校正。 电路原理图如图 44所示,显示部分用 P0 口做为输出数据接到 LED 数码管a到 h,并接 74ls244 做为各段的驱动(为了简化电路图在此用了 8个上拉电阻代替 74ls244)。 用 P3 口的低 3 位接译码器的 A0,A1,A2 端,用 ,分别接译码器的使能端,通过控制 P3 口来控制 LED 的动态扫描。 单片机的 18和 19 引脚接 12MHZ 的晶振,并接两个 22PF 的电容同时接地,单片机复位端 接一极性电容并连接到电源处,在极性电容的负极接一 10K 的电阻,并连接至地做为放电用。 本设计用到四个独立式键盘分别接到 P1 口的低 4 位,用 P1 口的, 接日历时钟的使能端和时钟端及数据输入输出口,并在日历时钟上接一 的晶振,并接两个 22PF 的电容终端和地相连,各芯片的电源部分分别接到有开关式电源产生的+ 5V 电源上,芯片的接地端都接在公共地上,在这里接电源部分就不再一一详述。 设计采用动态显示,轮流扫描各个 LED 使之显示相应的数型码,当扫描频率大于人眼所能识别的频率时就看不到 闪烁现象。 动态显示的亮度不如静态显示,但静态显示占用的 I/O 口资源较多,往往用移位寄存器 74LS164 等来扩充其 I/O口不足的情况,当显示位数较多时,这样势必增加硬件开销,增大成本,不利于开阔市场。 本设计的突出之处在于硬件电路简单,大大减少了硬件开销,这样又势必增加了软件开发的难度,但降低了成本有利于市场的开阔。 广东 XX 大学 2020 届毕业设计 13 图 44电路原理图 软件的设计是设计控制系统的应用程序。 其任务是在整体设计和硬件设计的基础上,确定程序结构,分配内 RAM 资源,划分功能模块,然后进行主程序和各模块程序的设计,最后 连接起来成为一个完整应用程序,与硬件相结合完成相应功能。 主程序设计 主程序才用模块化设计,流程图如图 51 所示。 从上面主程序看出,主程序的组成是通过分别调用各子程序组成总体系统功能,能很直观的看出主程序所要完成的功能,首先是初始化各模块,之后调用键盘完成时间的调整,调用日历子程序完成日历时钟的初始化和时间数据的读写,调用显示子程序显示数据,最后又转到键盘程序来回循环。 初始化部分主要有初始化定时器部分和和一些寄存器、标志位、初始化时间等。 对定时器 T0初始化时,首先置初值, CPU 开中断,定时器 T0 开中断,并且开始计数,而对定时器 T1初始化时,首先置初值,定时器 T1 关中断,并且停止广东 XX 大学 2020 届毕业设计 14 计数,只有收到命令时才能产生中断。 寄存器的初始化主要是初始化执行程序时用到的部分 RAM 空间,防止程序执行时带来混乱。 标志位初始化是对时间调整时判断是调分还是调时等而专设的位标志,初始化过程中标志位全部置0,即开始时是处于显示状态,而不是调整状态,这一点在程序中相当明了。 初始化时间是开机时显示的时间,并通过调用日历时钟的写程序来完成时间的置初值。 图 51程序流程图 键盘子程序设计 多功能键盘程序的设计 是本设计的难点,也是完成本设计的重点,当有键按下时,调用 10ms 延时程序,再判断是否有键按下无则返回,若有先调用显示程 序再判断是否松开,否则再转到显示程序,这样避免了在按键松开之前能正常显示。 其中 K1键功能最多,通过判断 K1键按下的次数来判断是调时间还是定时,并对对应的位置闪烁。 本键盘深度为 7级,即连续按下 K1 键 8次时则返回到原来界面。 当判断键值为 1时则为调秒状态,对应的秒低位闪烁,为 2时为调分状态并分闪烁,为 3 时为调时状态并时闪烁,为 4 时为调日状态并日闪烁,为 5时为调月状态并月闪烁,为 6时为调年状态并年 闪烁,为 7时为调星期状态并星期闪烁。 K2 为加 1 键, K3 为减 1 键, K4 为总返回键,即在调时见时不用只有开始 初始化 T0 并开中断 初始化 T1 并关中断 寄存器初始化 标志位初始化 初始化时间 调键盘子程序 调日历子程序 调显示子程序 结束 广东 XX 大学 2020 届毕业设计 15 按下 K1 键值为 8才返回,而通过按下 K4键即可返回。 由于键盘流程图非常复杂,在此只表示秒,如图 52所示,其余略。 N 开始 有键按下。 延时 10ms K2 按下。 K3 按下。 K4 按下。 K1 按下。 调显示 K1 为 0。 键值加 1 Y 调显示 有键按下。 键值清 0 标志位清 0 返回回 N N N Y N Y N 下页 1 Y Y Y 下页 3 广东 XX 大学 2020 届毕业设计 16 日历时钟子程序设计 DS1302 与 CPU 的连接需要三条线,即 SCLK(7)、 I/O(6)、 RST(5)。 日历时钟DS1302 的读写需要初始化时序、读时序、写时序。 所有时序都是将主机作为主设备,单总 线器件作为从设备。 而每一次命令和数据的传输都是从主机启动写时序开始,如果要求单总线器件回送是低位在先。 读写都是 16 位数据高 8 位是地址低 8位是数据,在读写时要严格遵从其读写时序,否则读写将会失效。 1 键值为1。 调显示 秒闪烁 秒标志位置1 K2 按下。 K3 按下。 秒减1 秒数据送 DS1302 秒加1 3 Y N Y Y 键值为。 N。 图 52 键盘子程序流程图 广东 XX 大学 2020 届毕业设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。