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

合集下载

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟摘要现代社会电子闹钟已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。

本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有双闹铃和倒计时的功能,实用性非常强。

电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该电子闹钟可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。

关键词:电子闹钟;倒计时;AT89S52;液晶LCD1602;按键AbstractIn modern society, the electronic alarm clock has been widely used in various occasions and become indispensable to life.It is a good helper to our work and learning. So,there is very important significance to research more practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good.Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button目录引言 (1)1 设计要求 (2)2 方案论证 (2)2.1 计时方案的选择 (2)2.2 显示方案的选择 (2)2.3 按键功能方案设计 (3)2.4 指示灯和响铃方案设计 (3)3 系统组成 (3)4 硬件设计 (4)4.1 单片机最小系统设计 (4)4.2 显示电路设计 (5)4.3 蜂鸣器电路设计 (5)4.4 按键电路设计 (6)5 软件设计 (6)5.1 走时部分 (6)5.2 闹铃检测部分 (7)5.3 键盘扫描部分 (7)5.4 液晶部分 (8)5.5 流程图 (8)6 仿真设计 (11)7 系统调试及结果 (11)7.1 软件调试 (11)7.2 硬件调试 (12)7.3 调试结果 (13)8 总结 (13)谢辞 (14)参考文献........................................... 错误!未定义书签。

51单片机之电子钟论文

51单片机之电子钟论文

题目:51单片机之电子时钟专业:网络工程年级:2009学号:20091204048姓名:汤贯洋指导教师:于雷单片机电子时钟的设计1.单片机介绍数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。

虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。

另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。

单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k B ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

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

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

《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲学号: 13 29班级:自动化1211指导老师:阮海容目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路 PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。

培养我们综合运用电子课程中的理论知识解决实际性问题的能力。

让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。

课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。

主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。

要求具有6位LED显示、3个按键输入。

2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。

3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。

开始计时时为000000,到235959后又变成000000。

4)使用3个键分别作为小时、分、秒的调校键。

每按一次键,对应的显示值便加1。

分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。

在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。

5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。

基于51单片机多功能电子时钟课程设计报告

基于51单片机多功能电子时钟课程设计报告

单片机课程设计报告多功能电子数字钟目录一课程设计题目-------------------------------- 3 二电路设计--------------------------------------- 4 三程序总体设计思路概述------------------- 5 四各模块程序设计及流程图---------------- 6 五程序及程序说明见附录------------------- ** 六课程设计心得及体会---------------------- 11 七参考资料--------------------------------------- 12一题目及要求本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。

具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能:(1)走时(能实现时分秒,年月日的计时)(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪烁显示)(3)校时(能用按键修改和校准时钟)(4)定时报警(能定点报时)本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示。

最后验收检查结果,评定成绩分为:(1)完成“走时+显示+秒闪”功能----及格(2)完成“校时修改”功能----中等(3)完成“校时修改位闪”----良好(4)完成“定点报警”功能,且使用资源少----优秀二电路设计(电路设计图见附件电路图)(1)采用89C51型号单片机(2)采用8位共阴数码管(3)因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0口与8位数码管之间加74LS373来驱动数码管(4)P2口与数码管选择位直接加74LS138译码器(5)蜂鸣器接P3.7口。

因为单片机输出高电平时输出的电流不足以驱动蜂鸣器所以蜂鸣器,所以P3.7口与蜂鸣器直接接反相器再接蜂鸣器的一端,蜂鸣器的另一端接5V电源。

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

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

单片机电子时钟课程设计报告一、引言。

随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。

其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。

本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。

二、设计方案。

1. 硬件设计。

本课程设计选用了51单片机作为核心处理器,配合数码管显示模块、时钟芯片等外围器件,构成了电子时钟的硬件平台。

通过对硬件电路的设计和布线,实现了对时间的精准显示和控制。

2. 软件设计。

在软件设计方面,本课程设计采用了C语言作为编程语言,利用单片机的定时器、中断等功能模块,编写了精确的时钟控制程序。

通过对时钟的分、秒、小时的精准控制,实现了电子时钟的正常运行和显示。

三、功能实现。

1. 时间显示。

经过精心设计的软件程序,实现了对时间的精准显示。

时钟的显示界面清晰明了,数字显示稳定可靠,能够满足人们对时间的基本需求。

2. 时间调整。

通过设置按键,可以对时钟进行时间的调整。

用户可以根据实际需求,随时对时钟的时间进行调整,保证时钟的准确性。

3. 闹铃功能。

本课程设计还实现了闹铃功能,用户可以通过设置闹铃时间,让时钟在设定的时间点发出提示音,提醒用户重要事件的发生。

四、实验结果。

经过实际测试,本课程设计的电子时钟能够稳定可靠地运行,显示精准,功能完善。

