数字电子时钟设计_毕业设计(编辑修改稿)内容摘要:

抗干扰能力强。 如图下图 AT89C51 单片机 直接 DS1302 的 RST 端,上电后, AT89C51 的 脚自动输出高电平, 作为串行时钟接口, 作为始终数据的 I/O。 DS1302 的晶振选用 32768Hz,电容推荐值为 6pF。 因为振荡频率较低,也可以不接电容,对计时精度影响不大。 10 图 23 时钟电路 DS1302 时钟芯片包括实时时钟 /日历和 31 字节的静态 RAM。 它经过一个简单的串行接口与微处理器通信。 实时时钟 /日历提供秒、分、时 、日、周、月和年等信息。 对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。 时钟的运行可以采用 24小 时或带 AM/PM 的 12小时格式。 工作电压宽达 ~。 采用三线接口与 CPU进行同步通信 , 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 内部有一个 33x8 的用于临时性存放数据的 RAM 寄存器。 DS1302 共有 12个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。 X X2:晶振接入管脚。 晶振频率。 RST:复位引脚。 高电平启动输入 /输出,低电平结束输入 /输出。 I/O:数据输入 /输出引脚。 SCLK:串行时钟输入引脚。 GND:接地引脚 Vcc1:在单电源与电池供电的系统中提供低电源,并提供低功率的电磁备份 .Vcc1在双电池系统中提供主电源。 在这种运行方式中, Vcc1 里连接到后备电源,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 Vcc1 或 Vcc2 中较打大者供电。 当 Vcc2>( Vcc1+)时, Vcc2 给 DS1302 供电;当 Vcc2< Vcc1 时, DS1302 由 Vcc1供电。 11 就时钟而言,通常了采用 LCD 显示或者 LED 显示。 对于一般的短时 LCD,需要专门的驱动电路,但是电路设计简单,连接方便,数字感应信号强,软件编程简单,节省I/O 接口, 如下图 : 图 24 显示电路 显示基本原理 LCD 显示屏有点阵图形式液晶由 M N 个显示单元组成显示屏有 64 行,每行有 128列,每 8 列对应 1 字节的 8 位,即每行由 16字节,共 16 8=128 个点组成,屏上 6416 个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。 屏的第 一行的亮暗由 RAM区的 000H—— 00FH的 16字节的内容决定,当( 000H)=FFH 时,则屏幕的左上角显示一条短亮线,长度为 8个点;当( 3FFH) =FFH 时,则屏幕的右下角显示一条短亮线;当( 000H) =FFH,( 001H) =00H,( 002H) =00H,„„( 00EH)=00H,( 00FH) =00H 时,则在屏幕的顶部显示一条由 8段亮线和 8 条暗线组成的虚线。 这就是 LCD 显示的基本原理。 1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光 的厚,是否带背光在应用中 并无差别 1602LCD 主要技术参数: 显示容量 :16 2 个字符 芯片工作电压 :— 工作电流 :() 模 12 块最佳工作电压 : 字符尺寸 : (W H)mm 引脚功能说明 1602LCD 采用标准的 14脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表所示 : 根据功能需要,本时钟需要设置一下功能键:校对选择键(主键),加 1操作键( +1),减 1 操作键( 1)。 按照键盘与 CPU 的连接方式可分为独立式键盘和矩阵式键盘,独立式键盘是各个按键相互独立,每个按键占用一个 I/O 口线,每根 I/O 口线上的按键不会影响其他 I/O 口上的按键工作状态。 独立式键盘电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口,在按键数量较多时, I/O 口浪费较大,且电路结构复杂。 矩阵式键盘社和按键较多的时候使用。 由于本设计的电子时钟最多需要 3 分按键,若采用矩阵式键盘会有按键浪费,故采用多历史键盘。 键盘电路如下图:对于内置上拉电阻的I/O 引脚来说,外界上拉电阻式没有意义的。 键盘是为了完成时钟 /日历校正的显示功编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据 /命令选择 12 D5 数据 5 R/W 读 /写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 13 能。 由此电子时钟要求具有闹铃功能,所以设计有闹铃电路,进行声音闹铃。 图 25 复位电路 校对选择键(主键)按下后进入校对状态, +1键对时间日期进行加 1和右移功能,1 键对时间日期进行减 1和左移功能。 、背光 电路设计 闹铃可直接采用蜂鸣器闹铃,如当前时刻与闹铃时间相同,单片机向蜂鸣器送出信号,蜂鸣器哦发生。 采用蜂鸣器结构简单,控制方便,只是铃声单一。 背光电路采用绿色的 LED 背光,即使在暗处不开灯也可以看清时间。 电路参考下 图 26 闹铃、背光电路图 14 四、软件程序设计 主程序开始 设定定时器常数,开中断 显示时间 到 1 秒。 T0中断 现场保护 重装定时器初值 满 20次否。 满 24 小时否。 满 60 秒否。 满 60分否。 恢复现场 时值加 1 时缓冲单元清零 秒值加 1 分缓冲单元清零 秒缓冲单元清零 分值加 1 结束 15 时钟调整程序 关闭显示,省电状态 分钟闪烁,调时状态 分值加 1 按键 S2 时间 t1 时值 =24。 按键 S2 时间t 按键 S2 时间 t 时钟闪烁,调时状态 分值 =60。 分值清零 时值加 1 时值清零 返回显示 S2 是否按下 16 第一次上电,系统向进行初始化, 1602 LCD 液晶显示为当前时间、年、月、日和星期。 单片机 开始调用键盘扫描程序、 DS1302 程序、 1062 程序、闹铃程序和背光程序并循环。 该程序主要实现对 DS1302 写保护,对年、月、日、时、分、秒等的寄器的读写操作。 在在读写程序中都执行了关中断指令,因为在串行通信时对时序的要求比较高,而且在此是用 1602 液晶显示器,所以在通信过程中最好保证传输的连续性,不要允许中断。 显示子程序设计 单片机直接驱动 1602 液晶芯片,编程也简单。 单片机的串行输入数据,由读入读出信号控制。 键盘 扫描子程序 本设计要求简单,按键采用独立式按键接入。 程序对键盘的扫描方式有:随机扫描、定时扫描和终端扫描。 在随机扫描方式中, CPU 完成某种特定任务后,即执行键盘扫描程序,以确定键盘有无按键接入,然后根据按键功能转去之星相应的操作。 在之星键盘按键规定的功能中不理睬键盘的输入。 定时扫描方式与随机扫描方式基本相同,只是利用 CPU 内的定时中断,每个一定时间扫描有无按键信号输入,键盘反应速度较快,在处理键盘功能过程中,可以通过键盘 17 命令进行干预,如取消、暂停等操作。 由于本设计中 AT89C51单片机在系统的主要任务 是接受 DS1302和 1602的数据并送出显示,完成时钟 /日历校对和日期 /星期的控制。 该单片机完全有能力完成以上工作,所以采用随机扫描键盘方式,系统也能正常运行。 单片机扫描完键盘,得到键值,并根据键值转入执行相应任务,以实现按键功能。 入过没有按键按下,择程序将键盘值清零,返回主程序。 闹铃子程序设计 闹铃子程序任务是不断的用时钟分和时通设定的闹铃分与闹铃时比较,只要满足时钟分和时等于闹铃分与时,响铃就会启动一分钟。 数字电子时钟 51 单片机系统设计程序 表 51 P1口对 应段码及数值: 显示数字 16进制代码 dp g f e d c b a 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 1 1 0 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 1 0 1 1 1 1 6FH 18。 中断入口程序。 ORG 0000H。 程序执行开始地址 LJMP START。 跳到标号 START 执行 ORG 0003H。 外中断 0中断程序入口 RETI。 外中断 0中断返回 ORG 000BH。 定时器 T0中断程序入口 LJMP INTT0。 跳至 INTTO 执行 ORG 0013H。 外中断 1中断程序入口 RETI。 外中断 1中断返回 ORG 001BH。 定时器 T1中断程序入口 LJMP INTT1。 跳至 INTT1 执行 ORG 0023H。 串行中断程序入口地址 RETI。 串行中断程序返回。 主 程 序。 START: MOV R0,70H。 清 70H7AH 共 11 个内存单元 MOV R7,0BH。 clr。 CLEARDISP: MOV @R0,00H。 INC R0。 DJNZ R7,CLEARDISP。 MOV 20H,00H。 清 20H(标志用) MOV 7AH,0AH。 放入 熄灭符 数据 MOV TMOD,11H。 设 T0、 T1 为 16 位定时器 19 MOV TL0,0B0H。 50MS 定时初值( T0计时用) MOV TH0,3CH。 50MS 定时初值 MOV TL1,0B0H。 50MS 定时初值( T1 闪烁定时用) MOV TH1,3CH。 50MS 定时初值 SETB EA。 总中断开放 SETB ET0。 允许 T0 中断 SETB TR0。 开启 T0 定时器 MOV R4,14H。 1 秒定时用初值( 50MS 20) START1: LCALL DISPLAY。 调用显示子程序 JNB ,SETMM1。 口为 0时转时间调整程序 SJMP START1。 1时跳回 START1 SETMM1: LJMP SETMM。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。