基于单片机的家用定时器设计
基于单片机的定时闹钟设计

基于单片机的定时闹钟设计设计定时闹钟是人们日常生活中常见的需求之一,而单片机技术的发展为定时闹钟的实现提供了可行的解决方案。
本文将介绍基于单片机的定时闹钟设计。
一、研究背景及意义在现代社会中,时间是人们日常生活中非常重要的一个因素。
为了更好地规划时间和提高生活效率,人们需要定时提醒自己进行各种活动。
闹钟作为定时提醒的工具,在人们的日常生活中扮演着不可替代的角色。
而基于单片机的定时闹钟实现具有高精度、多功能等优点,因此备受人们青睐。
二、技术方案设计本文设计的基于单片机的定时闹钟主要由三部分组成:时钟电路、单片机控制电路和显示电路。
1. 时钟电路时钟电路采用RTC芯片,可以提供高精度的时间计量。
RTC芯片内部自带晶振,保证了较高的时钟精度。
时钟电路主要功能为提供当前时间,包括小时、分钟和秒。
2. 单片机控制电路单片机控制电路是实现定时闹钟的核心部分。
程序流程如下:①初始化:单片机启动后,需要对RTC芯片和闹钟设定进行初始化,包括设定当前时间和设定闹钟时间。
②计时函数:单片机开启定时器,在每秒钟时钟信号来临时,计时器会进行一次计数。
③闹钟判断:单片机判断当前时间是否等于闹钟设定时间,如果相等,则触发闹钟事件,启动蜂鸣器提示。
④按键设置:单片机可以通过按键进行时间设置和闹钟设置,包括增加或减少小时、分钟和秒数,并将设置信息保存至RTC芯片内存中。
3. 显示电路显示电路采用数码管进行显示,使用单片机控制输出数据。
数码管分为小时显示、分钟显示和秒显示,可以满足不同的显示需求。
三、实验结果分析通过实验结果可以发现,本文设计的基于单片机的定时闹钟可以准确地显示时间和定时提醒。
同时,可以通过按键进行时间和闹钟的设置,并存储至RTC芯片内部,保证了时间和闹钟的持久性。
四、结论及展望基于单片机的定时闹钟设计具有实用性和可行性,可以提高人们生活的效率和品质。
然而,本设计在信号筛选和抗干扰能力方面还有一定的改进空间,需要通过更深入的研究来进一步完善。
基于单片机的简易电子时钟设计_毕业设计论文 精品

论文题目基于单片机的简易电子时钟设计班级:xxxxxx专业:电子信息工程学生姓名:xxxx指导教师:xxxx日期:xxxx-xx-xx摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
关键字:单片机,数字时钟。
AbstractDigital clock has become an indispensable necessities in People's Daily life, widely used in personal family and office and other public places, to people's life, study, work, entertainment, bring great convenience. Due to the development of the digital integrated circuit technology and adopts the advanced quartz technology, walking make digital clock has advantages of accurate, stable performance, easy to carry, it is also used in timing, automatic feed and automatic control and other fields. Although already on the market at present the ready-made digital clock chip for sale, cheap, use is convenient, but in view of the single chip microcomputer timer function also can complete the design of the digital clock circuit, therefore is necessary for the design of digital clock. Here we will have learned more fragmented knowledge of digital circuit of the organic link, the system used in practice, to develop our comprehensive analysis and circuit design, programming, debugging circuit ability.SCM has small volume and powerful function, high reliability, low price and a series of advantages, not only has become widely used in the field of industrial measurement and control intelligent control instruments, and has penetrated into every corner of the people work and life, effectively promote the industry's technological transformation and upgrading of products, the wide prospect of application.Keywords: Single chip microcomputer,Digital clock.目录第一章设计方案 (1)1.1 课程设计目的 (1)1.2 设计要求 (1)1.3 实现时钟计时的基本方法 (1)1.4 电子钟的时间显示 (1)1.5 电子钟的时间调整 (2)1.6 总体方案介绍 (2)1.6.1 计时方案 (2)1.6.2 控制方案 (2)第二章系统硬件电路设计 (3)2.1 单片机模块设计 (3)2.1.1 芯片分析 (3)2.1.2 晶振电路 (4)2.1.3 复位电路 (5)2.2 数码显示模块设计 (5)2.3 按键模块 (8)第三章系统软件设计 (9)3.1 软件设计分析 (9)3.2 系统软件设计流程图 (9)3.2.1 主程序流程图 (9)3.2.2 定时器流程图 (9)3.2.3 按键检测流程图 (10)3.2.4 时间显示流程图 (10)3.3 源程序清单 (11)第四章系统仿真与实验测试 (16)4.1 系统仿真 (16)4.2 实验测试 (16)小结 (17)致谢 (18)参考文献 (19)附录 (20)第一章设计方案1.1 课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
单片机定时器毕业设计(论文)

