收藏 分享(赏)

16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc

上传人:为人民服务 文档编号:2369225 上传时间:2018-09-13 格式:DOC 页数:36 大小:542.50KB
下载 相关 举报
16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc_第1页
第1页 / 共36页
16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc_第2页
第2页 / 共36页
16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc_第3页
第3页 / 共36页
16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc_第4页
第4页 / 共36页
16位LED显示电子钟--机械设计制造及其自动化《单片机原理及接口技术》课程设计报告.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、摘要摘要随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从 4 位、8 位、16 位到 32 位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国 Labcenter Electronics 公司的Proteus 软件很好地诠释了利用现代 EDA 工具方便快捷开发单片机系统

2、的优势。它包括 PROTEUS VSM( Virtual System Modelling) 、PROTEUS PCB DESIGN 两大组成部分,在 PC 机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成 PCB 文件的完整嵌入式系统设计与研发过程。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试 3 个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。关键词: 数字电子钟 STC89C52 LED 电子钟ABSTR

3、CTABSTRCTWith the rapid development of semiconductor technology, and mobile communication, network technology, multimedia technology in embedded system design application, SCM from the4,8,16bit to 32 bit, its development course has been subject to the vast majority of electronic enthusiasts attentio

4、n. Single chip computer is becoming more and more powerful, the price drops ceaselessly however advantage undoubtedly become embedded system design is preferred, while MCU application fields expand also makes more people to join the ranks of the development of SCM system based on SCM technology, pro

5、mote innovation and progress.However, the traditional single chip microcomputer system development in addition to the need to purchase such as emulators, programmer, oscilloscopes and other expensive electronic equipment, the development process is tedious. From the UK Labcenter Electronics Proteus

6、software, a good interpretation of the use of modern EDA tool convenient and quick development of the advantages of SCM system. It includes the PROTEUS VSM ( Virtual System Modelling ), PROTEUS PCB DESIGN two components, in the PC machine can realize the schematic circuit design, circuit analysis an

7、d simulation code, debug and simulation, system testing and verification as well as the formation of PCB file full embedded system design and development process.SCM system as a typical embedded system, the system design including the hardware circuit design and software programming of two aspects o

8、f the design, the debugging process is generally divided into software debugging and hardware testing, system testing process of 3. If the use of single-chip microcomputer system of the virtual simulation software - Proteus, without making specific circuit board also can be done.Keywords: digital el

9、ectronic clock STC89C52LED electronic clock目录 I摘要 .1ABSTRCT.1第一章 绪论 11.1 设计背景 11.2 设计简介 11.2.1 电子钟简介 11.2.2 电子钟的应用及发展 2第二章 方案对比确定 32.1 主控芯片的选择 32.1.1 ATmega8 简介 .32.1.2 AT89S52 简介 32.1.3 STC89C52 简介 .42.2 时钟芯片的选择 42.2.1 DS12887 简介 42.2.2 DS1302 简介 52.3 显示系统的选择 62.3.1 LED 优势 .62.3.2 LED 显示屏 .62.4 系统总

10、体方案介绍 6第三章 硬件电路设计 93.1 PROTEUS 电路图设计 93.2 原理图设计 .103.3 PCB 图设计 10第四章 系统软件设计 134.1 概述 .134.1.1 主程序 134.1.2 调时程序 134.1.3 LED 显示模组显示数字 .13第五章 程序设计 175.1 程序预览 .17结论 .25致谢 .27参考文献 .29目录ii第一章 绪论 I第一章 绪论1.1 设计背景随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从 4 位、8 位、16 位到 32 位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来

11、越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国 Labcenter Electronics 公司的 Proteus 软件很好地诠释了利用现代 EDA 工具方便快捷开发单片机系统的优势。它包括 PROTEUS VSM(Virtual System Modelling) 、PROTEUS PCB DESIGN 两大组成部分,在 PC 机上就能实现原理图电路设计、电路分析与仿真

12、、单片机代码级调试与仿真、系统测试与功能验证以及形成 PCB 文件的完整嵌入式系统设计与研发过程。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试 3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。1.2 设计简介1.2.1 电子钟简介自 Ventura 发明了世界第一个电子表,奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分,小

