单片机课程设计数字时钟

合集下载

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

单片机数字时钟课程设计

单片机数字时钟课程设计

单片机数字时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握数字时钟的设计与实现过程。

2. 使学生掌握数字时钟的显示原理,包括时、分、秒的显示和调整方法。

3. 让学生了解单片机与其他硬件设备(如LED显示屏、按键等)的接口技术。

技能目标:1. 培养学生运用单片机编程实现数字时钟功能的能力。

2. 培养学生运用所学知识解决实际问题的能力,如调试程序、排查故障等。

3. 提高学生的动手实践能力,能够独立完成数字时钟的搭建和调试。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的创新意识和探索精神。

2. 培养学生团队协作精神,学会在合作中解决问题,共同完成任务。

3. 培养学生严谨的学习态度和良好的学习习惯,注重实践与理论相结合。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为单片机应用实践课程,注重理论联系实际,培养学生的动手能力和创新能力。

2. 学生特点:学生已具备一定的单片机基础知识,有一定的编程基础,但实践能力有待提高。

3. 教学要求:以学生为主体,教师为主导,采用项目式教学,引导学生主动探究和解决问题。

二、教学内容1. 理论知识:- 单片机原理及编程基础回顾;- 数字时钟的原理与设计思路;- 单片机与其他硬件设备的接口技术。

2. 实践操作:- 数字时钟的硬件搭建,包括LED显示屏、按键等;- 单片机程序编写,实现时、分、秒的显示与调整;- 程序调试与故障排查。

3. 教学大纲:- 第一阶段(1课时):单片机原理及编程基础回顾;- 第二阶段(2课时):数字时钟原理学习,设计思路讲解;- 第三阶段(2课时):硬件搭建与程序编写;- 第四阶段(1课时):程序调试与故障排查;- 第五阶段(1课时):成果展示与总结。

4. 教材关联:- 教材第3章:单片机原理及编程基础;- 教材第4章:数字时钟设计与实现;- 教材第5章:单片机与其他硬件设备接口技术。

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。

通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。

二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。

它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。

2、时钟计时原理数字时钟的核心是准确的计时功能。

通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。

3、数码管显示原理采用共阳或共阴数码管来显示时间数字。

通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。

4、按键控制原理设置按键用于调整时间。

通过检测按键的按下状态,进入相应的时间调整模式。

三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。

确保连接正确可靠,避免短路或断路。

2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。

(2)编写定时器中断服务程序,实现秒的计时。

(3)设计计时算法,将秒转换为分、时,并进行进位处理。

(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。

(5)添加按键检测程序,实现时间的调整功能。

3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。

五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。

基于单片机的数字电子时钟设计

基于单片机的数字电子时钟设计

基于单片机的数字电子时钟设计数字电子时钟是一种非常常见的电子产品,它可以帮助我们实现精确的时间显示,让我们的生活更加方便。

随着科技的不断发展,数字电子时钟也在不断更新和发展,基于单片机的数字电子时钟已经成为当前最先进的技术之一。

本文将介绍基于单片机的数字电子时钟的设计原理和实现方法。

一、数字电子时钟的设计原理数字电子时钟的实现原理就是把时间信号转换成数字信号,再通过计算机芯片来显示时间。

其中,时间信号可以是电缆信号或者无线信号,并且也可以通过外部的控制电路进行调节。

而计算机芯片可以采用单片机、PLC控制器等方案进行设计。

基于单片机的数字电子时钟,可以使用数字时钟芯片和定时器芯片来完成。

数字时钟芯片是一种能够实现数据的统计、时钟显示等功能的IC芯片,通过将其与定时器芯片相连,就能够实现精确的时间统计和显示。

此外,在设计时还需要进行软硬件电路的优化和调试。

二、基于单片机的数字电子时钟的实现方法1、硬件设计基于单片机的数字电子时钟的硬件设计,主要包含单片机控制电路、显示电路、外设接口电路、供电电路、时钟芯片和定时器芯片等部分。

其中,时钟芯片用于提供精准的时间信号,定时器芯片则用于进行计时,而单片机和外设接口电路则用于控制整个数字电子时钟的功能。

另外,数字电子时钟还需要进行外观设计,通常采用的是数码管或液晶屏幕显示时间。

通过优化电路布局和参数匹配,可以有效地提高整个数字电子时钟的稳定性和精度。

2、软件设计在数字电子时钟的软件设计中,主要包含固件设计和操作系统设计两部分。

固件设计是指对单片机系统进行程序编写、调试和优化,以实现时钟的各种功能;而操作系统设计,则是对固件进行封装,建立起一套完整的操作环境,方便用户进行操作。

在固件设计中,需要考虑到时钟的显示、调节、闹钟、定时等多种功能的实现。

通常,这些功能都会涉及到多个模块和数据结构的设计,需要通过循序渐进的方式逐步实现。

在操作系统设计中,需要对时钟的各种操作进行封装,形成一套完整的操作界面。

单片机课程设计电子时钟

单片机课程设计电子时钟

xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。

时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。

用6MHz晶振产生振荡脉冲,定时器进行秒计时。

调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。

闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。

1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。

1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。

2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。

3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。

2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。

校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。

闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。

单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

单片机课程设计报告基于单片机的数字时钟姓名:班级:学号:一、前言利用实验板上的4个LED数码管,设计带有闹铃、秒表功能的数字时钟。

功能要求:a)计时并显示(LED)。

