电子时钟设计报告 2

合集下载

单片机电子时钟课程设计设计报告

单片机电子时钟课程设计设计报告

单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。

该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。

功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00。

(2)设计键盘调整时间,完成时间设计,并设置闹钟。

(3)定时时间为1/100秒,可采用定时器实现。

(4)采用LED数码管显示,时、分,秒采用数字显示。

(5)采用24小时制,具有方便的时间调校功能。

(6)具有时钟和秒表的切换功能。

使用方法:开机后时钟在00:00:00起开始计时。

(1)长按进入调分状态:分单元闪烁,按加1,按减1.再长按进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。

(2)(2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加1,再按为时调整,按时加1,按调闹钟结束.在闹铃时可按停闹,不按闹铃1分钟。

(3)按下进入秒表状态:再按秒表又启动,按暂停,再按秒表清零,按退出秒表回到时钟状态。

二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图各个模块设计1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

数字电子钟设计实习报告

数字电子钟设计实习报告

一、实习背景随着科技的不断发展,数字电子技术在日常生活和工业领域得到了广泛的应用。

为了更好地掌握数字电子技术,提高自身的实践能力,我们小组在实习期间选择了数字电子钟的设计与制作作为课题。

通过本次实习,我们旨在了解数字电子钟的设计原理、电路构成及制作方法,从而提高自身的动手能力和创新思维。

二、实习目的1. 熟悉数字电子钟的设计原理和电路构成;2. 掌握数字电子钟的制作方法,提高动手能力;3. 培养团队合作精神,提高沟通协调能力;4. 深入理解数字电子技术在实际应用中的价值。

三、实习内容1. 研究数字电子钟的设计原理和电路构成;2. 设计数字电子钟的电路图;3. 制作数字电子钟的电路板;4. 调试和测试数字电子钟的性能;5. 撰写实习报告。

四、实习过程1. 研究数字电子钟的设计原理和电路构成在实习前期,我们查阅了大量资料,对数字电子钟的设计原理和电路构成进行了深入研究。

数字电子钟主要由以下几个部分组成:(1)时钟源:提供稳定的时钟信号,如石英晶体振荡器;(2)分频器:将时钟源提供的时钟信号进行分频,得到时、分、秒的计数脉冲;(3)计数器:对分频器输出的计数脉冲进行计数,得到时、分、秒的数值;(4)译码器:将计数器的输出信号转换为数码管的显示信号;(5)数码管:显示时、分、秒的数值;(6)按键电路:实现时钟的校时、校分、报时等功能。

2. 设计数字电子钟的电路图在了解数字电子钟的电路构成后,我们根据电路原理和实际需求,设计了数字电子钟的电路图。

电路图主要包括以下部分:(1)时钟源:采用石英晶体振荡器;(2)分频器:采用14分频电路,得到1Hz的时钟信号;(3)计数器:采用十进制计数器,分别对时、分、秒进行计数;(4)译码器:采用七段译码器,将计数器的输出信号转换为数码管的显示信号;(5)数码管:采用共阳极七段数码管,显示时、分、秒的数值;(6)按键电路:采用单片机控制按键输入,实现时钟的校时、校分、报时等功能。

电子技术综合设计报告数字钟设计

电子技术综合设计报告数字钟设计

摘要本次实验的主要内容是设计多功能的数字钟。

数字钟是一种用数字显示分,秒,时的记时装置,相比于传统机械时钟,它具有走时准确,显示直观等优点,并且得到广泛应用。

数字钟主要由时,分,秒计数器以及校时和显示电路组成。

利用60进制和24进制递增计数器子电路构成数字时钟系统,由2个60进制同步递增计数器完成秒,分计数,由一个24进制同步递增完成小时计数。

要点在于用555芯片连接输出为一秒的多谐振荡器用于时钟的秒脉冲。

设计的数字钟除了具有校准功能,自带秒脉冲信号发生器的基本功能外,我们还要设计一些扩展功能。

本设计的提高功能:小时的计数要求为“12归1”。

我们在对基本原理和软件方面有了一定的了解的基础上,然后还要亲自动手焊接出数字钟。

通过软件,硬件的结合,我们才能对数字钟有更好的了解,学习更多的知识,掌握更多的技能。

关键词:多功能数字钟;CC4518、CC4511、555芯片;计数器;多谐振荡器目录1 数字钟的基本组成及工作原理 (1)1.1数字钟的构成 (1)1.2数字钟的工作原理 (1)2 数字钟的设计与制作 (3)2.1系统方案选择与论证 (3)2.2设计步骤与方法 (3)2.2.1 NE555脉冲电路产生 (3)2.2.2计数器电路 (5)2.2.3译码显示电路 (7)2.2.4校时电路 (10)2.3数字钟仿真 (11)2.3.1数字钟电路原理图(见附录4) (11)2.3.2系统整体仿真图(见附录6) (11)2.3.3 PCB板图(见附录2) (11)3 数字钟的扩展功能 (12)3.1定点报时 (12)3.2 12归1 (13)4 数字钟的焊接及注意事项 (15)4.1焊接元件清单(见附录3) (15)4.2实际焊接的印刷电路板元件分布图(见附录5) (15)4.3焊接注意事项 (15)5 系统软、硬件调试 (17)5.1系统软件调试过程中遇到的问题以及排查经过 (17)5.2系统硬件调试过程中遇到的问题以及排查经过 (17)6 总结及体会 (18)7参考文献 (19)附录 (20)附录1: (20)附录2: (21)附录3: (22)附录4: (23)附录5: (24)附录6: (25)1 数字钟的基本组成及工作原理1.1数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

数字电子钟设计报告,完整版

数字电子钟设计报告,完整版

一、任务技术指标设计一个数字电子钟(1)能显示小时、分钟和秒;(2)能进行24小时和12小时转换;(3)具有小时和分钟的校时功能。

二、总体设计思想1.基本原理该数字钟由振荡器、分频器、计数器、译码器、显示器和校时电路等六部分组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换也可以用开关进行选择。

2.系统框图如图1:振荡器产生的钟标信号送到分频器,分频电路将时标信号送至计数器。

计数器通过译码显示把累计的结果以“时”、“分”、“秒”的数字显示出来。

整个过程中可选择用校时电路进行校时。

图1 系统框图三、具体设计1.总体设计电路该数字钟由振荡器、分频器、计数器、显示器和校时电路组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理分计数器计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换可以用开关进行选择。

图2 总体电路图2.模块设计(1)振荡器的设计振荡器是数字钟的核心。

振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。

石英晶体振荡器的作用是产生时间标准信号。

因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。

电路中采用的是将石英晶体与对称式多谐振荡器中的耦合电容串联起来,就组成了如图3所示石英晶体多谐振荡器。

图3振荡器电路图和仿真波形图(2)分频器的设计对于分频器的设计选定74LS90集成芯片。

电子时钟设计实验报告

电子时钟设计实验报告

可调节电子表摘要我们正处在一个信息的时代,事物的发展和技术的进步,让我们享受到了诸多的便利。

尤其是电子表,它在我们的生活中无处不在。

电子表是内部装配有电子元件的表,一般分液晶显示数字式和石英指针式两种。

本次程程设计在Quartus II仿真软件上实现对电子表的设计。

学习电子表的设计不仅让我们拨开了电子表的奥妙,让我们更加牢固的掌握了74160、74193这一类的计数器的使用。

运用多个74160器件,使之产生模为24、60周期的计数器,按照一定的关系量来连接,从而产生进位,产生一个能循环计数的正常电子表的功能。

再设计一个电子表的调节电路图,以方便调节电子表。

完成两部分的封装,对设计结果进行验证,通过输入数据的变化,从而得到所需要的输出。

根据需要,或正常计时,或设定分钟和小时,都能得到正确的结果。

关键词:Quartus II,电子表,计数器,74160,调节Adjustable Electronic ClockABSTRACTWe are in the age of information, the development of things and technical progress, let us enjoy the many convenience. Especially electronic watch, it's in our life is everywhere. An electronic watch is internal assembly have electronic components watch, general points LCD digital and quartz pointer type two kinds. This ChengCheng design in Quartus II simulation software to achieve the design of electronic watch. The design of the electronic learning not only let us through the secrets of the digital watches, let us more solid knowledge of 74160, 74193 this kind of use of the counter. Use DuoGe 74160 devices, causes it to have the mold of 23, 59 cycle of counter, according to certain amount to the relationship between the connection, which carry and produce a cycle count of the normal can the function of digital watches. To design a digital watch the adjustment of the circuit diagram, with convenient adjustment electronic. Complete two part of the package, the design results were verified through the change of input data, and the output of the need. According to the needs, or normal time, or set up minutes and hours, can get the right result.Key words: Quartus II, electronic watch, counter, 74160, adjust目录前言 (1)第1章组成电路的芯片介绍 (3)1.1 74160芯片 (3)1.1.1 74160芯片符号 (3)1.1.2 74160工作原理 (3)第2章可调节电子表的顶层电路 (5)2.1 可调节电子表的顶层电路与说明 (5)2.1.1 可调节电子表的顶层电路图 (5)2.1.2 电路说明 (5)第3章可调节电子表详析 (6)3.1 可调节电子表 (6)3.2 设计原理详析 (8)3.2.1 计数原理 (8)3.2.2 校时电路原理 (8)3.3 仿真波形与分析 (10)第4章LCD液晶显示器实现 (13)4.1 LCD液晶显示器 (13)4.1.1 LCD液晶显示器源程序 (13)4.1.2 LCD显示器封装 (16)第5章下载验证 (17)结论 (19)谢辞 (20)参考文献 (21)附录 (22)前言在这个越来越时间化的社会中,各式各样的电子表在我们身边频出不烦,俨然成为我们里生活里不可或缺的一部分。

数电课程设计数字电子钟报告

数电课程设计数字电子钟报告

数字电子技术课程设计报告题目:数字钟的设计与制作时间:09-10学年第二学期18-19周院校:武汉纺织大学班级:测控081组员:夏亦冰李艳飞田传雪吴哲伦数字电子技术课程设计报告一.设计目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二.实现功能1.要求内容1)时以24为周期2)分和秒以60为周期3)能显示时、分、秒4)具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间2. 发挥内容1)星期的显示2)计时过程具有报时功能三.元器件1.洞洞板2块2.0.47uF电容1个3.100nF电容1个4.共阴八段数码管7个5.网络线10米6.CD4511集成块7块7.CD4060集成块1块8.74HC390集成块4块9.74HC51集成块1块10.74HC00集成块4块11.74HC30集成块1块12.10MΩ电阻5个13.74HC00集成块4块14.L7805三端稳压管1个15.30pF瓷片电容2个16.9V电池1块17.单刀双掷开关2个18.单刀单置开关1个19.74HC10集成块1块各个芯片引脚图1.CD74HC3902.L7805稳压管3.CD4060 4.CD4511 5.74HC10 6.74HC307.74HC518.74HC00四、原理框图1.数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ 时间信号必须做到准确稳定。