13、时进一,满二十四小时,小时位清零。从而达到计时的功能 4,5。现代高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳定性好,使用方便,十六位 LED 电子钟2不需要经常调试,数字式电子钟用集成电路计时,其用译码代替机械式传动,用液晶显示器代替指针显示,进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,也可以设置闹铃报时及整点报时,片选的灵活性好。相对于其他时钟类型,它的特点显著:比机械钟观察时间显著,比石英钟的走时准确,但是它的弱点就是显时较为单调,但在现在较高的技术与艺术设计,使数字钟的外观更

14、加美观,显示更加动态化。1.2.2 电子钟的应用及发展电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。不仅如此,在当今现代化的进程中,也离不开电子钟的相关功能和原理,比如,机械手的控制、家务的自动化、定时自动报警系统、按时自动打铃、定时广播、时间程序自动控制、定时开关烘箱、自动启闭路灯、通断动力设备、甚至各种定时电气的自动启用等,都是以钟表数字化为基础的,而且是控制的核心部分。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,

15、因此,电子钟的应用会越来越广泛。而且随着电子技术的不断提高,电子钟也将向着更加精确、更低的功耗、多功能的方向发展。这是由于电子钟有如此多的功能及广泛的应用范围,因此,电子钟的研究及扩大其在各个领域的应用,有着非常现实和价值的意义。因此,本文简单介绍了电子钟的设计方案,对比,优劣并设计制作完成了一款电子钟。第二章 方案对比确定 3第二章 方案对比确定2.1 主控芯片的选择目前常用的主控制芯片有 MCU,可编程逻辑器件,DSP ,考虑到降低设计难度,不考虑使用可编程逻辑器件及 DSP,仅从 MCU 中进行挑选。2.1.1 ATmega8 简介ATmega8 是 ATMEL 公司在 2002 年第一

16、季度推出的一款新型 AVR 高档单片机。在 AVR 家族中,ATmega8 是一种非常特殊的单片机,它的芯片内部集成了较大 容量的存储器和丰富强大的硬件接口电路,具备 AVR 高档单片机MEGE 系列的全部性能和特点。但由于采用了小引脚封装(为 DIP 28 和TQFP/MLF32) ,所以其价格仅与低档单片机相当,再加上 AVR 单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机 嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。ATmega8 的这些特点,使其成为一款具有极高性能价格比的单片机,深受广大单片机用户的喜爱,在产品应用市场上

17、极具竞争力,被很多家用电器厂商和仪器仪表行业看中,从而使 ATmega8 迅速进入大批量的应用领域。 ATmega 系列单片机属于 AVR 中的高档产品,它承袭了 AT90 所具有的特点,并在 AT90(如 AT9058515、AT9058535)的基础上,增加了更多的接口功能,而且在省电性能。稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善。 ATmega8 是一款采用低功耗 CMOS 工艺生产的基于 AVR RISC 结构的 8 位单片机。AVR 单片机的核心是将 32 个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与 ALU(算术逻辑单元)直接相连,实 现了在一个时钟周期内执

18、行的一条指令同时访问(读写)两个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此, ATmega8可以达到接近 1MIPS/MHz 的性能,运行速度比普通 CISC 单片机高出 10 倍。2.1.2 AT89S52 简介AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可十六位 LED 电子钟4编程 Flash 存储器。使用 Atmel 公司高密度非 易 失 性 存 储 器 技术制造,与工业 80C51 产品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的 8 位

19、 CPU 和在系统 可编程Flash,使得 AT89S52 为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2级中断结构,全双工串行口, 片内晶振及时 钟 电 路 。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持 2 种软 件 可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到

20、下一个中断或硬件复位为止。2.1.3 STC89C52 简介STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k 字节 Flash,512 字节 RAM,32 位 I/O 口线,看门 狗 定 时 器 ,内置 4KB EEPROM,MAX810 复位电路,三个 16 位 定 时 器 /计数器,一个 6 向量 2 级中断结构,全双工串行口。另外 STC89X52 可降至 0Hz