时钟的硬件和软件设计均达到了预期的要求,符合设计的初衷和要求。

五、总结与展望。

本课程设计通过对单片机电子时钟的硬件和软件设计,成功实现了一个功能强大、稳定可靠的电子时钟。

但是,仍有一些功能可以进一步完善和优化,比如增加温湿度显示功能、实现无线时间校准等。

未来,我们将继续努力,不断完善电子时钟的功能,为人们的生活带来更多的便利。

六、参考文献。

[1] 《单片机原理与接口技术》,XXX,XXX出版社,2008。

[2] 《C语言程序设计》,XXX,XXX出版社,2010。

七、致谢。

感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。

51单片机电子时钟设计报告

51单片机电子时钟设计报告

电子时钟实验报告全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行目录:一,实验目的 (1)二,实验要求 (2)三,实验基本原理 (2)四,实验设计分析 (2)五,实验要现 (3)A.电路设计 (3)1. 整体设计 (3)2. 分块设计 (4)2.1 输入部分 (4)2.2 输出部分 (5)2.3 晶振与复位电路 (6)B.程序设计 (6)B.1 程序总体设计 (6)B.2 程序主要模块 (7)五.实验总结及感想 (9)一,实验目的20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。

对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。

1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。

2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟二,实验要求A.基本要求:1. 在LCD1602液晶显示屏上显示当前日期,时间。

2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。

闹玲时间到蜂鸣器发出声响,一分钟后闹铃停止。

B.扩展部分:1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。

2.定时功能(设定一段时间长度,定时到后,闹铃提示)C.可扩展部分:1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。

基于51单片机汇编语言的数字钟课程设计报告(含有闹钟万年历)

基于51单片机汇编语言的数字钟课程设计报告(含有闹钟万年历)

单片微型计算机课程设计报告多功能电子数字钟姓 名 许伟敏学 号 060301021124班 级 电气二班指导教师 林卫2009-06-25目录一:概述 (1)二:设计基本原理简介 (2)三:设计要求及说明 (3)四:整体设计方案 (4)系统硬件电路设计 4系统软件总流程设计 5模块划分及分析 6五:单模块流程设计 (8)各模块设计概述、流程图 8模块源程序集合及注释 13六:单模块软件测试 (23)七:系统检测调试 (24)硬件电路调试软件部分烧写调试八:系统优化及拓展 (26)九:心得体会 (28)单片微型计算机课程设计 基于汇编语言的电子数字钟 概述课程设计流程图↑一、概述课程设计题目:电子数字钟应用知识简介:● 51单片机单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。

51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。

在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。

● 汇编语言汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。

汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。

但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。

汇编语言可以与高级语言配合使用,应用十分广泛。

● ISPISP (In-System Programming )在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。

已经编程的器件也可以用ISP 方式擦除或再编程。

本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试。

51单片机电子时钟设计报告

51单片机电子时钟设计报告

51单片机电子时钟设计报告一、引言电子时钟是一种常见的电子产品,它通过控制数字显示器的数字显示,来实现时间的显示功能。

本报告将介绍一种基于51单片机的电子时钟设计方案。

二、系统架构本电子时钟系统采用分级结构,分为实时时钟电路、中央处理器、显示器等核心模块。

实时时钟电路模块负责提供系统的时钟信号,中央处理器负责对时间进行处理和控制,显示器用于显示时间。

三、硬件设计1.实时时钟电路实时时钟电路采用DS1302芯片,该芯片集成了时钟实时计数器,能够提供精确的时钟信号。

同时,芯片还内置了电池供电电路,当外部电源中断时,电子时钟可以通过电池继续工作。

2.中央处理器中央处理器使用51单片机,它具有较强的计算和控制能力,可以方便地对时间进行处理和控制。

通过与实时时钟电路的通信,中央处理器可以获取当前时间,并进行各种计算操作。

3.显示器显示器采用数码管,可以直观地显示时间。

通过中央处理器控制,可以实现小时、分钟、秒钟的显示,并且可以进行亮度的调节。

四、软件设计1.时钟管理中央处理器的软件主要负责对时间的管理。

它可以从实时时钟电路中获取当前时间,并根据需要进行时间的累加和更新。

同时,中央处理器还可以通过按键实现时间的手动调节。

2.显示控制中央处理器通过对数码管的控制,实现时间的显示功能。

它可以根据当前时间的变化,动态地更新数码管的显示内容。

同时,还可以通过按键控制,对数码管的亮度进行调节。

五、系统特点1.精确性高:采用DS1302芯片实时时钟电路,能够提供精确的时钟信号,确保时间的准确性。

2.易于操作:中央处理器软件通过按键实现时间的调节,操作简单方便。

3.显示效果好:采用数码管进行显示,显示效果清晰,易于观察时间。