电子时钟的电子设计实习报告

电子时钟的电子设计实习报告

电子时钟的电子设计实习报告一、实习目的与要求本次电子设计实习的主要目的是让我们了解和掌握电子时钟的设计与制作过程,培养我们动手实践能力和团队协作精神。

要求我们能够根据给定的功能要求,设计并制作一个电子时钟,实现小时、分钟和秒的显示功能。

二、实习内容与过程1. 需求分析:根据实习任务,我们首先进行了需求分析,明确了电子时钟需要实现的功能,包括小时、分钟和秒的显示,以及时间的设定和调整等功能。

2. 方案设计:在需求分析的基础上,我们设计了电子时钟的总体方案。

采用了MCU(Micro Control Unit,微控制器)作为核心控制器,实现时间的计算和显示控制。

同时,选择了合适的时钟芯片和显示模块,完成了硬件选型。

3. 硬件制作:根据方案设计,我们进行了电路原理图的设计,并选择了合适的元器件进行硬件制作。

主要包括MCU、时钟芯片、显示模块、按键模块等。

4. 软件编程:我们编写了MCU的程序代码,实现了时间的计算、显示控制以及时间的设定和调整等功能。

同时,通过调试和优化代码,保证了时钟的准确性和稳定性。

5. 系统测试:完成了硬件和软件的集成后,我们对电子时钟进行了系统测试。

