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

合集下载

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

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

目录一、引言········二、设计课题·········三、系统总体方案·········四、系统硬件设计······1.硬件电路原理图2.元件清单五、系统软件设计·········1.软件流程图2.程序清单六、系统实物图········七、课程设计体会········八、参考文献及网站·········九、附录·········一.引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。

基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。

数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。

数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。

单片机课程设计电子时钟

单片机课程设计电子时钟

单片机课程设计电子时钟一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握单片机在电子时钟设计中的应用。

2. 使学生掌握电子时钟的组成和工作原理,包括时、分、秒的显示与计时功能。

3. 帮助学生了解电子时钟设计中涉及的硬件知识,如晶振、计数器、显示器件等。

技能目标:1. 培养学生运用单片机编程实现电子时钟功能的能力,提高学生的动手实践能力。

2. 培养学生分析问题、解决问题的能力,能够针对电子时钟设计过程中遇到的问题进行调试和优化。

3. 培养学生团队协作能力,通过分组合作完成课程设计任务。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养学生主动学习的积极性。

2. 培养学生严谨的科学态度,注重实验数据的真实性,养成良好的实验习惯。

3. 增强学生的创新意识,鼓励学生在课程设计中发挥想象力和创造力,提高学生的创新能力。

课程性质:本课程为实践性课程,注重培养学生的动手能力和实际应用能力。

学生特点:学生已具备一定的单片机基础知识和编程技能,对电子制作有较高的兴趣。

教学要求:结合课本内容,注重理论与实践相结合,通过课程设计提高学生的综合应用能力。

将课程目标分解为具体的学习成果,以便在教学设计和评估过程中有针对性地指导学生。

二、教学内容1. 理论知识:- 单片机原理与编程:复习课本第三章内容,重点掌握单片机的内部结构、工作原理、指令系统及编程方法。

- 电子时钟原理:学习课本第四章关于时钟电路的设计,了解时、分、秒的计数原理及显示技术。

2. 实践操作:- 硬件设计:根据课本第五章内容,选用51单片机及相关元器件,设计电子时钟的硬件电路,包括晶振、计数器、显示器件等。

- 软件编程:运用C语言或汇编语言,编写电子时钟的程序代码,实现时、分、秒的显示与计时功能。

3. 教学大纲:- 第一周:复习单片机基础知识,讲解电子时钟原理,分配课程设计任务。

- 第二周:进行硬件电路设计,学习并选用合适的元器件,绘制原理图。

单片机课程设计报告--电子时钟(2021整理)

单片机课程设计报告--电子时钟(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)长按进入调分状态:分单元闪烁,按加1,按减1.再长按进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。