六、应用领域本电子时钟设计适用于各种需要显示时间的场景,如家庭、办公室、学校等。

七、总结本报告介绍了一种基于51单片机的电子时钟设计方案。

通过实时时钟电路提供精确的时钟信号,中央处理器进行时间管理和控制,显示器进行时间的显示。

51单片机电子时钟课程设计-学位论文

51单片机电子时钟课程设计-学位论文

一、设计要求1、准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位。

3、校正时间功能,即能随意设定走时时间。

4、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。

5、设计5V 直流电源,系统时钟电路、复位电路。

6、能指示秒节奏,即秒提示。

7、可采用交直流供电电源,且能自动切换。

二、设计方案和论证本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED 显示即可满足设计要求。

2.1、总设计原理框图如下图所示:2.2、设计方案的选择1.计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。

微型控制器 时钟电路 声光报时校时输入 数据显示这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。

因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,但程序设计较为复杂。

2.显示方案对于实时时钟而言,显示显然是另一个重要的环节。

通常LED显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。

需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。

当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

基于51单片机数字时钟 毕业设计(论文)

基于51单片机数字时钟 毕业设计(论文)

本科毕业设计(论文)题目:基于51单片机的数字时钟系统软件设计基于51单片机的数字时钟系统软件设计摘要本文介绍了一款多功能数字时钟系统的软件设计。

该系统能够显示当前日期、时间,并且具有日期、时间设置以及闹钟等功能。

该系统采用51系列STC 公司生产的STC89C51单片机,以及DALLAS公司生产的数字时钟芯片DS1302,利用液晶显示器LCD1602显示数字时钟的结果。

本系统的软件设计使用C语言进行编程,利用目前流行的Keil软件编程环境对源程序进行编译。

系统的软件程序主要包括主程序、DS1302初始化程序、读DS1302程序、写DS1302程序、LCD1602显示程序、日期时间调整、定时报警等子程序的设计。

该系统具有友好的用户界面、操作简单、性能稳定。

该数字时钟系统能够长期、连续、可靠、稳定地工作,同时系统还具有体积小、功耗低等特点,便于携带、使用方便。

关键词:DS1302数字时钟芯片;STC89C51单片机;LCD1602液晶显示器;软件设计Software Design of Digital Clock System Based on 51 MCUAbstractThis article describes the multi-functional digital clock system software design. The system can display the current date, time, and has the date and time settings and the alarm clock functions.What is introduced in this article is about the software design of a digital clock system which is multifunctional. This system can display the present time and date, it also has function such as setting time and date or being used as an alarm clock. The system uses a STC89C51 microcontroller of the 51 series produced by the STC corporation and a DS1302 digital clock chip produced by the DALLAS corporation. It shows people how the digital clock goes with a liquid crystal display LCD1602.The software design of this system is programmed with the C programming language and the program is compiled with the Keil software programming environment which is quite popular now. The software programs of the system mainly include the designs of some subroutines such as the DS1302 initialization program、the DS1302 program of reading、the DS1302 program of writing、the LCD1602 display program、adjustment of the date and time, timing alarm and so on.The system is provided with a friendly user interface、simple operation and stable function. The digital clock system can work long、continuously、reliably and stable while it also has characteristics like small volume and low power consumption which allow people to use conveniently and take it with themselves easily.Key words:DS1302 digital clock chip;STC89C51 Microcontroller; LCD1602 liquid crystal displayer; software design.目录1 绪论 (1)1.1 课题研究的背景 (1)1.2 课题研究的意义 (2)1.3 数字时钟的应用及发展前景 (2)1.4 课题的研究内容及技术要求 (3)2 设计要求与方案论证 (4)2.1 设计基本要求 (4)2.2 编程语言方案论证 (4)2.2.1 汇编语言 (4)2.2.2 C语言 (5)2.3 显示方式方案论证 (5)2.3.1 利用LED数码管显示结果 (5)2.3.2 利用LCD液晶显示结果 (6)2.4 系统仿真方式方案论证 (6)2.4.1 利用Protues软件仿真实现 (6)2.4.2 手工焊接电路板 (7)3 系统主要器件的工作原理 (8)3.1 单片机STC89C51的工作原理 (8)3.1.1 单片机主要性能参数及引脚功能 (8)3.1.2 单片机存储器结构及复位电路与时钟电路 (11)3.2 时钟芯片DS1302的原理及应用 (12)3.2.1 时钟芯片DS1302的结构原理及控制字节 (12)3.2.2 DS1302数据输入输出(I/O)与寄存器 (14)3.3 LCD1602的结构及工作原理 (15)4 系统软件设计 (17)4.1 系统硬件组成及结构框图 (17)4.2 系统软件设计概述 (17)4.3 系统主程序设计 (18)4.4 时钟芯片DS1302子程序设计 (19)4.4.1 DS1302初始化程序设计 (19)4.4.2 CPU读DS1302程序设计 (19)4.4.3 CPU写DS1302程序设计 (21)4.5 时间调整子程序设计 (22)4.6 定时报警子程序设计 (24)5 系统调试 (25)5.1 系统硬件调试 (25)5.2 软件调试 (26)5.2.1 软件编程环境keil介绍 (26)5.2.2 软件调试 (29)5.2.3 利用下载编程软件STC-ISP下载程序 (29)5.3 系统调试结果 (32)6 结论 (33)参考文献 (35)致谢............................................................................................................错误!未定义书签。

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

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