21、 静态逻辑操作,支持 2 种软 件 可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/ 计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35Mhz,6T/12T 可选。以上三种芯片均可完成设计需求,由于 ATmega8 芯片造价过高 AT89S52 的下载存在一定的难度,综合造价及设计难度,选用 STC89C52 作为主控芯片。2.2 时钟芯片的选择2.2.1 DS12887 简介DS12887 是美国达拉斯半导体公司最新推出的时钟芯片,采用 CMOS 技术第二章 方案对比确定 5制

22、成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前 IBM AT 计算机常用的时钟芯片 MC146818B 和 DS1287 管脚兼容,可直接替换。采用 DS12887 芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。DS12887 芯片具有微轼耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下:(1)内含一个锂电池,断电情况运行十年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3)二进制数码或 BCD 码表示时间、日历和定闹。(4)12 小时或 24 小时制,12 小时时钟模式带

23、有 PWM 和 AM 指导,有夏令时功能。(5)MOTOROLA5 和 INATAEL 总线时序选择。(6)有 128 个 RAM 单元与软件音响器,其中 14 个作为字节时钟和控制寄存器,114 字节为通用 RAM,所有 ARAM 单元数据都具有掉电保护功能。(7)可编程方波信号输出。(8)中断信号输出(IRQ) 和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。2.2.2 DS1302 简介DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作

24、电压为 2.5V5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 内部有一个318 的用于临时性存放数据的 RAM 寄存器。DS1302 是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义

25、。传统的数据记录方式是十六位 LED 电子钟6隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片 DS1302,则能很好地解决这个问题。虽然 DS12887 性能与 DS1302 相比有明显优势,但考虑到功能实现的简易,价格,体积等因素选用 DS1302 作为系统的时钟芯片。2.3 显示系统的选择在某些半导体材料的 PN 结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,

26、从而把电能直接转换为光能。PN 结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称 LED。2.3.1 LED 优势资料显示,LED 光源比白炽灯节电 87%、比荧光灯节电 50%,而寿命比白炽灯长 2030 倍、比荧光灯长 10 倍。LED 光源因具有节能、环保、长寿命、安全、响应快、体积小、色彩丰富、可控等系列独特优点,被认为是节电降能耗的最佳实现途径。2.3.2 LED 显示屏LED 显示屏( LED panel):LED 就是 light emitting diode ,发光二极管的英文缩写,简称 LED。它是一种通过控制半导体发光二极

27、管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。2.4 系统总体方案介绍电子钟的原理框图如图 1 所示。它由以下几个部件组成:单片机STC89C51、电源、时分显示部件,时钟芯片 DS1302。第二章 方案对比确定 7时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块以及显示驱动都通过 89C51 的 I/O 口控制。电源部分:电源部分有二部分组成。一部分是由 220V 的市电通过变压、整流稳压来得到+5V 电压,维持系统的正常工作。 S T C 8 9 C 5 2D S 1 3 0 2显示电路按键电源电子钟系统原理框图

28、十六位 LED 电子钟8第三章 硬件电路设计 9第三章 硬件电路设计3.1 Proteus 电路图设计运行 Proteus 的 ISIS 后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的 component.按钮, 接着再点击窗口左侧的元器件选择区的 Pick Divices.按钮,弹出如图 1 所示的 Pick Devices 窗口,再在 Categ 栏里点击MicroprocessorICs 项后,在 Results 栏里会出现各种类型的 CPU 器件,找到 AT89C51 后双击,AT89C51 就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把 DS1302 等器件列

29、表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针 r ICs 就会出现一个 “”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的 Inter-sheeTerminal.按钮,添加上电源和接地符号,原理图的绘制就完成了。图 4 Proteus 中设计的电子时钟系统原理图十六位 LED 电子钟103.2 原理图设计原理图如下:3.3 PCB图设计PCB 图设计:第三章 硬件电路设计 11十六位 LED 电

