单片机完整电子时钟设计报告.doc
单片机完整电子时钟设计报告
目录一.作品简介 (2)二.单片机系统原理图及工作原理描述 (2)三.设计过程中碰到的问题及解决方法 (4)四.测试数据及误差分析 (4)五.总结 (5)六.程序模块框图 (5)七.程序清单 (7)单片机的个性化电子钟设计报告一.作品简介该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,4位LED数码显示,分别显示“小时:分钟”。
该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。
使用方法:开机后显示日期,学号,时钟在00:00:00起开始计时。
(1)长按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退出秒表回到时钟状态。
二.单片机系统原理图及工作原理描述(1)总原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块组成。
(2)各个模块说明1.单片机最小系统AT89S52是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz 的晶体震荡器,在此系统中使用12MHz 的晶振。
AT89S52具有以下标准功能: 8k 字节Flash ,256字节RAM ,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。
(完整)基于STC单片机的电子时钟毕业设计(DOC)
电子时钟[摘要] 本设计是基于STC单片机的电子时钟技术,由STC12C5A16S2芯片和LCD1602液晶显示屏,DS18B20进行温度测量,辅以必要的的电路,构成一个单片机定时闹钟。
电子钟可采用数字电路实现,也可以采用单片机来完成.LCD显示“时”,“分”,LED闪动来做秒计数,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。
现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。
在这次设计中主要是用STC12C5A16S2来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。
[关键词] 定时闹钟STC12C5A16S2 LCD1602Time clock[Abstract] The regular alarm clock designers design, by the microcontroller STC12C5A16S2 chip and LCD1602 display、 DS18B20 , combined with the necessary circuitry to form a single—chip timer alarm clock. Clock can be digital circuit,the microcontroller can also be used to complete。
LCD display "when”, "sub”,LED flash to do the second count, regular time to be able to sound an alarm or start relay to control the electrical start and stop. Now is the era of highly developed automation, especially electronic products are relying on the internal control circuitry to achieve control of the product to achieve the purpose of automatic operation, which requires us to do the design of electrical components and circuits to support 。
单片机电子时钟课程设计设计报告
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(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 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
单片机电子时钟设计报告
电源模块的设计与实现
电源模块的选择
根据设计需求和预算,选择合适的电源模块。常用的电源模块包括线性电源和开 关电源。
电源管理的实现
为了延长电源使用寿命和确保时钟的准确性,需要设计合理的电源管理策略。这 可能包括电源开关控制、电压调节等。
03
单片机电子时钟硬件设计
单片机主控芯片的选择与连接
单片机主控芯片
时钟信号的产生
单片机内部通常有一个振荡器,用于 产生原始时钟信号。常用的振荡器类 型包括晶体振荡器和RC振荡器。
时钟信号的控制
为了确保时钟信号的稳定性和准确性 ,单片机内部通常包含一个时钟管理 器,用于对原始时钟信号进行分频、 倍频或校准。
显示模块的设计与实现
显示模块的选择
常用的显示模块包括LED数码管、 LCD液晶显示屏等。选择哪种显示模 块取决于设计需求和预算。
201 4
05
单片机电子时钟测试与验证
测试环境与测试工具的准备
测试环境
为确保单片机电子时钟的稳定运行,需搭建一个适宜的测试环境,包括电源、单片机开 发板、显示屏等必要设备。
测试工具
选用适当的测试工具,如万用表、示波器、逻辑分析仪等,用于检测和调试单片机电子 时钟的各项功能。
测试方案的设计与实施
选择一款适合的微控制器,如STM32F103C8T6,具有足够 的IO口和定时器资源,能够满足电子时钟的控制需求。
连接方式
将单片机主控芯片的电源、地线、复位电路等基本配置与电 源模块连接,同时将IO口与显示模块、数据存储模块等外围 设备连接。
时钟芯片的选择与连接
时钟芯片
选择一款高精度的实时时钟芯片,如DS1302,能够提供稳定的计时基准。
04
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、引言。
随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。
其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。
本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。
二、设计方案。
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,对硬件和软件进行优化设计,结构合理,功能完善。
最终实现了日期时间的实时显示、闹钟功能、日历功能等多种功能。
同时,本设计能够进行时间调亮和调暗,具有操作方便简单、显示清晰美观等特点。
51单片机电子时钟设计报告
51单片机电子时钟设计报告一、引言电子时钟是一种常见的电子产品,它通过控制数字显示器的数字显示,来实现时间的显示功能。
本报告将介绍一种基于51单片机的电子时钟设计方案。
二、系统架构本电子时钟系统采用分级结构,分为实时时钟电路、中央处理器、显示器等核心模块。
实时时钟电路模块负责提供系统的时钟信号,中央处理器负责对时间进行处理和控制,显示器用于显示时间。
三、硬件设计1.实时时钟电路实时时钟电路采用DS1302芯片,该芯片集成了时钟实时计数器,能够提供精确的时钟信号。
同时,芯片还内置了电池供电电路,当外部电源中断时,电子时钟可以通过电池继续工作。
2.中央处理器中央处理器使用51单片机,它具有较强的计算和控制能力,可以方便地对时间进行处理和控制。
通过与实时时钟电路的通信,中央处理器可以获取当前时间,并进行各种计算操作。
3.显示器显示器采用数码管,可以直观地显示时间。
通过中央处理器控制,可以实现小时、分钟、秒钟的显示,并且可以进行亮度的调节。
四、软件设计1.时钟管理中央处理器的软件主要负责对时间的管理。
它可以从实时时钟电路中获取当前时间,并根据需要进行时间的累加和更新。
同时,中央处理器还可以通过按键实现时间的手动调节。
2.显示控制中央处理器通过对数码管的控制,实现时间的显示功能。
它可以根据当前时间的变化,动态地更新数码管的显示内容。
同时,还可以通过按键控制,对数码管的亮度进行调节。
五、系统特点1.精确性高:采用DS1302芯片实时时钟电路,能够提供精确的时钟信号,确保时间的准确性。
2.易于操作:中央处理器软件通过按键实现时间的调节,操作简单方便。
3.显示效果好:采用数码管进行显示,显示效果清晰,易于观察时间。
六、应用领域本电子时钟设计适用于各种需要显示时间的场景,如家庭、办公室、学校等。
七、总结本报告介绍了一种基于51单片机的电子时钟设计方案。
通过实时时钟电路提供精确的时钟信号,中央处理器进行时间管理和控制,显示器进行时间的显示。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、引言。
电子时钟是现代社会中常见的时间显示设备,其精准的时间显示功能在各个领域都有着重要的应用价值。
本课程设计旨在通过单片机技术,设计并实现一个简单的电子时钟,以帮助学生深入理解单片机的工作原理和应用技术。
二、课程设计内容。
1. 电子时钟的基本原理。
电子时钟是通过内部的振荡器产生稳定的脉冲信号,再经过分频和计数等操作,最终显示出精确的时间。
学生需要了解时钟电路的基本组成和工作原理,包括振荡器、分频器、计数器等模块的功能和相互配合关系。
2. 单片机的应用技术。
本课程设计中,我们选用了常见的单片机作为控制核心,学生需要学习单片机的基本结构、工作原理以及编程技术,掌握单片机与外围元器件的连接和通信方法,以及如何利用单片机实现电子时钟的各项功能。
3. 电子时钟的功能设计。
在课程设计中,学生需要设计电子时钟的基本功能,包括时间的显示、设置和调整功能,以及闹钟、定时器等附加功能。
通过设计和实现这些功能,学生能够更好地理解单片机的应用和程序设计技术。
4. 硬件电路的搭建与调试。
除了软件设计,学生还需要学会如何搭建电子时钟的硬件电路,并进行相应的调试工作。
这将帮助他们更深入地理解电子时钟的工作原理,以及单片机与外围电路的配合方式。
5. 系统整体性能测试与优化。
最后,学生需要对设计的电子时钟系统进行整体性能测试,并对系统进行优化,提高其稳定性和可靠性。
这一步骤将帮助他们更全面地掌握电子时钟设计的整体流程和技术要点。
三、课程设计实施。
在课程设计实施过程中,学生将分为若干小组,每个小组负责一个电子时钟系统的设计与实现。
在指导老师的指导下,他们将逐步完成电子时钟的功能设计、硬件搭建、软件编程、系统调试和性能优化等工作。
通过实际动手操作,学生将更好地理解课程内容,并培养实际动手能力和团队合作意识。
四、课程设计总结。
通过本课程设计,学生将全面掌握单片机技术在电子时钟设计中的应用,深入理解电子时钟的工作原理和设计方法,提高动手能力和实际应用能力。
单片机电子时钟设计报告
四、设计思路1、硬件设计思路1)本人使用Proteus软件绘制硬件系统。
硬件系统以AT89C51单片机、显示系统、键控系统构成。
晶振电路由12MHz振荡器和两个25pF电容构成。
复位电路采用按键脉冲复位电路,由一个SW-SPST按键、一个10k和一个1k电阻、两个22uf电容构成。
2)显示系统由六位共阴极红色数码管进行动态扫描输出。
3)按键部分由三个SW-SPST键构成。
4)扬声器为交流SOUNDER。
5)如图,P0口上拉电阻为RESPACK-8,每位均为10k欧姆。
由于使用Proteus进行仿真,所以省去设置keil软件的麻烦,只要把WA VE编译产生的烧写HEX文件导入单片机即可仿真。
2、软件设计思路根据电路可以设计一个带整点报时、调时功能的电子钟。
根据要求对硬件功能进行分配:本系统由P0口做段码口,P2口做位码口。
P3.0为启停键(控制电子钟的启动和停止),P3.1,P3.2为调时键,其中P3.1为取码键(选择要调的位),P3.2为加一键(对选择的位进行加1操作)。
据功能程序可以由以下几部分组成:主程序、定时器中断子程序、显示子程序、延时子程序、启停子程序、调时子程序、调时比较子程序(调表时检测所调位是否溢出,并进行清0处理)、整点报时子程序。
1)主程序说明:本程序利用定时计数器T0进行定时。
首先设置T0工作模式为模式1,显示缓冲区清零,设置调时取位寄存器(存储所调位的地址)初值。
启动定时器。
进入循环模块后先调用显示子程序,然后判断启停键是否闭合。
如果闭合则调用启停子程序,如果断开就跳到下一项判断定时器是否停止,若停止则调用调时子程序,若启动则直接调用整点报时子程序。
2)中断子程序先介绍一下定时器产生秒的过程:定时器在模式1时为16位计数器,记到65535才溢出,最长计时65.535ms。
可以每隔50ms中断一次,中断20次为1秒。
计算初值由公式(216-X)×12/6/106=10-1得X=15536=3CB0H因此THO=3CH,TL0=0B0H此程序工作过程为:此程序把时分秒的个位和十位分开计算。
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电子时钟.doc
单片机汇编程序 51电子时钟电子钟设计实验报告一)实验目的:1、进一步掌握定时器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
3、进一步掌握数码显示电路的驱动方法。
4、进一步掌握键盘电路的驱动方法。
5、进一步掌握软件数据处理的方法。
二)内容要求:1、利用CPU的定时器和数码显示电路,设计一个电子时钟。
格式如下:XX XX XX 由左向右分别为:时、分、秒。
2、电子时钟有秒表功能。
3、并能用键盘调整时钟时间。
4、电子时钟能整点报时、整点对时功能。
5、能设定电子时钟的闹铃。
三)主要元件:电阻4.7K 10个 2K 1个四位共阳数码管1个二位共阳数码管1个按钮开关4个万用板(中板)1个 9012PNP 7个排线排阵若干电线一捆蜂鸣器1个最小系统一个四)系统说明:按P1.0键,如果按下的时间小于1秒进入省电模式(数码管不显示,开T0计时器),如果按下的时间大于1秒则进入时间调整.。
在时间调整状态:再按P1.0,如果按下时间大于0.5秒转调小时状态,按下时间小于0.5秒加1分钟操作。
在小时调整状态再按P1.0键,如果按下时间大于0.5秒退出时间调整,如果按下时间小于0.5秒加1小时操作。
按P1.1键,进入闹铃调分状态,按P1.2分加1,按P1.0分减1。
若再按P1.3,则进入调整状态,按P1.2时加1,按P1.0分时。
按P1.1键,闹铃有效,显示式样变为00:00:—0;再按P1.1键,闹铃无效,显示式样变为00:00:—。
按P1.3键,调整闹钟时间结束。
按P1.2键,进入秒表计时功能,按P1.2键暂停或清零,按P1.1键退出秒表回到时钟状态。
而且本系统还有整点报时功能,以及按键伴有声音提示。
五)程序流程图:开始 TO中断初始化保护现场进入功能调用显示定时初值校正程序子程序N Y键按下, 1S到,Y N加1S处理整点到NY恢复现场,中断返回按时间鸣叫次数主程序流程图 T0中断计时程序流程图T1中断保护现场T1中断服务程序流程图秒表/闪烁,时钟调时闪烁加10MS处理闪烁处理恢复现场,中断返回六)电路图七)程序清单:中断入口程序 ;; DISPFIRST EQU 30H BELL EQU P1.4CONBS EQU 2FHOUTPX EQU P2 ;P2位选OUTPY EQU P0 ;P0段选INP0 BIT P1.0INP1 BIT P1.1INP2 BIT P1.2ORG 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 DS20MSLCALL DL1SLCALL DL1SLCALL DL1SDJNZ CONBS,BSLOOPCLR 08HAJMP START;; 主程序 ;;START:MOV R0,#00H ;清70H-7AH共11个内存单元MOV R7,#80H ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#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 ,#70HSTART1: LCALL DISPLAY ;调用显示子程序JNB INP0,SETMM1 ;P1.0口为0时转时间调整程序JNB INP1,FUNSS ; 秒表功能,P1.1按键调时时作减1加能JNB INP2,FUNPT ;STOP,PUSE,CLRJNB P1.3,TSFUNSJMP START1 ;P1.0口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM FUNSS: LCALL DS20MSJB INP1,START1WAIT11: JNB INP1,WAIT11CPL 03HMOV DISPFIRST,#00H :显示秒表数据单元MOV 70H,#00HMOV 71H,#00HMOV 76H,#00HMOV 77H,#00HMOV 78H,#00HMOV 79H,#00HAJMP START1FUNPT: LCALL DS20MSJB INP2,START1WAIT22: JNB INP2,WAIT21CLR ET0CLR TR0WAIT33: JB INP2,WAIT31 LCALL DS20MSJB INP2,WAIT33WAIT66: JNB INP2,WAIT61 MOV R0,#70H ;清70H-79H共10 个内存单元MOV R7,#0AH ;CLEARP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARP ;WAIT44: JB INP2,WAIT41 LCALL DS20MSJB INP2,WAIT44WAIT55: JNB INP2,WAIT51 SETB ET0SETB TR0AJMP START1WAIT21: LCALL DISPLAY AJMP WAIT22WAIT31: LCALL DISPLAY AJMP WAIT33WAIT41: LCALL DISPLAYAJMP WAIT44WAIT51: LCALL DISPLAYAJMP WAIT55WAIT61: LCALL DISPLAYAJMP WAIT66 TSFUN:LCALL DS20MSWAIT113:JNB P1.3,WAIT113JB 05H,CLOSESPMOV DISPFIRST,#50HMOV 50H,#0CHMOV 51H,#0AHDSWAIT:SETB EALCALL DISPLAYJNB P1.2,DSFINCJNB P1.0,DSDECJNB P1.3,DSSFU AJMP DSWAITCLOSESP:CLR 05HCLR BELLAJMP START1 DSSFU:LCALL DS20MS JB P1.3,DSWAIT LJMP DSSFUNN DSFINC:LCALL DS20MS JB P1.2,DSWAIT DSWAIT12:LCALL DISPLAY JNB P1.2,DSWAIT12 CLR EAMOV R0,#53H LCALL ADD1MOV A,R3CLR CCJNE A,#60H,ADDHH22ADDHH22:JC DSWAITACALL CLR0AJMP DSWAITDSDEC:LCALL DS20MSLCALL DISPLAYDSWAITEE:LCALL DISPLAYJNB P1.0,DSWAITEECLR EAMOV R0,#53HLCALL SUB1LJMP DSWAIT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0JB 03H,FSSMOV 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秒)重赋初值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秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志JB 03H,OUTT0 ;秒表时最大数为99CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;LCALL BAOJPOP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回 ;秒表计时程序(10MS加1),低2位为0.1、0.01秒,中间2位为秒,最高位为分。
单片机电子时钟课程设计设计报告
单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(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级中断结构,全双工串行口,片内晶振及时钟电路。
基于单片机C语言电子时钟完整版(闹钟,整点报时)
《单片机技术》课程设计说明书数字电子钟系、部:电气与信息工程学院学生姓名:指导教师:职称专业:班级:完成时间:2013-06-07摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.Key words Electronic clock;;AT89S52;Hardware Design;Software Design目录1设计课题任务、功能要求说明及方案介绍 (1)1.1设计课题任务 (1)1.2功能要求说明 (1)1.3设计总体方案介绍及原理说明 (1)2设计课题硬件系统的设计 (2)2.1设计课题硬件系统各模块功能简要介绍 (2)2.2设计课题电路原理图、PCB图、元器件布局图 (2)2.3设计课题元器件清单 (5)3设计课题软件系统的设计 (6)3.1设计课题使用单片机资源的情况 (6)3.2设计课题软件系统各模块功能简要介绍 (6)3.3设计课题软件系统程序流程框图 (6)3.4设计课题软件系统程序清单 (10)4设计结论、仿真结果、误差分析、教学建议 (21)4.1设计课题的设计结论及使用说明 (21)4.2设计课题的仿真结果 (21)4.3设计课题的误差分析 (22)4.4设计体会 (22)4.5教学建议 (22)结束语 (23)参考文献 (24)致谢 (25)附录 (26)1 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。
单片机电子时钟设计报告
一、实习题目单片机数字钟设计二、实习目的随着我国科学技术的飞速发展,单片机的应用越来越广泛。
单片机即单片微型计算机,由RAM ,ROM,CPU构成,定时计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
为了进一步了解51单片机的定时器,设计一个电子时钟,在此对AT89C51单片机在时钟计数上进行了研究。
数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
三、实习任务及内容设计内容:1、利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。
2、系统能够实现六位LED显示,按照小时:分钟:秒显示时间。
3、在系统时间为整点时,LED闪烁(2Hz)5秒。
设计目标:1.掌握单片机定时器及中断的应用方法。
2.掌握按键、数码管扩展方法。
四、团队合作情况团队分工队长:张诚队员:于江东、张翔本团队共三人,由张诚担任团队队长,分工合作,各司其职,具体分工如下:(1)负责数字钟硬件设计及调试:主要由张翔完成(2)基于proteus的电路仿真:主要于江东完成(3)负责数字钟程序编写:主要由张诚完成(4)撰写报告:主要由张诚、于江东和张翔完成我们组拿到任务书以后,首先我们对实习内容及任务进行了探讨,共同讨论用什么样的方法实现任务书的要求及细节问题,为了不浪费时间,然后大家开始进行分工,各自以自己的任务为主,同时互相帮助,在此过程中,我们同组人员之间相互合作、默契配合,遇到问题一起加以讨论解决,不同的思路与意见的两个人在一起分享讨论,并最终采用得到的最为理想与完善的方案。
最终调试有我们一起进行,调试过程中遇到很多问题,遇到问题大家一起分析,查资料,百度想办法解决,在这个过程中锻炼了我们自己的团队协作能力与沟通能力。
单片机电子时钟课程设计报告.
单片机电子时钟课程设计报告.
本设计利用单片机AT89C2051实现一个电子时钟,该时钟可以用来显示24小时制或12小时制的时间,具有实时显示功能。
本课程设计使用了单片机的定时器、存储器、计数器等内部模块以及外部的实时时钟和数码管显示器来实现。
首先构建系统的硬件结构,核心硬件组件有单片机AT89C2051、DS1302实时时钟以及七段LED数码管,这三个部件共同构成了电子时钟的硬件结构。
然后,根据实际需求,利用DS1302实时时钟芯片来开发整个系统。
接着,根据中断总线对时钟芯片进行数据交换,通过时钟芯片与单片机进行管理和操作,使得两者能够有效地进行实时数据交换,从而实现实时时钟功能。
最后,利用编译器编写源代码并下载到单片机中,控制实时时钟的输入输出以及两个七段数码管的显示,实现电子时钟的功能。
最后,实验通过电子时钟的设计,验证了设计的功能正确性,时钟显示正确,可以正常使用。
单片机电子时钟的设计报告
目录1 引言 (1)2 设计任务与要求 (2)2.1. 设计题目 (2)2.2. 设计要求 (2)3 系统的功能分析与设计方案 (3)3.1. 系统的主要功能 (3)3.2. 系统的设计方案 (3)3.3. 数码管显示工作原理 (4)3.4. 电路硬件设计 (5)3.4.1. 设计原理框图 (5)3.4.2. 电源部分 (5)3.4.3. 复位电路 (6)3.4.4. 指示灯电路 (6)3.4.5. 按键电路 (7)3.4.6. 时钟电路 (7)3.4.7. 驱动电路 (8)3.4.8. 数码管连接电路 (8)3.4.9. 主控模块AT89S52 (9)3.4.10. 材料清单 (10)3.4.11. 电路原理图、PCB图及实物图 (11)3.5. 软件设计 (13)3.5.1. 软件设计流程 (13)3.5.2. 完整源程序 (15)4 系统安装与调试 (21)4.1. 硬件电路的安装 (21)4.2. 软件调试 (21)5 课程设计总结 (22)参考文献 (23)致谢 (24)摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。
这次课程设计通过对它的学习、应用,以AT89S52芯片为核心,辅以必要的电路,设计了一个简易的单片机电子时钟,包括硬件电路原理的实现方案设计、软件程序编辑的实现、电子时钟正常工作的流程、硬件的制作与软件的调试过程。
电子时钟由5.0V直流电源供电,数码管能够比较准确显示时间,通过按键能够调整时间,从而到达学习、设计、开发软、硬件的能力。
关键词:单片机;AT89S52;电子时钟;数码管;按键1引言1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目一.作品介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 2 二.片机系原理及工作原理描述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 2 三.程中碰到的及解决方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 四.数据及差分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 五.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 5 六.程序模框⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 5 七.程序清⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7单片机的个性化电子钟设计报告一.作品简介该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控, 4 位 LED 数码显示,分别显示“小时:分钟”。
该作品主要用于24 小时计时显示,能整时报时 ,能作为秒表使用,能定时闹铃 1 分钟。
使用方法 :开机后显示日期,学号,时钟在00:00:00 起开始计时。
(1)长按进入调分状态 :分单元闪烁 ,按加 1,按减 1.再长按进入时调整状态 ,时单元闪烁 ,加减调整同调分 .按长按退出调整状态。
(2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加 1,再按为时调整 ,按时加 1,按调闹钟结束.在闹铃时可按停闹,不按闹铃 1 分钟。
(3)按下进入秒表状态:再按秒表又启动,按暂停 ,再按秒表清零 ,按退出秒表回到时钟状态。
二.单片机系统原理图及工作原理描述(1)总原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块组成。
(2)各个模块说明1.单片机最小系统AT89S52 是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051 ,8031 的指令系统,他的运行速度要比8051 快最高支持达33MHz 的晶体震荡器,在此系统中使用12MHz 的晶振。
AT89S52 具有以下标准功能:8k 字节 Flash, 256字节 RAM,32 位 I/O口线,看门狗定时器, 2 个数据指针,三个16 位定时器 / 计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52图正面图可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许 RAM、定时器 / 计数器、串口、中断继续工作。
掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2、显示模块在实际应用中,用户很少直接设计LCD 显示器驱动接口,一般是直接使用专用的LCD显示驱动器和LCD显示模块。
其中,LCD显示模块LCM( Liquid Crystal Display Module )是把 LCD显示器、背景光源、线路板和驱动集成电路等部件构成一个整体,作为一个独立的部件使用,具有功能较强、易于控制、接口简单等优点,在单片机系统中应用较多。
其内部结构如图2-8 所示。
LCD显示模块只留一个接口与外部通信。
显示模块通过这个接口接收显示命令和数据,并按指令和数据的要求进行显示。
外部电路通过这个接口读出显示模块的工作状态和显示数据。
LCD 显示模块一般带有内部显示RAM 和字符发生器,只要输入ASCII码就可以进行显示。
LCD显示模块按功能显示可分为:LCD段式显示模块、LCD字符型显示模块、LCD图形显示块三类。
本系统利用 4 位 LED数码管显示时间,共阳极结构。
LED数码管由7 段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。
3.按键模式本设计中主要有三个控制按键,按键功能为:为调时间模式,长按进入调分状态:分单元闪烁 ,按加1,按减 1.再长按进入时调整状态,时单元闪烁 ,加减调整同调分.按长按退出调整状态。
按进入设定闹时状态: 12:00: , 可进行分设定,按分加 1,再按为时调整 ,按时加1,按调闹钟结束.在闹铃时可按停闹,不按闹铃 1 分钟。
(3)按下进入秒表状态:再按秒表又启动 ,按暂停 ,再按秒表清零 ,按退出秒表回到时钟状态。
4.元件器材图 3.按键引脚图元器件型号 /大小单片机AT89S52译码器74LS164七段数码显示管一位共阳极LED发光二极管蜂鸣器二极管1N4007、 1N4148电阻1K、 10K、排阻电容10uF、 30pF、 100uF、 220uF晶振12M开关按键USB口其它芯片底槽、导线三.设计过程中碰到的问题及解决方法硬件方面:( 1)焊接三极管时,由于三个引脚间的距离太近,自己过于急躁,弄了很多锡在上面,造成短路;最后用吸锡器弄干净,重新焊接,有些锡粘在板上,必须用小刀把两引脚间的锡削掉。
这里花费了大量时间。
(2) LED 显示器有一排显示不出来,查明是接口虚焊问题。
重新补焊接显示器接口。
软件方面:(1)程序编写开始有点混乱,最后重新构思,确定各个按键功能,再根据各个功能编写,这样一步步来,思路比较清晰。
( 2)程序编写时感觉最难的是按键切换,开始感觉无法下手。
最后找了一些按键方面的程序,慢慢看,慢慢了解;然后根据自己设计的特点编写程序。
( 3)调试时感觉按键声太吵,影响到宿舍其他人,觉得作用不大,就去掉。
四.测试数据及误差分析(1 )测试数据如下:实际时间显示时间校准前12: 17: 00 12:17: 00校准后20: 52: 53 20:52: 50 测试总时间长度是8:35: 53,设计的时钟误差比实际时间慢 3 秒。
(2 )误差分析误差由元件的精确度和焊接导致的连接不稳定,以及软件算法上的缺陷而产生。
要消除这些误差,首先必须提高焊接电工技术,其次可以通过了解各元器件的特点,针对这些特点编写程序,用软件算法来克服这些误差。
本次设计时钟测试时比实际时间慢 3 秒,可以通过降低 T0 对机器周期计数时间来提高它的准确率。
五.总结数字电子钟所有功能都以实现,可以通过按键进行模式切换,并对其数值进行调节。
在这基础上还添加了省电模式,开机显示时间和学号,还有秒表,闹铃功能。
存在不足是设计的电子钟存在一定的误差,不能在实际中运用。
通过本次课程设计,对单片机AT89S52有更深入的了解,同时在对单片机进行软件编程的过程中,学会了单片机编程的流程控制,熟悉了单片机显示按键系统的编程实现。
六.程序模块框图硬件框图:蜂鸣器DOWNLOAD AT89S52LDE显示器时钟调整模式:N秒表模式:开始系统初始化是否按下设置键Y时间调整模式是否退出调整模式Y是否跟闹钟时间一致Y启动闹铃开始系统初始化是否按功能切换键Y切换秒表NN显示时间N显示时间整点报时模式:开始显示时间N分钟是否为00Y蜂鸣器响一次N七.程序清单;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AT89S52时钟程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;******************************************************************************;定时器 T0、 T1 溢出周期为50MS,T0 为秒计数用,T1 为调整时闪烁及秒表定时用,;、、为调整按钮, P0 口为字符输出口,P2 为扫描口,为蜂呜器口,采;用共阳显示管。
;50H-55H 为闹钟定时单元,60H-65H 为秒表计时单元,72H-75H 为显示时间单元,76H-79H ;为分时计时单元。
;03H 标志 =0 时钟闪烁, =1 秒表,05H=0,不闹铃, =1 要闹铃 .07H 每秒改变一次, ;用作间隔呜叫 .;******************************************************************************DISPFIRST EQU 30H;显示首址存放单元BELL EQUCONBS EQU 2FH;存放报时次数CLOCK EQU2DH;;****************************************;;中断入口程序;;;****************************************;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 ;上电显示年月日及班级学号MOV R0,#00H ;清 00H-7FH 内存单元MOV R7,#80H ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清 20H(标志用)MOV 55H,#1MOV 54H,#2MOV 7AH,#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,#72H显;示单元为 72-75H;以下主程序循环START1: LCALL DISPLAY ;调用显示子程序JNB ,SETMM1 ;口为 0 时转时间调整程序JNB ,TSFUN ;定时闹铃设定JNB ,FUNPT ;秒表功能( STOP,RUN,CLR)JB 08H, QQQQAJMP START1 ; 口为 1 时跳回 START1FUNPT: LJMP FUNPTTSTART12: LJMP START1;以下闹铃时间设定程序,按进入设定TSFUN:LCALL DS20MSJB,START1;WAIT113: JNB,WAIT113;等待键释放JB 05H,CLOSESP;闹铃已开的话,关闹铃MOV DISPFIRST,#52H ; 进入闹铃设定程序,显示52-55H 闹钟定时单元;DSWAIT: SETB EALCALL DISPLAYJNB ,DSFINC;分加 1JNB ,DSDEC;分减 1JNB ,DSSFU;进入时调整AJMP DSWAIT;CLOSESP: CLR 05H;关闹铃标志CLR BELLAJMP START1DSSFU: LCALL DS20MS;消抖JB, DSWAITLJMP DSSFUNN;进入时调整;SETMM1: LJMP SETMM;转到时间调整程序SETMM;DSFINC : LCALL DS20MS ;消抖JB , DSWAITDSWAIT12: LCALL DISPLAY ;等键释放JNB , 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 , DSWAITDSWAITEE: LCALL DISPLAY; 等键释放JNB, DSWAITEECLR EAMOV R0,#53H;LCALL sub1;闹铃设定分减 1LJMP DSWAIT;以下秒表暂停清零功能程序;按下切换秒表功能,再按开始计时,暂停或清0,最后按退出秒表回到时钟计时FUNPTT: LCALL DS20MSJB ,START12WAIT22:JNB ,WAIT21CPL 03HJNB 03H,TIMFUNMOV DISPFIRST,#60H ;显示秒表数据单元MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0H ;10MS 定时初值MOV TH1,#0D8H ;10MS 定时初值WAIT88:LCALL DS20MSJB,WAIT81WAIT99:JNB,WAIT99SETB TR1;T1 运行控制软件SETB ET1;T1 溢出中断允许WAIT33:LCALL DS20MSJB,WAIT31WAIT44:JNB,WAIT41CLR ET1CLR TR1WAIT55:LCALL DS20MSJB,WAIT51WAIT66:JNB,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 秒)重赋初值CPL 07H ; 闹铃时间隔呜叫用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: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ; 入对应显示单元MOV 74H,78H ;MOV 75H,79H ;LCALL BAOJPOP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放 T0 中断RETI ;中断返回;****************************************;;闪动调时程序秒表功能程序;;;****************************************;T1 中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时INTT1: PUSH ACC ;中断现场保护PUSH PSW ;JB 03H, MMFUN ;=1 时秒表MOV TL1, #0B0H ;装定时器 T1 定时初值MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;秒未到退出中断( 50MS 中断 6 次)MOV R2,#06H ;重装秒定时用初值CPL 02H ;秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H 位为 1 时显示单元 " 熄灭 "MOV 72H,76H ;02H 位为 0 时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H 位为 1 时,转小时熄灭控制MOV 72H,7AH ;01H 位为 0 时, "熄灭符 "数据放入分MOV 73H,7AH ; 显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H 位为 1 时, " 熄灭符 " 数据放入小时MOV 73H,77H ; 显示单元(74H-75H),小时数据将不显示MOV 74H,7AH ;MOV 75H,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=0FSS1: ACALL CLR0 ;大于或等于 60 秒时对秒计时单元清0MOV 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 ; 放回前一地址单元INC R0;指向当前地址单元SWAP A;A 中数据高四位与低四位交换ANL A,#0FH;高四位变0MOV @R0,A;数据放入当削地址单元中RET;子程序返回;****************************************;;分减1子程序;;;****************************************;SUB1: MOV A,@R0 ;取当前计时单元数据到 ADEC 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,为 9SUB110: MOV A,R3 ;取回 R3 中暂存数据INC R0 ;指向当前地址单元SWAP A ;A 中数据高四位与低四位交换ANL A,#0FH ;高四位变 0MOV @R0,A ;数据放入当削地址单元中;SUB11: MOV A,#59HAJMP SUB111SUB1110:MOV A,R3; 移入 R3 寄存器ANL A,#0FH;高四位变0MOV@R0,AAJMP SUB110;****************************************;; 时减1子程序;;;****************************************SUBB1:MOV A,@R0 ;取当前计时单元数据到 ADEC 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,为 9SUBB110: MOV A,R3 ;取回 R3 中暂存数据INC R0 ;指向当前地址单元SWAP A ;A 中数据高四位与低四位交换ANL A,#0FH ;高四位变 0RET; 子程序返回;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 ,CLOSEDIS ; 键按下时间小于 1 秒,关闭显示(省电)MOV R2,#06H ;进入调时状态,赋闪烁定时初值MOV 70H,#00H ;调时时秒单元为00 秒MOV 71H,#00HSETB ET1 ;允许 T1 中断SETB TR1 ;开启定时器 T1SET2: JNB ,SET1 ;口为 0(键未释放),等待SETB 00H ; 键释放,分调整闪烁标志置1 SET4: JB ,SET3 ;等待键按下LCALL DL05S ;有键按下,延时秒LCALL DS20MS ;消抖JNB ,SETHH ;按下时间大于秒转调小时状态MOV R0,#77H ; 按下时间小于秒加 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不显示)状态。