由于实验板上只有4位数码管,可设计成显示“时分”和显示“分秒”并可切换。

b)时间调整功能。

利用4个独立按钮,实现时钟调整功能。

这4个按钮的功能为工作模式切换按钮(MODE),数字加(INC),数字减(DEC)和数字移位(SHITF)。

c)定闹功能。

利用4个独立按钮设定闹钟时间,时间到以蜂鸣器响、继电器动作作为闹铃。

d)秒表功能。

最小时间单位0.01秒。

二、硬件原理分析1.电源部分电源部份采用两种输入接口(如上图)。

a)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。

b)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。

注:两路电源输入是并连的,因此只选择一路就可以了,以免出问题。

S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。

电路采用两个滤波电容,给板子一个更加稳定的工作电源。

LED为电源的指示灯,通电后LED灯亮。

2.蜂鸣器蜂鸣器分为有源和无源两种,有源即两引脚有一个直流电源就可以长鸣,无源则需要一个1K左右的脉冲才可以蜂鸣,因此对于按键的提示音及报警蜂鸣使用有源来得方便。

有源也可以当无源使用,而无源则不能当有源使用,当然用有源蜂鸣器作音乐发声会失真厉害。

如上图:单片机P15输出高低电平经R21连接三极管B极,控制三极管的导通与截止,从而控制蜂鸣器的工作。

低电平时三极管导通,蜂鸣器得电蜂鸣,高电平时三极管截止,蜂鸣器失电关闭蜂鸣。

电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。

数码管的阴级由P0口经过电阻限流连接。

例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。

单片机数字钟课程设计

单片机数字钟课程设计

单片机数字钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握数字钟的电路构成和工作原理。

2. 使学生掌握单片机编程的基本方法,能够运用C语言编写简单的数字钟程序。

3. 帮助学生了解数字钟的各个模块功能,如时钟电路、计数器、显示电路等。

技能目标:1. 培养学生动手搭建数字钟电路的能力,提高实践操作技能。

2. 培养学生运用编程软件进行程序编写、调试和优化单片机程序的能力。

3. 培养学生分析问题、解决问题的能力,能够解决数字钟运行过程中出现的故障。

情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生的求知欲和探索精神。

2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。

3. 培养学生严谨的科学态度,注重实验数据的真实性,养成认真负责的学习习惯。

课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,旨在培养学生的动手能力、编程能力和问题解决能力。

学生特点:学生为初中生,具备一定的电子知识基础,对单片机有一定了解,喜欢动手实践,对新鲜事物充满好奇心。

教学要求:教师需结合学生特点,以引导为主,讲解与实践相结合,注重培养学生的自主学习能力和团队合作精神。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。

通过课程学习,使学生能够独立完成数字钟的搭建和程序编写,提高综合运用知识的能力。

二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理,重点讲解AT89C52单片机的内部结构、引脚功能及特性。

教材章节:第一章 单片机概述,第二节 AT89C52单片机简介2. 数字钟电路设计:讲解数字钟的电路构成,包括时钟电路、计数器、显示电路等模块,分析各模块之间的连接关系。

教材章节:第二章 数字钟电路设计,第一节 数字钟概述,第二节 电路模块介绍3. 单片机编程:教授C语言编程基础,以数字钟为例,讲解程序设计思路、流程及编程技巧。

单片机数字闹钟设计报告

单片机数字闹钟设计报告

单片机数字闹钟/电子表设计报告一、设计意义随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。

现代的数字钟不仅需要模拟电子技术,而且需要数字电路技术和单片机技术,增加了数字显示等的功能。

单片机电子钟表电路可以由单片机模块、实时时钟电路模块、人机接口模块、报警模块等部分组成,硬件电路简单稳定,并可以利用软件编程减小电磁干扰和其他环境干扰的影响,减小因元器件精度不够引起的误差等优点,与机械式时钟相比具有更高的准确性和直观性,电路简单,使用寿命长,应用范围广,被广泛用于个人家庭、车站、码头、办公室等公共场所,成为人们日常生活中不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,数字钟表的精度远远超过老式机械钟表,给人们生产生活带来了极大的方便。