30、子钟12第四章 系统软件设计 13第四章 系统软件设计4.1 概述本系统的软件系统主要可分为主程序和定时器中断程序两大模块。在程序过程中,加入了抗干扰措施。下面对部分模块作介绍。4.1.1 主程序主程序的功能是完成系统的初始化,程序流程如图 5 所示。图 5 系统主程序流程图图 6 定时中断程序4.1.2 调时程序给四个按键,当 P1.0 口的按键 K1 按下,则进入调时状态,按 K2,K3 加1 减 1 操作,再按 K1,调分,再按 K1,调秒,依次调整。再按 K0,则退出调时功能,进行正常计数运行。4.1.3 LED 显示模组显示数字由于系统要显示的内容较简单,显示量不多,所以选用数码管既

31、方便又经济。LED 有共阴极和共阳极两种。如图 7 所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V 的电压。一位显示器由 8 个发光二极管组成,十六位 LED 电子钟14其中 7 个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为 dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段 LED 不被损坏,需外加限流电阻。图 7 LED 数码管结构原理图众所周知,LED 显示数码管通常由硬件 7 段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,

32、软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从 LED 数码管结构原理可知,为了显示字符,要为 LED 显示数码管提供显示段码,组成一个“8”字形字符的 7 段,再加上 1 个小数点位,共计 8 段,因此提供给 LED 数码管的显示段码为 1 个字节。各段码位与显示段的对应关系如表 1。表 1 各段码位的对应关系段码位 D7 D6 D5 D4 D3 D2 D1 D0显示段 dp g f e d c b a需说明的是当用数据口连接 LED 数码管 adp 引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的 D0 位与

33、 a 段连接,D1 位与 b 段连接,D7 位与 dp 段连接,如表 1 所示,表 2 为用于 LED 数码管显示的十六进制数和空白字符与 P 的显示段码。表 2 LED 显示段码字型 共阳极段码 共阴极段码 字型 共阳极段码 共阴极段码0 C0H 3FH 9 90H 6FH1 F9H 06H A 88H 77H2 A4H 5BH B 83H 7CH3 BOH 4FH C C6H 39H第四章 系统软件设计 154 99H 66H D A1H 5EH5 92H 6DH E 86H 79H6 82H 7DH F 84H 71H7 F8H 07H 空白 FFH 00H8 80H 7FH P 8CH

34、 73H注:(1)本表所列各字符的显示段码均为小数点不亮的情况。(2) “空白”字符即没有任何显示。根据 STC89C51 单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将 AT89C2051 的 P1.0P1.7 分别与共阳数码管的 ag 及 dp 相连,高电平的位对应的 LED 数码管的段暗,低电平的位对应的 LED 数码管的段亮,这样,当 P0 口输出不同的段码,就可以控制数码管显示不同的字符。例如:当P0 口输出的段码为 1100 0000,数码管显示的字符为 0。数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方

35、式。动态扫描显示方式需解决多位 LED 数码管的 “段控”和“位控” 问题,本电路的“段控” (即要显示的段码的控制)通过 P0 口实现;而每一位的公共端,即 LED 数码管的“位控” ,则由 P3 口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过 PNP 三极管的导通与截止来控制,即三极管处于“开关”状态。系统的时分显示部件由 4 只 7 段

36、共阳 LED 数码管构成,前两只用于时的显示,后两只用于分的显示。值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只 LED 数码管倒置摆放,这样就形成了两个很自然的闪烁点。与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点由 P1.7 单独控制,每隔一秒使 P1.7 发送一个正脉冲,从而实现了两个点的闪烁显示,闪烁周期为一秒。十六位 LED 电子钟16第五章 程序设计 17第五章 程序设计5.1 程序预览以下为程序:#include #include “DS1302.H“sbit K_O = P10; /OKsbit K_M = P11; /Modi

37、fysbit K_I = P12; /Increasesbit K_D = P13; /Decreaseunsigned char code TABLE=0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/0xBF,/*-*/;unsigned char SEG16;unsigned char state = 0;#define MC_H 25unsigned char mc = 0;void Delay(unsigned int t)unsign

