电子时钟系统设计
数字电子钟设计报告
数字电子钟一.摘要数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
采用74160,74393实现24进制和60进制,从而实现计数功能。
目录一.正文 (3)1.1系统设计 (3)1.11设计原理(数字电子钟结构框图): (3)1.12石英晶体振荡器 (3)1.2单元电路设计 (4)1.21时、分、秒计数器的设计: (4)1.2.1.1 元器件的选择:74LS160 同步十进制计数器、与非门 (4)1.2.1.2 二十四进制计数器电路图 (5)1.2.1.3 六十进制计数器电路图 (6)1.2.1.4 秒脉冲谐振电路: (6)1.3系统的测试 (8)1.3.1 N进制级联 (8)1.3.2分频器电路 (8)1.3.3.调校电路 (9)1.4 总结 (10)参考文献 (10)附录 (11)1.元器件的明细表 (12)一.正文1.1系统设计1.11设计原理(数字电子钟结构框图):数字电子钟是一个典型的数字电路系统,其由直流稳压电源,秒脉冲发生器,时、分、秒计数器以及校时和显示电路组成结构框图如下:图表 11.12石英晶体振荡器:石英晶体振荡器的特点是振荡频率准确,电路结构简单,频率易调节。
基于51单片机的多功能电子钟设计
基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。
本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。
51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。
本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。
本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。
接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。
将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。
软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。
本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。
通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。
2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。
它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。
51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。
51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。
其存储器分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。
51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。
51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
基于单片机电子时钟的设计
基于单片机电子时钟的设计一、设计背景随着科技的不断进步,电子设备在我们的生活中扮演着越来越重要的角色。
时钟作为时间的测量工具,也从传统的机械时钟逐渐发展为电子时钟。
单片机作为一种集成度高、功能强大的微控制器,为电子时钟的设计提供了高效、可靠的解决方案。
基于单片机的电子时钟具有精度高、易于编程、成本低等优点,能够满足人们对时间测量和显示的各种需求。
二、系统设计方案1、硬件设计单片机选择:选择合适的单片机是整个系统设计的关键。
常见的单片机如STM32、AT89C51 等,具有不同的性能和特点。
根据系统需求,我们选择了 AT89C51 单片机,其具有成本低、性能稳定等优点。
时钟芯片:为了保证时间的准确性,需要选择高精度的时钟芯片。
DS1302 是一款常用的实时时钟芯片,具有低功耗、高精度等特点,能够为系统提供准确的时间信息。
显示模块:显示模块用于显示时间。
常见的显示模块有液晶显示屏(LCD)和数码管。
考虑到显示效果和成本,我们选择了 1602 液晶显示屏,能够清晰地显示时间、日期等信息。
按键模块:按键模块用于设置时间和调整功能。
通过按键可以实现时间的校准、闹钟的设置等功能。
电源模块:为整个系统提供稳定的电源。
可以选择电池供电或外部电源供电,根据实际使用场景进行选择。
2、软件设计编程语言:选择合适的编程语言进行软件编程。
C 语言是单片机编程中常用的语言,具有语法简单、可读性强等优点。
主程序流程:主程序首先进行系统初始化,包括单片机端口初始化、时钟芯片初始化、显示模块初始化等。
然后读取时钟芯片中的时间信息,并将其显示在液晶显示屏上。
通过按键检测模块,判断是否有按键操作,如果有,则进行相应的处理,如时间校准、闹钟设置等。
中断服务程序:为了保证时间的准确性,需要使用定时器中断来实现时钟的计时功能。
在中断服务程序中,对时钟芯片进行时间更新,确保时间的准确性。
三、硬件电路设计1、单片机最小系统单片机:AT89C51 单片机是整个系统的核心,负责控制和协调各个模块的工作。
基于单片机的数字电子时钟设计
基于单片机的数字电子时钟设计数字电子时钟是一种非常常见的电子产品,它可以帮助我们实现精确的时间显示,让我们的生活更加方便。
随着科技的不断发展,数字电子时钟也在不断更新和发展,基于单片机的数字电子时钟已经成为当前最先进的技术之一。
本文将介绍基于单片机的数字电子时钟的设计原理和实现方法。
一、数字电子时钟的设计原理数字电子时钟的实现原理就是把时间信号转换成数字信号,再通过计算机芯片来显示时间。
其中,时间信号可以是电缆信号或者无线信号,并且也可以通过外部的控制电路进行调节。
而计算机芯片可以采用单片机、PLC控制器等方案进行设计。
基于单片机的数字电子时钟,可以使用数字时钟芯片和定时器芯片来完成。
数字时钟芯片是一种能够实现数据的统计、时钟显示等功能的IC芯片,通过将其与定时器芯片相连,就能够实现精确的时间统计和显示。
此外,在设计时还需要进行软硬件电路的优化和调试。
二、基于单片机的数字电子时钟的实现方法1、硬件设计基于单片机的数字电子时钟的硬件设计,主要包含单片机控制电路、显示电路、外设接口电路、供电电路、时钟芯片和定时器芯片等部分。
其中,时钟芯片用于提供精准的时间信号,定时器芯片则用于进行计时,而单片机和外设接口电路则用于控制整个数字电子时钟的功能。
另外,数字电子时钟还需要进行外观设计,通常采用的是数码管或液晶屏幕显示时间。
通过优化电路布局和参数匹配,可以有效地提高整个数字电子时钟的稳定性和精度。
2、软件设计在数字电子时钟的软件设计中,主要包含固件设计和操作系统设计两部分。
固件设计是指对单片机系统进行程序编写、调试和优化,以实现时钟的各种功能;而操作系统设计,则是对固件进行封装,建立起一套完整的操作环境,方便用户进行操作。
在固件设计中,需要考虑到时钟的显示、调节、闹钟、定时等多种功能的实现。
通常,这些功能都会涉及到多个模块和数据结构的设计,需要通过循序渐进的方式逐步实现。
在操作系统设计中,需要对时钟的各种操作进行封装,形成一套完整的操作界面。
基于plc的电子钟控制系统设计
基于plc的电子钟控制系统设计摘要:本篇论文主要基于PLC(可编程逻辑控制器)的技术,设计并实现一款电子钟控制系统。
首先,文章介绍了电子钟的基本原理和设计要求,然后对PLC的基本结构和工作方式进行了详细的介绍。
接着,我们通过PLC控制器及时更新的时间来驱动电子钟的工作,使其具有电子脉冲控制、时钟设定、数据传输等功能。
最后,我们对该系统进行了实验检验,结果表明本设计的PLC电子钟控制系统能够正常、精确地显示时间,并且也具有良好的可拓展性和可靠性。
关键词:PLC,电子钟,控制系统,时间显示一、介绍在现代社会中,电子钟是一个非常常见和实用的设备。
在各种场所(如家庭、办公室、学校和制造厂等)都会使用该设备作为时间的显示和管理。
目前,市面上的电子钟通常采用数字LED显示屏,并且通过电源来保证其可靠性和稳定性。
然而,在一些需要定制或特殊需求的场景下,一个基于PLC的电子钟控制系统则可能更加符合要求。
本文将着重描述基于PLC技术的电子钟控制系统的设计和实现,并且通过实验展示其实用性和性能。
此外,我们还将探讨PLC和电子钟之间的关系,以及如何实现电子钟控制系统的常见功能。
二、PLC的基本结构和工作原理PLC是一种专门用来控制以及监测工厂自动化流程的计算机设备。
它将人类的指令翻译成计算机的指令,并将其输出到控制器的输出端。
PLC通常由五个部分组成:交流电源、CPU(处理器)、输入/输出(I/O)模块、编程工具和各种接口。
其中,CPU是PLC系统的心脏,用于处理输入、输出信号的处理器。
与CPU相连的就是I/O模块,它负责通过数字电平的高低来控制各种开关和继电器。
通过这个过程,PLC就能够自动控制响应的设备、机器,并且使其工作自主化和精准化。
三、电子钟的基本结构和功能电子钟的核心部分是时钟芯片和显示屏,其工作过程通过振荡器来驱动。
时钟芯片是一个用于计算时间的集成电路,其输出用于控制数字屏幕的刷新和更新。
根据所需功能的不同,电子钟还有许多其他的元件,如报警、音乐播放、闹钟、计时器等功能模块。
AT89C2051数字电子钟的设计
AT89C2051数字电子钟的设计一、设计任务与要求1.通过单片机技术使 LED 数码管输出显示时间。
2. 可通过按键设置闹钟功能,且停闹无须手工操作。
3. 提高计时精度,使计时误差最小。
4. 通过键盘 2 个键,从左到右依次标名为 SET,DOWN,UP,ENTER, 用来修改和设置系统时钟。
二、方案设计与论证其主要设计思想是:整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。
时钟芯片产生时钟信号,利用单片机的 I/O 口传给单片机;并通过 I/O 口实现 LCD 的显示。
系统设有 4 个按键可以对时间星期年月日进行调整,还可以设置闹钟。
本电路以一片AT89C2051 单片机为主体,其显示数据从P3.0-P3.7 口输出,P1 口输出对应的六位位选信号。
电子钟程序设计时使用了 T0 作为计时,T1 为调整时显示用。
只要对程序稍加更改,可以很容易的实现 8 路定时功能。
电子钟只用一个轻触式按键来完成所有的设置。
为了使闹钟音量足够大,采用了 PNP 型三极管 8550 来驱动蜂鸣器,驱动电阻用 1K 的,蜂鸣器为 5V 小型蜂鸣器。
若用 NPN 来驱动蜂鸣器音量要小一点。
LED 数码管位驱动用8850,电子钟采用自制的 3A 开关电源供电。
AT89C205 是一个低电压,高性能 CMOS 8 位单片机,片内含 2k bytes 的可反复擦写的只读 Flash 程序存储器和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大。
但它只有 20 个引脚,15 个双向输入/输出(I/O)端口,其中 P1 是一个完整的 8 位双向 I/O 口,两个外中断口,两个 16 位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。
基于STC89C52单片机时钟的设计与实现
基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
PLC课程设计--时钟系统设计
时钟系统设计一、设计背景近年来,随着电子产品的发展,人们对数字时钟的要求越来越高,本文针对人们的这一需求,设计了一种有PLC控制的智能化数字时钟,功能强大,界面友好,更好的满足了人们对它的智能化要求。
随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道其他类型的内部结构以及工作原理。
由PLC 的CPU模块作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经PLC的外部接口输出,利用显示器显示出来。
通过开关可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
时钟系统是一种用数字电路技术实现年、月、日、周、时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
此时钟系统是基于PLC技术的应运而设计的,该系统包括了硬件电路部分和程序实现部分。
二、设计目的及要求巩固《PLC技术》课程学过的知识,加强理论与实践的联系。
以西门子S7-300系列PLC 为例,通过本课程设计,达到了解硬件设备,熟悉PLC系统设计流程,灵活运用基本指令和高级指令的目的。
时钟系统包含年、月、日、周、时、分、秒的显示和设置。
为简化程序,不需要判断闰年,即大月为31天,普通小月为30天,2月为28天。
系统分两种模式,由一个选择开关进行切换。
1、运行模式初始运行,或上电时,系统默认为运行模式,系统按照一个默认初值运行时钟。
2、修改模式选择开关打到修改模式,系统时钟停止运行,进入修改状态。
修改值由两个拨码开关输入,可单独对年~分进行修改并确定。
修改完毕,打到运行模式,系统按照修改的时钟进行运行。
系统设计部分要求:两种模式由信号灯进行区别:绿灯亮表示系统处于运行模式;红灯闪烁,闪烁频率为0.5s 表示系统处于修改模式。
基于STC89C52多功能电子时钟系统程序+原理图
一、设计任务设计制作一台以控制器为核心的多功能电子时钟系统二、设计要求:①.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,均能够通过上位PC机对其操作修改与实时动态显示。
(PC主机端可利用高级语言进行人机界面设计)②.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能。
③.在正常时钟显示模式时,系统具有整点报时的功能,在离整点前10秒时,自动发出鸣叫声,步长1秒,每间隔1秒鸣叫一次,前4响是低音,后1响为高音,共鸣叫5次,最后1响结束时为整点。
高音频率为1KHz;④.在系统校准模式时,系统具有快速校准时间的功能。
⑤.在秒表计时模式时,可兼做比赛时间记录表。
秒表记时的精度为0.1秒,由3个键分别控制秒表的启动、清零、记录功能,可连续记录3组时间,并能够显示记录时间。
⑥.系统显示器采用LCD液晶显示器1602或其它显示器件,并采用键盘对相关数据进行设置与操作。
原理图设计制作一台以控制器为核心的多功能电子时钟系统二、设计要求:①.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,均能够通过上位PC机对其操作修改与实时动态显示。
(PC主机端可利用高级语言进行人机界面设计)(注:此三种模式可以通过SET键盘来回切换,在正常时钟模式,第二排显示S:time,校准模式显示S:adjst,秒表模式,是TN~T3:四个秒表模式);②.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能。
(注:这个已经全部显示了,含星期)③.在正常时钟显示模式时,系统具有整点报时的功能,在离整点前10秒时,自动发出鸣叫声,步长1秒,每间隔1秒鸣叫一次,前4响是低音,后1响为高音,共鸣叫5次,最后1响结束时为整点。
高音频率为1KHz;(注:这个都实现了,要验证的话就是将时钟调整到59分后验证即可)④.在系统校准模式时,系统具有快速校准时间的功能。
51单片机的电子时钟设计
51单片机的电子时钟设计一、引言随着科技的发展和人们对时间的准确度的要求日益提高,电子时钟成为了人们生活中不可缺少的一部分。
本文将介绍一种基于51单片机的电子时钟设计。
二、硬件设计1.主控部分本设计使用了51单片机作为主控芯片,51单片机具有丰富的接口资源和强大的处理能力,非常适合用于电子时钟的设计。
2.显示部分采用了数码管显示屏作为显示部分。
为了提高显示的清晰度,我们选用了共阳数码管。
使用4位数码管即可显示时、分和秒。
3.时钟部分时钟部分由振荡器和RTC电路构成。
振荡器提供时钟脉冲信号,RTC 电路实现对时钟的准确计时。
4.按键部分按键部分采用矩阵按键,以实现对时间的设置和调整。
三、软件设计1.系统初始化在系统初始化阶段,需要对硬件进行初始化设置。
包括对I/O口的配置,定时器的初始化等。
2.时间设置用户可以通过按键设置当前的时间。
通过矩阵按键扫描,检测到用户按下了设置键后,进入时间设置模式。
通过按下加减键,可以增加或减少时、分、秒。
通过按下确认键,将设置的时间保存下来。
3.时间显示在正常运行模式下,系统将会不断检测当前的时间,并将其显示在数码管上。
通过对时钟模块的调用,可以获取当前的时、分、秒并将其显示出来。
4.闹钟功能在时间设置模式下,用户还可以设置提醒闹钟的功能。
在设定时间到来时,系统会发出蜂鸣器的声音,提醒用户。
四、测试与验证完成软硬件设计后,进行测试与验证是必不可少的一步。
通过对硬件的连线接触检查和软件的功能测试,可以确保整个设计的正确性和可靠性。
五、总结通过本次设计,我对51单片机的使用和原理有了更清晰的认识,同时也对电子时钟的设计和制作有了更深入的了解。
电子时钟作为一种常见的电子产品,在我们的日常生活中发挥了重要的作用。
这次设计过程中,我遇到了许多问题,但通过查阅资料并与同学一起探讨,最终解决了问题。
相信通过不断的学习和实践,我可以在未来的设计中取得更好的成果。
EDA课程设计报告电子钟
EDA课程设计报告电子钟1. 需求分析在日常生活中,我们无处不被时间所包围。
精准的时间尤为重要,电子钟因其准确、便携、易于控制等优点成为人们生活和工作必不可少的工具之一。
因此,基于此需求,我们设计了一款电子钟。
2. 系统设计电子钟的核心是时钟的计算,时钟的计算和显示涉及到时、分、秒、时间的设定和计算。
所以,系统的设计需要分为两个方面:硬件系统设计和软件系统设计。
2.1. 硬件系统设计硬件系统设计主要涉及到5V电源模块、单片机模块、RTC模块、时钟显示模块等。
2.1.1. 5V电源模块5V电源模块是提供设备运行所需电能的模块。
整个设备需要5V DC直流电源来工作,电源模块需要接上220V/110V AC电源。
此模块采用LM7805电压稳压芯片作为主要元件,保证设备稳定长时间的工作。
2.1.2. 单片机模块单片机模块是整个电子钟系统的核心,它负责计算时间并通过串口发送指令。
在本次设计中,晶振的时钟频率选用12MHz。
单片机选用STM32F103C8T6型号,这是一款高性能、低功耗、易于扩展的MCU芯片。
该模块可用于控制LED灯的开关、按键扫描等。
2.1.3. RTC模块RTC模块是实时时钟模块,其内部集成电池,即使在断电的情况下,时钟系统也能保持不变。
本设计采用DS3231型号RTC芯片,该模块闹钟功能精准,精度高,抗干扰能力好等特点。
该模块可以通过I2C接口进行通讯。
2.1.4. 时钟显示模块时钟显示模块用于显示时、分、秒的时间信息。
本设计采用Max7219驱动LED点阵进行显示。
该驱动芯片模块具有图形引擎,能够支持八个数字性显示的点阵。
同时,该芯片还具有串行接口,能够方便地和单片机连接通讯。
2.2. 软件系统设计在本次设计中,软件系统主要由驱动程序、串口通讯程序、定时器程序、闹钟程序、检测程序、显示程序等模块组成。
2.2.1. 驱动程序驱动程序主要有RTC模块的驱动程序、LED点阵模块的驱动程序和按键模块的驱动程序。
基于51单片机的电子时钟的设计与实现综述
基于51单片机的电子时钟的设计与实现综述基于51单片机的电子时钟是一种常见的嵌入式系统设计项目。
它通过使用51单片机作为核心处理器,结合外部电路和显示设备,实现了时间的计时和显示功能。
本文将对基于51单片机的电子时钟的设计和实现进行综述,包括硬件设计和软件设计两个部分。
一、硬件设计1.时钟电路时钟电路是电子时钟的核心部分,它提供稳定的时钟信号供给单片机进行计时。
常用的时钟电路有晶振电路和RTC电路两种。
晶振电路通过外接晶体振荡器来提供时钟信号,具有较高的精度和稳定性;RTC电路则是通过实时时钟芯片来提供时钟信号,具有较高的时钟精度和长期稳定性。
2.显示电路显示电路用于将时钟系统计算得到的时间信息转换为人们可以直接观察到的显示结果。
常用的显示器有数码管、液晶显示屏、LED显示屏等。
显示电路还需要与单片机进行通讯,将计时的结果传输到显示器上显示出来。
3.按键电路按键电路用于实现对电子时钟进行设置和调节的功能。
通过设置按键可以实现修改时间、调节闹钟等功能。
按键电路需要与单片机进行接口连接,通过读取按键的输入信号来实现对时钟的操作。
4.供电电路供电电路为电子时钟提供电源,通常使用直流电源。
供电电路需要满足单片机和其他电路的电源需求,同时还需要考虑电源的稳定性和保护措施等。
二、软件设计1.系统初始化系统初始化主要包括对单片机进行外设初始化、时钟初始化和状态变量初始化等。
通过初始化将各个外设配置为适合电子时钟功能运行的状态,并设置系统初始时间、闹钟时间等。
2.计时功能计时功能是电子时钟的核心功能,通过使用定时器和中断技术来实现。
通过设置一个固定时间间隔的定时器中断,单片机在每次定时器中断时对计时寄存器进行增加,实现时间的累加。
同时可以将计时结果转化为小时、分钟、秒等形式。
3.显示功能显示功能通过将计时结果传输到显示器上,实现时间信息的显示。
通过设置显示器的控制信号,将时间信息依次发送到各个显示单元上,实现数字或字符的显示功能。
电子实时时钟万年日历系统-单片机课程设计(含电路图、流程图、汇编语言)
一、题目:电子实时时钟/万年日历系统二、功能要求:1.基本要求:⑴显示准确的北京时间(时、分、秒),可用24小时制式;⑵随时可以调校时间。
2.发挥要求:⑴增加公历日期显示功能(年、月、日),年号只显示最后两位;⑵随时可以调校年、月、日;⑶允许通过转换功能键转换显示时间或日期。
三、方案考虑:1、硬件方案:⑴显示器采用6位LED数码管(共阳),可分别显示时间或日期。
⑵显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。
但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。
可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码。
⑶采用“一键多用方案”,以减少按键数目。
本方案采用了4按键。
⑷整体上要考虑:结构简单、布局美观、操作方便、成本低廉。
2、设计电路图如下:3、元件清单:(我们使用的是TX-1C开发板)⑴ 89C52 1个⑵IC座(40脚) 3个(其中1个用于接插89C51、2个用于接插LED段数码管)。
⑶ 74LS244 1个(用于驱动6个共阳的LED段数码管)。
⑷ IC座(20脚) 1个(用于接插74LS244)。
(5)显示器:LED_8段数码管(共阳型)6个三极管:(6)PNP(8550)6个(用于驱动6个共阳型LED段数码管)。
(7)微型开关:3个(其中1个用于复位电路、其它用于键盘)。
(8)晶体振荡器(12MHz):1个(用于振荡电路)。
(9)电阻器:⑴ 3KΩ 1个(用于系统复位电路)。
⑵ 1KΩ 6个(用作PNP三极管基极电阻)。
⑶ 100Ω 7个(驱动器用作74LS244输出限流电阻)。
(10)电容器:⑴ 10μF1个(用于系统复位电路)。
⑵ 30 pF 2个(用于系统振荡电路)。
(11)其它:⑴万能电路板(10×15):1块⑵焊锡条: 2米⑶带插头、座的电源端子: 1条⑷各种颜色外皮的导线:各1米(12)工具:1.电烙铁:1把2.剪钳:1把3.镊子:1把4.万用表:1个(13)设备:编程器(MEP300或TOP851)6个4、软件方案:(1)使用全汇编编写(2)时钟基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到,且不宜太长或太短,最长不能超过16位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。
基于单片机的电子钟设计
基于单片机的电子钟设计摘要:电子钟是一种普遍使用的时钟类型。
通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。
本文介绍了基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。
该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。
设计方案使用的单片机是AT89C52,时钟模块为DS1302。
实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。
关键词:单片机、电子钟、DS13021. 概述电子钟是目前流行的现代时钟类型之一。
通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。
作为一种普遍应用于家庭以及公共场所的计时工具,电子钟能够提高人们的时效性、管理效率。
本文将介绍基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。
该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。
设计方案使用的单片机是AT89C52,时钟模块为DS1302。
实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。
2. 硬件设计2.1 系统原理系统的核心是AT89C52单片机,其包括了8051架构下所有标准的特殊功能寄存器以及升级的功能模块。
DS1302是常用的实时时钟模块,它包含一个时钟/日历的B类时钟芯片、一个31个字节的静态RAM 以及一个摆振电路。
通过与AT89C52的串行通信接口,可以实现时钟芯片与单片机的通信。
2.2 电路设计电路设计包括AT89C52单片机、DS1302时钟芯片、4个7段数码管以及相关的外围元件。
其中,输入电源电压为5V直流电压,4个7段数码管均采用共阴极的连接方式。
2.3 电路说明(1) 时钟模块DS1302DS1302是一种时钟模块,其具有许多特性,例如:硬件控制时间的计数、在停电情况下,仍能保持时间记录、考虑到掉电情况、在无外部纪念日的情况下,为计时器提供64字节的RAM等特点。
时钟系统设计实验报告
时钟系统设计实验报告1. 实验目的本实验的主要目的是设计和实现一个时钟系统,实现对时钟时间的显示、调节和闹钟功能的控制。
2. 实验原理时钟系统由微控制器、显示模块、按键模块、计时模块和闹钟模块组成。
其中,微控制器负责控制整个系统的运行,显示模块用于显示当前的时间,按键模块用于调节时钟和闹钟的时间,计时模块用于计时,闹钟模块用于设置和响铃闹钟。
3. 实验器材本实验所需要的器材如下:- 微控制器(例如Arduino Uno)- 4位7段LED显示模块- 按键模块- 电阻、电容等元件- 杜邦线、面包板等实验连接线材4. 实验步骤4.1 硬件连接首先,将显示模块与微控制器连接起来。
根据显示模块的引脚定义,将其与微控制器的IO口相连。
然后,连接按键模块。
按键模块通常有四个引脚,将其与微控制器的IO口相连。
最后,将定时器和闹钟模块与微控制器连接起来,确保能够通过微控制器控制闹钟的设置和响铃。
4.2 软件编程在编程软件中,编写控制时钟系统的代码。
在代码中,需要实现读取按键状态、显示时间、闹钟设置和响铃等功能。
可以使用Arduino开发环境编写代码,并通过串口监视器进行调试。
4.3 测试与调试将程序烧录至微控制器后,通过连接电源,测试时钟系统的各项功能。
可以通过按下按键,调节时间和设置闹钟,并观察显示模块和闹钟模块的反应。
根据实际情况,对代码进行调试,确保时钟系统的各项功能都能正常运行。
5. 实验结果经过测试与调试,时钟系统能够正常显示当前时间,并能通过按键调节时间。
闹钟模块也能够正常设置和响铃,并且在响铃时,能够通过按键停止闹钟。
整个时钟系统运行稳定,能够满足基本的时钟显示和闹钟功能需求。
6. 实验总结通过本次实验,我们设计并实现了一个基本的时钟系统。
通过掌握了硬件的连接和编程技巧,我们能够很好地控制和调节时钟的显示和闹钟的设置。
实验过程中,我们也遇到了不少问题和困难,但通过思考和调试,最终解决了这些问题。
本次实验还可以进一步拓展,例如添加温湿度传感器,实现温湿度显示功能;或者添加无线通信模块,实现时间同步和远程控制等功能。
数字电路时钟系统设计
数字电路时钟系统设计Introduction数字电路时钟系统设计是现代电子设备中常见的一个组成部分,它在我们的生活中有着广泛的应用。
本文将介绍数字电路时钟系统设计的基本原理、功能要求及设计步骤。
一、数字电路时钟系统设计原理数字时钟系统设计的基本原理是利用数字信号进行时间计量和显示。
其核心部分是时钟发生器、频率除法器、显示控制逻辑以及数字显示设备。
1. 时钟发生器时钟发生器负责产生稳定的时钟信号,通常以晶体振荡器为基础,通过振荡电路将电能转化为稳定的振荡频率。
2. 频率除法器频率除法器将时钟发生器产生的高频时钟信号进行分频处理,以满足不同精度要求的时钟系统。
常见的分频技术有二分频、十分频等。
3. 显示控制逻辑显示控制逻辑负责对时钟信号进行处理,以便将时间信息传送给数码显示设备。
它通常包括时分秒计数器、时钟控制逻辑等。
4. 数码显示设备数码显示设备是数字电路时钟系统中用于显示时间的部分,如七段数码管、液晶显示屏等。
二、数字电路时钟系统设计要求在设计数字电路时钟系统时,我们需要考虑以下几个方面的要求:1. 精度和稳定性数字时钟系统应具备较高的时间精度和稳定性,以确保准确的时间显示。
2. 功能扩展性数字时钟系统应具备良好的功能扩展性,例如可以添加闹钟、秒表等功能。
3. 低功耗和节能性数字时钟系统要尽可能降低功耗,提高能源利用效率。
4. 高可靠性和抗干扰性数字时钟系统要具备较高的可靠性,同时对外界干扰具有一定的抗干扰性能。
三、数字电路时钟系统设计步骤下面将介绍数字电路时钟系统设计的基本步骤,以帮助读者了解该设计过程。
1. 确定需求根据实际需求确定数字电路时钟系统的基本功能和性能指标,如精度、显示方式等。
2. 选择器件和电路拓扑根据需求选择适当的集成电路和电路拓扑结构,如计数器、分频器、显示器等。
3. 电路设计和调试根据选择的器件和电路拓扑,进行电路设计和调试工作,确保电路的正常工作。
4. 功能扩展和优化根据需求进行功能扩展和系统优化,如添加闹钟、秒表等功能,并进行相应的性能测试和调整。
单片机电子时钟的设计
单片机电子时钟的设计一、设计目标与原理设计原理:1.使用单片机作为主控制器,通过系统时钟控制并计时,从而实现准确的时间显示。
2.利用矩阵键盘作为输入装置,通过按键输入来设置时间、闹钟等参数。
3.通过液晶显示屏显示时间、日期,以及其他相关信息。
4.利用蜂鸣器作为报警器,实现闹钟功能。
二、硬件设计1.单片机选择:选择一款适合的单片机芯片,如8051系列、PIC系列等,具备较强的扩展性和丰富的外设接口。
2.时钟模块:选择一个准确、稳定的时钟模块,如DS1302、DS3231等,可以提供标准的时间信号。
3.矩阵键盘:使用4x4的矩阵键盘,方便操作,实现对时钟的时间设置和闹钟等功能。
4.液晶显示屏:选择适合的液晶显示屏,显示时间、日期以及状态信息。
5.蜂鸣器:使用适当的蜂鸣器实现报警和闹钟功能。
6.电源:提供适当的电源电压和电流,保证设备正常运行。
三、系统架构设计1.硬件连接:将单片机与时钟模块、矩阵键盘、液晶显示屏和蜂鸣器连接起来,保证数据传输的正常进行。
2.时钟控制:通过单片机与时钟模块通信,获取当前的时间信息,并进行计时。
3.键盘输入:通过矩阵键盘检测按键输入,并根据不同的按键操作来实现时间设置、闹钟设置等功能。
4.显示控制:通过单片机控制液晶显示屏,将时间、日期等信息显示出来。
5.报警控制:根据闹钟设置的时间,通过单片机控制蜂鸣器实现报警和闹钟功能。
四、软件设计1.系统初始化:包括各个外设的初始化配置,如时钟模块的初始化、矩阵键盘的初始化等。
2.时钟控制:包括从时钟模块获取当前时间、计时等功能。
3.键盘输入处理:通过检测矩阵键盘的按键输入,实现对时间和闹钟等参数的设置。
4.显示控制:根据当前时间和设置的参数,将相应的信息显示在液晶显示屏上。
5.报警控制:根据闹钟设置的时间,控制蜂鸣器发出声音来实现报警和闹钟功能。
五、系统测试与优化1.硬件测试:对各个硬件模块进行测试,检查其是否正常工作。
2.软件测试:通过对软件功能的逐一测试,检查其是否符合设计要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书题目电子时钟系统设计专业、班级电信11-02学号 8 瑞主要容、基本要求、主要参考资料等:一、主要容:①熟悉单片机应用系统的设计方法和规,达到综合的目的。
②学习文件检索和查找数据手册的能力。
③学习protel软件的使用。
④学会整理和总结设计文档报告。
二、基本要求:①以MCS-51系列单片机为核心,组成一个电子时钟系统。
②系统显示由6位数码管显示组成,分别显示时间值的时、分、秒。
③能够随时对当前时间进行调整。
④能够随时输入定时(闹钟)时间。
⑤定时(闹钟)时间到,发出闹钟提醒信号。
⑥闹钟提醒信号的声音为断续形式,最长不超过1分钟。
三、主要参考资料:①毅坤等单片微型计算机原理及应用电子科技大学②建忠编著单片机原理及应用电子科技大学完成期限:2015年1月17日指导教师签名:课程负责人签名:2015年1月4 日目录摘要 (1)1 设计方案选择 (2)1.1 单片机选型 (2)1.2 按键模块 (2)1.3 显示模块 (2)1.4 计时参考模块 (3)1.5 显示器驱动模块 (3)1.6 闹钟响铃模块 (4)1.7 电源模块 (4)2 硬件接线及设计 (4)2.1 单片机晶振配置 (5)2.2复位电路设计 (5)2.3 按键电路设计 (6)2.4 蜂鸣器驱动电路设计 (6)2.5 显示模块电路设计 (7)3 软件部分 (7)3.1 主函数流程图 (7)3.2 定时器T0中断服务程序流程图 (8)3.3 闹钟响应程序流程图 (9)3.4 键盘扫描程序流程图 (10)4 系统综述 (11)4.1 上电界面 (11)4.2 调时界面 (11)4.3 闹钟设定界面 (11)4.4 正常走时界面 (12)4.5 闹钟响应 (12)附录1 总体设计电路图 (15)附录2 PCB图 (16)附录3 元件清单 (17)附录4 总程序 (18)摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广泛、发展很快。
Intel公司生产的MCS-8051系列单片机是各单片机中最为典型和最有代表性的一种。
本次设计以MCS-8051芯片为核心,辅助以必要的外围电路,设计了一个结构简单功能齐全的数值时钟。
在硬件方面,单片机外接12MHz芯片进行驱动。
通过数码管能够准确明亮的显示时、分、秒;四个简单的按键实现对时间的调整;蜂鸣器实现闹钟响铃功能;软件方面采用c语言编程。
整个电子钟系统能完成时间的显示、调试和一组定时闹钟的功能。
关键词:51单片机定时器闹钟数码管1 设计方案选择1.1 单片机选型根据选题芯片采用MCS-8051单片机,Intel公司生产的 51 系列 8 位单片机,凭借其成熟的技术标准和很高的性价比得到了广泛的普及与应用,其功能强大,用来做电子表硬件易实现,编程规。
1.2 按键模块方案一:4×4行列式键盘如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷。
缺点也很明显,一是浪费按键,用全键盘来实现设定时间的小功能不免大材小用;二是从实用性考虑,全键盘体积大,明显不经济不方便。
故放弃。
方案二:独立式按键如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,同时浪费按键,不高效,程序繁琐。
本次设计适用于按键较少的情况。
为了尽量实现按键的高效性,此次设计采用四个独立式按键,分别定义为key_mode、key_add、key_move,key_confirm,依次是模式键、加数键、移位键、确认键。
1.3 显示模块方案一:液晶显示器LCD如果选择此方案,将会降低系统的功耗,可以用电池供电,便于携带,但液晶显示器的驱动电路复杂,使用起来有一定的难度。
方案二:数码管LED数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。
其缺点是功耗较大。
按照此次任务书设计要求,选择两个4位一体七段数码管用于显示。
1.4 计时参考模块方案一:专用时钟芯片如果使用时钟芯片,系统就不怕掉电且时间精确,但这种芯片比较贵,浪费资源不经济。
方案二:单片机部定时/计数器由于本次设计本主要是为了学习单片机程序的编写和调试,以及设计硬件电路的一些方法,因此采用软件的方法来计时。
本次设计用单片机部定时/计数器T0作为电子时钟参考。
1.5 显示器驱动模块由于通过数码管公共极的电流较大,单片机I/O口驱动能力是不够的,故LED驱动模块必不可少。
为避免过多地使用分立元件,本次设计采用一片 74LS245来驱动位码,用P2口进行位选扫描。
图1 74LS245元件封装图74LS245是常用来驱动LED或者其他的设备,它是 8 路同相三态双向总线收发器,可双向传输数据,74LS245还具有双向三态功能。
片选端CE,接低电平时传输数据,接高电平时A、B均为高阻态。
方向选择端AB/BA,接高电平时信号由A向B传输(发送),接低电平时信号由B向A传输(接收)。
1.6 闹钟响铃模块通过三极管放大后驱动蜂鸣器工作,单片机I/O接三极管基极。
1.7 电源模块本系统采用了数码管作为显示器,功耗较大,不便于使用电池供电。
况且本系统的体积较大,即使使用电池供电也不便于随身携带,因此用5V外部稳压电源来供电。
2 硬件接线及设计图2 系统硬件框图2.1 单片机晶振配置图3 单片机晶振配置和复位电路晶振选择 12MHz ,接到如图所示引脚。
2.2复位电路设计图4 复位电路复位电路兼具上电复位功能以及按键复位功能,接到如图所示引脚。
2.3 按键电路设计图5 按键电路采用4个独立按键配以4个上拉电阻实现对时钟和闹钟的设定及修改。
四个独立式按键分别定义为key_mode、key_add、key_move、key_confirm,依次是模式键、调时加键、调时移位键、确认键。
2.4 蜂鸣器驱动电路设计图6 蜂鸣器驱动电路蜂鸣器采用NPN三极管放大电路驱动,接到如图所示引脚。
2.5 显示模块电路设计显示设备为共阳7段数码管(LED),用单片机P0口作为LED段选控制端,用单片机P2口作为LED位选控制端,并采用集成块74LS245作为位驱动模块。
片选端CE接地,方向选择端AB/BA接电源。
3 软件部分3.1 主函数流程图图7 主函数程序流程图3.2 定时器T0中断服务程序流程图图8 定时器T0中断服务程序流程图3.3 闹钟响应程序流程图图9 闹钟响应程序流程图3.4 键盘扫描程序流程图图10 键盘扫描程序流程图4 系统综述4.1 上电界面电子表上电后自动初始化,接着从 00-00-00 开始走时,显示正常走时界面,此时闹钟默认关掉。
按下key_mode键,可依次切换到调时界面、调闹钟界面、正常走时界面,如此循环往复。
上电初始化后,调时初值为00 00-00,闹钟初值为00-00 00。
4.2 调时界面调时界面,从左至右依次显示时、分、秒,数字右下角小点代表调整位到达位置。
在调时界面下,按下key_move键可以移动调整位,数字下标小点用以指示当前操作的数位,按下key_add键可以对调整位进行加数操作。
当且仅当在调时界面下,按下key_confirm键可确认设定,电子表按设定时间更新并走时,同时自动清零设定时间。
此时再按 key_mode 键切换回正常走时界面即能看到时间已经更新。
如果调时后没有按下key_confirm键确认,而是直接按key_mode键切换回正常走时界面,则设置时间被保存,当前时间并不更新。
4.3 闹钟设定界面闹钟设定界面,从左至右依次显示时、分、秒,数字右下角小点代表调整位到达位置。
在闹钟设定界面下,按下key_move键可以移动调整位,数字下标小点用以指示当前操作的数位,按下key_add键可以对调整位进行加数操作。
闹钟设置好后直接按key_mode键返回正常正常走时界面即可,无需按key_confirm键确认,闹钟设定值会自动保存。
4.4 正常走时界面正常走时界面,从左至右依次显示时、分、秒,小点亮灭代表闹钟开闭。
在正常走时界面下,按下key_add键和key_move键不产生操作,LED显示无变化;按下key_confirm键可循环开闭闹钟,LED显示对应变换提示闹钟的开闭;按下key_mode键可依次切换到调时模式、闹钟设定模式、正常走时模式,循环往复。
4.5 闹钟响应当正常走时到达闹铃设定值后,闹铃响应,正常情况下持续蜂鸣一分钟后自动关闭蜂鸣器。
闹铃响铃过程中,若按下key_confirm键可立刻关闭蜂鸣器。
闹铃响应后自动等待下次响应。
总结在这次课程设计中,运用到了很多以前的专业知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。
另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。
参考文献[1] 君里,应启珩,为理. 信号与系统(第二版)上册[M]. 高等教育,2000[2] 君里,应启珩,为理. 信号与系统(第二版)下册[M]. 高等教育,2000[3] 谭浩强. C程序设计(第二版)[M]. 清华大学,2003[4] 于京.51系列单片机C程序设计与应用案例[M].:中国电力,2006.[5] 育才.ATMEL新型AT89S52系列单片机及其应用[M].:清华大学,2005.[6] 吴坚,高平.基于GPRS网络的点对点图像传输方案[J].计算机应用研究,2004,附录附录1 总体设计电路图附录2 PCB图附录3 元件清单附录4 总程序//****************头文件及宏定义*******************************#include <reg51.h>#define uchar unsigned char#define uint unsigned int//****************软件延时程序*********************************void delay(uint ii){ while(--ii); }//****************定义数码管驱动码******************************uchar duan[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF,0X7F}; //段选,0 1 2 3 4 5 6 7 8 9 - 灭 . uchar wei[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};//位选,共阳,从右至左//****************定义变量**************************************uchar t=0,sec=0,min=0,hour=0; //正常走时时间变量uchar sec1=0,min1=0,hour1=0; //时间设定值变量uchar sec2=0,min2=0,hour2=0; //闹钟设定值变量uchar alarm_en=0; //闹钟开关变量uchar alarm_flag=0; //闹钟定时到达标志变量uchar p3=0,moshi=0,mov=0; //P3口查询,模式值,调整位//显示缓冲区,依次为正常、调时、闹钟设定、调整位带点标记uchar temp[8],temp1[8],temp2[8],temp3[8];//****************函数声明*************************************void initialize(void); //初始化void show(void); //正常走时显示void show1(void); //时间设定显示void show2(void); //闹钟设定显示void show3(void); //调整位标记void show4(void); //闹钟开关标记void keyscan(void); //键盘扫描void add(void); //调时调闹钟加数程序void confirm(void); //调时确认,闹钟开关void alarm_judge(void); //闹钟定时到达判定void beep(void); //闹钟响铃程序//******************主函数***************************void main(){initialize();while(1){keyscan();alarm_judge();switch(moshi){case 0:show(); show4();break; //显示正常走时case 1:show1();show3();break; //显示设置时间case 2:show2();show3();break; //显示闹钟时间}if(alarm_flag==1 && alarm_en==1) //定时时间到达且闹钟打开{ beep(); }}}//*****************定时器初始化**************************void initialize(void){TMOD = 0x01;TH0 = 0X3C;TL0 = 0XB0; //50msET0 = 1;EA = 1;TR0 = 1;P1=0X7F; //初始化时关掉蜂鸣器alarm_flag=alarm_en=0;}//*****************定时器T0中断服务程序****************void Timer0(void) interrupt 1{TL0 = 0XB0;TH0 = 0X3C;t++;if(t==20) // (50ms*20=1s){ t=0; sec++; }if(sec==60) // 秒为60,则清零,分加1 { sec=0; min++; }if(min==60) // 分为60,则清零,时加1 { min=0; hour++;}if(hour==24) // 时为24,则清零{ hour=0;}if(sec1==60){ sec1=0; min1++; }if(min1==60){ min1=0; hour1++;}if(hour1==24){ hour1=0;}if(sec2==60){ sec2=0; min2++; }if(min2==60){ min2=0; hour2++;}if(hour2==24){ hour2=0;}}//******************正常时间显示程序******************* void show(void){uchar i=0;temp[0]=sec%10;temp[1]=sec/10;temp[2]=10;temp[3]=min%10;temp[4]=min/10;temp[5]=10;temp[6]=hour%10;temp[7]=hour/10;for(i=0;i<8;i++){P2=wei[i];P0=duan[temp[i]];delay(100);}}//******************调时模式显示程序******************* void show1(void){uchar i=0;temp1[0]=sec1%10;temp1[1]=sec1/10;temp1[2]=10;temp1[3]=min1%10;temp1[4]=min1/10;temp1[5]=11;temp1[6]=hour1%10;temp1[7]=hour1/10;for(i=0;i<8;i++){P2=wei[i];P0=duan[temp1[i]];delay(100);}}//******************闹钟设定模式显示程序******************* void show2(void){uchar i=0;temp2[0]=sec2%10;temp2[1]=sec2/10;temp2[2]=11;temp2[3]=min2%10;temp2[4]=min2/10;temp2[5]=10;temp2[6]=hour2%10;temp2[7]=hour2/10;for(i=0;i<8;i++){P2=wei[i];P0=duan[temp2[i]];delay(100);}}//******************调整位标记显示程序******************* void show3(void){uchar movv=0;switch(mov){case 0:movv=0; break;case 1:movv=3; break;case 2:movv=6; break;}P2=wei[movv];P0=duan[12];delay(100);}//*********************闹钟开闭显示程序******************* void show4(void){if(alarm_en==1){P2=wei[2]+wei[5];P0=duan[12];delay(100);}}//******************键盘扫描程序*********************** void keyscan(void){P3=0XFF;p3=P3;if(p3==0XFF) return;if(p3==0XFE) //key_mode键{delay(10);if(p3==0XFE){moshi++;if(moshi>=3) moshi=0;}while(p3==0XFE) // key_mode键按下到弹起期间{p3=P3;switch(moshi){case 0:show(); break; //显示正常走时case 1:show1();break; //显示设置时间case 2:show2();break; //显示闹钟时间 }}}if(p3==0XFD) //key_add键{delay(10);if(p3==0XFD){add();}while(p3==0XFD) // key_add键按下到弹起期间{p3=P3;switch(moshi){case 0:show(); break; //显示正常走时case 1:show1();break; //显示设置时间case 2:show2();break; //显示闹钟时间 }}}if(p3==0XFB) //key_move键{delay(10);if(p3==0XFB){mov++;if(mov>=3) mov=0;}while(p3==0XFB) // key_move键按下到弹起期间{p3=P3;switch(moshi){case 0:show(); break; //显示正常走时case 1:show1();break; //显示设置时间case 2:show2();break; //显示闹钟时间 }}}if(p3==0XF7) //key_confirm键{delay(10);if(p3==0XF7){confirm();}while(p3==0XF7) // key_confirm键按下到弹起期间{p3=P3;switch(moshi){case 0:show(); break; //显示正常走时case 1:show1();break; //显示设置时间case 2:show2();break; //显示闹钟时间}}}}//******************调时调脑钟增数程序*********************** void add(void){//模式1,调时模式,调时增数if(moshi==1 && mov==0){sec1++;}if(moshi==1 && mov==1){min1++;}if(moshi==1 && mov==2){hour1++;}//模式2,闹钟设定模式,闹钟增数if(moshi==2 && mov==0){sec2++;}if(moshi==2 && mov==1){min2++;}if(moshi==2 && mov==2){hour2++;}}//******************确认键服务函数*************************** void confirm(void){if(moshi==1) //模式1,调时环境下校正时间{t=TF0=0;sec=sec1;min=min1;hour=hour1;sec1=min1=hour1=0;}alarm_en++; //开闭闹钟if(alarm_en>1) alarm_en=0;}//******************闹钟判断函数****************************** void alarm_judge(void){if(hour==hour2 && min==min2 && sec==sec2 ) //定时到达设定标志 { alarm_flag=1; }if(hour==hour2 && min==min2+1) //常规响铃一分钟 { alarm_flag=0; }}//******************闹钟响铃函数****************************** void beep(void){P1=!P1;}。