第一部分设计任务和要求1.1单片机课程设计内容 (2)1.2单片机课程设计要求 (2)1.3系统运行流程 (2)第二部分设计方案2.1总体设计方案说明 (2)2.2系统方框图 (3)2.3系统流程图 (3)第三部分主要器材及基本简介3.1主要器材 (4)3.2主要器材简介 (4)第四部分系统硬件设计4.1最小系统 (6)4.2LCD显示电路 (6)4.3键盘输入电路 (7)4.4蜂鸣器和LED灯电路 (7)第五部分仿真电路图与仿真结果 (8)第六部分课程设计总结 (8)第七部分参考文献 (9)附录A 实物图附录B 系统源程序第一部分设计任务和要求1.1单片机课程设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。

1.2单片机课程设计要求1.能实现年、月、日、星期、时、分、秒的显示;2.能实现调时功能;3.能实现12/24小时制切换;4.能实现8 : 00—22 : 00整点报时功能。

1.3系统运行流程程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。

若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。

若没到则循环执行。

计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。

调时闪烁中断服务程序用于被调单元的闪烁显示。

调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。

实现了对时间的设置和修改、LCD显示数值等主要功能。

相关的调整是靠对功能键的判断来实现的。

第二部分设计方案2.1总体设计方案说明1.程序设计及调试根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。

2.硬件焊接及调试根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。

3.后期处理对设计过程进行总结,完成设计报告。

基于51单片机的数字时钟的设计毕业论文

基于51单片机的数字时钟的设计毕业论文

基于51单片机的数字时钟的设计毕业论文基于51单片机的数字时钟的设计毕业论文目录摘要: (1)ABSTRACT (1)1 绪论 (1)2 硬件总体设计方案 (2)2.1系统功能实现总体设计思路 (2)2.2各部分功能实现 (2)2.3系统工作原理 (2)2.4电路功能使用说明 (3)2.5系统的设计方案 (4)2.5.1 系统的电路图和原理图 (4)2.5.2 单片机概述 (6)2.5.3 键盘电路 (9)2.5.4 显示电路 (10)2.6硬件焊接准备 (12)2.6.1电路板的布线 (12)2.6.2 硬件电路元件明细表 (13)3 软件总体设计方案 (14)3.1程序流程图 (14)3.1.1主程序流程图 (14)3.1.2 按键处理流程图 (14)3.1.3 定时器中断流程图 (14)3.1.4 时间显示流程图 (15)3.2调试结果说明 (16)4总结 (18)致谢 (19)参考文献 (1)附录 (21)基于51单片机的数字时钟的设计电子信息科学与技术专业彬指导教师车晓岩摘要: 自诞生以来,单片机的应用日趋广泛,应用领域日趋扩展,而MCS-51系列单片机是各单片机中最为典型的一种。

这次毕业设计,以AT89C51芯片为核心,通过必要的电路,构成简单的电子时钟。

数字时钟系统的主要任务是:采用单片机为核心器件产生24h(24小时)时间,并用LED显示器将他显示出来。

另外本设计具有闹铃的功能,通过拉蜂鸣器来做提醒。

这样简单的设计,直观反映单片机的应用。

软件和硬件的开发是这次设计必不可少的。

关键词:AT89C51;数字时钟;LED数码显示管;C语言Design of Digital Clock System Based on MSC-51SinglechipElectronic Information Science and Technology SunBinTutor CheXiaoYanAbstract: The applications of single-chip have been spread widely,and the areas of its application have been expanding increasingly since its inception. and MCS-51 series single-chip microcontroller is the most typical one. In the graduation-design , AT89C51 chip is the core of the necessary circuitry to form a simple electronic clock. Here are the main tasks of the digital clock system : as the core device ,Single-chip creates 24h (24 hour) time which will he displayed by the LED .In addition ,this design has the function of alarm by making the buzzer to do as a reminder. This simple design can reflect the intuitive applications of the microcontroller. Software and hardware development is essential to this design .Keywords: SCM; The LED display; A digital clock; Assemblylanguage1 绪论数字时钟作为人们日常生活中的必需品,给人们的学习、工作、生活带来极大的便利。