(2)(2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加1,再按为时调整,按时加1,按调闹钟结束.在闹铃时可按停闹,不按闹铃1分钟。

(3)按下进入秒表状态:再按秒表又启动,按暂停,再按秒表清零,按退出秒表回到时钟状态。

二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图各个模块设计1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

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

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

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

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

二、实验原理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、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。

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

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

《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲学号:********** **********班级:自动化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片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。

C52单片机电子时钟电路设计 课程设计

C52单片机电子时钟电路设计 课程设计

C52单片机电子时钟电路设计课程设计单片机原理及应用课程设计题目: C52单片机电子时钟电路设计姓名: 陶鹏鹏专业: 电子科学与技术班级: 121班指导教高海涛师:安徽科技学院数理学院目录1、基于单片机的电子时钟电路设计.........1.1设计任务与要求...................1.1.1设计目的:.................1.1.2设计要求:.................1.2方案设计 ........................2、单片机应用系统简介...................2.1AT89C52单片机的功能结构..........2.2单片机的引脚定义及功能...........2.3 定时/计数器....................2.3.1定时/计数器结构............2.3.2工作原理...................2.4键盘接口技术 ....................2.5复位操作 ........................2.6 显示控制模块....................3、硬件电路设计.........................3.1电子时钟的电路图.................3.2单元电路设计 ....................3.2.1晶振、复位电路模块.........3.2.2键盘控制模块...............3.2.3蜂鸣器电路模块.............3.2.4显示器电路模块.............4、软件设计.............................4.1系统主程序设计...................4.2主程序清单 ......................4.3系统仿真与调试...................5、结论与心得...........................摘要电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(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. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

单片机电子时钟课程设计

单片机电子时钟课程设计

单片机电子时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握电子时钟的工作原理;2. 使学生掌握单片机编程技术,能独立完成电子时钟的程序编写;3. 帮助学生了解电子时钟的设计过程,掌握相关电子元器件的使用。

技能目标:1. 培养学生运用单片机解决实际问题的能力,提高编程和调试技巧;2. 培养学生动手实践能力,能独立完成电子时钟的组装和调试;3. 提高学生的团队协作和沟通能力,能在小组项目中发挥积极作用。

情感态度价值观目标:1. 激发学生对电子技术和单片机编程的兴趣,培养创新意识;2. 培养学生严谨、细致的学习态度,养成良好的学习习惯;3. 增强学生的自信心和责任感,使其在项目实践中勇于面对挑战。

课程性质:本课程为实践性较强的课程,旨在通过项目实践,让学生掌握单片机编程和应用,培养实际操作能力。

学生特点:学生具备一定的单片机基础知识和编程技能,对电子技术有一定了解。

教学要求:注重理论与实践相结合,强调动手实践,鼓励学生创新和团队协作。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 单片机基础:回顾单片机的基本原理、结构、工作方式,重点掌握时钟电路、I/O 口编程、中断系统等基础知识。

教材章节:《单片机原理与应用》第1-3章2. 电子时钟原理:学习电子时钟的基本构成、工作原理,分析时钟芯片DS1302的功能和应用。

教材章节:《单片机原理与应用》第6章3. 程序设计:学习C语言编程,编写电子时钟程序,掌握定时器、中断处理、数据存储等编程方法。

教材章节:《单片机C语言程序设计》第4-6章4. 硬件设计:学习电子时钟硬件电路设计,包括单片机、时钟芯片、显示模块、按键模块等。

教材章节:《电子电路设计》第2-3章5. 调试与优化:学习电子时钟系统的调试方法,分析常见问题,进行程序和硬件优化。

教材章节:《单片机原理与应用》第8章6. 项目实践:分组进行电子时钟项目实践,从硬件组装、编程调试到产品展示,全面锻炼学生的动手能力。

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片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。

单片机课程设计报告-电子时钟--完结篇

单片机课程设计报告-电子时钟--完结篇

⑴ -芯片电源,接+5V;
⑵GND-接地端;
注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速
度没这么快而已,在某一个瞬间单片机引脚电压
仍保持在0或者5v。
2
XTAL1、XTAL2 -当使用芯片内部时钟时,此二引线用于外界石英晶体振荡器和电容。当使用外部时钟时,用于接外部时钟脉冲信号。
关键字:单片机;子时钟;键盘控制。

单片计算机即单片微型计算机。(Single-Chip Microcomputer),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬件的能力。
三、总体方案及硬件设计
简易电子钟硬件系统的设计,关键是其键盘、显示器接口电路的设计,本设计采用直接利用单片机AT89C52的并行I/O口构成电子钟的键盘、显示接口电路,其硬件系统原理框图如图3-1所示,主要包括单片机、时钟电路。复位电路。键盘及显示接口电路。

AT89C51有40个引脚,按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。

单片机课程设计实验报告(时钟、日历)..

单片机课程设计实验报告(时钟、日历)..

基于单片机的电子钟设计目录第一章电子时钟设计--—--—----————-—-—-—----—-—-——-——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前言:摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便.由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

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

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

单片机原理与应用课程名称:单片机原理与应用设计题目:LCD电子钟院系:电子信息工程学院班级:自动化0706设计者:全宏宇指导教师:一,设计目标LCD显示电子钟的基本功能1,实现时钟功能;2,实现闹铃功能;3,实现秒表功能;4,具有一定的计时精度。

LCD显示电子钟的基本要求1,掌握单片机开发编程设计的基本流程;2,了解Keil及Proteus软件的基本使用;3,了解LCD的基本使用;4,学习单片机硬件制作。

二,具体实现1,软件平台1)Keil编程Keil 的开发工具的使用的基本过程:○1创建C 或汇编语言的源程序;○2编译或汇编源文件;○3纠正源文件中的错误;○4从编译器和汇编器连接目标文件;○5测试连接的应用程序。

2)Proteus仿真Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

在编译方面,它也支持IAR,Keil,PLAB等多种编译器。

2,硬件开发平台JD51开发板的基本资料○1LED 电路,8 只独立LED 发光管,可做指示或各种闪烁效果用。

○2数码管电路,4只共阳一体8 段数码显示管,可实现各种数据显示,如计数、时钟等。

○3蜂鸣器电路,可用于设计各种提示音、演奏音乐等。

○4键盘电路,学习按键控制相关编程。

○5LCD 显示电路,编程控制LCD 显示。

○6串口电路,学习编程实现JD51 和PC 或其他符合该通信协议的电路之间的通信。

○7红外电路,通过选配的红外遥控器,学习红外解码并可实现红外遥控JD51。

○8温度模块电路,采用一线式温度传感器实现温度的采集并可显示在数码管或者LCD 上,通过温度数据处理便可实现温度控制器功能。

○9除了以上提到的可编程电路本学习板还有一些常用的不可编程电路,包括电源电路、复位电路、晶振电路等。

本次LCD电子钟实验用到其中的蜂鸣器,按键,LCD显示接口。

3,总体设计1)基本资源的使用本次实验采用了89C52型单片机,1602LCD液晶显示屏,蜂鸣器。

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单片机,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.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。

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

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

单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。

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

4、能够实现按键启动与停止功能。

5、能够实现整点报时功能。

6、能够实现秒表功能。

二、设计思路1、芯片介绍VCC:电源。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的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 ;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,#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时跳回START1FUNPT: 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 ;转到时间调整程序SETMMDSFINC : 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,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 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,WAIT61MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#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 ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反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=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分时分计时单元清0 MOV 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 ;取当前计时单元数据到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 ;数据放入当削地址单元中RET ;子程序返回;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 ;高四位变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 ;进入调时状态,赋闪烁定时初值MOV 70H,#00H ;调时时秒单元为00 秒MOV 71H,#00HSETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.2,SET1 ;P3.2口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: 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不显示)状态。

相关文档
最新文档