人人文库网 > 毕业设计 > 毕业设计130基于51系列的单片机进行的实时日历和时钟显示设计
毕业设计130基于51系列的单片机进行的实时日历和时钟显示设计.doc
毕业设计130基于51系列的单片机进行的实时日历和时钟显示设计
收藏
资源目录
压缩包内文档预览:(预览前20页/共55页)
编号:545875
类型:共享资源
大小:356.68KB
格式:ZIP
上传时间:2015-12-01
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
电气电子毕业设计论文
- 资源描述:
-
毕业设计130基于51系列的单片机进行的实时日历和时钟显示设计,电气电子毕业设计论文
- 内容简介:
-
XXXXXXX 毕业论文 摘要 本设计是基于 51系列的单片机进行的实时日历和时钟显示设计,可以 显示年月日时分秒及周信息,具有可调整日期和时间功能。 在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备 。 实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89S52单片机, LED 显示电路,以及调时按键电路等组成, 系统通过 LED显示数据,所以具有人性化的操作和直观的显示效果 。 软件方面主要包括时钟程序、键盘程序,显示程序等。 本 系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结 构,使程序设计的逻辑关系更加简洁明了 , 以便更简单地实现调整时间及日期显示功能。所有程序编写完成后,在 wave 软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 关键词 : AT89S52; DS1302; LED nts XXXXXXX 毕业论文 2 Abstract This design is based on 51 series monolithic integrated circuits of a real-time calendar and the clock shows the design, you can show how and when a week, has may adjust the date and time functions. in the design for monolithic integrated circuits, and peripheral to expand the basic theories of knowledge was fairly comprehensive preparation. Real-time calendar and the clock shows the design in hardware and software design of hardware that is synchronized. the led display at89s52 monolithic integrated circuits, and when should the electrical circuits, the system through the led display data so be humanized operate and intuitive that effect. including the software application programs, the keyboard, the program, etc. This system to monolithic integrated circuits of the assembly language for easily developing software design, and changes, software design to use modular design, the programming logical relationship with more and more so as to realize the time and date display the functions. all procedures in writing after wave of debugging the software and make no question of the proteus software embedded monolithic integrated circuits. Key Words: AT89S52; DS1302; LED nts XXXXXXX 毕业论文 I 目录 1 概述 . 1 2 设计方案论证 . 2 2.1 功能要求 . 2 2.2 方案确定 . 2 2.2.1 单片机芯片的选择方案和论证 . 2 2.2.2 显示模块选择方案和论证 . 3 2.2.3 时钟芯片的选择方案和论证 . 3 2.2.4 电路设计最终方案确定 . 3 3 主控制器和外围器件 . 4 3.1AT89S52 单片机 . 4 3.2DS1302 时钟芯片 . 4 3.2.1DS1302 芯片介绍 . 4 3.2.2DS1302 的应用 . 8 3.3 数码管 LED . 8 3.4 译码器 74HC138 . 9 3.5 锁存器 74LS244 . 9 4 硬件设计 . 10 4.1 电路设计框图 . 10 4.2 系统概述 . 10 4.3 电源设计 . 10 4.4 单片机的复位电路 . 11 4.5 单片机系统的晶振电路 . 11 4.6 主电路设计 . 12 5 软件设计 . 13 5.1 主程序设计 . 13 5.2 键盘 子程序设计 . 14 5.3 日历时钟子程序设计 . 16 nts XXXXXXX 毕业论文 II 5.4 显示子程序设计 . 18 6 系统调试 . 18 6.1 软件调试 . 18 6.2 硬件调试 . 19 7 结论 . 20 致谢 . 22 参考文献 . 23 附录 . 24 附录硬件电路图 . 24 附录主程序源代码 . 25 附录外文翻译原文 . 错误 !未定义书签。 附录外文翻译译文 . 错误 !未定义书签。 - nts XXXXXXX 毕业论文 1 1 概述 在日新月 异的 21 世纪里,家 用 电 子产品得到了迅速发展 。 许多家电 设备都趋于人性化、 智能化 , 这些电器设备大部分都含有 CPU控制器 或者是 单片机。 单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。 用单片机来控制的小型家电产品具有便携实用,操作简单的特点。 时钟,自从它发明的那天起,就成为人类的朋友,但随着 时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用 LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时 /计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302, DS12887, X1203等都可以满足高精度的要求。 本文设计的日历和时钟的显示广泛用于小型智能家用电子产品,如电子钟。利用单片机进行控制,实时时钟芯片 DS1302 进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。 电子 钟既可广泛应用于家庭 ,也可应用于银nts XXXXXXX 毕业论文 2 行、邮电、宾馆、 医院 、学校、企业、商店 等相关行业的大厅,以及单位会议室、门卫等场所。 因而,此设计具有相当重要的现实意义和实用价值。 2 设计方案论证 2.1 功能要求 1、能显示年、月、日、时、分、秒、星期 2、能对时间进行手动修正 3、采用 24小时制 4、使用 LED显示时间参数 5、上电后,电子钟显示“ 2010年 1月 1日” “ 1时 1分 1秒 星期 1” 对时,分,秒,日, 月, 年高位为 0时 做 消隐 处理, 只显示单个数字以增强其可读性。 2.2 方案确定 2.2.1 单片机芯片的选择方案和论证 方案一 : 采用 89C51芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间 ,能于 3V 的超低压工作 ,而且与 MCS-51 系列单片机完全兼容 ,但是运用于电路设计中时由于不具备 ISP在线编程技术 , 当在对电路进行调试 时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二 : 采用 AT89S52,片内 ROM 全都采用 Flash ROM;能以 3V 的超底压工作;同时也与 MCS-51系列单片机完全该芯片内部存储器为 8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 nts XXXXXXX 毕业论文 3 所以选择采用 AT89S52作为主控制系统 . 2.2.2 显示模块选择方案和 论证 方案一: 采用 LED 液晶显示屏 ,液晶显示屏的显示功能强大 ,可显示大量文字 ,图形 ,显示多样 ,清晰可见 ,但是价格昂贵 ,需要的接口线多 ,所以在此设计中不采用LED液晶显示屏 。 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合 ,如采用在显示数字显得太浪费 ,且价格也相对较高 ,所以也不用此种作为显示 。 方案三: 采用 LED 数码管动态扫描 ,LED 数码管价格适中 ,对于显示数字最合适 ,而且采用动态扫描法与单片机连接时 ,占用的单片机口线少。 所以采用了 LED 数码管作为显示。 2.2.3 时钟芯片的选择方案和论证 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 方案二: 采用 DS1302时钟芯片实现时钟, DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高 ,位的 RAM做为数据暂存区,工作电压 2.5V 5.5V范围内, 2.5V时耗电小于 300nA. 2.2.4 电路设计最终方案确定 综上各方案所述 ,对此次作品的方案选定 : 以单片机 AT89S52 为主控制器,nts XXXXXXX 毕业论文 4 时间数据是通过时钟芯片 DS1302 来读取,并通过 LED 数码管显示出来,并用键盘来完成对当前时间的调整。 3 主控制器和外围器件 3.1AT89S52 单片机 AT89S52是一种低功耗、高性能 CMOS 8 位微控制器,使用 ATMEL 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。并具有以下标准功能: 8k字节 Flash, 256字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3.2DS1302 时钟 芯片 3.2.1DS1302 芯片介绍 低功耗时钟芯片 DS1302 可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。 DS1302 用于数据记录,特别是对某些具有特殊意义的数据点的 记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。 采用 DS1302 作为记录测控系统中的数据记录,其软硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析 及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资nts XXXXXXX 毕业论文 5 源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用 DS1302则能很好地解决这个问题。 DS1302的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的 31 8位 RAM; 最少引脚的串行 I/O; 2.5 5.5V 电压工作范围; 2.5V时耗电小于 300nA; 用于时钟或 RAM 数据读 /写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3线接口; 可选的慢速充电(至 VCC1)的能力。 DS1302时钟芯片包括实时时钟 /日历和 31字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟 /日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24h或带 AM(上午) /PM(下午)的 12h格式。采用三线接口与 CPU进行同步通信,并可采用突发方式一次传送 多个字节的时钟信号或RAM数据。 DS1302有主电源 /后备电源双电源引脚: VCC1 在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份; VCC2 在双电源系统中提供主电源,在这种运用方式中, VCC1 连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 VCC1或 VCC2中较大者供电。当 VCC2大于 VCC1+0.2V 时,VCC2给 DS1302供电;当 VCC2小于 VCC1时, DS1302 由 VCC1供电。 DS1302数据操作原理 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8位指定 40个寄存器中哪个被访问到。在开始 8 个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8加字节数,最大可达 248字节数。 nts XXXXXXX 毕业论文 6 V c c 21X12X23GND4R ST5I/O6SC L K7V c c 18D S1302U3图 3-1 DS1302 管脚图 如果在传送过程中置 RST为低电平,则会终止本次数据传送,并且 I/O引脚变为高阻态。上电运行时,在 VCC =2.5V 之前, RST 脚必须保 持低电平。只有在SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 的管脚图如图 3-1 所示,表3-2为各引脚的功能。 引脚号 引脚名称 功能 1 VCC2 主电源 2, 3 X1, X2 振荡源,外接 32768HZ晶振 4 GND 地线 5 RST 复位 /片选线 6 I/O 串行数据输入 /输出端(双向) 7 SCLK 串行时钟 输入端 8 VCC1 后备电源 表 3-2 DS1302 引脚功能表 DS1302 的控制字如图 3-3 所示。控制字节的最高有效位(位 7)必须是逻辑 1;如果它为逻辑 0,则不能把 数据写入到 DS1302中。位 6如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。位 5 1( A4 A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1表示进行读操作。控制字节总是从最低位开始输入 /输出。 nts XXXXXXX 毕业论文 7 图 3-3 控制字节的含义 为了提高对 32 个地址的寻址能力(地址 /命令位 1 5逻辑 1),可以把时钟 /日历或 RAM寄存器规定为多字节( burst)方式。位 6规定时钟或 RAM,而位0规定读或写。在时钟 /日历寄存器中的地址 9 31或 RAM寄存器中的地址 31不能存储数据。在多字 节方式中,读或写从地址 0的位 0开始。必须按数据传送的次序写最先的 8个寄存器。但是,当以多字节方式写 RAM时,为了传送数据不必写所有 31字节。不管是否写了全部 31字节,所写的每一字节都将传送至 RAM。数据读写程序如图 3-4所示。 图 3-4数据读写程序 DS1302共有 12 个寄存器,其中有 7个寄存器与日历、时钟相关,存放的数据位为 BCD码形式,其日历、时间寄存器及其控制字见表 3-5,其中奇数为读操作,偶数为写操作。 寄存器 命令码 数据范围 寄存器中各位的内容 名称 地址 写 读 7 6 5 4 3 2 1 0 秒 00H 80H 81H 0059 CH 秒数据 分 01H 82H 83H 0059 0 分数据 时 02H 84H 85H 0112 或 0023 12/ 24 0 10/ AP 时数据 日 03H 86H 87H 0128, 29 30, 31 0 0 日数据 月 04H 88H 89H 0112 0 0 0 月数据 星期 05H 9AH 8BH 0107 0 0 0 0 0 星期数据 年 06H 8CH 8DH 0099 年数据 SCLKSCLK K I/O 50 0 0 70 0 0 1 30 0 0 50 0 0 70 0 0 20 0 0 10 0 0 0 2 40 0 0 60 0 0 00 0 0 40 0 0 60 0 0 R/C A2 A3 A0 A1 R/W A4 1 DATA I/O BYTE DATA I/O BYTE RST nts XXXXXXX 毕业论文 8 多字节读写 BEH BFH 表 3-5 片内时钟数据寄存器 3.2.2DS1302 的应用 实时时钟芯片 DS1302 采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用 32768Hz晶振。要特别说明的是,备用电源 BT1可以用电池或超级电容( 10万 F以上)。虽然 DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替( 100 F就可以保证 1小时的正常走时)。 DS1302在第一次 加电后,需进行 初始化操作。初始化后就可以按正常方法调整时间 。 DS1302的时钟电路如图 3-6所示。 图 3-6 DS1302 时钟电路 3.3 数码管 LED LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的管导通,就能显示出对应字符。各段 LED显示器需要由驱动电路驱动。在七段 LED显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;将阴极连在一起的叫共阴极显示器,用高电平驱动。 静态显示就是每一个显示器各笔画段 都要独占具有一个锁存功能的输出口线, CPU把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使 CPU不在去访问它,因为各笔画段借口具有锁存功能,显示的内容也不会消失。 nts XXXXXXX 毕业论文 9 动态显示是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。静态显示有并行输出和串行输出两种方式。在本系统中数码管使用共阴极接法而且是用动态显示。 3.4 译码器 74HC138 74HC138译码器是通过 3条线来达到控制 8条线的状态,就是通过 3条控制线 A0、 A1、 A2不同的高低电平组合来控制 Y0 Y7的输 出状态,其中 4和 5为使能地端,与 8引脚共同接地,当接高电平时 Y0到 Y7输出高电平。 6 号脚为使能端,为高电平时有效。 74HC138 封装如图 3-7。当需要级联时只需要改变使能端信号引脚即可,连接方法简单。 图 3-7 74HC138封装图 3.5 锁存器 74LS244 74ls244由 2组、每组四路输入、输出构成。每组有一个控制端 G,由控制端的高或低电平决定该组数据被接通还是断开。 图 3-8 74LS244引脚图 9101112131415161 2 3 4 5 67 8A0 A1 A2Y0 Y1 Y2 Y3 Y4 Y5 Y6Y7 GNDVCCG1G2A G2Bnts XXXXXXX 毕业论文 10 4 硬件设计 4.1 电路设计框图 4.2 系统概述 本电路是由 AT89S52 单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由 DS1302提供,它是一种高性能、低功耗、带 RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V 5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 内部有一个 31*8的用于临时性存放数据的 RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等 特点,同时具有掉电自动保存功能;显示部份由 15个数码管, 74Hs138、 74ls244构成。使用动态扫描显示方式对数字的显示。 硬件的结构和可靠性直接影响着整个系统的可靠性,所以合理的安排电路能提高电子产品的性能 。 4.3 电源设计 在这里因设计分工和侧重点不同,电源模块用通用的 5v变压器 。 AT89S52 主控制模块 DS1302时钟模块 LED数码管动态扫描显示模块 键盘模块 复位电路 时钟电路 nts XXXXXXX 毕业论文 11 4.4 单片机的复位电路 图 4-2手动复位电路 在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如图 4-2 所示。这种电路的设计,在系统的运行过程中需要复 位时,只需使开关闭合,在 RST 端就会出现一定时间的高电平信号,从而使单片机实现复位。 4.5 单片机系统的晶振电路 单片机必须在时钟的驱动下才能进行工作。 MCS-51 系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图 4-3 就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的方法。电路中的两个电容的作用有两个:一是帮助振荡器起振( C1 C2 的值大,起振的速度慢;反之,速度快。);二是对振 荡器的频率起到微调的作用( C1 C2的值大,频率略有减少,反之,频率略有提高)。 C1 C2 的值采用 30pF。 nts XXXXXXX 毕业论文 12 图 4-3单片机内部晶振电路连接图 4.6 主电路设计 主电路的功能是完成年、月、日、星期、时、分、秒之间的转换, 再送往LED显示,并且接受键盘操作,对日期和时间进行校正。 电路原理图如图 4-4 所示,显示部分用 P0 口做为输出数据接到 LED 数码管a 到 h,并接 74ls244 做为各段的驱动(为了简化电路图在此用了 8 个上拉电阻代替 74ls244)。用 P3 口的低 3 位接译码器的 A0,A1,A2 端,用 P3.3,P3.4,P3.5分别接译码器的使能端,通过控制 P3 口来控制 LED 的动态扫描。单片机的 18和 19引脚接 12MHZ 的晶振,并接两个 22PF 的电容同时接地,单片机复位端接一极性电容并连接到电源处,在极性电容的负极接一 10K的电阻,并连接至地做为放电用。本设计用到四个独立式键盘分别接到 P1 口的低 4 位,用 P1 口的P1.4,P1.5,P1.6 接日历时钟的使能端和时钟端及数据输入输出口,并在日历时钟上接一 32.768KHZ 的晶振,并接两个 22PF 的电容终端和地相连,各芯片的电源部分分别接到有开关式电源产生的 5V 电 源上,芯片的接地端都接在公共地上,在这里接电源部分就不再一一详述。 设计采用动态显示,轮流扫描各个 LED 使之显示相应的数型码,当扫描频率大于人眼所能识别的频率时就看不到闪烁现象。动态显示的亮度不如静态显示,但静态显示占用的 I/O口资源较多,往往用移位寄存器 74LS164等来扩充其 I/O口不足的情况,当显示位数较多时,这样势必增加硬件开销,增大成本,不利于开阔市场。本设计的突出之处在于硬件电路简单,大大减少了硬件开销,这样又势必增加了软件开发的难度,但降低了成本有利于市场的开阔。 nts XXXXXXX 毕业论文 13 图 4-4电路原理图 5 软 件设计 软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基础上,确定程序结构,分配内 RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整应用程序,与硬件相结合完成相应功能。 5.1 主程序设计 主程序才用模块化设计,流程图如图 5-1所示。 从上面主程序看出,主程序的组成是通过分别调用各子程序组成总体系统功能,能很直观的看出主程序所要完成的功能,首先是初始化各模块,之后调用键盘完成时间的调整,调用日历子程序完成日历时钟的初始化和时间数据的读写,调用显示子程序显示 数据,最后又转到键盘程序来回循环。 初始化部分主要有初始化定时器部分和和一些寄存器、标志位、初始化时间等 。 对定时器 T0初始化时,首先置初值, CPU开中断,定时器 T0开中断,并且开始计数,而对定时器 T1初始化时,首先置初值 ,定时器 T1关中断,并且停止nts XXXXXXX 毕业论文 14 计数,只有收到命令时才能产生中断。 寄存器的初始化主要是初始化执行程序时用到的部分 RAM空间,防止程序执行时带来混乱。 标志位初始化是对时间调整时判断是调分还是调时等而专设的位标志,初始化过程中标志位全部置0,即开始时是处于显示状态,而不是调整状态,这一点在程 序中相当明了。 初始化时间是开机时显示的时间,并通过调用日历时钟的写程序来完成时间的置初值。 图 5-1程序流程图 5.2 键盘子程序设计 多功能键盘程序的设计是本设计的难点,也是完成本设计的重点,当有键按下时,调用 10ms延时程序,再判断是否有键按下无则返回,若有先调用显示程 序再判断是否松开,否则再转到显示程序,这样避免了在按键松开之前能正常显示。其中 K1键功能最多,通过判断 K1键按下的次数来判断是调时间还是定时,并对对应的位置闪烁。本键盘深度为 7 级,即连续按下 K1 键 8 次时则返回到原来界面。当判断 键值为 1时则为调秒状态,对应的秒低位闪烁,为 2 时为调分状态并分闪烁,为 3 时为调时状态并时闪烁,为 4 时为调日状态并日闪烁,为 5时为调月状态并月闪烁,为 6时为调年状态并年闪烁,为 7时为调星期状态并星期闪烁。 K2 为加 1 键, K3 为减 1 键, K4 为总返回键,即在调时见时不用只有开始 初始化 T0 并开中断 初始化 T1 并关中断 寄存器初始化 标志位初始化 初始化时间 调键盘子程序 调日 历子程序 调显示子程序 结束 nts XXXXXXX 毕业论文 15 按下 K1键值为 8才返回,而通过按下 K4键即可返回。由于键盘流程图非常复杂,在此 只表示秒,如图 5-2所示,其余 略。 N 开始 有键按下? 延时 10ms K2 按下? K3 按下? K4 按下? K1 按下? 调显示 K1 为 0? 键值加 1 Y 调显示 有键按下? 键值清 0 标志位清 0 返回回 N N N Y N Y N 下页 1 Y Y Y 下页 3 nts XXXXXXX 毕业论文 16 5.3 日历时钟子程序设计 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 。 。 。 图 5-2 键盘子程序流程图 nts XXXXXXX 毕业论文 17 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302进行操作。如果在传送过程中 RST置为低电平,则会终止此次数据传送, I/O引脚变为高阻态 。上电运行时,在 Vcc 2.5V 之前, RST必须保持低电平。只有在 SCLK 为低电平时,才能将 RST置为高电平,这一点我们要一定注意。 当 RST置为高电平时,在串行时钟的 SCLK的上升沿, DS1302从 I/O端口读入一位数据,8个串行时钟脉冲就可以读入一字节的数据。在串行时钟的下降沿, DS1302向 I/O端口输出一位数据, 8个串行时钟脉冲就可以输出一字节的数据。 显示子程序设计 电子产品是否实用其中显示占了很重要的地位,很多数人都渴求用视觉效果好,范围广,直观明了, LED 符合以上的要求,但相应的硬件设计相对复杂 。 RST 置 1 开 始 发送 1 位命令码 命令码 8 位送完? 写一位数据 数据写完? RST 置 0 ( a)时钟写 结 束 开 始 RST 置 1 发送 1 位命令码 命令码 8 位送完? 读一位数据 数据读完? RST 置 0 结 束 ( b) 时钟读 图 5-3 日历时钟的写和读 N Y Y Y Y N N N nts XXXXXXX 毕业论文 18 5.4 显示子程序设计 本设计的显示部分具有消隐和闪烁功能,当时分秒等高位为 0 时显示消隐, 此时在读时间时更加明了,但低位不能显示消隐。闪烁功能也是本设计的一个难点,本设计采用 8个位标志位,其中一个标志位通过用定时器 0产生一个周期大约为每
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|