基于51单片机的数字钟毕业论文

基于51单片机的数字钟毕业论文

基于51单片机的数字钟毕业论文化工配料与控制论文论文题目:基于51单片机的数字钟设计专业:自动化姓名:冉茂林班级:1001学号:2010401931.论文主要概述本文介绍的设计是针对多功能定时器。

该定时器操作简单,功能齐全,是单片机智能化的一种应用。

电路可以执行两个时间表,即正常作息时间表和考试时间表。

本文主要采用了51系列的单片机实现的。

随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。

根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。

它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。

这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可我阅读后,主要是三个方面,片外硬件电路的设计,即按键电路的设计,控制打铃电路,时间显示,电源的设计,最后就是软件的设计。

2.论文优点按键电路:(1)按键的开关状态通过一定的电路转换为高、低电平状态。

按键闭合过程在相应的I/O端口形成一个负脉冲。

闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。

抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。

为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。

本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。

(2) P1.0口表示功能移位键,按键选择要调整的时十位、时个位、分十位或分个位。

(3) P1.1口表示数字“+“键,按一下则对应的数字加1。

(4) P1.2口表示数字“-”键,按一下则对应的数字减1。

(5) P1.3口表示时间表的切换,程序默认为日常时间表,当按下该开关,使输入为低电平时,表示当前执行的是考试时间表,并有绿发光二极管显示。

基于51单片机的数字钟设计-毕业设计论文(可编辑)

基于51单片机的数字钟设计-毕业设计论文(可编辑)

武汉大学电子信息学院电子系统综合设计课程论文基于51单片机的数字钟设计目录1 作品的背景与意义 12 功能指标设计 13 作品方案设计 13.1总体方案的选择 13.1.1方案一:基于单片机的数字钟设计 23.1.1方案二:基于数电实验的数字钟设计 33.1.2两种方案的比较................................................................... . (3)3.2控制方案比较 33.3显示方案比较 33.4单片机理论知识介绍 43.4.1单片机型号................................................................... . (5)3.4.2硬件电路平台................................................................... (6)3.4.3内部时钟电路................................................................... .. (7)3.4.4复位电路................................................................... .. (7)3.4.5按键部分................................................................... . (8)4 硬件设计94.1显示模块电路图95 软件设计115.1主程序流程图115.2中断服务以及显示 126 系统测试136.1测试环境136.2测试步骤136.2.1硬件测试6.2.2软件测试1.连接单片机和计算机串接................................................................... ................13 6.2.3实施过程................................................................... ..................................................................... . (14)6.3测试结果187 实验总结 (18)7.1代码编写过程中出现问题................................................................... . (18)7.2整个实验过程的体会................................................................... (19)7.3实验误差分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第一部分设计任务和要求1.1单片机课程设计内容 (2)1.2单片机课程设计要求 (2)1.3系统运行流程 (2)第二部分设计方案2.1总体设计方案说明 (2)2.2 系统方框图 (3)2.3 系统流程图 (3)第三部分主要器材及基本简介3.1 主要器材 (4)3.2 主要器材简介 (4)第四部分系统硬件设计4.1 最小系统 (6)4.2 LCD显示电路 (6)4.3 键盘输入电路 (7)4.4 蜂鸣器和LED灯电路 (7)第五部分仿真电路图与仿真结果 (8)第六部分课程设计总结 (8)第七部分参考文献 (9)附录A 实物图附录B 系统源程序第一部分设计任务和要求1.1 单片机课程设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。

1.2 单片机课程设计要求1.能实现年、月、日、星期、时、分、秒的显示;2.能实现调时功能;3.能实现12/24小时制切换;4.能实现8:00—22:00整点报时功能。

1.3 系统运行流程程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。

若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。

若没到则循环执行。

计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。

调时闪烁中断服务程序用于被调单元的闪烁显示。

调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。

实现了对时间的设置和修改、LCD显示数值等主要功能。

相关的调整是靠对功能键的判断来实现的。

第二部分设计方案2.1 总体设计方案说明1.程序设计及调试根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。

2.硬件焊接及调试根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。

3.后期处理对设计过程进行总结,完成设计报告。

2.2 单片机系统方框图2.2 单片机系统流程图主流程图键盘扫描流程图时钟流程图第三部分主要器件及简介3.1 主要器件1. STC89C51单片机;2.LCD1602液晶显示屏;3.2 主要器件简介1.STC89C51单片机简介STC89C51是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。

2.LCD1602液晶显示屏简介LCD1602可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。

LCD1602引脚说明如下表所示:LCD液晶显示器各引脚功能及结构VDD:电源正极,4.5V—5.5V,通常使用5V电压;VL:LCD对比度调节端,电压调节范围为0—5V。