另一方面,由于单片机技术的使用,大大扩展了钟表原先的功能,可以提供定时自动报警、按时自动打铃、时间程序自动控制及各种定时电气的自动启用功能等。

因此,研究数字钟表及扩大其应用,有着非常现实的意义。

二、本设计功能描述1、采用STC89C52单片机作为主控芯片,实现数字钟表主控功能。

2、采用液晶屏显示当前年、月、日、时、分、秒,闹铃时间及状态等信息。

3、采用六键键盘设定时间初始值,具体方法是按时间设定键依次进入年、月、日、时、分、秒设定状态,然后通过向上、向下键修改设定值。

正在设定的变量以闪烁状态突出显示。

4、采用六键键盘设定闹铃时间,具体方法是按闹铃设定键依次进入时、分设定状态,然后通过向上、向下键修改设定值。

正在设定的变量以闪烁状态突出显示。

5、采用 DS1302 实时时钟芯片完成后台计时功能,要求具有后备电源,即使主电源掉电时间仍然保持运行。

6、可设定闹铃使能,具体方法是按闹铃使能键,按一次打开,再按一次关闭。

闹铃使能关闭时不报警。

7、当闹铃使能打开,且当前时间到达闹铃设置时间,则蜂鸣器和LED 红灯同时报警,如不按取消键,报警时间为 1 分钟。

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

华北电力大学科技学院单片机课程设计报告(20 —20 年度第学期)题目:电子时钟(LCD)院系:动力工程系题目:数字时钟专业班级:学号:姓名:指导老师:一、功能能实现定时、时间的调整(只能加不能减)、闹钟的设定(只能加不能减),当闹钟按键按下就进入闹钟设定,再按下那个键就进入时间显示,并且闹钟响铃时间是10秒钟。

其整个设计的电路图如下:其中显示的是8个8段LED显示,单片机是80C51,外部晶振是12MHZ,其中和晶振连接的是两个47pF的电容。

单片机的p1.0~p1.3作为地址总线起到控制作用,p1.7在电路中用一个灯泡代替,在实际中接喇叭,起到闹钟的作用。

P0.0~p0.7作为数据总线,把单片机的信号输入到显示器上,p2.0~p2.7作为单片机的额数据总线,其作用在显示总起到位选的作用,决定8段LED的亮灭。

最下面的那个是RESPACK-8排阻,在电路中防止输入到显示的电压很小,是为输出提供电源的装置,配合显示器的显示。

在整个程序中时间的秒、分、时的计数分别存放在20H、21H、22H,闹钟的秒、分、时的计数分别存放在40H、41H、42H。