38、ed int a,b;for (a=0; a MC_H) switch (state)case 0:break;case 1:SEG0 = SEG1 = 0xFF;break;case 2:SEG2 = SEG3 = 0xFF;break;case 3:SEG4 = SEG5 = 0xFF;break;case 4:第五章 程序设计 19SEG7 = 0xFF;break;case 5:SEG8 = SEG9 = 0xFF;break;case 6:SEG11 = SEG12 = 0xFF;break;case 7:SEG14 = SEG15 = 0xFF;break;for (i=0; i

39、2 * MC_H)mc = 0;void Key(void)unsigned char t;十六位 LED 电子钟20P1 = 0x0F;if (!K_O)Delay(10);if (!K_O)state = 0;DS1302_WriteData(0x8e,0x80); /打开写保护while (!K_O)Display();if (!K_M)Delay(10);if (!K_M)DS1302_WriteData(0x8e,0x00); /关闭写保护state+; /循环修改if (state 7)state = 1;while (!K_M)Display();if (!K_I)Delay(1

40、0);if (!K_I)switch (state)case 0:break;case 1: /Year第五章 程序设计 21t = BCD2DEC(DS1302_ReadData(DS1302_YEAR + 1);if (+t 100)t = 0;DS1302_WriteData(DS1302_YEAR, DEC2BCD(t);break;case 2: /Montht = BCD2DEC(DS1302_ReadData(DS1302_MONTH + 1);if (+t 12)t = 1;DS1302_WriteData(DS1302_MONTH, DEC2BCD(t);break;case

41、 3: /Dayt = BCD2DEC(DS1302_ReadData(DS1302_DAY + 1);if (+t DS1302_GetTheDay()t = 1;DS1302_WriteData(DS1302_DAY, DEC2BCD(t);break;case 4: /Weekt = BCD2DEC(DS1302_ReadData(DS1302_WEEK + 1);if (+t 7)t = 1;DS1302_WriteData(DS1302_WEEK, DEC2BCD(t);break;case 5: /Hourt = BCD2DEC(DS1302_ReadData(DS1302_HOU

42、R + 1);if (+t 23)t = 0;DS1302_WriteData(DS1302_HOUR, DEC2BCD(t);break;case 6: /Minutet = BCD2DEC(DS1302_ReadData(DS1302_MINUTE + 1);if (+t 59)t = 0;DS1302_WriteData(DS1302_MINUTE, DEC2BCD(t);break;case 7: /Secondt = BCD2DEC(DS1302_ReadData(DS1302_SECOND + 1);if (+t 59)十六位 LED 电子钟22t = 0;DS1302_Write

43、Data(DS1302_SECOND, DEC2BCD(t);break;while (!K_I)Display();if (!K_D)Delay(10);if (!K_D)switch (state)case 0:break;case 1: /Yeart = BCD2DEC(DS1302_ReadData(DS1302_YEAR + 1);if (t 0)t-;elset = 99;DS1302_WriteData(DS1302_YEAR, DEC2BCD(t);break;case 2: /Montht = BCD2DEC(DS1302_ReadData(DS1302_MONTH + 1)

44、;if (t 1)t-;elset = 12;DS1302_WriteData(DS1302_MONTH, DEC2BCD(t);break;case 3: /Dayt = BCD2DEC(DS1302_ReadData(DS1302_DAY + 1);if (t 1)t-;第五章 程序设计 23elset = DS1302_GetTheDay();DS1302_WriteData(DS1302_DAY, DEC2BCD(t);break;case 4: /Weekt = BCD2DEC(DS1302_ReadData(DS1302_WEEK + 1);if (t 0)t-;elset = 7

45、;DS1302_WriteData(DS1302_WEEK, DEC2BCD(t);break;case 5: /Hourt = BCD2DEC(DS1302_ReadData(DS1302_HOUR + 1);if (t 0)t-;elset = 23;DS1302_WriteData(DS1302_HOUR, DEC2BCD(t);break;case 6: /Minutet = BCD2DEC(DS1302_ReadData(DS1302_MINUTE + 1);if (t 0)t-;elset = 59;DS1302_WriteData(DS1302_MINUTE, DEC2BCD(t);break;case 7: /Secondt = BCD2DEC(DS1302_ReadData(DS1302_SECOND + 1);if (t 0)t-;elset = 59;DS1302_WriteData(DS1302_SECOND, DEC2BCD(t);break;十六位 LED 电子钟24while (!K_D)Display();void main(void)DS1302_Init();while (1)Display();Key();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 机械制造 > 机械/模具设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报