接正极时对比度最弱,接地电源时对比度最高,但对比度过高会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;RS:MCU写入数据或者指令选择端。

MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;R/W:读写控制端。

R/W为高电平时,读取数据;R/W为低电平时,写入数据;EN:LCD模块使能信号控制端。

写数据时,需要下降沿触发模块。

D0—D7:8为数据总线,三态双向。

如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4—D7接口传送数据。

A:LED背光正极。

需要背光时, A串接一个限流电阻接VDD, K接地。

K:LED背光地端。

第四部分系统硬件设计4.1 最小系统复位时单片机的初始化操作,只要给RST引脚加上两个机器周期以上的高电平信号,就可以使STC89C51单片机复位。

本次采用的是12M晶振,按钮复位电路。

4.2 LCD显示电路LCD显示屏的D0到D7与单片机P0口相连,LCD显示屏EN口与单片机P3.4口相连,RS与P3.5相连。

通过滑动变阻器改变LCD显示屏的显示对比度。

4.3 键盘输入电路本次设计采用独立键盘,键盘按下时,相应的I/O口电平由高变低,一次检测按键是否被按下。

4个独立按键与单片机P3.0—P3.3口相连。

4.3 蜂鸣器和LED灯电路蜂鸣器的作用为准点报时产生报警声,LED在秒钟为偶数时或者功能键被按下时亮。

蜂鸣器与单片机P2.2口相连,LED灯与单片机P2.3口相连。

第五部分仿真电路图与仿真结果用Keil和Protues进行仿真调试,仿真结果完全达到预期目的。

第六部分课程设计总结本次单片机课程设计,在我和我的搭档陈雅琴默契配合,以及邹老师的指导和同学的帮助下顺利完成了。

在设计过程中,从仿真电路的设计,源程序的书写和修改以及实物电路的焊接中都遇到了不少问题,但在我们的共同努力下解决了,并且从中学到了不少知识。

我们在设计过程中还不断提出自己的疑点以及新的想法,联系实际应用,将课本上学习的东西运用到实际中,这些都令我们受益匪浅。

课程设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验。

在设计过程中,我们遇到问题不是感到急躁,而是耐心地寻找解决的办法,与老师、同学进行交流讨论,寻求最佳的解决办法。