测试内容包括时间的准确性、显示功能的正常运行以及时间的设定和调整等功能。

三、实习成果与总结通过本次实习,我们成功设计并制作了一个电子时钟,实现了小时、分钟和秒的显示功能,以及时间的设定和调整等功能。

在实习过程中,我们不仅掌握了电子时钟的设计方法和制作流程,还培养了团队协作和动手实践能力。

通过本次实习,我们深刻认识到了电子设计的重要性和实践意义。

在今后的学习和工作中,我们将不断努力,不断提高自己的电子设计能力,为我国的电子产业做出贡献。

数字电子时钟课程设计报告

数字电子时钟课程设计报告
10
华北科技学院课程设计
分十位计数单元为 6 进制,当 QDQCQBQA 变成 0101 时, 通过与非门把它接回置数端,计数器的输入置为 0000,计数 器又从 0000 开始,如此重复,十位和个位合起来就是 60 进 制 。同 时 两 个 分 计 数 芯 片 的 脉 冲 输 入 端 接 秒 计 数 器 的 进 位 输 出 端 ,当 各 个 芯 片 开 始 工 作 时 ,秒 计 数 器 的 进 位 输 出 端 给 分 计 数 器 的 两 片 分 计 数 芯 片 的 输 入 高 电 平 脉 冲 ,使 分 计 数 器 开 始计数,当分计数器的输出为 59 状态时使两个芯片的置数 端工作,进行置数,同时分十位上的进位信号传输给“时” 个位的计数单元。分计数器的设计电路如图五所示。
图五 分计数器的设计电路
11
华北科技学院课程设计
(3)时计数器的设计 时计数单元为 24 进制计数器,其输出为 8421BCD 码。同样 采用十进制计数器 74160N 来实现时间计数单元的计数功能。 数字钟的“时”计数器为模 24 的计数器,它的个位是四进 制计数器,而十位则是二进制计数器,其计数规律为:
6
华北科技学院课程设计
增大。如果精度要求不高也可以采用由集成电路定时器 555 与 RC 组成的多谐振荡器。根据理论知识运用,运用 CB555 定时器与电阻电容组合设计多谐振荡器的振荡器的周期为 1 秒,即周期 T=1, 根 据 理 论 知 识 得 , 多 谐 振 荡 器 周 期 的 计 算 公 式 为 :, 多 谐 振 荡 器 频 率 的 计 算 公 式 为 :,占 空 比 的 计 算 公 式 为 :,通 过 以 上 公式计算多谐振荡器的周期频率的大小跟外接电阻的阻值。 运用 CB555 定时器设计多谐振荡器,由 CB555 定时器的参数 特性可知,当电源电压为 5V 时,在 100mA 的输出电流下输 出电压的典型值为 3.3V,所以取 VCC=5V 时可以满足对输出 周期为一秒的脉冲信号的要求。 令占空比 q=2/3,C=10uF 时,得=,则 , 即 3C=1,则 。 通过计算得电阻 R=48K,电容 C=10uF,因两个电阻的大小相 等,所以取两只阻值为 47K 的电阻和一个阻值为 2K 的电位 器串联,得到设计电路,如图二所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计课程名称:电子时钟班级:姓名:学号:设计时间:2013.3.25目录一、设计目的 (1)二、具体要求 (2)三、方案论证 (3)四、软件设计 (4)五、程序代码 (5)六、仿真调试 (6)七、性能测试与分析 (7)八、实验心得 (8)一、设计目的:(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的能力。

(2)熟悉Ptoteus及Keil软件的调试和仿真。

(3)通过实验提高对单片机的认识。

(4)通过实验提高焊接、布局、电路检查能力。

(5)通过实验提高软件调试能力。

(6)进一步熟悉和掌握单片机的结构及工作原理。

(7)通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解电路参数的计算方法。

(8)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(9)通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应打下基础。

二、具体要求:(1)、实时显示秒、分、时、年等(可自动或手动设置显示)(2)、具有定时功能(3)、能调整时间、日期(4)、能调整定时时间(5)、时钟走时误差一天少于1分钟三、方案论证:根据本题就是要做一个时钟的要求我们有以下两个方案。

方案一:利用数字电子电路的知识制作时钟,利用74LS160计数的简易数字控制电路,由NE555产生频率为1HZ 的输入信号,经过74LS48译码由数码管显示。

当数字大于100时有指示灯显示,大于300时返回。

方案二:基于AT89C51单片机来制作电子时钟,其最大的好处就是可最大的调整时钟使其的准确度更高。

所以根据课题要求为了得到更好的最确度所以决定选择方案二作为本设计的方案。

其可归结如下:表一(1)使用12MHz 的晶振作为单片机的外部时钟输入,一个机器周期为1us(2)使用定时器0作为时钟计数器,当计数满8ms 时定时器0产生中断,当中断满125次时,调用时间模块进行加1操作。

先对秒进行加1,若加1后等于60秒,则清除秒单元,同时向分进1,同理,对分、时进行同样操作。

(3)P3.0选择键 P3.1为加控制键 P3.2减控制键 P3.4为日期时间切换显示按键。

利用发光二极管作为显示定时用,当定时时间到,从P3.3输出一低电平点亮发红光二极管。

P3.3为发光二极管闪烁(4)年、月、日的判断。

取年单元的数据除以4,若余数为零,则该年为闰年,再判断月单元是否为2月,若为2月则当月天数加1;若年单元数据除以4后余数不为零,则正常取表格的数据。

数码管AT89C51 基本系统 串 行 时 钟 电 源四、软件设计:系统软件采用汇编语言按模块化方式进行设计,然后通过Keil C51软件开发平台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,其次,按照Proteous 的仿真电路图,在Protel 99SE 中完成电路板的逻辑布局及布线。

系统程序主要包括主程序,读出时钟子程序和显示数据刷新子程序。

程序详情请看程序附件;程序流程图如下主程序流程图五、程序代码:#include "reg51.h"开始清显示缓冲区初始化定时计数器 赋时钟初值开定时器 调整时间 数码管显示当前时钟值定时中断恢复初值,保护中断40000.1秒单元清0.60秒到吗? 秒单元清0,60分到吗? 分单元清0,24小时到吗? 时单元清0堆栈返回0.1秒加1秒加1分加1时加1YYYYN N NN#define uchar unsigned char#define uint unsigned int#define true 1#define faluse 1sbit set_key = P3^0;sbit up_key = P3^1;sbit down_key = P3^2;sbit sign = P3^3;sbit select_key= P3^4;sbit set_ring_key = P3^5;uint sec;uint min=23;uint hour=12;uint day=10;uint month=10;uint yearl=7;uint yearh=20;uint tcnt;uint cnt=0;uint cursor=0;uint sjsz=0;uchar a=0xff;uchar code Seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint t){uint i;while(t--){for (i=0;i<125;i++);}}void Kdelay(){uchar i,j;for(i=100;i>0;i--)for(j=248;j>0;j--);}void display(uchar L1,uchar L2,uchar L3,uchar L4,uchar L5,uchar L6,uchar L7,uchar L8,uchar L9,uchar L10,uchar L11,uchar L12,uchar L13,uchar L14){if(cnt==1){if(cursor==6){P2=0x7F|a;P0=L1;delay(1);}else{P2=0x7F;P0=L1;delay(1);} //yearhif(cursor==6){P2=0xBF|a;P0=L2;delay(1);}else{P2=0xBF;P0=L2;delay(1);} //yearhif(cursor==6){P2=0xDF|a;P0=L3;delay(1);}else{P2=0xDF;P0=L3;delay(1);} //yearlif(cursor==6){P2=0xEF|a;P0=L4;delay(1);}else{P2=0xEF;P0=L4;delay(1);} //yearlif(cursor==5){P2=0xF7|a;P0=L5;delay(1);}else{P2=0xF7;P0=L5;delay(1);} //monthif(cursor==5){P2=0xFB|a;P0=L6;delay(1);}else{P2=0xFB;P0=L6;delay(1);} //monthif(cursor==4){P2=0xFD|a;P0=L7;delay(1);}else{P2=0xFD;P0=L7;delay(1);} //dayif(cursor==4){P2=0xFE|a;P0=L8;delay(1);}else{P2=0xFE;P0=L8;delay(1);} //dayP2=0xFF;}else{if(cursor==3){P2=0x7F|a;P0=L9;delay(1);}else{P2=0x7F;P0=L9;delay(1);} //hourif(cursor==3){P2=0xBF|a;P0=L10;delay(1);}else{P2=0xBF;P0=L10;delay(1);} //hourif(cnt!=1){P2=0xDF;P0=0X40;delay(1);}if(cursor==2){P2=0xEF|a;P0=L11;delay(1);}else{P2=0xEF;P0=L11;delay(1);} //minif(cursor==2){P2=0xF7|a;P0=L12;delay(1);}else{P2=0xF7;P0=L12;delay(1);} //minif(cnt!=1){P2=0xFB;P0=0X40;delay(1);}if(cursor==1){P2=0xFD|a;P0=L13;delay(1);}else{P2=0xFD;P0=L13;delay(1);} //secif(cursor==1){P2=0xFE|a;P0=L14;delay(1);}else{P2=0xFE;P0=L14;delay(1);} //secP1=0xFF;}}main(){TMOD=0x02; //设置模式为定时器T0的模式2 断的产生中断去执行中断函数本次定时时间为64msTH0=0x06; //设置计数器初值,靠TH0存储重装的计数值X0=256-250=6TL0=0x06;TR0=1; //启动T0ET0=1; //开启定时器T0中断允许EA=1; //开启中断总控制while(1){if(set_key==0){Kdelay();if(set_key==0){cursor++;if(cursor>=7){cursor=0;} //在选择到调整年时又返回秒设置,当CURSOR=7时不选中}}if(up_key==0){Kdelay();if(up_key==0){ //加部分if(cursor==1){sec++;if(sec==60)sec=0;}if(cursor==2){min++;if(min==60)min=0;}if(cursor==3){hour++;if(hour==24)hour=0;}if(cursor==4){day++;if(day==31)day=1;}if(cursor==5){month++;if(month==13)month=1;}if(cursor==6){yearl++;if(yearl==100)yearl=0;}if(cursor==7){yearh++;if(yearh==30)yearh=20;}}}if(down_key==0){Kdelay();if(down_key==0){ //减部分if(cursor==1){sec--;if(sec==00)sec=59;}if(cursor==2){min--;if(min==0)min=59;}if(cursor==3){hour--;if(hour==0)hour=23;}if(cursor==4){day--;if(day==0)day=31;}if(cursor==5){month--;if(month==0)month=12;}if(cursor==6){yearl--;if(yearl==0)yearl=99;}if(cursor==7){yearh--;if(yearh==20)yearh=30;}}}if(select_key==0){Kdelay();if(select_key==0){cnt++;if(cnt>=2)cnt=0;}}display(Seg[yearh/10],Seg[yearh%10],Seg[yearl/10],Seg[yearl%10],Seg[month/10],Seg[month%10],Seg[day/10], Seg[day%10],Seg[hour/10],Seg[hour%10],Seg[min/10],Seg[min%10],Seg[sec/10],Seg[sec%10]);}}void t0(void)interrupt 1 using 0 //t0的中断程序{tcnt++;if(tcnt==4000)//定时器的定时计数,4000次250us为1秒,中断4000次后才执行刷新,期间照上面的语句显示{tcnt=0;sign=~sign;a=~a;sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24){hour=0;day++;if(month==2&&((yearl==0&&yearh%4==0)||(yearl!=0&&yearl%4==0))&&day==30)day=1;else if(month==2&&day==29)day=1;else if((month==4||month==6||month==9||month==11)&&day==31)day=1;else if(day==32)day=1;if(day==1){month++;if(month==13){month=1;yearl++;if(yearl==100){yearl=0;yearh++;if(yearh==100){yearh=20;}}}}}}}}}六、仿真调试:软件仿真:我们在进行硬件制作前我们都对我们的制作进行了软件仿真,本次我们用了proteus7.0进行了软件的仿真仿真图如下图,根据仿真图的显示结果我的电路设计已经达到了课题的基本要求。

相关文档
最新文档