单片机C51时钟的设计报告

合集下载

单片机课程设计报告--电子时钟(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显示器。

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

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

基于51单片机的电子时钟设计51单片机是一种广泛应用于嵌入式系统的微控制器,由于其性能稳定、易于编程和成本相对较低的特点,被广泛应用于各种电子设备中。

在现代社会,电子时钟已经成为人们日常生活中不可或缺的工具。

随着科技的不断发展,电子时钟在功能和外观上都得到了极大的提升,如今的电子时钟不仅可以显示时间,还能设置闹钟、定时、显示温湿度等功能。

本文通过对51单片机的应用和实践,设计了一款功能丰富的电子时钟,旨在探讨如何利用51单片机实现电子时钟的设计与制作过程。

首先,我们将介绍51单片机的基本原理和特点。

51单片机是一种8位微控制器,由Intel公司于1980年推出,至今已有数十年的历史。

它采用哈佛结构,具有较高的工作速度和稳定性,适合用于各种嵌入式系统。

51单片机的指令系统简单,易于学习和掌握,因此被广泛用于各种嵌入式应用中。

除此之外,51单片机的外围设备丰富,可以通过外部扩展模块实现各种功能,如串口通信、定时器、数模转换等,这也为我们设计电子时钟提供了便利。

其次,我们将详细介绍基于51单片机的电子时钟的设计和实现过程。

电子时钟主要由时钟模块、显示模块、闹钟模块等部分组成,通过合理的接线和程序设计实现各种功能。

首先,我们设计时钟模块,通过外部晶振产生时钟信号,并利用51单片机的定时器模块实现时间的精确计算和显示。

同时,我们还设计了显示模块,采用数码管或液晶屏显示时间和日期信息,通过数字或字符的组合,使信息直观清晰。

此外,闹钟模块也是电子时钟的重要功能之一,我们可以设置闹钟时间,并在设定时间触发闹钟功能,提醒用户。

通过合理的程序设计,我们可以实现电子时钟的各种功能,并提升用户体验。

最后,我们将讨论基于51单片机的电子时钟在实际生活中的应用前景和发展趋势。

随着智能家居的快速发展,电子时钟作为家庭必备的电子设备,其功能和外观需求也在不断提升。

未来,基于51单片机的电子时钟将会更加智能化,可以与手机、电视等智能设备联动,实现更多个性化的功能。

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

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

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

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

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

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

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

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

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

关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

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

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

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

1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

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

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

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。

二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。

2.软件设计通过C语言编写单片机程序,用于实现时钟功能。

3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。

(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。

(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。

(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。

三、实验结果经过调试,电子时钟的各项功能都能够正常实现。

在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。

在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。

四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。

通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。

在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

单片机设计时钟实训报告

单片机设计时钟实训报告

一、引言随着科技的不断发展,单片机技术在电子领域得到了广泛的应用。

为了提高学生的实践能力,培养实际工程应用能力,我们进行了单片机设计时钟实训。

本实训以AT89C51单片机为核心,通过学习时钟电路的设计、编程和调试,使学生掌握单片机在时钟设计中的应用,提高学生的动手能力和创新思维。

二、实训目的1. 掌握单片机的基本原理和编程方法;2. 熟悉时钟电路的设计和调试;3. 培养学生的实际工程应用能力和创新思维;4. 提高学生的团队协作能力和沟通能力。

三、实训内容1. 硬件设计(1)单片机选型:选用AT89C51单片机作为核心控制单元;(2)时钟电路:采用晶振电路作为时钟源,实现1Hz的基准时钟;(3)显示电路:采用LCD1602液晶显示屏,实现时间、日期和星期等信息显示;(4)按键电路:设计4个按键,分别用于设置时间、日期、星期和闹钟功能;(5)复位电路:采用上电复位和按键复位两种方式,保证系统稳定运行。

2. 软件设计(1)系统初始化:初始化单片机,设置波特率、定时器等;(2)时间显示:通过读取实时时钟芯片(如DS1302)的数据,显示时间、日期和星期;(3)按键处理:根据按键输入,实现时间、日期、星期和闹钟的设置与修改;(4)闹钟功能:当设定的时间到达时,通过蜂鸣器发出提示音。

3. 调试与优化(1)调试方法:使用Proteus软件进行仿真调试,观察程序运行状态,分析故障原因;(2)优化方法:针对仿真过程中出现的问题,优化程序代码,提高程序运行效率。

四、实训过程1. 硬件制作(1)按照设计图纸,焊接电路板;(2)连接晶振、LCD显示屏、按键和蜂鸣器等元器件;(3)调试电路,确保各元器件正常工作。

2. 软件编写(1)使用Keil C51软件编写程序,实现时钟显示、按键处理和闹钟功能;(2)编译程序,生成HEX文件。

3. 调试与优化(1)使用Proteus软件进行仿真调试,观察程序运行状态;(2)针对仿真过程中出现的问题,优化程序代码,提高程序运行效率;(3)将优化后的程序烧录到单片机中,进行实际运行测试。

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

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

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

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

五、实验结果。

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

六、总结与展望。

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

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

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

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

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

《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计目录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片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。

6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。

51单片机的电子时钟设计

51单片机的电子时钟设计

51单片机的电子时钟设计一、引言随着科技的发展和人们对时间的准确度的要求日益提高,电子时钟成为了人们生活中不可缺少的一部分。

本文将介绍一种基于51单片机的电子时钟设计。

二、硬件设计1.主控部分本设计使用了51单片机作为主控芯片,51单片机具有丰富的接口资源和强大的处理能力,非常适合用于电子时钟的设计。

2.显示部分采用了数码管显示屏作为显示部分。

为了提高显示的清晰度,我们选用了共阳数码管。

使用4位数码管即可显示时、分和秒。

3.时钟部分时钟部分由振荡器和RTC电路构成。

振荡器提供时钟脉冲信号,RTC 电路实现对时钟的准确计时。

4.按键部分按键部分采用矩阵按键,以实现对时间的设置和调整。

三、软件设计1.系统初始化在系统初始化阶段,需要对硬件进行初始化设置。

包括对I/O口的配置,定时器的初始化等。

2.时间设置用户可以通过按键设置当前的时间。

通过矩阵按键扫描,检测到用户按下了设置键后,进入时间设置模式。

通过按下加减键,可以增加或减少时、分、秒。

通过按下确认键,将设置的时间保存下来。

3.时间显示在正常运行模式下,系统将会不断检测当前的时间,并将其显示在数码管上。

通过对时钟模块的调用,可以获取当前的时、分、秒并将其显示出来。

4.闹钟功能在时间设置模式下,用户还可以设置提醒闹钟的功能。

在设定时间到来时,系统会发出蜂鸣器的声音,提醒用户。

四、测试与验证完成软硬件设计后,进行测试与验证是必不可少的一步。

通过对硬件的连线接触检查和软件的功能测试,可以确保整个设计的正确性和可靠性。

五、总结通过本次设计,我对51单片机的使用和原理有了更清晰的认识,同时也对电子时钟的设计和制作有了更深入的了解。

电子时钟作为一种常见的电子产品,在我们的日常生活中发挥了重要的作用。

这次设计过程中,我遇到了许多问题,但通过查阅资料并与同学一起探讨,最终解决了问题。

相信通过不断的学习和实践,我可以在未来的设计中取得更好的成果。

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

基于51单片机的电子时钟的设计与实现综述

基于51单片机的电子时钟的设计与实现综述

基于51单片机的电子时钟的设计与实现综述基于51单片机的电子时钟是一种常见的嵌入式系统设计项目。

它通过使用51单片机作为核心处理器,结合外部电路和显示设备,实现了时间的计时和显示功能。

本文将对基于51单片机的电子时钟的设计和实现进行综述,包括硬件设计和软件设计两个部分。

一、硬件设计1.时钟电路时钟电路是电子时钟的核心部分,它提供稳定的时钟信号供给单片机进行计时。

常用的时钟电路有晶振电路和RTC电路两种。

晶振电路通过外接晶体振荡器来提供时钟信号,具有较高的精度和稳定性;RTC电路则是通过实时时钟芯片来提供时钟信号,具有较高的时钟精度和长期稳定性。

2.显示电路显示电路用于将时钟系统计算得到的时间信息转换为人们可以直接观察到的显示结果。

常用的显示器有数码管、液晶显示屏、LED显示屏等。

显示电路还需要与单片机进行通讯,将计时的结果传输到显示器上显示出来。

3.按键电路按键电路用于实现对电子时钟进行设置和调节的功能。

通过设置按键可以实现修改时间、调节闹钟等功能。

按键电路需要与单片机进行接口连接,通过读取按键的输入信号来实现对时钟的操作。

4.供电电路供电电路为电子时钟提供电源,通常使用直流电源。

供电电路需要满足单片机和其他电路的电源需求,同时还需要考虑电源的稳定性和保护措施等。

二、软件设计1.系统初始化系统初始化主要包括对单片机进行外设初始化、时钟初始化和状态变量初始化等。

通过初始化将各个外设配置为适合电子时钟功能运行的状态,并设置系统初始时间、闹钟时间等。

2.计时功能计时功能是电子时钟的核心功能,通过使用定时器和中断技术来实现。

通过设置一个固定时间间隔的定时器中断,单片机在每次定时器中断时对计时寄存器进行增加,实现时间的累加。

同时可以将计时结果转化为小时、分钟、秒等形式。

3.显示功能显示功能通过将计时结果传输到显示器上,实现时间信息的显示。

通过设置显示器的控制信号,将时间信息依次发送到各个显示单元上,实现数字或字符的显示功能。

51单片机电子时钟设计报告

51单片机电子时钟设计报告

51单片机电子时钟设计报告一、引言电子时钟是一种常见的电子产品,它通过控制数字显示器的数字显示,来实现时间的显示功能。

本报告将介绍一种基于51单片机的电子时钟设计方案。

二、系统架构本电子时钟系统采用分级结构,分为实时时钟电路、中央处理器、显示器等核心模块。

实时时钟电路模块负责提供系统的时钟信号,中央处理器负责对时间进行处理和控制,显示器用于显示时间。

三、硬件设计1.实时时钟电路实时时钟电路采用DS1302芯片,该芯片集成了时钟实时计数器,能够提供精确的时钟信号。

同时,芯片还内置了电池供电电路,当外部电源中断时,电子时钟可以通过电池继续工作。

2.中央处理器中央处理器使用51单片机,它具有较强的计算和控制能力,可以方便地对时间进行处理和控制。

通过与实时时钟电路的通信,中央处理器可以获取当前时间,并进行各种计算操作。

3.显示器显示器采用数码管,可以直观地显示时间。

通过中央处理器控制,可以实现小时、分钟、秒钟的显示,并且可以进行亮度的调节。

四、软件设计1.时钟管理中央处理器的软件主要负责对时间的管理。

它可以从实时时钟电路中获取当前时间,并根据需要进行时间的累加和更新。

同时,中央处理器还可以通过按键实现时间的手动调节。

2.显示控制中央处理器通过对数码管的控制,实现时间的显示功能。

它可以根据当前时间的变化,动态地更新数码管的显示内容。

同时,还可以通过按键控制,对数码管的亮度进行调节。

五、系统特点1.精确性高:采用DS1302芯片实时时钟电路,能够提供精确的时钟信号,确保时间的准确性。

2.易于操作:中央处理器软件通过按键实现时间的调节,操作简单方便。

3.显示效果好:采用数码管进行显示,显示效果清晰,易于观察时间。

六、应用领域本电子时钟设计适用于各种需要显示时间的场景,如家庭、办公室、学校等。

七、总结本报告介绍了一种基于51单片机的电子时钟设计方案。

通过实时时钟电路提供精确的时钟信号,中央处理器进行时间管理和控制,显示器进行时间的显示。

单片机 电子时钟实验报告

单片机 电子时钟实验报告

电子时钟设计实验报告姓名:学号:班级:指导老师:一、实验基本要求利用定时计数器,设计一个电子时钟,使用前面使用过的显示子程序。

从左到右依次显示时分秒。

有两种方法实现,一种是在中断程序中计数,产生时分秒计数,送显示缓冲区。

另一种是中断程序每一秒清除一个位变量,而主程序通过监视位变量的变化来知道每秒的时间。

进而要求:1.加入时间调整程序,使用两个或三个按钮,调节当前的时间。

类似平常使用的电子表。

可以让正在调整的位闪烁显示。

2.可以加入一个闹钟钟设置,当所定的时间到时,产生断续的蜂鸣声。

可以加入日历的功能。

二、最终实现的功能1、日历(年、月、日)显示与数值的修改2、时钟(时分秒)显示及数值的修改3、闹钟设定及数值的修改、到时响铃4、秒表计时及秒表重置三、设计核心思想程序设计中设置定时器0作为基本时钟,中断每50ms进入一次,每20次中断即1秒,秒加一,在中断服务程序中执行60秒进位、60分进位。

通过独立式键盘,进行各项数值调整、定时器开启和暂停以及重置。

各个功能在分立的子函数中实现,在主函数中进行调用,结构清晰。

四、设计亮点1、按键功能通过“按下时间的长短”丰富在按键消抖结束后,再次判断按键按下的同时,记录按下时间的长短。

短按实现数值的修改、计时暂停及启动,长按实现模式的切换和重置。

2、闹铃设置为一段音乐通过查阅网上资料,将蜂鸣器的响声富有变化,从而实现一段有旋律的音乐。

3、函数独立设计的程序中包含以下函数模块:延时、初始化、时间(日历、闹钟)显示、键盘扫描、秒表显示、定时器0中断函数(时钟)、定时器1中断(秒表)、音乐、闹钟及主函数。

4、各功能的实现采用模块化处理模式1:时钟显示;模式2:日历显示;模式3:秒表显示;模式4:闹钟显示。

五、实验中的问题总结LED数码管显示部分小结:(1)要设置段选(P2.6)和位选(P2.7)。

(2)段选和位选需按照书上讲的逻辑编写。

虽然P0口作为段选,P2口作为位选,但是程序设计中位选时要将值赋给P0口(打开位选→赋位选→关闭位选)。

基于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键再次进入时钟运行状态。

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单片机的数字钟设计报告

数字钟项目硬件总体设计说明书编制单位:侏罗纪工作室作者发布日期:2011-1-22审核人:批准人:目录1.引言 (1)1.1.编写目的: (1)1.2.背景 (1)1.3.定义 (2)1.4.参考资料 (2)2.总体设计 (3)2.1开发与运行环境 (3)2.2硬件功能描述 (3)2.3硬件结构 (3)3.硬件模块设计 (4)3.1.描述 (4)3.1.1.AT89C51单片机简介 (4)3.1.2. 键盘电路的设计 (5)3.1.3. 段码驱动电路 (5)3.1.4. 显示器的选择 (7)3.1.5. 蜂鸣器驱动电路 (8)3.2.功能 (8)4.嵌入式软件设计 (9)4.1.流程逻辑 (9)4.2.算法 (10)4.2.1. 中断定时器的设置 (26)4.2.2. 闹钟子函数 (27)4.2.1. 计时函数 (28)4.2.2. 键盘扫描函数 (29)4.2.3. 时间和闹钟的设置 (30)5.经验总结 (31)6.附录 (37)1.引言1.1.编写目的:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间等造成的。

而钟表的数字化给人们生产生活带来了极大的方便。

数字钟是通过数字电路实现时,分,秒数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烤箱、通断动力设备、甚至各种定时电气的自动启用等。

【单片机】c51数字时钟(带年月日显示)

【单片机】c51数字时钟(带年月日显示)

【单片机】c51数字时钟(带年月日显示)集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-【单片机】c51数字时钟(带年月日显示)显示当前时间:9点58分34秒(第一个零表示闹钟未开启)当前日期:10年4月六日摘要:本设计以单片机为核心,LED数码管动态扫描显示。

采用矩阵式键盘输入能任意修改当前时间日期和设定闹钟时间。

具有显示年月日(区分闰年和二月),闹钟报警和整点报时功能说明系统的功能选择由7个按键完成。

其中,分别对应调整当前时间的时和分,为外部中断0,控制闹钟功能的开启/关闭(开启时数码管第一位显示字母’c’)用作外部中断1,当前时间的显示与闹铃时间显示切换,闹钟显示时按,可进行闹钟时分的设定,此时,led1灯灭。

闹铃时间到切闹钟开关开启时,闹铃响一分钟。

\\对年月日进行调整(第一次按,就进入了年月日的显示,现在就可对日期进行调整)。

按回到当前时间的显示状态。

整点到时:报警对应小时的次数。

程序如下:#include<>#include<>#include<>#define uchar unsigned char#define uint unsigned intuchar data keyvalue; //查到的键值uchar data keys; //转换出的数字uchar dis[8];uchar codeseg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x40,0x00,0x39,0xf7}; // 0 1 2 3 4 5 6 7 8 9 - 灭灯 cnsbit led_duan=P2^6;//段选通sbit led_wei=P2^7;//位选通sbit speaker=P2^3;//蜂鸣器sbit minitek=P3^0;//分校正按键sbit hourk=P3^1;//小时校正按键sbit p3_4=P3^4;//sbit yeark=P3^5;//年sbit monthk=P3^6;//月sbit dayk=P3^7;//日uchar data wei,i;bit leap_year;//闰年标志位bit dis_nyr;bit cal_year=1;bit calculate=1;//显示年月日与当前时间切换标志uchar data c_min;//闹钟‘分寄存单元uchar data c_hou;//闹钟、小时寄存单元uchar data second;//秒uchar data minite;//分变量uchar data hour;//小时变量uchar data year,month,day;//定义年月日变量uchar data CNTA;uchar data speaker_num; //蜂鸣次数bit beep; //整点报时标志bit run; //运行标志bit flash; //灭灯标志bit clarm_switch; //闹钟开关标志bit baoshi; //报时开关标志sbit led1=P1^6; // 按键标识指示灯sbit led2=P1^7; // 运行标志指示灯sbit P3_2=P3^2;sbit P3_3=P3^3;uint n,k;/*10微秒级延时*/void delay_10us(uchar n)?{ do{ _nop_();_nop_();_nop_();_nop_();_nop_();}while(--n);}/***毫秒级延时 ***/void delay_ms(uint n)?{ do delay_10us(131);while(--n);}/****** 当前时间转换******/clk_to_dis(){dis[0]=second%10;dis[1]=second/10;if(flash)dis[2]=10;else dis[2]=11;dis[3]=minite%10;dis[4]=minite/10;dis[5]=hour%10;dis[6]=hour/10;}/*****定时闹钟显示译码(用于七段码显示)*****/ clarm_to_dis(){dis[0]=c_min%10;dis[1]=c_min/10;if(flash)dis[2]=10;//亮灯else dis[2]=11; //灭灯dis[3]=c_hou%10;dis[4]=c_hou/10;dis[5]=10;dis[6]=13;}/***********年月日显示译码************/ nyr_to_dis(){dis[0]=day%10;dis[1]=day/10;dis[2]=10;//显示'-'dis[3]=month%10;dis[4]=month/10;dis[5]=10; // '-'dis[6]=year%10;dis[7]=year/10;}/*主函数*/void main(){P2=0xff;P1=0XFF;p3_4=0;run=1;led2=0;//运行指示灯亮led1=1;flash=0x00;dis[2]=10; //第三位显示“-”wei=0x7f;//选通低位 i=0;?second=21;minite=58;hour=9;CNTA=0x00;year=10;month=4;day=5;clk_to_dis(); TMOD=0x11;TH0=15560/256;TL0=15560%256;TH1=0xfc;TL1=0x18;EA=1;PT0=1;EX0=1; //开中断;EX1=1;?ET0=1;ET1=1;TR0=1;TR1=1;while(1){while(run==1){clk_to_dis();if(calculate){if(month==1|month==3|month==5|month==7|month==8|month==10|month==12){day++;?if(day>31){day=0x01;month++; if(month==13){month=1;year++;cal_year=1;}}led1=0; //指示灯亮}if(month==4|month==6|month==9|month==11){day++;if(day>30){day=0x01;month++;}led1=0; //指示灯亮}if(month==2) {if(leap_year==1){day++;if(day==30)day=1;}else {day++;if(day==29)day=1;}}while(cal_year){if((year+2000)%400==0) leap_year=1; // 被400整除为闰年else if((year+2000)%100==0) leap_year=0; //不能被400整除能被100整除不是闰年 else if((year+2000)%4==0) leap_year=1; //不能被400、100整除能被4整除是闰年 else leap_year=0;cal_year=0;}calculate=0;led1=1;}while(!minitek){for(n=0;n<1000;n++);if(!minitek==0)break; //延时防抖minite++;second=0x00;led1=0;for(n=0;n<20;n++){speaker=!speaker;delay_10us(50); //蜂鸣器响 }if(minite==60)minite=0x00; while(!minitek); //等待键松开led1=1;//显示灯}while(!hourk){for(n=0;n<1000;n++);if(!hourk==0)break;hour++;second=0x00;led1=0;。

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

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

基于51单片机的电子时钟设计
电子时钟是一种使用电子元件和计算机技术制造的时计,它可以显示年、月、日、时、分、秒等时间信息,并且具有显示精确、功能齐全、操
作简便等特点。

本文将基于51单片机设计一个电子时钟。

一、硬件设计:
1.时钟模块:我们可以使用DS1302时钟模块作为实时时钟芯片,它
可以提供精确的时间信息,并且可以通过单片机与之进行通信。

2.显示模块:我们可以使用共阳数码管进行时间的显示,将时钟设计
成6位7段显示器。

3.按键模块:我们可以使用按键作为输入方式,通过按键调整时间信息。

二、软件设计:
1.初始化:首先,我们需要初始化时钟模块和显示模块,使它们正常
工作。

同时,设置时钟的初始时间为系统当前时间。

2.获取时间:通过与时钟模块的通信,获取当前的时间信息,包括年、月、日、时、分、秒等。

3.显示时间:将获取到的时间信息通过显示模块显示出来,分别显示
在6个数码管上。

4.时间调整:通过按键模块的输入,判断用户是否需要调整时间。


果需要,可以通过按键的不同组合来调整时、分、秒等时间信息。

5.刷新显示:通过不断更新显示模块的输入信号来实现时钟的流动性,保持秒针不断运动的效果。

6.时间保存:为了保证时钟断电后依然能够保持时间,我们需要将时
钟模块获取到的时间信息保存在特定的EEPROM中。

7.闹钟功能:可以通过按键设置闹钟,当到达闹钟时间时,会通过蜂
鸣器发出响声。

以上就是基于51单片机的电子时钟设计方案。

通过对硬件和软件的
综合设计,我们可以实现一个功能齐全的电子时钟。

51单片机数字钟设计实习报告

51单片机数字钟设计实习报告

51单片机数字钟设计实习报告目录一.设计方案: (3)二.设计内容: (3)三.相关总线及芯片介绍: (3)1.SPI总线: (3)2.74LS595芯片: (4)3. 实验箱电路图: (6)四.系统软件程序设计: (6)五.设计程序: (8)六.程序调试及显示: (11)七.实习心得: (12)八.参考文献: (13)一.设计方案:通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。

二.设计内容:这里采用应用广泛的C51作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。

首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,秒计60次形成分,分计60形成小时,小时计到12或者24。

通过外部中断实现12进制与24进制的切换。

最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。

三.相关总线及芯片介绍:1.SPI总线:SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。

外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。

SPI 总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。

由于SPI系统总线一共只需3~4位数据线和控制即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计

m a j o ri t v o f e l e c t r o n i C t e c h n o l o g y e n t h u s i a s t S c a n r e f e r t o a n d m a k e t h e i r o w n .
电子钟 显示时间是用数码 管实 现的, 本设计选用的数码管是 6位数码管, 以分别实现对“ 时” 、 “ 分” 、 “ 秒” 进 行数字显示 , 它们 之
间的间隔用数码管上 的小数点来分割 , 采用 7 4 H C 5 7 3 锁 存器来驱动六位 8段数 码管 ,并利用石英晶振产生时钟脉冲, 并利用 单片机 内部的定时器计数, 通过程序和外 围电路控制数码管进行动态显示 。 本 文提供一种简单且廉价的设计方 案, 广大的电子
Ke y wo r d s: e 1 e c t r o n i C C 1 o c k: d i g i t a l c o n t r o l :S T C 8 9 C 5 1 M C U
0引言
电子钟 是当前市面上 十分普及 的计时装置 , 它成本 低廉 , 计
时准确, 而 且 由于 其 显示 装 置 可 以 发光 , 因此夜间也清晰可见, 它 的性 价 比 是 比较 高 的 , 现 在 人们 尤 其 是 在青 年 人 群 中 , 使 用 电子 计
M e n g Y u j i a
( C o l l e g e o f m e c h a n i c a l a n d e l e c t r i c a l e n g i n e e r i n g N o r t h e a s t F o r e s t r y U n i v e r s i t y ,H e i l o n g j i a n g H a r b i n , 1 5 0 0 4 0 )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告设计名称:单片机电子时钟的设计班级:电信08级1班学号:姓名:指导教师:一课程设计的目的单片计算机即单片微型计算机。

(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

二、课程设计的具体要求:该课程设计是利用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单片机系统简介40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。

⒈电源:⑴VCC - 芯片电源,接+5V;⑵VSS - 接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。

但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。

⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊控制线:控制线共有4根,⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲①ALE功能:用来锁存P0口送出的低8位地址②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵PSEN:外ROM读选通信号。

⑶RST/VPD:复位/备用电源。

①RST(Reset)功能:复位信号输入端。

②VPD功能:在Vcc掉电情况下,接备用电源。

⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。

①EA功能:内外ROM选择端。

②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)四、MCS-51单片机内部定时器/计数器、中断系统简介定时/计数器是单片机中重要的功能模块之一,在检测,控制和智能仪器等设备中经常用它来定时。

MCS-51系列中51子系列有2个16位的可编程定时/计数器:T0和T1;每个定时计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。

T0有4种工作方式,T1有3种工作方式,T2有3种工作方式,可通过编程设定。

每个定时/计数器计数事件到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。

2.中断系统简介MCS-51单片机提供5个硬件中断源:2个外部中断源INT0(P3.2)和INT1(P3.3),2个定时/计数器T0和T1的溢出中断TF0和TF1;1个串行口发送TI和接收RI中断。

T0中断服务程序流程图如图11.3。

五、键盘和LED数码管显示器简介本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。

采用软件译码动态显示。

按键处理设置为:如没有按键,则时钟正常走时。

当按下K0按键时,进入调分状态,时钟停止走动;按K1可K2按键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时钟开始计时运行。

六、基本原理1.定时器/计数器T0定时器/计数器T0用于时间计时。

选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把它们的值放到存储单元的指定位置。

七.硬件电路八、软件程序流程及代码1. T0中断服务程序流程图3.程序代码ORG 0000HLJMP STARTORG 000BH ;定时器/计数器T0中断程序入口LJMP INTT0;主程序START:MOV R0,#70HMOV R7,#0CHINIT:MOV @R0,#00HINC R0DJNZ R7,INITMOV 72H,#10MOV 75H,#10MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#03CHSETB EASETB ET0SETB TR0START1:LCALL SCANLCALL KEYSCANSJMP START1;延时1MS子程序DL1MS:MOV R6,#14HDL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;延时20MS子程序DL20MS:ACALL SCANACALL SCANACALL SCANRET;数码管显示程序SCAN:MOV A,78H ;时间存入显示缓冲区相应位置MOV B,#0AHDIV ABMOV 71H,AMOV 70H,BMOV A,79HMOV B,#0AHDIV ABMOV 74H,AMOV 73H,BMOV A,7AHMOV B,#0AHDIV ABMOV 77H,AMOV 76H,BMOV R1,#70H ;循环扫描显示MOV R5,#80HMOV R3,#08HSCAN1:MOV A,R5MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RR AMOV R5,ADJNZ R3,SCAN1MOV P2,#00HMOV P0,#0FFHRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码;定时器/计数器T0中断服务程序INTT0:PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0MOV 7AH,#00OUTT0:SETB ET0POP PSWPOP ACCRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0JNB P1.1,KEYSCAN1JNB P1.2,KEYSCAN2 KEYOUT:SETB EARETKEYSCAN0:LCALL DL20MSJB P1.0,KEYOUTWAIT0:JNB P1.0,WAIT0INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUTMOV 7CH,#00SETB ET0SETB TR0SJMP KEYOUT KEYSCAN1:LCALL DL20MSJB P1.1,KEYOUTWAIT1:JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11INC 79HMOV A,79HCJNE A,#3CH,KEYOUTMOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AHMOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MSJB P1.2,KEYOUTWAIT2:JNB P1.2,WAIT2MOV A,7CHCJNE A,#02H,KSCAN21DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AHMOV A,7AHCJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND九.设计制作流程1、在PROTEUS中设计硬件PROTEUS软件使用过程如下:1)选择元器件2)放置元器件3)连线4)添加程序5)运行仿真元器件清单如下:单片机:80C52按键:BUTTON电阻:RES电容:CAP晶振:CRYSTALLED数码管:7SEG-MPX8-CA-BLUE(CA:共阳,CC:共阴)地:GRAND电源:POWER2、在KEIL51中编写程序,编译、连接形成HEX文件。

3、在PROTEUS中把HEX文件加载到单片机芯片上。

4、运行仿真看结果。

十.总结这次课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

在这期间,我得到了很多同学的帮助。

我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。

以前的汇编语言没学好,一开始的程序这块儿就要令我束手无策了。

后来请教我们班的一个同学,看他边做边给我讲解。

最后在计算机上调试成功,后来自己又从头到尾做了一遍,完成了本程序。

最后说明自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。

而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。

相关文档
最新文档