总之,在此次的课程设计中,我们不仅动手、动脑,也学会了不少东西,同时,谢谢对我们的设计带来建议、意见和帮助的老师和同学们!谢谢!第七部分参考文献《单片机原理及应用(第二版)》高等教育出版社《新概念51单片机C语言教程》电子工业出版社附录A 实物图附录B 系统源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit lcdrs=P3^5; //定义1602液晶RS端sbit lcden=P3^4;//定义1602液晶LCDEN端sbit s1=P3^0; //定义按键--功能键sbit s2=P3^1; //定义按键--增加键sbit s3=P3^2; //定义按键--减小键sbit s4=P3^3; //定义按键--闹钟键sbit beep=P2^2; //定义蜂鸣器端sbit led=P2^3; //定义LED灯端uchar count,s1num,s4num;char year,month,day,week,miao,shi,fen,pshi;uchar code table[]=" 20 - - ";//定义初始上电时液晶默认显示状态void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void zhuanhuan(){if(shi==0)pshi=12;if(shi<=12&&shi>=1)pshi=shi;if(shi>12)pshi=shi-12;}void di()//蜂鸣器发声函数{beep=0;delay(300);beep=1;delay(300);}void write_com(uchar com)//液晶写命令函数{lcdrs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date)//液晶写数据函数{lcdrs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void _shi() //写"AM"、"PM"函数{if(shi>=12){write_com(0x80+0x40+1);//写出"PM"write_date('P');write_date('M');}else{write_com(0x80+0x40+1);//写出"AM"write_date('A');write_date('M');}}void write_ymd(uchar add1,uchar date1)//写年月日函数{uchar shi,ge;shi=date1/10;//分解一个2位数的十位和个位ge=date1%10;write_com(0x80+add1);//设置显示位置write_date(0x30+shi);//送去液晶显示十位write_date(0x30+ge); //送去液晶显示个位}void write_sfm(uchar add,uchar date)//写时分秒函数{uchar shi,ge;shi=date/10;//分解一个2位数的十位和个位ge=date%10;write_com(0x80+0x40+add);//设置显示位置write_date(0x30+shi);//送去液晶显示十位write_date(0x30+ge); //送去液晶显示个位}void write_week(char week) //写液晶星期显示函数{write_com(0x80+12);switch(week){case 1: write_date('M');delay(5);write_date('O');delay(5);write_date('N');break;case 2: write_date('T');delay(5);write_date('U');delay(5);write_date('E');break;case 3: write_date('W');delay(5);write_date('E');delay(5);write_date('D');break;case 4: write_date('T');delay(5);write_date('H');delay(5);write_date('U');break;case 5: write_date('F');delay(5);write_date('R');delay(5);write_date('I');break;case 6: write_date('S');delay(5);write_date('A');delay(5);write_date('T');break;case 7: write_date('S');delay(5);write_date('U');delay(5);write_date('N');break;}}void writeym(){day=1;month++;if(month==13){month=1;year++;if(year==100)year=0;write_ymd(3,year);//年若变化则重新写入}write_ymd(6,month);//月若变化则重新写入}void init()//初始化函数{uchar num;lcden=0;year=13;//初始化种变量值month=6;day=21;week=5;shi=13;fen=59;miao=58;count=0;s1num=0;s4num=0;write_com(0x38);//初始化1602液晶write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//设置显示初始坐标for(num=0;num<15;num++)//显示年月日星期{write_date(table[num]);delay(5);}delay(5);write_com(0x80+0x40+6);//写出时间显示部分的两个":"write_date(':');delay(5);write_com(0x80+0x40+9);write_date(':');delay(5);write_week(week);write_ymd(3,year);//分别送去液晶显示write_ymd(6,month);write_ymd(9,day);write_sfm(10,miao);//分别送去液晶显示write_sfm(7,fen);write_sfm(4,shi);TMOD=0x01;//设置定时器0工作模式1TH0=(65536-50000)/256;//定时器装初值TL0=(65536-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1; //启动定时器0}void keyscan()//按键扫描函数{if(s1==0){delay(5);if(s1==0)//确认功能键被按下{s1num++;//功能键按下次数记录while(!s1);//释放确认if(s1num==1)//第一次被按下时{TR0=0; //关闭定时器write_com(0x80+3);//光标定位到年位置write_com(0x0f); //光标开始闪烁}if(s1num==2)//第二次按下光标闪烁定位到月位置{write_com(0x80+6);}if(s1num==3)//第三次按下光标闪烁定位到日位置{write_com(0x80+9);}if(s1num==4)//第四次按下光标闪烁定位到星期位置{write_com(0x80+12);}if(s1num==7)//第七次被按下时光标定位到秒位置{write_com(0x80+0x40+10);}if(s1num==6)//第六次按下光标闪烁定位到分位置{write_com(0x80+0x40+7);}if(s1num==5)//第五次按下光标闪烁定位到时位置{write_com(0x80+0x40+4);}if(s1num==8)//第七次按下{s1num=0;//记录按键数清零write_com(0x0c);//取消光标闪烁TR0=1; //启动定时器使时钟开始走}}}if(s1num!=0)//只有功能键被按下后,增加和减小键才有效{if(s2==0){delay(5);if(s2==0)//增加键确认被按下{while(!s2);//按键释放if(s1num==1)//若功能键第一次按下{year++; //则调整年加1if(year==100)//若满100后将清零year=0;write_ymd(3,year);//每调节一次送液晶显示一下write_com(0x80+3);//显示位置重新回到调节处}if(s1num==2)//若功能键第二次按下{month++;//则调整月加1if(month==13)//若满12后将置一month=1;write_ymd(6,month);//每调节一次送液晶显示一下write_com(0x80+6);//显示位置重新回到调节处}if(s1num==3)//若功能键第三次按下{day++;//则调整日加1if(year%4==0&&month==2){if(day==30)//若满29后将置一day=1;}if(year%4!=0&&month==2){if(day==29)//若满28后将置一day=1;}if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11) {if(day==32)//若满31后将置一day=1;}if(month==4||month==6||month==9||month==11){if(day==31)//若满30后将置一day=1;}write_ymd(9,day);;//每调节一次送液晶显示一下write_com(0x80+9);//显示位置重新回到调节处}if(s1num==4)//若功能键第四次按下{week++;//则调整星期加1if(week==8)//若满8后将置一week=1;write_week(week);//每调节一次送液晶显示一下write_com(0x80+12);//显示位置重新回到调节处}if(s1num==7)//若功能键第七次按下{miao++; //则调整秒加1if(miao==60)//若满60后将清零miao=0;write_sfm(10,miao);//每调节一次送液晶显示一下write_com(0x80+0x40+10);//显示位置重新回到调节处}if(s1num==6)//若功能键第二次按下{fen++;//则调整分钟加1if(fen==60)//若满60后将清零fen=0;write_sfm(7,fen);//每调节一次送液晶显示一下write_com(0x80+0x40+7);//显示位置重新回到调节处}if(s1num==5)//若功能键第五次按下{shi++;if(shi==24)//若满24后将清零{shi=0;}if(s4num==0){write_sfm(4,shi);;//每调节一次送液晶显示一下write_com(0x80+0x40+4);//显示位置重新回到调节处}if(s4num==1){zhuanhuan();_shi();write_sfm(4,pshi);;//每调节一次送液晶显示一下write_com(0x80+0x40+4);//显示位置重新回到调节处}}}}}if(s3==0){delay(5);if(s3==0)//确认减小键被按下{while(!s3);//按键释放if(s1num==1)//若功能键第一次按下{year--;//则调整秒减1if(year==-1)//若减到负数则将其重新设置为99year=99;write_ymd(3,year);//每调节一次送液晶显示一下write_com(0x80+3);//显示位置重新回到调节处}if(s1num==2)//若功能键第二次按下{month--;//则调整分钟减1if(month==0)//若减到负数则将其重新设置为59month=12;write_ymd(6,month);//每调节一次送液晶显示一下write_com(0x80+6);//显示位置重新回到调节处}if(s1num==3)//若功能键第二次按下{day--;//则调整日加1if(year%4==0&&month==2){if(day==0)//若满29后将置一day=29;}if(year%4!=0&&month==2){if(day==0)//若满28后将置一day=28;}if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11) {if(day==0)//若满31后将置一day=31;}if(month==4||month==6||month==9||month==11){if(day==0)//若满30后将置一day=30;}write_ymd(9,day);;//每调节一次送液晶显示一下write_com(0x80+9);//显示位置重新回到调节处}if(s1num==4)//若功能键第二次按下{week--;//则调整小时减1if(week==0)//若减到负数则将其重新设置为23week=7;write_week(week);//每调节一次送液晶显示一下write_com(0x80+12);//显示位置重新回到调节处}if(s1num==7)//若功能键第一次按下{miao--;//则调整秒减1if(miao==-1)//若减到负数则将其重新设置为59miao=59;write_sfm(10,miao);//每调节一次送液晶显示一下write_com(0x80+0x40+10);//显示位置重新回到调节处}if(s1num==6)//若功能键第二次按下{fen--;//则调整分钟减1if(fen==-1)//若减到负数则将其重新设置为59fen=59;write_sfm(7,fen);//每调节一次送液晶显示一下write_com(0x80+0x40+7);//显示位置重新回到调节处}if(s1num==5)//若功能键第二次按下{shi--;if(shi==-1)//若满24后将清零shi=23;if(s4num==0){write_sfm(4,shi);;//每调节一次送液晶显示一下write_com(0x80+0x40+4);//显示位置重新回到调节处}if(s4num==1){zhuanhuan();_shi();write_sfm(4,pshi);;//每调节一次送液晶显示一下write_com(0x80+0x40+4);//显示位置重新回到调节处}}}}if(s1num==0){if(s4==0){delay(5);if(s4==0)//确认功能键被按下{s4num++;//功能键按下次数记录while(!s4);//释放确认if(s4num==1)//第一次被按下时{zhuanhuan();_shi();write_sfm(4,pshi);}if(s4num==2)//第二次按下{s4num=0;//记录按键数清零write_com(0x80+0x40+1);write_date(' ');write_date(' ');write_sfm(4,shi);}}}}}void main()//主函数{init();//首先初始化各数据while(1)//进入主程序大循环{keyscan();//不停的检测按键是否被按下if(s1num!=0)led=0;elseled=miao%2;if((shi>7&&shi<23)&&(fen==0)&&(miao==0)){di();}}}void timer0() interrupt 1//定时器0中断服务程序{TH0=(65536-50000)/256;//再次装定时器初值TL0=(65536-50000)%256;count++; //中断次数累加if(count==20) //20次50毫秒为1秒{count=0;miao++;if(miao==60)//秒加到60则进位分钟{miao=0;//同时秒数清零fen++;if(fen==60)//分钟加到60则进位小时{fen=0;//同时分钟数清零shi++;if(shi==24)//小时加到24则小时清零{shi=0;week++;if(week==8){week=1;}write_week(week);//星期若变化则重新写入day++;if(year%4==0&&month==2)//判断是否为闰年的2月{if(day==30){writeym();}write_ymd(9,day);//日若变化则重新写入}if(year%4!=0&&month==2)//判断是否为平年的2月{if(day==29){writeym();}write_ymd(9,day);//日若变化则重新写入}if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11) {if(day==32){writeym();}write_ymd(9,day);//日若变化则重新写入}if(month==4||month==6||month==9||month==11){if(day==31){writeym();}write_ymd(9,day);//日若变化则重新写入}20}if(s4num==1){zhuanhuan();_shi();write_sfm(4,pshi);//12小时制小时若变化则重新写入}else write_sfm(4,shi);//24小时制小时若变化则重新写入}write_sfm(7,fen);//分钟若变化则重新写入}write_sfm(10,miao);//秒若变化则重新写入}}21。

相关文档
最新文档