单片机电子时钟课程设计设计报告
电子时钟单片机课程设计报告
单片机课程设计报告题目电子时钟专业班级学号学生姓名指导教师学院名称电子信息工程学院2014年 6月10日目录一、课程设计教学目标 (2)二、设计目的 (2)三、设计任务及要求 (2)四、程序框图 (3)1.计时模块 (3)2.显示模块 (3)3.按键判断及处理程序 (4)4.音乐响铃模块 (5)5.主函数流程图 (6)五、程序清单 (7)六、感想体会 (16)一、课程设计教学目标通过电子时钟等单片机技术课程十个题目的设计,使学生学会应用单片机技术的基本知识和基本技能,初步了解形成解决实际问题的能力及实际动手的能力。
能正确使用实验开发平台或仿真器,会观察实验现象、记录有关数据,并能通过分析得出正确结论。
学会阅读、分析或设计简单的单片机应用系统线路图及设备的线路方框图。
掌握阅读和编写简单的汇编程序或 C51 语言程序。
思考利用单片机系统的开发、研制过程,初步具备设计和调试单片机应用系统的能力;并逐步培养学生的辩证思维能力,提高学生的全面素质。
二、设计目的通过电子时钟综合设计,使学生学会利用 8051 定时器时间计时处理功能,了解按键扫描及控制 LED 数码管显示原理,掌握单片机和按键以及 LED 数码管硬件电路设计及控制程序的设计方法。
思考按键消除抖动、LED 动态显示与静态显示的特点,从而提高学生解决实际问题的能力。
三、设计任务及要求利用实验平台上 4 个 LED 数码管,设计带有闹铃功能的数字时钟,要求:1.在 4 位数码管上显示当前时间。
显示格式“时时分分”2.由 LED 闪动做秒显示。
3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
四、程序框图1.计时模块利用单片机定时器0完成计时功能。
定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1。
当秒变量达到60时,秒变量清零同时分变量加1。
单片机课程设计报告--电子时钟(2021整理)
一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY〔自己计算〕。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms 计数,计20次产生秒计数器78H单元加1,秒计数器加到60那么分计数器79H单元加1,分计数器加到60那么时计数器7AH单元加1,时计数器加到24那么时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理。
三、MCS-51单片机系统简介单片机应用系统由硬件系统和软件系统两局部组成。
硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。
软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。
与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。
在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。
配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED 指示灯就可以进行处理了。
在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。
单片机电子时钟课程设计设计报告
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。
该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。
功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00。
(2)设计键盘调整时间,完成时间设计,并设置闹钟。
(3)定时时间为1/100秒,可采用定时器实现。
(4)采用LED数码管显示,时、分,秒采用数字显示。
(5)采用24小时制,具有方便的时间调校功能。
(6)具有时钟和秒表的切换功能。
使用方法:开机后时钟在00:00:00起开始计时。
(1)长按P3.2进入调分状态:分单元闪烁,按P3.2加1,按P3.3减1.再长按P3.2进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。
(2)(2)按P3.3进入设定闹时状态: 12:00: ,可进行分设定,按P3.4分加1,再按P3.2为时调整,按P3.4时加1,按P3.3调闹钟结束.在闹铃时可按P3.2停闹,不按闹铃1分钟。
(3)按下P3.4进入秒表状态:再按P3.4秒表又启动,按P3.4暂停,再按P3.4秒表清零,按P3.4退出秒表回到时钟状态。
二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。
电子时钟原理图各个模块设计1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
单片机电子时钟课程设计实验报告(1)
单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
52单片机时钟课程设计
52单片机时钟课程设计一、课程目标知识目标:1. 学生能理解并掌握52单片机的基本原理及其在时钟设计中的应用。
2. 学生能描述时钟电路的工作原理,包括时钟晶振、分频器等组成部分。
3. 学生能运用C语言编写程序,实现对时钟的显示、调整和时间计算功能。
技能目标:1. 学生能独立完成52单片机的时钟电路连接和程序编写。
2. 学生通过实验操作,培养动手能力和问题解决能力,能够调试并优化时钟程序。
3. 学生能够运用所学知识,结合实际需求,设计简单的时钟应用项目。
情感态度价值观目标:1. 学生通过学习单片机时钟设计,培养对电子技术和编程的兴趣,激发创新意识。
2. 学生在团队协作中,学会分享、交流和合作,提高沟通能力。
3. 学生认识到科技对社会生活的影响,增强社会责任感和时代使命感。
课程性质:本课程为实践性较强的电子技术课程,结合理论教学和实验操作,旨在培养学生的动手能力、编程能力和创新能力。
学生特点:学生已具备一定的电子技术基础知识,对编程有一定了解,但对单片机应用尚处于起步阶段。
教学要求:教师需结合学生特点,注重理论与实践相结合,关注个体差异,引导学生主动探究,培养其解决问题的能力。
通过课程学习,使学生能够将所学知识应用于实际项目中。
二、教学内容本课程教学内容主要包括以下几部分:1. 52单片机基础知识:介绍52单片机的结构、工作原理、引脚功能等,结合教材相关章节,让学生对单片机有基本的认识。
2. 时钟电路原理:讲解时钟电路的组成,包括时钟晶振、分频器等,分析时钟信号的产生、传输和作用。
3. C语言编程:复习C语言基础知识,重点讲解与52单片机编程相关的内容,如寄存器操作、I/O口编程、中断处理等。
4. 时钟程序设计:详细讲解如何利用52单片机实现时钟功能,包括时钟显示、调整和时间计算等,结合教材实例,让学生动手实践。
5. 实验操作与调试:指导学生进行时钟电路的连接、程序下载和调试,培养学生动手能力和问题解决能力。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、引言。
随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。
其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。
本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。
二、设计方案。
1. 硬件设计。
本课程设计选用了51单片机作为核心处理器,配合数码管显示模块、时钟芯片等外围器件,构成了电子时钟的硬件平台。
通过对硬件电路的设计和布线,实现了对时间的精准显示和控制。
2. 软件设计。
在软件设计方面,本课程设计采用了C语言作为编程语言,利用单片机的定时器、中断等功能模块,编写了精确的时钟控制程序。
通过对时钟的分、秒、小时的精准控制,实现了电子时钟的正常运行和显示。
三、功能实现。
1. 时间显示。
经过精心设计的软件程序,实现了对时间的精准显示。
时钟的显示界面清晰明了,数字显示稳定可靠,能够满足人们对时间的基本需求。
2. 时间调整。
通过设置按键,可以对时钟进行时间的调整。
用户可以根据实际需求,随时对时钟的时间进行调整,保证时钟的准确性。
3. 闹铃功能。
本课程设计还实现了闹铃功能,用户可以通过设置闹铃时间,让时钟在设定的时间点发出提示音,提醒用户重要事件的发生。
四、实验结果。
经过实际测试,本课程设计的电子时钟能够稳定可靠地运行,显示精准,功能完善。
时钟的硬件和软件设计均达到了预期的要求,符合设计的初衷和要求。
五、总结与展望。
本课程设计通过对单片机电子时钟的硬件和软件设计,成功实现了一个功能强大、稳定可靠的电子时钟。
但是,仍有一些功能可以进一步完善和优化,比如增加温湿度显示功能、实现无线时间校准等。
未来,我们将继续努力,不断完善电子时钟的功能,为人们的生活带来更多的便利。
六、参考文献。
[1] 《单片机原理与接口技术》,XXX,XXX出版社,2008。
[2] 《C语言程序设计》,XXX,XXX出版社,2010。
七、致谢。
感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。
单片机电子时钟课程设计报告(一)
单片机电子时钟课程设计报告(一)单片机电子时钟课程设计报告随着科技的不断发展,电子时钟软件的应用越来越广泛。
本文将介绍一个单片机电子时钟的设计过程与实现方法。
一、设计目标本次课程设计我们的目标是设计一款能够进行时间显示的电子时钟。
具体要求如下:1. 时钟实时显示当前时间,包括时、分、秒和星期;2. 描述时钟功能,实现时间的调校、时间格式的调亮和调暗等操作;3. 显示格式清晰美观,操作方便简单,能够长时间稳定地工作。
二、硬件设计1. 硬件搭建:本设计采用单片机AT89C51作为核心CPU。
同时使用16MHz的晶振电路来为微控制器提供准确的时基。
另外,为了实现更好的人机交互,本设计还需要使用LCD液晶显示屏和4个按键。
2. 硬件接口:液晶显示屏需要采用并行接口,并且需要对显示屏背光进行控制。
而4个按键需要分别连接到4个I/O口上,从而实现对电子时钟的各项控制功能。
三、软件设计1. 程序框架:本设计使用Keil编程软件进行程序编写,并采用C语言进行程序设计。
主要的程序框架分为4个部分:数据收集模块、处理模块、显示模块和按键扫描模块。
2. 数据收集模块:数据收集模块采用中断方式,以1秒为间隔进行一次数据收集。
同时还需要对实时时间进行调校和校验。
3. 处理模块:处理模块主要用于完成各种时间处理和格式设置功能,包括对时、分、秒等时间数据进行读取、存储和操控操作。
同时,还要完成处于闹钟和日历两种状态的时间判断和时间更新操作。
4. 显示模块:显示模块主要用于将处理过的时间数据显示在LCD液晶显示屏上,实现时间的实时显示功能。
5. 按键扫描模块:按键扫描模块主要用于检测按键的按下和松开状态,并且根据不同按键的功能实现对时钟的不同控制操作。
四、总结本次设计采用单片机AT89C51作为核心CPU,对硬件和软件进行优化设计,结构合理,功能完善。
最终实现了日期时间的实时显示、闹钟功能、日历功能等多种功能。
同时,本设计能够进行时间调亮和调暗,具有操作方便简单、显示清晰美观等特点。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、引言。
电子时钟是现代社会中常见的时间显示设备,其精准的时间显示功能在各个领域都有着重要的应用价值。
本课程设计旨在通过单片机技术,设计并实现一个简单的电子时钟,以帮助学生深入理解单片机的工作原理和应用技术。
二、课程设计内容。
1. 电子时钟的基本原理。
电子时钟是通过内部的振荡器产生稳定的脉冲信号,再经过分频和计数等操作,最终显示出精确的时间。
学生需要了解时钟电路的基本组成和工作原理,包括振荡器、分频器、计数器等模块的功能和相互配合关系。
2. 单片机的应用技术。
本课程设计中,我们选用了常见的单片机作为控制核心,学生需要学习单片机的基本结构、工作原理以及编程技术,掌握单片机与外围元器件的连接和通信方法,以及如何利用单片机实现电子时钟的各项功能。
3. 电子时钟的功能设计。
在课程设计中,学生需要设计电子时钟的基本功能,包括时间的显示、设置和调整功能,以及闹钟、定时器等附加功能。
通过设计和实现这些功能,学生能够更好地理解单片机的应用和程序设计技术。
4. 硬件电路的搭建与调试。
除了软件设计,学生还需要学会如何搭建电子时钟的硬件电路,并进行相应的调试工作。
这将帮助他们更深入地理解电子时钟的工作原理,以及单片机与外围电路的配合方式。
5. 系统整体性能测试与优化。
最后,学生需要对设计的电子时钟系统进行整体性能测试,并对系统进行优化,提高其稳定性和可靠性。
这一步骤将帮助他们更全面地掌握电子时钟设计的整体流程和技术要点。
三、课程设计实施。
在课程设计实施过程中,学生将分为若干小组,每个小组负责一个电子时钟系统的设计与实现。
在指导老师的指导下,他们将逐步完成电子时钟的功能设计、硬件搭建、软件编程、系统调试和性能优化等工作。
通过实际动手操作,学生将更好地理解课程内容,并培养实际动手能力和团队合作意识。
四、课程设计总结。
通过本课程设计,学生将全面掌握单片机技术在电子时钟设计中的应用,深入理解电子时钟的工作原理和设计方法,提高动手能力和实际应用能力。
单片机电子时钟课程设计报告
绪论单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次课程计通过对它的学习、应用,以AT80C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。
为实现定时控制以及对外界事件进行计数,在单片机应用系统中,常需要用到实时时钟和计数器。
51系列的单片机内部都具有着两种功能,有的型号还具有捕获和监视定时的功能。
51系列的单片机内部都设有两个16位的可编程定时/计数器,可简称为定时器0(T0)和定时器1(T1)。
可编程是指其功能如工作方式、定时时间、量程、启动方式等均可由指令来确定和改变。
一般中断系统都伴随着定时/计数器的出现而出现。
中断技术是单片机工作中的一项重要技术,在有些场合采用“中断技术”可使单片机的工作更加灵活、效率更高。
中断功能是在硬件基础上再配以相应的软件而实现的。
不同的单片机其硬件结构和软件指令时不完全相同的,因而中断结构一般是不相同的。
但同一系列的单片机即使型号不同,中断系统的基本结构也是类似的,只是中断源个数不完全一样。
中断系统大体分为3类中断,即外部中断类(外部中断0和外部中断1)、定时中断类(定时器T0中断、定时器T1中断、定时器T2中断)、串行口中断类(RI或TI)。
中断处理过程可分为3个阶段,即中断响应、中断处理和中断返回,所有的单片机的中断都有这样的3个阶段。
本次课程设计还用到了扩充外部中断源的知识,利用定时器扩展的外部中断源法。
将计数器设置成计数方式,计数初值设定为满量程,一旦从外部计数引脚输入一个跳变信号,计数器加1产生溢出中断。
单片机课程设计实验报告(时钟、日历)..
基于单片机的电子钟设计目录第一章电子时钟设计--—--—----————-—-—-—----—-—-——-——21.1 设计原理简介--————-—----—---——---———-----——-—-—-—21.2 设计功能-——--—-—————-———-—----————---——--——-——---—3第二章主要电路元器件介绍-—-———-———-—------———---32。
1 STC89C52 单片机简介—--—--—-—-—-—-—-—---—-——-———32。
1.1 单片机简介--——--——--——---—-—--————----—————--——-—-32。
1.2 主要特性---——-------—---—-—---————-—--—--———-—-—-—32.1.3 管脚功能说明—---———-———-———-——---—-————-—-—-—-————42.1。
4 LCD1602-—------——---—--—-——--———--——------——-—-—5第三章单元电路的硬件设计—-----————————————————--63.1 硬件原理框图—-———--—--——---—--—-—---------—--———-—-63。
2 单片机 STC89C52 系统的设计-—-—-—-—-————-—————-—----63。
3 时钟电路—————-----———-—---—-——---—--—-—-—-—--————--73.4 复位电路-----——-——--———-————-———-—----———---—--—-—-------—-—--—-——---—-—————-—---——--73。
5 键盘接口电路--—---—-———--—--——--——--——----———---——-83.6 LCD1602显示——---——————--—-—-——--——----—----———-————8第四章设计总原理图—-—-—---——-----—-———-9 第五章心得体会---—-------—————--——-—-——9第六章源程序---—-—-——-—-------———---—-——————-——----10前言:摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便.由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
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.后期处理对设计过程进行总结,完成设计报告。
单片机数字电子钟课程设计
单片机数字电子钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基础知识,掌握数字电子时钟的原理和工作流程。
2. 学生能描述单片机编程的基本步骤,特别是与计时相关的指令和程序设计方法。
3. 学生能够解释数字电子钟各部分功能,如时钟电路、显示电路等,并了解它们之间的协作关系。
技能目标:1. 学生能够运用所学的单片机知识,设计并实现一个简单的数字电子钟程序。
2. 学生通过动手实践,提高焊接和电路排错的能力,能够组装和调试电子钟电路。
3. 学生能够利用仿真软件对电子钟程序进行测试和优化,培养问题解决和程序调试技巧。
情感态度价值观目标:1. 培养学生对电子制作的兴趣,激发创新意识和探索精神。
2. 通过团队协作完成项目,增强学生的合作意识和沟通能力。
3. 学生在课程学习过程中,能够体验到知识与实践相结合的成就感,培养科学、严谨的学习态度。
分析课程性质、学生特点和教学要求:本课程设计针对高中年级学生,假设他们已具备基础物理知识和一定的编程能力。
课程性质为实践性强的综合设计课,旨在通过单片机数字电子钟的制作,巩固学生的电子技术知识与技能。
课程目标设定时考虑了学生的年龄特点和认知水平,注重理论与实践的结合,鼓励学生动手操作和探究学习,旨在提高学生的综合技术应用能力。
通过具体的学习成果分解,本课程旨在让学生不仅学习到知识,而且能够将知识应用到实际问题的解决中,充分体现课程的实用性和创新性。
二、教学内容1. 单片机基础知识回顾:重点复习单片机的内部结构、工作原理及编程基础,关联教材第二章内容。
2. 数字电子时钟原理:讲解时钟电路、计数器、振荡器等组成部分,对应教材第四章第二节。
- 时钟电路的构成与工作原理- 计数器的作用及其编程方法- 振荡器的种类及其在电子时钟中的应用3. 单片机编程设计:结合教材第三章,介绍编写电子时钟程序所需的指令和编程技巧。
- 基本计时指令的使用- 程序流程图的绘制- 中断处理在电子时钟中的应用4. 电路设计与制作:依据教材第五章,指导学生进行电子时钟的电路设计和组装。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告Single-Chip Microcontroller Electronic Clock Course Design ReportIntroductionThe purpose of this course design is to design and implement an electronic clock based on a single-chip microcontroller. Through this course design, students can have a deep understanding of the basic principles of single-chip microcontrollers and various peripheral modules, and at the same time, they can improve their practical skills in program design and hardware debugging.Hardware Design1. Overall DesignThe hardware design of the electronic clock consists of three parts: the single-chip microcontroller MCU, the display module, and the clock circuit module. The main control chip selects AT89S52, which is a widely used single-chip microcontroller with strong anti-interference ability. The display module uses a common cathode digital tube, whichhas the advantages of low cost and convenient wiring. The clock circuit module includes a clock crystal, a reset circuit, and a power supply circuit.2. Schematic DesignThe schematic diagram of the electronic clock circuit is shown in Figure 1.Figure 1: Schematic diagram of electronic clock circuit3. Component SelectionThe components used in the electronic clock circuit are shown in Table 1.Table 1: Component selection tableSoftware Design1. Functional DesignThe functions of the electronic clock include displaying the current time, setting the clock time, and adjusting the time.2. Program DesignThe program flowchart of the electronic clock is shown in Figure 2. The program is mainly divided into three parts: timing control, button control, and display control.Figure 2: Program flowchart for electronic clockConclusionThrough the design and implementation of the electronic clock, students can not only understand the basic principles of single-chip microcontrollers, but also improve their practical skills in program design and hardware debugging. This course design is not only beneficial to the undergraduate curriculum, but also lays the foundation for students who want to engage in the research and development of electronic products in the future.。
单片机电子时钟课程设计设计报告
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。
该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。
功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00。
(2)设计键盘调整时间,完成时间设计,并设置闹钟。
(3)定时时间为1/100秒,可采用定时器实现。
(4)采用LED数码管显示,时、分,秒采用数字显示。
(5)采用24小时制,具有方便的时间调校功能。
(6)具有时钟和秒表的切换功能。
使用方法:开机后时钟在00:00:00起开始计时。
(1)长按P3.2进入调分状态:分单元闪烁,按P3.2加1,按P3.3减1.再长按P3.2进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。
(2)(2)按P3.3进入设定闹时状态: 12:00: ,可进行分设定,按P3.4分加1,再按P3.2为时调整,按P3.4时加1,按P3.3调闹钟结束.在闹铃时可按P3.2停闹,不按闹铃1分钟。
(3)按下P3.4进入秒表状态:再按P3.4秒表又启动,按P3.4暂停,再按P3.4秒表清零,按P3.4退出秒表回到时钟状态。
二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。
电子时钟原理图各个模块设计1.单片机系统AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
单片机电子时钟课程设计报告.
单片机电子时钟课程设计报告.
本设计利用单片机AT89C2051实现一个电子时钟,该时钟可以用来显示24小时制或12小时制的时间,具有实时显示功能。
本课程设计使用了单片机的定时器、存储器、计数器等内部模块以及外部的实时时钟和数码管显示器来实现。
首先构建系统的硬件结构,核心硬件组件有单片机AT89C2051、DS1302实时时钟以及七段LED数码管,这三个部件共同构成了电子时钟的硬件结构。
然后,根据实际需求,利用DS1302实时时钟芯片来开发整个系统。
接着,根据中断总线对时钟芯片进行数据交换,通过时钟芯片与单片机进行管理和操作,使得两者能够有效地进行实时数据交换,从而实现实时时钟功能。
最后,利用编译器编写源代码并下载到单片机中,控制实时时钟的输入输出以及两个七段数码管的显示,实现电子时钟的功能。
最后,实验通过电子时钟的设计,验证了设计的功能正确性,时钟显示正确,可以正常使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控, 6 位 LED数码显示,分别显示“小时:分钟:秒”。
该作品主要用于24 小时计时显示, 能整时报时 , 能作为秒表使用 , 能定时闹铃 1 分钟。
功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00 。
(2)设计键盘调整时间,完成时间设计,并设置闹钟。
(3)定时时间为 1/100 秒,可采用定时器实现。
(4)采用 LED数码管显示,时、分,秒采用数字显示。
(5)采用 24 小时制,具有方便的时间调校功能。
(6)具有时钟和秒表的切换功能。
使用方法 :开机后时钟在00:00:00起开始计时。
(1) 长按 P3.2 进入调分状态 : 分单元闪烁 , 按 P3.2 加 1, 按 P3.3 减 1. 再长按 P3.2 进入时调整状态 , 时单元闪烁 , 加减调整同调分 . 按长按退出调整状态。
(2) (2)按 P3.3 进入设定闹时状态 : 12:00: , 可进行分设定 , 按 P3.4 分加 1, 再按 P3.2为时调整 , 按 P3.4 时加 1, 按 P3.3 调闹钟结束 . 在闹铃时可按P3.2 停闹 , 不按闹铃 1 分钟。
(3)按下 P3.4 进入秒表状态 : 再按 P3.4 秒表又启动 , 按 P3.4 暂停 , 再按 P3.4 秒表清零 ,按P3.4 退出秒表回到时钟状态。
二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED 数码管显示模块、电源模块、晶振模块、按键模块等组成。
电子时钟原理图各个模块设计1. 单片机系统AT89S52AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的 8051,8031 的指令系统,他的运行速度要比 8051 快最高支持达 33MHz的晶体震荡器,在此系统中使用 12MHz的晶振。
AT89S52具有以下标准功能:8k 字节 Flash ,256 字节RAM, 32 位 I/O口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 / 计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。
空闲模式下, CPU停止工作,允许 RAM、定时器 / 计数器、串口、中断继续工作。
掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止,,主要性能:与 MCS-51单片机产品兼容、8K字节在系统可编程Flash 存储器、1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器、32个可编程I/O 口线、三个 16 位定时器 / 计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
2、显示模块LED数码管是由发光二极管构成的,亦称半导体数码管。
将条状发光二极管按照共阴极( 负极 ) 或共阳极 ( 正极 ) 的方法连接,组成“ 8”字,再把发光二极管另一电极作笔段电极,就构成了LED数码管。
若按规定使某些笔段上的发光二极管发光,就能显示从0~9 的, 系列数字。
同荧光数码管(VFD) 、辉光数码管(NRT)相比,它具有:体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL、 CMOS电路兼容等的数显器件。
+、 - 分别表示公共阳极和公共阴极。
a~g 是 7 个笔段电极, DP为小数点。
另有一种字高为7. 6mm的超小型LED数码管,管脚从左右两排引出,小数点则是独立的。
本系统利用 6 位 LED数码管显示时间,共阴极结构。
LED数码管由7 段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。
3.按键模块本设计中主要有三个控制按键,按键功能为:(1)P3.2 为调时间模式,长按P3.2 进入调分状态: 分单元闪烁,按 P3.2 加 1, 按 P3.3 减 1. 再长按 P3.2 进入时调整状态 ,时单元闪烁 , 加减调整同调分. 按长按退出调整状态。
(2)按 P3.3 进入设定闹时状态 : 12:00: ,可进行分设定, 按P3.4 分加 1, 再按 P3.2 为时调整 , 按 P3.4时加 1, 按 P3.3调闹钟结束 . 在闹铃时可按 P3.2 停闹 , 不按闹铃 1 分钟。
(3)按下 P3.4 进入秒表状态 : 再按 P3.4秒表又启动 , 按 P3.4暂停 , 再按 P3.4 秒表清零 , 按 P3.4 退出秒表回到时钟状态。
4.晶振模块在AT89S51芯片内部有一个高增益反相放大器,其输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2。
而在芯片内部, XTAL1和 XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
晶振电路三、程序设计源程序代码;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AT89S52时钟程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*****************************************************************定时器T0、 T1溢出周期为50MS, T0 为秒计数用,T1 为调整时闪烁及秒表定时用,P3.2 、 P3.3 、 P3.4 为调整按钮,P0 口为字符输出口,P2 为扫描口, P1.2 为蜂呜器口,采用共阳显示管。
50H-55H 为闹钟定时单元,60H-65H 为秒表计时单元,70H-75H 为显示时间单元,76H-79H 为分时计时单元。
03H标志 =0 时钟闪烁, =1 秒表,05H=0,不闹铃,=1要闹铃.07H每秒改变一次,用作间隔呜叫 .*****************************************************************DISPFIRST EQU 30H ;显示首址存放单元BELL EQU P1.2CONBS EQU 2FH ;存放报时次数CLOCK EQU 2DH****************************************中断入口程序****************************************ORG 0000H;程序执行开始地址LJMP START ;跳到标号 START执行ORG 0003H;外中断 0中断程序入口RETI;外中断 0中断返回ORG 000BH;定时器 T0 中断程序入口LJMP INTT0 ;跳至 INTTO执行ORG 0013H;外中断 1中断程序入口RETI;外中断 1 中断返回ORG 001BH;定时器 T1 中断程序入口LJMP INTT1 ;跳至 INTT1 执行ORG 0023H;串行中断程序入口地址RETI;串行中断程序返回****************************************以下程序开始;;****************************************整点报时用QQQQ:MOV A,#10HMOV B,79HMUL ABADD A,78HMOV CONBS,ABSLOOP: LCALL DS21MSLCALL DL1SLCALL DL1SLCALL DL1SDJNZ CONBS,BSLOOPCLR 08H;清整点报时标志AJMP START1****************************************主程序开始;;****************************************START: LCALL ST;上电显示 00:00:00MOV R0,#00H; 清 00H-7FH 内存单元MOV R7,#80H;CLEARDISP: MOV@R0,#00H;INC R0;DJNZ R7,CLEARDISP ;MOV20H,#00H; 清 20H(标志用)MOV55H,#1MOV54H,#2MOV7AH,#0AH;放入"熄灭符"数据MOV TMOD,#11H;设 T0、 T1 为 16 位定时器MOV TL0,#0B0H;50MS 定时初值(T0 计时用)MOV TH0,#3CH;50MS 定时初值MOV TL1,#0B0H;50MS 定时初值(T1 闪烁定时用)MOV TH1,#3CH;50MS 定时初值SETB EA;总中断开放SETB ET0;允许 T0中断SETB TR0;开启 T0定时器MOV R4,#14H;1秒定时用计数值(50MS×20)MOV DISPFIRST,#70H ;显示单元为70-75H; 以下主程序循环START1: LCALL DISPLAY;调用显示子程序JNB P3.2,SETMM1 ;P3.2口为0时转时间调整程序JNB P3.3,TSFUN ;定时闹铃设定JNB P3.4,FUNPT ;秒表功能(STOP,RUN,CLR)JB 08H, QQQQAJMP START1;P3.2口为1时跳回START1 FUNPT: LJMP FUNPTTSTART12: LJMP START1以下闹铃时间设定程序, 按 P3.3 进入设定TSFUN: LCALL DS20MSJB P3.3,START1;WAIT113: JNB P3.3,WAIT113 ;等待键释放JB 05H,CLOSESP;闹铃已开的话,关闹铃MOV DISPFIRST,#52H ;进入闹铃设定程序,显示52-55H 闹钟定时单元DSWAIT: SETB EALCALL DISPLAYJNB P3.4,DSFINC;分加1JNB P3.2,DSDEC;分减1JNB P3.3,DSSFU;进入时调整AJMP DSWAITCLOSESP: CLR 05H;关闹铃标志CLR BELLAJMP START1DSSFU: LCALL DS20MS;消抖JB P3.3, DSWAITLJMP DSSFUNN;进入时调整;SETMM1: LJMP SETMM;转到时间调整程序SETMM DSFINC : LCALL DS20MS;消抖JB P3.4, DSWAITDSWAIT12: LCALL DISPLAY;等键释放JNB P3.4, DSWAIT12CLR EAMOV R0,#53H;LCALL ADD1;闹铃设定分加1MOV A,R3;分数据放入ACLR C;清进位标志CJNE A,#60H,ADDHH22;ADDHH22: JC DSWAIT;小于 60 分时返回ACALL CLR0;大于或等于60 分时分计时单元清 0AJMP DSWAITDSDEC : LCALL DS20MS;消抖JB P3.2, DSWAITDSWAITEE: LCALL DISPLAY;等键释放JNB P3.2, DSWAITEECLR EAMOV R0,#53H;LCALL sub1;闹铃设定分减 1LJMP DSWAIT;以下秒表暂停清零功能程序;按下 P3.4 切换秒表功能,再按开始计时,暂停或清 0, 最后按 P3.4 退出秒表回到时钟计时FUNPTT: LCALL DS20MSJB P3.4,START12WAIT22:JNB P3.4,WAIT21CPL03HJNB03H,TIMFUNMOV DISPFIRST,#60H ;显示秒表数据单元MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HMOV TL1,#0F0H;10MS 定时初值MOV TH1,#0D8H;10MS 定时初值WAIT88:LCALL DS20MSJB P3.4,WAIT81WAIT99:JNB P3.4,WAIT99SETB TR1;T1运行控制软件SETB ET1;T1溢出中断允许WAIT33:LCALL DS20MSJB P3.4,WAIT31WAIT44: JNB P3.4,WAIT41CLR ET1CLR TR1WAIT55: LCALL DS20MSJB P3.4,WAIT51WAIT66: JNB P3.4,WAIT61MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HTIMFUN:MOV DISPFIRST,#72H ;显示时钟数据单元CLR ET1CLR TR1AJMP FUNSS11FUNSS11: AJMP START1; 以下键等待释放时显示不会熄灭用WAIT21:LCALL DISPLAYAJMP WAIT22WAIT31:LCALL DISPLAYAJMP WAIT33WAIT41:LCALL DISPLAYAJMP WAIT44WAIT51:LCALL DISPLAYAJMP WAIT55WAIT61:LCALL DISPLAYAJMP WAIT66WAIT81:LCALL DISPLAYAJMP WAIT88WAIT91:LCALL DISPLAYAJMP WAIT99 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1秒计时程序;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T0 中断服务程序INTT0: PUSH ACC;累加器入栈保护PUSH PSW;状态字入栈保护CLR ET0;关 T0 中断允许CLR TR0;关闭定时器 T0MOV A,#0B7H;中断响应时间同步修正ADD A,TL0;低 8 位初值修正MOV TL0,A;重装初值(低 8 位修正值)MOV A,#3CH;高 8 位初值修正ADDC A,TH0;MOV TH0,A;重装初值(高 8 位修正值)SETB TR0;开启定时器 T0DJNZ R4, OUTT0;20次中断未到中断退出ADDSS: MOV R4,#14H;20次中断到( 1 秒)重赋初值CPL07H;闹铃时间隔呜叫用MOV R0,#71H;指向秒计时单元(71H-72H)ACALL ADD1;调用加 1 程序(加 1 秒操作)MOV A,R3;秒数据放入 A( R3 为 2 位十进制数组合)CLR C;清进位标志CJNE A,#60H,ADDMM;ADDMM: JC OUTT0;小于 60 秒时中断退出ACALL CLR0;大于或等于 60 秒时对秒计时单元清0MOV R0,#77H;指向分计时单元(76H-77H)ACALL ADD1;分计时单元加 1 分钟MOV A,R3;分数据放入 ACLR C;清进位标志CJNE A,#60H,ADDHH;ADDHH: JC OUTT0;小于 60 分时中断退出ACALL CLR0;大于或等于 60 分时分计时单元清0LCALL DS20MS;正点报时SETB 08HMOV R0,#79H;指向小时计时单元(78H-79H)ACALL ADD1;小时计时单元加 1 小时MOV A,R3;时数据放入 ACLR C;清进位标志CJNE A,#24H,HOUR;HOUR: JC OUTT0;小于 24 小时中断退出ACALL CLR0;大于或等于 24 小时小时计时单元清 0 OUTT0: MOV72H,76H;中断退出时将分、时计时单元数据移MOV73H,77H;入对应显示单元MOV74H,78H;MOV75H,79H;LCALL BAOJPOP PSW;恢复状态字(出栈)POP ACC;恢复累加器SETB ET0;开放 T0 中断RETI;中断返回;****************************************;;闪动调时程序秒表功能程序;;;****************************************;T1 中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时INTT1:PUSH ACC;中断现场保护PUSH PSW;JB03H, MMFUN;=1时秒表MOV TL1,#0B0H;装定时器 T1 定时初值MOV TH1,#3CH;DJNZ R2,INTT1OUT;0.3 秒未到退出中断( 50MS中断 6 次)MOV R2,#06H; 重装 0.3 秒定时用初值CPL02H;0.3 秒定时到对闪烁标志取反JB02H,FLASH1;02H 位为 1 时显示单元 " 熄灭 "MOV72H,76H;02H位为 0 时正常显示MOV73H,77H;MOV74H,78H;MOV75H,79H;INTT1OUT:POP PSW;恢复现场POP ACC;RETI;中断退出FLASH1:JB01H,FLASH2;01H位为 1 时,转小时熄灭控制MOV72H,7AH;01H位为 0 时, " 熄灭符 " 数据放入分MOV73H,7AH;显示单元( 72H-73H),将不显示分数据MOV74H,78H;MOV75H,79H;AJMP INTT1OUT;转中断退出FLASH2:MOV 72H,76H;01H位为 1 时, " 熄灭符 " 数据放入小时MOV73H,77H;显示单元( 74H-75H),小时数据将不显示MOV74H,7AH;MOV75H,7AH;AJMP INTT1OUT;转中断退出;MMFUN :CLR TR1MOV A,#0F7H;中断响应时间同步修正, 重装初值( 10ms)ADD A,TL1;低 8 位初值修正MOV TL1,A;重装初值(低 8 位修正值)MOV A,#0D8H;高 8 位初值修正ADDC A,TH1;MOV TH1,A;重装初值(高 8 位修正值)SETB TR1;开启定时器 T1MOV R0,#61H;指向秒计时单元(71H-72H)ACALL ADD1;调用加 1 程序(加 1 秒操作)CLR C;MOV A,R3;JZ FSS1;加 1 后为 00, C=0AJMP OUTT01;加1后不为00,C=1FSS1:ACALL CLR0;大于或等于60 秒时对秒计时单元清 0 MOV R0,#63H;指向分计时单元(76H-77H)ACALL ADD1;分计时单元加 1 分钟MOV A,R3;分数据放入 ACLR C;清进位标志CJNE A,#60H,ADDHH1;ADDHH1: JC OUTT01;小于 60 分时中断退出LCALL CLR0;大于或等于 60 分时分计时单元清 0MOV R0,#65H;指向小时计时单元( 78H-79H)ACALL ADD1;小时计时单元加 1 小时OUTT01:POP PSW;恢复状态字(出栈)POP ACC;恢复累加器RETI;中断返回****************************************;;加1子程序;;;****************************************ADD1: MOV A,@R0;取当前计时单元数据到ADEC R0;指向前一地址SWAP A;A中数据高四位与低四位交换ORL A,@R0;前一地址中数据放入 A 中低四位ADD A,#01H;A加1操作DA A;十进制调整MOV R3,A;移入 R3 寄存器ANL A,#0FH;高四位变 0MOV@R0,A;放回前一地址单元MOV A,R3;取回 R3 中暂存数据INC R0;指向当前地址单元SWAP A;A中数据高四位与低四位交换ANL A,#0FH;高四位变 0MOV@R0,A;数据放入当削地址单元中RET;子程序返回;****************************************;;分减1子程序;;;****************************************;SUB1: MOV A,@R0;取当前计时单元数据到A DEC R0;指向前一地址SWAP A;A中数据高四位与低四位交换ORL A,@R0;前一地址中数据放入 A 中低四位JZ SUB11DEC A;A减1操作SUB111: MOV R3,A;移入 R3 寄存器ANL A,#0FH;高四位变 0CLR C;清进位标志SUBB A,#0AHSUB1111: JC SUB1110MOV @R0,#09H ;大于等于 0AH,为 9 SUB110: MOV A,R3;取回 R3 中暂存数据INC R0;指向当前地址单元SWAP A;A中数据高四位与低四位交换ANL A,#0FH;高四位变 0MOV@R0,A;数据放入当削地址单元中RET;子程序返回;SUB11: MOV A,#59HAJMP SUB111SUB1110:MOV A,R3;移入 R3 寄存器ANL A,#0FH;高四位变 0MOV@R0,AAJMP SUB110;****************************************;;时减1子程序;;;****************************************SUBB1:MOV A,@R0;取当前计时单元数据到A DEC R0;指向前一地址SWAP A;A中数据高四位与低四位交换ORL A,@R0;前一地址中数据放入 A 中低四位JZ SUBB11;00减 1 为 23(小时)DEC A;A减1操作SUBB111:MOV R3,A;移入 R3 寄存器ANL A,#0FH;高四位变 0CLR C;清进位标志SUBB A,#0AH;时个位大于 9 为 9SUBB1111: JC SUBB1110;MOV@R0,#09H ;大于等于 0AH,为 9 SUBB110: MOV A,R3;取回 R3 中暂存数据INC R0;指向当前地址单元SWAP A;A中数据高四位与低四位交换ANL A,#0FH;高四位变 0MOV@R0,A;时十位数数据放入RET;子程序返回;SUBB11: MOV A,#23HAJMP SUBB111SUBB1110:MOV A,R3;时个位小于 0A 不处理ANL A,#0FH;高四位变 0MOV@R0,A;个位移入AJMP SUBB110;****************************************;;清零程序;;;****************************************;对计时单元复零用CLR0: CLR A;清累加器MOV@R0,A;清当前地址单元DEC R0;指向前一地址MOV@R0,A;前一地址单元清 0RET;子程序返回;;****************************************;;时钟时间调整程序;;;****************************************;当调时按键按下时进入此程序SETMM: CLR ET0;关定时器 T0 中断CLR TR0;关闭定时器 T0LCALL DL1S;调用 1 秒延时程序LCALL DS20MS;消抖JB P3.2,CLOSEDIS ;键按下时间小于 1 秒,关闭显示(省电)MOV R2,#06H;进入调时状态,赋闪烁定时初值MOV70H,#00H;调时时秒单元为 00秒MOV71H,#00HSETB ET1;允许 T1 中断SETB TR1;开启定时器 T1SET2: JNB P3.2,SET1;P3.2口为 0(键未释放),等待SETB00H;键释放,分调整闪烁标志置1 SET4: JB P3.2,SET3;等待键按下LCALL DL05S;有键按下,延时0.5 秒LCALL DS20MS;消抖JNB P3.2,SETHH;按下时间大于0.5 秒转调小时状态MOV R0,#77H;按下时间小于0.5 秒加 1 分钟操作LCALL ADD1;调用加 1 子程序MOV A,R3;取调整单元数据CLR C;清进位标志CJNE A,#60H,HHH;调整单元数据与60 比较HHH: JC SET4;调整单元数据小于 60 转 SET4循环LCALL CLR0;调整单元数据大于或等于60时清 0CLR C;清进位标志AJMP SET4;跳转到 SET4循环CLOSEDIS: SETB ET0;省电( LED不显示)状态。