毕业设计毕业设计题目:学生学号:学生姓名:所在系(部):专业及班级:指导教师:完成日期:《电气自动化》专业毕业设计任务书课题名称:定时系统课题类型:模拟课题设计的目的:(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时设计的任务及主要内容::第一章概述1 任务设计(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时2 总体方案(1)设计框图系统框图如图1(2)设计思路利用89C51单片机作为本系统的中控模块。
上电后,按下功能键进入调时状态,通过各单元电路将按键部分设定的时间通过定时时间显示部分中的LED数码管显示出来,当时间设定完毕后再次按下按键部分的功能键,闹铃模块的蜂鸣器鸣叫0.5S以示定时器开始工作,到点实现响铃,再由按键部分关闹铃。
中途可重新设置定时数值。
复位部分除上电初实现复位外,其余任何时候可按键实现复位。
注:按键部分一共有4个按键,分别为功能键P3.0,秒设定键P3.1(增),分设定键P3.2(增)分设定键P3.3(减)。
3、方案论证(1)定时部分定时部分是本设计的核心部分。
方案:本方案完全用软件实现定时。
原理为:在单片机内部存储器设两个字节分别存放时钟的分、秒信息。
利用键盘部分对定时时间进行设定,由定时显示部分数码管显示,同时定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒个位减1;若秒个位减到0,则判秒十位值是否为0,若不是,则秒个位赋9,秒十位减1;分同理。
该方案具有硬件电路简单的特点。
(2)闹铃器件的选择方案:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。
采用蜂鸣器闹铃结构简单,控制方便。
基于单片机控制的专用定时器设计.doc

扬州工业职业技术学院2009 —2010学年第二学期毕业设计课题名称:基于单片机控制的专用定时器设计设计时间:2010年9月—2010年12月系部:电子信息工程系班级:0801电气自动化技术姓名:顾臻指导教师:马小燕总目录第一部分任务书第二部分开题报告第三部分毕业设计正文第一部分任务书扬州工业职业技术学院毕业设计任务书第二部分开题报告扬州工业职业技术学院电子信息工程系11届毕业设计(论文)开题报告书(表1)第三部分毕业设计正文基于单片机控制专用定时器设计顾臻0801电气技术[摘要]本次毕业设计的内容是基于单片机控制的专用定时器,是用LED数码管显示的,以AT89C51芯片为核心,在LED数码管上显示3段时间。
且用按键可以切换设置定时界面和定时界面,用2个中断按键来设置需要定时的时间,到了定时的时间LED灯亮,还有个按键是用来切换剩余时间的。
因为是用单片机控制的,所以定时精度还是可以的。
[关键词] 单片机 LED数码管 c语言Based on single-chip microcomputer control special timer designGu Zhen0801 Electrical TechnologyAbstract:The graduation design content is based on single chip microcomputer control is to use special timer, LED digital display, based on AT89C51 single chip pipe chips for the core, in LED digital display 3 time tube. And use the buttons can switch Settings timing interface and timing interface, with two buttons to set the timer interruption of time, need to regular time LED lights, there is also a button is used to toggle the remaining time. Because it is the control of the MCU, so the timing precision can still.Key words:SCM LED Digital Tube C Language目录第一章绪论 (1)1.1 课题研究的背景 (1)1.2 定时器的发展和简介 (1)1.3 设计方案的比较和选择 (1)第二章硬件电路设计 (3)2.1 LED数码管简介 (3)2.1.1 LED数码管显示原理 (3)2.1.2 LED数码管显示方式的分类 (3)2.2 相关控制寄存器 (4)2.3系统元器件介绍 (5)2.3.1 AT89C51单片机的介绍 (5)2.3.2 独立键盘 (8)2.3.3晶振与复位电路的介绍 (8)2.3.4电路工作原理图 (10)第三章软件电路设计 (12)3.1系统流程图 (12)3.1.1 按键检测 (12)3.1.2定时器过程流程图 (13)3.2 程序设计 (13)第四章单片机的仿真与调试 (16)心得体会 (19)致谢 (20)参考文献 (21)第一章绪论1.1 课题研究的背景在我们平时的生活中,有许多地方可以看到定时的影子,如手表定时、电脑电视定时、工厂车间零件制作定时等等。
基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。
二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。
1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。
以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。
同时,根据用户按键的操作,可以调整时间的设定。
2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。
可以显示当前时间和设置的闹钟时间。
初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。
3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。
通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。
4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。
同时可以添加外部中断用于响应用户按键操作。
三、主要功能和实现步骤1.系统初始化。
2.设置定时器,每1秒产生一次中断。
3.初始化LCD显示屏,显示初始时间00:00:00。
4.查询键盘状态,判断是否有按键按下。
5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。
-数字键:根据键入的数字进行时间的调整和闹钟设定。
6.根据定时器的中断,更新时间的显示。
7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。
8.循环执行步骤4-7,实现连续的时间显示和按键操作。
四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。
但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。
基于AT89C51单片机定时闹钟设计

塔里木大学信息工程学院《单片机原理与外围电路》课程论文题目:单片机定时闹钟设计姓名:海热古丽·依马木学号:**********班级:计算机15-1班摘要:本设计是单片机定时闹钟系统,不仅能实现系统要求的功能,而且还有附加功能,即还能设定和修改当前所显示的时间。
本次设计的定时闹钟在硬件方面就采用了AT89C51芯片,用6位LED数码管来进行显示。
LED用P0口进行驱动,采用的是动态扫描显示,能够比较准确显示时时—分分—秒秒。
通过S1、S2、S3、和S4四个功能按键可以实现对时间的修改和定时,定时时间到喇叭可以发出报警声。
在软件方面采用汇编语言编程。
整个定时闹钟系统能完成时间的显示,调时和定时闹钟、复位等功能,并经过系统仿真后得到了正确的结果。
关键词:单片机、AT89C51、定时闹钟、仿真Abstract:T his design is a single-chip timing alarm system, can not only realize the function of system requirements, and there are additional functions, which can set up and modify the display time. Timing alarm clock this design adopts the AT89C51 chip on the hardware side, with 6 LED digital tube to display. LED P0 export driven, by using dynamic scanning display, can accurately display always -sub -seconds seconds. Through the S1, S2, S3, and S4 four function keys can be achieved on the time changes and timing, timing to the horn can send out alarm sound. Using assembly language programming in the software. The timing clock system has functions of time display, timing and timing alarm clock, reset and other functions, and the system simulation to obtain correct results.Keywords: single chip microcomputer, AT89C51, alarm clock, simulatio目录1绪论 (2)1.1课题背景及研究意义 (2)1.2国内外现状 (2)1.3课题的设计目的 (2)1.4课题的主要任务 (2)1.5课题的主要功能 (2)2系统概述 (3)2.1方案论证 (3)2.2系统设计原理 (3)3系统硬件设计 (4)3.1单片机AT89C51简介 (4)3.2数码管显示电路 (6)3.3时钟电路 (7)3.4喇叭:SPEAKER (8)4系统软件设计 (8)4.1系统软件设计说明 (8)4.2 程序调试 (8)4.3 程序流程图 (9)4.3仿真步骤 (10)4.4仿真结果 (10)结论 (12)参考文献 (13)附录A 系统整体电路 (14)附录B 全部程序清单 (14)附录C:PCB图和3D图 (23)1绪论1.1课题背景及研究意义进入信息时代,计算机的影子无处不在,带有像单片机一类嵌入式处理器的小型智能化电子产品,已经成为家用电器的主流,市场需求前景广阔,因此,掌握小型单片机应用系统设计方法,已成为当今电子应用工程师所必备的技能,定时闹钟具备小型单片机应用系统的一切要素,其结构简单、成本低廉、走时精确、设置方便,所以智能化方面有广泛的用途。
基于at89c51单片机的定时闹钟的设计

基于at89c51单片机的定时闹钟的设计本文介绍了基于AT89C51单片机的定时闹钟的设计。
文章将探讨设计目的和背景,并着重阐述定时闹钟的实现原理和功能。
本文档将介绍基于at89c51单片机的定时闹钟的硬件设计要点,包括电源、显示器、按键等组件选择和连接方式。
电源选择与连接在设计定时闹钟的硬件方案时,选择合适的电源是非常重要的。
以下是一些电源选择和连接的要点:使用稳定可靠的电源模块,例如直流电源模块,以确保单片机工作的稳定性。
将电源模块的正负极连接到at89c51单片机的VCC和GND引脚上。
注意电源的电压和电流要符合at89c51单片机的工作要求。
显示器选择与连接显示器是定时闹钟中显示时间和其他信息的重要组件。
以下是一些显示器选择和连接的要点:考虑使用液晶显示器 (LCD) 或数码管作为显示器,这些显示器可以清晰地显示数字和字符。
根据设计需求,选择合适的显示器尺寸和类型。
将显示器的控制引脚与at89c51单片机的相应引脚连接,以实现时间和信息的显示。
按键选择与连接按键是控制定时闹钟设置和功能的重要组件。
以下是一些按键选择和连接的要点:选择合适的按键类型,例如触摸按键或机械按键。
根据设计需求,确定所需的按键数量和布局。
将按键的引脚连接到at89c51单片机的GPIO引脚,以接收按键输入并实现相应的功能。
上述是基于at89c51单片机的定时闹钟的硬件设计要点,通过合理选择和连接电源、显示器和按键等组件,可以确保定时闹钟的稳定运行和正常功能。
本文将阐述基于at89c51单片机的定时闹钟的软件设计要点,包括如下内容:定时器的设置:使用at89c51单片机的定时器来实现定时功能,可以通过对定时器寄存器的设置来调整定时的时间间隔。
中断处理:在定时器到达设定的时间间隔时,通过中断处理来触发相应的操作。
可以通过设定中断优先级来确保定时器中断的可靠性。
闹钟功能的实现:通过软件算法和控制电路,将定时器和中断处理结合起来实现闹钟功能。
单片机定时器的设计

单片机定时器的设计一、单片机定时器的基本原理单片机定时器是通过内部或外部时钟源产生固定时间间隔触发中断来实现的。
在单片机中,通常采用计数器的方式来实现定时器功能。
计数器在一次计数结束之后会自动从初始化值重新开始计数,并且触发中断。
因此,我们可以通过设置计数器的计数值和时钟源的频率来实现所需的定时功能。
二、单片机定时器的设计步骤要设计一个有效的单片机定时器,我们需要按照以下步骤进行操作。
1.确定所需的定时时长首先需要确定所需的定时时长,以便后续的计数器设置。
可以根据具体应用场景来确定定时时长,比如几毫秒、几十毫秒、几百毫秒等。
2.选择合适的计数器位宽计数器位宽决定了定时器能够计数的最大值。
通常,单片机提供的计数器位宽有8位、16位、32位等多种选择。
要根据所需的定时时长来选择合适的计数器位宽,确保可以覆盖所需的最大计数值。
3.设置计数器初始值计数器的初始值决定了定时器的倒计时开始值。
根据所需的定时时长和计数器的位宽,可以通过简单的计算得出计数器初始值。
同时,还需要考虑时钟源的频率是否与计数器的位宽匹配,以避免定时器溢出或计数不准确的问题。
4.配置定时器中断定时器中断是实现定时功能的核心部分。
在单片机中,定时器溢出时会产生中断,通过中断服务函数来处理定时器事件。
可以根据具体需求选择在时间到达时产生中断,还是定时一段时间后再产生中断。
三、单片机定时器的实现方法根据单片机的不同型号和架构,实现定时器的方法有所不同。
下面以常见的基于8051单片机的定时器实现为例进行说明。
1.选择定时器模式8051单片机中,定时器可以工作在16位定时器(Timer0和Timer1)和8位定时器(Timer2)两种模式下。
根据实际需求选择合适的定时器模式。
2.配置定时器控制寄存器定时器控制寄存器用于设置定时器的工作模式和时钟源。
根据实际需求,设置定时器模式、计数器位宽、时钟源等参数。
3.设置计数器初始值设置计数器初始值,使定时器开始倒计时。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉首大学《单片机技术》课程设计报告项目名称:家用多功能定时器设计与制作专业年级:物理机电工程工程2012级学号: 20124052023学生姓名:刘锐指导教师:陈善荣报告完成日期2015 年7 月 1 日评阅结果评阅教师第一章绪论 (1)1.1 系统背景 (1)1.1.1 单片机的电子技术 (1)1.1.2 定时器介绍 (1)1.2 设计要求 (2)第二章系统电路设计 (2)2.1 设计框架介绍 (2)2.2 系统硬件单元电路设计 (2)2.2.1 复位电路设计 (2)2.2.2 时钟电路设计 (3)2.2.3 按键电路设计 (4)2.3 系统硬件总电路 (4)第三章系统软件设计 (5)3.1 系统软件流程图 (5)3.2 系统程序设计 (5)3.2.1 主程序 (5)3.2.2 中断程序 (12)第四章实验结果和分析 (13)4.1 实验使用的仪器设备 (13)4.2测试结果分析 (13)结束语 (13)参考文献 (14)第一章绪论1.1 系统背景1.1.1 单片机的电子技术单片机是将CPU、RAM\ROM\定时器/计数器以及输入输出(I/O)接口等计算机的主要部件集成在一块的集成电路芯片,作为微机系统它还可以实现模/数转换、脉宽调制、计数器捕获/比较逻辑、高速I/O口和WDT各种控制功能。
通过在MCS-51系列的单片机中增设了全双工串行口I/O、片内数据存储器采用寻址范围为256kb的8位地址、均有四种工作方式的2个16位的定时/计数器、增加了中断系统、增设了颇具特色的布尔处理机、让单片机具有较强的指令寻址和运算功能这些技术,使单片机拥有了完善的外部并行总线(AB、DB、CB)具有多机识别功能的串行通信接口,规范了功能单元的特殊功能寄存器控制模式及适应控制器特点的布尔处理系统和指令系统,位发展具有良好兼容性的新一代单片机奠定了良好的基础。
单片机被广泛地应用在各种领域。
例如用来作家用电器中如洗衣机、电冰箱、微波炉、电饭煲、电视机、录像机以及其他视频音像设备的控制器;在办公室中用作大量通信、信息的承载体,比如磁盘驱动、打印机、复印机、电话等;它还可以来构成电子秤、收款机、仓储安全检测系统、空气调节系统等冷冻保鲜系统等的专用系统;在工业中,像工业过程控制、过程监制以及机电一体化控制等系统都是以单片机为核心火多网络系统;它还可以构成一些智能仪表与集成智能传感器传统的控制电路,实现一些像存储、数据处理、查找、判断、联网和语音功能等智能化功能,还可以构成一些电子系统中的集中显示系统、动力检测控制系统、自动驾驶系统、通信系统以及运行监视器等的冗余网络系统。
1.1.2 定时器介绍人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。
1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。
它利用机械钟带动开关来控制煤气阀门。
定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多,家用电器都安装了定时器来控制开关或工作时间。
1.2 设计要求主要内容和任务:完成单片机最小系统板设计与制作,在此基础上通过编程设计家用多路定时控制器。
目标:通过编写程序,使单片机最小系统具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。
第二章系统电路设计2.1 设计框架介绍按键输入电路:对定时器输入定时时间、时钟时间,并对其调整。
时钟电路:给单片机一个时钟信号,让其工作。
复位电路:使单片机为初始状态,并从初态开始工作。
数码管:显示时间或者其它。
2.2 系统硬件单元电路设计2.2.1 复位电路设计复位操作有上电自动复位、按键电平复位和外部脉冲复位三钟方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。
2.2.2 时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的。
在单片机芯片内部有一个高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。
只需要在片外通过XTAL1和XTAL2引脚跨接晶体振荡器或在引脚与地之间加接微调电容,形成反馈电路,振荡器即可工作。
由于该晶振使用的是12MHZ的晶体,因此它的时钟周期是0.167us,机器周期为1us。
2.2.3 按键电路设计键K1(图中下方)控制状态的切换:K1为0时,表示出处在正常的计时工作状态;为1,处在校正数字钟的“时”;为2,处在校正数字钟的“分”;为3,处在调整定时起始时间的“时”;为4,处在调整定时起始时间的“分”;为5,处在调整定时终止时间的“时”;为6,处在调整定时终止时间的“分”。
键K2(图中上方)为加号键,控制在各状态时加1。
该系统键扫描的方式为中断扫描方式,当键位上有键压下时,产生中断请求,CPU响应中断,执行中断服务程序,判断键位上压下的键的键号,继而做相应的处理。
2.3 系统硬件总电路第三章系统软件设计3.1 系统软件流程图主程序在执行时,通过单片机内部中断对程序不断的扫描判断、刷新显示,当有键按下时,将数字钟中的时间与定时时间相比较,然后根据比较程序显示状态,并且还要延时消除抖动,之后进行按键处理,从而显示不同的状态,如此周期循环。
3.2 系统程序设计3.2.1 主程序ORG 0000HLJMP START;ORG 0003H;LJMP KEY_1 ;时钟、定时时间修改的切换键ORG 000BHLJMP TO_50ms ;数字钟时间定时器。
每次定时时间为50ms,20次定时为1S,产生数字钟所需要的秒ORG 0013H;LJMP KEY_2 ;时钟、定时时间修改的+号键ORG 0030HSTART: MOV SP,#60H ;初始化堆栈首地址MOV 5FH,#0 ;定时器T0溢出次数单元清零MOV 5EH,#0 ;“秒”计数单元清MOV 5DH,#00 ; 数字钟“分”初始值为0分钟MOV 5CH,#12 ;数字钟“时”初始值设为12点MOV 5BH,#30 ;定时起始时间“分”初始值设为30分MOV 5AH,#11 ;定时起始时间“时”初始值设为11 MOV 50H,#40 ;定时终止时间“分”初始值设40分MOV 4fH,#11 ;定时终止时间“时”初始值设11点MOV 51H,#00H;设置显示方式为:显示正常时间和定时时间的初始时间SETB 20H.0CLR 20H.1;首先显示定时时间的起始时间;中断和定时器初始化MOV TMOD,#00000001H;设定定时器T0工作在定时方式,工作在方式1,16位计数方式SETB IE0;外部中断INT0为边沿触发方式SETB IE1;外部中断INT1为边沿触发方式SETB ET0;允许定时器产生中断SETB EX0;允许外部中断INT0产生中断SETB EX1;允许外部中断INT1产生中断SETB EA;开启所有中断mov p1,#0ffhclr p1.0;定时器初始化MOV TH0,#3CH;设置定时时间常数,定时时间为50msMOV TL0,#0B0H;SETB TR0;启动T0开始定时计数LOOP1: lcall key_1lcall key_2jb 20h.1,loop_qishiLCALL BCD;将数字钟和定时器的时间转换为显示字符码,送相应的字符码存储单元ljmp loopaloop_qishi: lcall bcd1loopa: JB 20H.0,LOOP2;在小时的低位的数码管的小数点每0.5秒闪动一次MOV A,58HANL A,#01111111BMOV 58H,ALJMP LOOP4LOOP2: MOV A,58HORL A,#10000000BMOV 58H,AJB 20H.1,LOOP3;如果处在调整定时终止时间状态,则定时时间“小时”的低位数码管的小数点点亮,否则该小时点熄灭MOV A,54HANL A,#01111111BMOV 54H,ALJMP LOOP4LOOP3: MOV A,54HORL A,#10000000BMOV 54H,ALOOP4: LCALL DISPLAY ;调用显示子程序,显示数字钟时间和定时时间LJMP LOOP1SJMP $KEY_1: jb p1.6 ,key_1k;lcall delay40mslcall delay40mslcall delay40msjb p1.6 ,key_1kMOV A,51HCJNE A,#06H,KEY_1AMOV 51H,#00HSJMP KEY_1endKEY_1A: INC 51Hkey_1end: mov a,51hcjne a,#00h,key_1ccclr 20h.1sjmp key_1kkey_1cc: cjne a,#01h,key_1cclr 20h.1sjmp key_1kkey_1c: cjne a,#02h,key_1dclr 20h.1sjmp key_1kkey_1d: cjne a,#03h,key_1eclr 20h.1sjmp key_1kkey_1e: cjne a,#04h,key_1fclr 20h.1sjmp key_1kkey_1f: cjne a,#05h,key_1hsetb 20h.1sjmp key_1kkey_1h: cjne a,#06h,key_1k setb 20h.1key_1k: RETkey_2: jb p1.7,key_2bb;lcall delay40mslcall delay40mslcall delay40msjb p1.7 ,key_2endMOV A,51HCJNE A,#01H,KEY_2AMOV A,5CHCJNE A,#23,KEY_2BMOV 5CH,#00HLJMP KEY_2ENDKEY_2B: INC 5CHkey_2bb: LJMP KEY_2ENDKEY_2A: CJNE A,#02H,KEY_2C MOV A,5DHCJNE A,#59,KEY_2DMOV 5DH,#00HLJMP KEY_2ENDKEY_2D: INC 5DHLJMP KEY_2ENDKEY_2C: CJNE A,#03H,KEY_2E MOV A,5AHCJNE A,#23,KEY_2FMOV 5AH,#00HLJMP KEY_2ENDKEY_2F: INC 5AHLJMP KEY_2ENDKEY_2E: CJNE A,#04H,KEY_2G MOV A,5BHCJNE A,#59,KEY_2HMOV 5BH,#00HLJMP KEY_2ENDKEY_2H: INC 5BHLJMP KEY_2ENDKEY_2G: CJNE A,#05H,KEY_2I MOV A,4FHCJNE A,#23,KEY_2JMOV 4FH,#00HLJMP KEY_2ENDKEY_2J: INC 4FHLJMP KEY_2ENDKEY_2I: CJNE A,#06H,KEY_2ENDMOV A,50HCJNE A,#59,KEY_2KMOV 50H,#00HLJMP KEY_2ENDKEY_2K: INC 50HKEY_2END: RETBCD: MOV DPTR,#TAB ;设置字符码首地址MOV A,5CH ;取数字钟“小时”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 59H,A ;通过高位的值查表,获得高位数的字符码,并存入59H单元MOV A,BMOVC A,@A+DPTRMOV 58H,A ;通过低位的值查表,获得低位数的字符码,并存入58H单元MOV A,5DH ;取数字钟“分”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 57H,A ;通过高位的值查表,获得高位数的字符码,并存入57H单元MOV A,BMOVC A,@A+DPTRMOV 56H,A ;通过低位的值查表,获得低位数的字符码,并存入56H单元MOV A,5AH ;取定时器“小时”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 55H,A ;通过高位的值查表,获得高位数的字符码,并存入55H单元MOV A,BMOVC A,@A+DPTRMOV 54H,A ;通过低位的值查表,获得低位数的字符码,并存入54H单元MOV A,5BH ;取定时器“分”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 53H,A ;通过高位的值查表,获得高位数的字符码,并存入53H单元MOV A,BMOVC A,@A+DPTRMOV 52H,A ;通过低位的值查表,获得低位数的字符码,并存入52H单元RETBCD1: MOV DPTR,#TAB ;设置字符码首地址MOV A,5CH ;取数字钟“小时”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 59H,A ;通过高位的值查表,获得高位数的字符码,并存入59H单元MOV A,BMOVC A,@A+DPTRMOV 58H,A ;通过低位的值查表,获得低位数的字符码,并存入58H单元MOV A,5DH ;取数字钟“分”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 57H,A ;通过高位的值查表,获得高位数的字符码,并存入57H单元MOV A,BMOVC A,@A+DPTRMOV 56H,A ;通过低位的值查表,获得低位数的字符码,并存入56H单元MOV A,4fH ;取定时器“小时”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 55H,A ;通过高位的值查表,获得高位数的字符码,并存入55H单元MOV A,BMOVC A,@A+DPTRMOV 54H,A ;通过低位的值查表,获得低位数的字符码,并存入54H单元MOV A,50H ;取定时器“分”的值MOV B,#10DIV AB ;分离高位和地位的值,A中存放高位值,B中存放低位的值MOVC A,@A+DPTRMOV 53H,A ;通过高位的值查表,获得高位数的字符码,并存入53H单元MOV A,BMOVC A,@A+DPTRMOV 52H,A ;通过低位的值查表,获得低位数的字符码,并存入52H单元RETDISPLAY: MOV P2,#11111110B ;将数字钟“小时”的高位的字符码送第一个数码管显示MOV P0,59HLCALL DELAY20MS ;显示时间为20msMOV P2,#11111101B ;将数字钟“小时”的低位的字符码送第二个数码管显示MOV P0,58HLCALL DELAY20MS ;显示时间为20msMOV P2,#11111011B ;将数字钟“分”的高位的字符码送第三个数码管显示MOV P0,57HLCALL DELAY20MS ;显示时间为20msMOV P2,#11110111B ;将数字钟“分”的低位的字符码送第四个数码管显示MOV P0,56HLCALL DELAY20MS ;显示时间为20msMOV P2,#11101111B ;将定时器“时”的高位的字符码送第五个数码管显示MOV P0,55HLCALL DELAY20MS ;显示时间为20msMOV P2,#11011111B ;将定时器“时”的低位的字符码送第六个数码管显示MOV P0,54HLCALL DELAY20MS ;显示时间为20msMOV P2,#10111111B ;将定时器“分”的高位的字符码送第七个数码管显示MOV P0,53HLCALL DELAY20MS ;显示时间为20msMOV P2,#01111111B ;将定时器“分”的低位的字符码送第八个数码管显示MOV P0,52HLCALL DELAY20MS ;显示时间为20msRET ;上述显示方式,一直循环,实现动态显示3.2.2 中断程序TO_50ms: CLR TR0;关闭T0中断MOV A,5FH;读中断次数CJNE A,#9,TO_50ms2;判断是否到0.5秒CPL 20h.0;到0.5秒,标志位求反,实现“时”的地位闪动效果,是对秒指示TO_50ms2: CJNE A,#19,TO_50ms1;未到1秒,中断次数加1,退出定时中断MOV 5FH,#00H;到1秒,中断次数单元内容清0,同时转到对“秒”的判CPL 20h.0;到0.5秒,标志位求反,实现“时”的地位闪动效果,是对秒指示SJMP MIAOTO_50ms1: INC 5FHLJMP T0_ENDMIAO: MOV A,5EH;读秒单元内容CJNE A,#59,MIAO1;判断是否到60秒,没有到60秒,则秒单元加1MOV 5EH,#00H;否则秒单元清0,同时转到”分”单元的判断LJMP FENMIAO1: INC 5EHLJMP T0_ENDFEN: MOV A,5DH;读分单元内容CJNE A,#59,FEN1;判断是否到60分,没有到60分,则分单元加1MOV 5DH,#00H;否则分单元清0,同时转到对“时“单元的判断LJMP SHIFEN1: INC 5DHLJMP T0_ENDSHI: MOV A,5CH;读“时”单元内容CJNE A,#23,SHI1;判断是否到24小时,没有到24小时,则时单元加1MOV 5CH,#00H;否则时单元清0,LJMP T0_ENDSHI1: INC 5CHT0_END: SETB TR0;启动T0中断MOV TH0,#3CH;设置定时时间常数,定时时间为50msMOV TL0,#0B0H;RETIDELAY20MS: MOV R7,#10DELAY1: MOV R6,#200DELAY2: DJNZ R6,DELAY2DJNZ R7,DELAY1RETDELAY40MS: MOV R7,#100DELAY3: MOV R6,#200DELAY4: DJNZ R6,DELAY4DJNZ R7,DELAY3RETTAB: DB 40H,79H,24H,30H,19H,12H,02H ;0 1 2 3 4 5 6的字符码 DB 78H,00H,10H,08H,03H,46H,21H,06H,0EH;7 8 9 A B C D E F的字符码TAB1: DB 8CH;P.的字符码TAB2: DB 7FH;空,不显示的字符END第四章实验结果和分析4.1 实验使用的仪器设备电脑,PTOTEUS软件,KEIL软件,电烙铁,吸锡器,钳子,直流电源,电阻,电容等基本元器件。