实现定时闹钟的程序有以下几个部分组成:二、流程图1、定时程序(时间的设定)其程序流程图如下:3、显示的流程图(因为显示的刚好是8个,所以不要去考虑左移的个数,直接4、闹钟设定三、总程序ORG 0000HMOV P0,#00HMOV P2,#00HMOV SP,#60HCLR 20HCLR 21HCLR 22HCLR 40HCLR 41HCLR 42HMOV DPTR,#TABVV: MOV R6,#1MM: MOV R5,#4NN: MOV R4,#100BB: JNB P1.3,LPPSJMP LLLPP: JNB P1.3,LPP0SETB 30HAAC: MOV R3,#1AAB: MOV R2,#4AAA: MOV R1,#100CC0: JNB P1.0,CC1 ;判断p1.0是否为按下SJMP DD0CC1: JNB P1.0,LPP1 ;判断p1.0是否松开,松开秒钟加1 MOV A,40HADD A,#01HDA ACJNE A,#60H,CC2CLR ACC2: MOV 40H,ADD0: JNB P1.1,DD1 ;判断p1.1是否按下SJMP EE0DD1: JNB P1.1,LPP2 ;判断p1.1是否松开,松开分钟加1 MOV A,41HADD A,#01HDA ACJNE A,#60H,DD2CLR ADD2: MOV 41H,AEE0: JNB P1.2,EE1 ;判断p1.2是否按下SJMP HH1EE1: JNB P1.2,LPP3 ;判断p1.2是否松开,松开时钟加1 MOV A,42HADD A,#01HDA ACJNE A,#24H,EE2 CLR AEE2: MOV 42H,AHH1:LCALL LPJNB P1.3,LP1DJNZ R1,CC0DJNZ R2,AAADJNZ R3,AABLCALL B2SJMP AACLP1:JNB P1.3,LPP4 LL: CLR 30HLCALL C0DJNZ R4,BBDJNZ R5,NNDJNZ R6,MMLCALL B2SJMP VVLPP0:LCALL LPNOPNOPNOPSJMP LPPLPP1:LCALL LPNOPNOPNOPSJMP CC1LPP2:LCALL LPNOPNOPNOPSJMP DD1LPP3:LCALL LPNOPNOPNOPSJMP EE1LPP4:LCALL LPNOPNOPNOPSJMP LP1C0: JNB P1.0,C1 ;判断p1.0是否为按下SJMP D0C1: JNB P1.0,LLP ;判断p1.0是否松开,松开秒钟加1MOV A,20HADD A,#01HDA ACJNE A,#60H,C2CLR AC2: MOV 20H,AD0: JNB P1.1,D1 ;判断p1.1是否按下SJMP E0D1: JNB P1.1,LLP1 ;判断p1.1是否松开,松开分钟加1MOV A,21HADD A,#01HDA ACJNE A,#60H,D2CLR AD2: MOV 21H,AE0: JNB P1.2,E1 ;判断p1.2是否按下AJMP H0E1: JNB P1.2,LLP2 ;判断p1.2是否松开,松开时钟加1MOV A,22HADD A,#01HDA ACJNE A,#24H,E2CLR AE2: MOV 22H,AH0: LCALL LPRETLLP: LCALL LPNOP ;3个空指令是消除松开时执行指令的时间差 NOPNOPSJMP C1LLP1:LCALL LPNOPNOPNOPSJMP D1LLP2:LCALL LPNOPNOPNOPSJMP E1B2: MOV A,20H ;设置秒钟ADD A,#01HDA ADEC ACJNE A,#5FH,A1CLR AMOV 20H,AMOV A,21H ;设置分钟ADD A,#01HDA ADEC ACJNE A,#5FH,A2CLR AMOV 21H,AMOV A,22H ;设置时钟ADD A,#01HDA AMOV 22H,ACJNE A,#24H,LOOPCLR AMOV 22H,ASJMP LOOPA1: INC AMOV 20H,ASJMP LOOPA2: INC AMOV 21H,ALOOP:DJNZ R0,RR1SETB P1.7RR1: MOV A,42H ;比较时钟和闹钟的时间是否相等,相等把XRL A,22H ; p1.7置高电平启动闹钟CJNE A,#00H,QQMOV A,41HXRL A,21H ; 异或相等为零CJNE A,#00H,QQMOV A,40HXRL A,20HCJNE A,#00H,QQCLR P1.7MOV R0,#10QQ: RETLP: MOV P2,#01111111BJNB 30H,WWMOV A,40HWW: MOV A,20H ;显示秒钟的个位WW0: MOV B,#10HDIV ABMOV 50H,AMOV A,BMOVC A,@A+DPTRMOV P0,ALCALL DELMOV A,P2 ;显示秒钟的十位 RR AMOV P2,AMOV A,50HMOVC A,@A+DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P2,AMOV P0,#01000000BLCALL DELMOV A,P2 ;显示分钟的个位 RR AMOV P2,AJNB 30H,WW1MOV A,41HSJMP WW2WW1: MOV A,21HWW2: MOV B,#10HDIV ABMOV 51H,AMOV A,BMOVC A,@A+DPTRMOV P0,ALCALL DELMOV A,P2 ;显示分钟的十位 RR AMOV P2,AMOV A,51HMOVC A,@A+DPTRMOV P0,ALCALL DELMOV A,P2 ;显示'-'RR AMOV P0,#01000000BLCALL DELMOV A,P2 ;显示时钟的个位RR AMOV P2,AJNB 30H,WW4MOV A,42HSJMP WW5WW4: MOV A,22HWW5: MOV B,#10HDIV ABMOV 52H,AMOV A,BMOVC A,@A+DPTRMOV P0,ALCALL DELMOV A,P2 ;显示时钟的十位RR AMOV P2,AMOV A,52HMOVC A,@A+DPTRMOV P0,ALCALL DELRETDEL: MOV R7,#150 ;显示延迟150usDJNZ R7,$RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND总结在整个设计中我们学到了在显示程序中的一些方法,比如说怎么实现动态显示,开始的时候总是显示不了,在经过把位选放慢就可以知道自己在设计程序中先显示后右移,所以没有显示的余光,使得显示出现异常。

在经过先右移后显示的情况下动态能够正常显示。

还有在设定闹钟的时候经常出现到了闹钟的设定时间不跳转,在经过在闹钟的设定的同时还要进行时间的调用,使得这次程序使用的都是程序的调用,把闹钟的设定看作一个主程序,就相当于p1.3按下之后进入闹钟的设定和显示,之后一直在查询p1.3再一次的按下,如果没有按下就一直查询是否有在调整闹钟。

若再一次按下p1.3就进入时间的设置和显示。

在显示中要设定一个参考量来决定是显示时间还是闹钟,我们在程序中用(30H)的数来作为参考量,如果是“1”则显示闹钟((40H)、(41H)、(42H))里面的数,如果是“0”则显示时间((20H)、(21H)、(22H))里面的数。

总的来说通过这次课程设计我们学到了如何去编写时间程序、闹钟的设定程序、显示程序。

相关文档
最新文档