单片机课程设计--简易电子钟.doc

合集下载

毕业设计78单片机 (简易电子钟设)

毕业设计78单片机 (简易电子钟设)

前言二十多年来,电子计算机技术已广泛应用于测试领域中。

电子计算机对人类社会的进步和发展有着阶层的飞跃,它是现代化社会的象征,是人们工作、学习、生活不可缺少的。

在近几年发展起来的智能仪器,无论是在测量的灵敏度、准确度、可靠性、功能等方面,还是在解决测试技术问题的深度及广度方面都有了巨大的发展,它以一种崭新的面貌展现在人们的面前。

随着大规模集成电路及计算机技术的迅速发展,智能仪器将会有更广阔的应用前景。

而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得以在智能仪器中被广泛的应用。

本次设计是用51系列单片机中的AT89S52制作简易电子钟。

电子钟是智能化仪器仪表的一种,它可广泛应用于工业、农业、日常生活等领域。

它以微控制器为核心,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表发展的新方向,具有一定的实用价值。

本次采用的AT89S52 是一种低功耗,高性能的CMOS 8位微型计算机,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。

正因为它有这么多特点,所以在实现本次设计的简易电子钟系统中不需外部资源扩展。

简易电子钟能正确反映实际时间值,能完成时、分、秒的显示调整。

本次简易电子钟课程设计采用ASM51软件完成用汇编语言编写。

通过本次设计能让我们对专业的电子画图软件(Protel)、51系列单片机的工作原理、对汇编语言编写程序有更深刻的了解。

本次设计由于时间仓促以及设计者水平有限,难免存在着一些不足和错漏之处,诚肯和大家一起研究探讨,在此特别感谢老师提出的宝贵意见和一直以来的耐心指导。

编者:戴建2007.12.05目录第1章简易电子钟设计方案的选择和论证........................................................11.1 采用实时时钟芯片. (1)1.2 键盘与显示选择发案 (2)第2章单元电路的设计 (3)2.1 电源的设计 (3)2.2 时钟和复位电路 (3)2.2.1 时钟电路 (3)2.2.2 复位电路 (4)2.3 显示接口电路 (4)2.4 键盘接口电路的设计 (5)2.5 主电路原理图、PCB图 (6)2.5.1 主电路原理图 (6)2.5.2 电源电路原理图 (7)2.5.3 主电路PCB电路图 (7)2.5.4 下载线电路PCB板图 (8)第3章硬件资源、存储器单元地址分配说明 (8)3.1 硬件资源说明 (8)3.2 数据存储器单元地址分配 (8)3.3 程序存储器单元地址分配 (9)第4章程序设计思路与程序流程图 (9)4.1 程序设计思路 (10)4.2 监控程序流程图 (10)4.3 “P.”点显示子程序流程图 (11)4.4 显示子程序流程图 (11)4.5 键盘扫描子程序流程图 (11)4.6 时间设置子程序流程图 (12)4.7 中断自动计时程序流程图 (13)设计体会 (14)元器件清单 (15)参考文献 (15)附录 (16)附录A 程序清单 (16)附录B 简易电子钟操作说明 (24)第1章简易电子钟设计方案的选择和论证本次简易电子钟系统功能简单,用单片机的最小系统就能得以实现。

单片机课程设计--智能电子钟的设计

单片机课程设计--智能电子钟的设计

目录1引言 (1)1.1设计内容和要 (1)1.2 工作原理 (2)2总体设计 (2)2.1 方案设计 (2)2.2 系统框图 (2)2.3 核心芯片简介 (3)2.3.1 DS1302简介 (3)2.3.2 AT89C51简介 (3)3 智能电子钟软硬件电路的设计 (4)3.1 硬件设计 (4)3.1.1 复位电路设计 (4)3.1.2 DS1302与单片机的接口设计 (5)3.1.3 LED显示设计 (5)3.1.4 电源设计 (6)3.1.5 按键开关去抖设计 (6)3.1.6 时钟电路的设计 (7)3.1.7 电路总原理图设计 (8)3.2 软件设计 (8)3.2.1 流程图 (8)4protues仿真与调试 (11)4.1 电路的仿真 (11)4.2软件调试 (11)结论……………………………………………………………………………………………错误!未定义书签。

参考文献 (14)附录 (15)源程序 (15)1 引言电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C51芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

1.1设计内容和要求以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年。

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

单片机电子时钟设计

单片机电子时钟设计

单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理。

由单片机作为电子时钟的核心控制器,可以通过它的时钟信号来实现计时功能,将时间数据由单片机输出,利用显示器将时间显示出来。

通过键盘可以进行时间的设定。

输出设备显示器可以用液晶显示技术或数码管来显示技术。

本系统利用单片机实现具有计时、校时等功能的数字电子时钟,是以单片机AT89C51 为核心元件同时采用LED数码管显示器动态显示“时”,“分” “秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

第一章概述1.1课题研究的目的和意义数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于电子集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域,因此进行电子钟的设计是必要的。

尽管目前市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机定时器的功能也可以完成电子钟电路的设计,因此进行电子钟的设计是可行的。

在这里我们将已学过的比较零散的数字电路和单片机的知识有机的、系统的联系、组织起来应用于实际,来培养我们的综合分析和设计电路,写程序,调试电路、程序的能力。

单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

1.2国内外研究的现状及发展趋势从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展。

在这种趋势下,时钟的数字化,智能化已经成为现代时钟生产研究的主导设计方向。

单片机课程设计电子时钟

单片机课程设计电子时钟

单片机课程设计电子时钟一、课程目标知识目标: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显示器。

电子钟课程设计--基于单片机的电子钟设计

电子钟课程设计--基于单片机的电子钟设计

电子钟课程设计--基于单片机的电子钟设计烟台南山学院单片机课程设计题目基于单片机的电子钟设计姓名:吴志涛所在学院:计算机与电气自动化学院所学专业:自动化班级:自动化2班学号: 201002160229指导教师:杨国庆完成时间: 2013.9.20目录一、设计任务与要求 (2)1.设计的目的 (2)2.设计的指标 (2)3.设计的要求 (2)二、总体方案设计 (2)1.设计的思路 (2)2.电路的结构特征 (3)3.数据输入输出(I/O) (4)三、单元电路分析与设计 (4)1.显示部分数码管(LED) (4)2.键盘部分 (5)四、总原理图及元器件清单 (5)1.总程序图 (5)2.时间产生流程图 (6)3.按键控制流程图 (7)4.电子钟软件系统程序 (7)5.元器件清单 (10)五、软件仿真 (11)六、结论与心得 (11)七、参考文献 (12)一、设计任务与要求1.设计的目的设计一个带有年月日、时分秒及星期显示的电子钟。

电子钟的主要功能是给人们提供时间和日期信息,无论其形式如何,从外部都可分为显示和校准两部分。

为使电子日历协调工作,整个系统从功能上可分为实时时钟、显示和键盘三个模块,分别完成时间和日期的计算以及人机交互的管理等。

2.设计的指标电子钟是一套完整的时间显示系统,采用单片机等控制设计作为核心控制器,并能实时显示当前的日期,能够设置时间等操作。

3.设计的要求本电子钟能动态显示年、月、日、星期、小时、分钟、秒。

二、总体方案设计按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及显示模块和键盘接口模块共4个模块组成。

主控芯片使用51系列STC89C52RC单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。

采用DS1302作为计时芯片,可以做到计时准确。

更重要的是,DS1302可以在很小电流的后备电源(2.5~5.5V电源,再2.5V时耗电小于300nA),而且DS1302可以编程选择多种充电电流来为后备电源进行慢速充电,可以保证后备电源基本不耗电。

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

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

单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(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 电子秒表与闹钟系统概述 (1)1.1 课程设计基本要求 (1)1.2 系统实现功能 (1)1.3 系统应用价值展望 (2)2 仿真软件Proteus和Keil简介 (3)2.1 Proteus简介 (3)2.2 Keil简介 (3)3 系统工作原理分析 (4)3.1AT89C2051模块 (4)3.2 显示驱动模块 (6)3.3 数码管显示模块 (8)4 程序流程图设计 (9)5 Proteus仿真原理图 (12)6 课程设计体会 (14)参考文献 (15)附:源程序代码 (16)摘要随着科学技术的不断发展 , 人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。

软件部分以C语言为主体,用1602LCD 液晶屏显示输出信息,输出信息量多,更直观、人性化。

该时钟可实现人机交互,可通过提供的键盘对其进行调整。

系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。

本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。

关键词:定时器中断闹钟电子时钟1 电子秒表与闹钟系统概述1.1 课程设计基本要求(1) 用并行口设计一个具有显示功能的秒表,显示准确的北京时间(时、分、秒),可用24小时制式;(2) 有时间校准功能;(3) 允许通过转换功能键转换显示时间,用定时器实现一个电子闹钟,能设定和修改定时的时间,并能到时响铃通知;(4) 所有按键需要通过串口自发自收来调校各种功能。

1.2 系统实现功能本系统是基于单片机AT89S52制作的数字电子钟。

根据实验要求,在完成实验所要求的基本功能外,扩展了几个功能。

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

基于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单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。

但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的简易电子时钟设计1设计任务与要求1.1设计背景数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

单片根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示。

机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

1.2课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

1.3设计要求1).时制式为24小时制。

2).采用LED数码管显示时、分,秒采用数字显示。

3).具有方便的时间调校功能。

4).计时稳定度高,可精确校正计时精度。

2总体方案设计2.1实现时钟计时的基本方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。

(1)计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。

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

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

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

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

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

二、设计原理。

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

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

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

三、设计方案。

1. 硬件设计。

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

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

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

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

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

2. 软件设计。

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

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

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

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

四、设计实现。

1. 硬件实现。

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

2. 软件实现。

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

五、实验结果。

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

六、总结与展望。

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

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

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

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

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

基于单片机的简易电子时钟设计1 设计任务与要求1.1 设计背景数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

单片根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示。

机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

1.2 课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

1.3 设计要求1).时制式为24小时制。

2).采用LED数码管显示时、分,秒采用数字显示。

3).具有方便的时间调校功能。

4).计时稳定度高,可精确校正计时精度。

2 总体方案设计2.1 实现时钟计时的基本方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。

(1) 计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。

单片机数字电子钟课程设计

单片机数字电子钟课程设计

单片机数字电子钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基础知识,掌握数字电子时钟的原理和工作流程。

2. 学生能描述单片机编程的基本步骤,特别是与计时相关的指令和程序设计方法。

3. 学生能够解释数字电子钟各部分功能,如时钟电路、显示电路等,并了解它们之间的协作关系。

技能目标:1. 学生能够运用所学的单片机知识,设计并实现一个简单的数字电子钟程序。

2. 学生通过动手实践,提高焊接和电路排错的能力,能够组装和调试电子钟电路。

3. 学生能够利用仿真软件对电子钟程序进行测试和优化,培养问题解决和程序调试技巧。

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

2. 通过团队协作完成项目,增强学生的合作意识和沟通能力。

3. 学生在课程学习过程中,能够体验到知识与实践相结合的成就感,培养科学、严谨的学习态度。

分析课程性质、学生特点和教学要求:本课程设计针对高中年级学生,假设他们已具备基础物理知识和一定的编程能力。

课程性质为实践性强的综合设计课,旨在通过单片机数字电子钟的制作,巩固学生的电子技术知识与技能。

课程目标设定时考虑了学生的年龄特点和认知水平,注重理论与实践的结合,鼓励学生动手操作和探究学习,旨在提高学生的综合技术应用能力。

通过具体的学习成果分解,本课程旨在让学生不仅学习到知识,而且能够将知识应用到实际问题的解决中,充分体现课程的实用性和创新性。

二、教学内容1. 单片机基础知识回顾:重点复习单片机的内部结构、工作原理及编程基础,关联教材第二章内容。

2. 数字电子时钟原理:讲解时钟电路、计数器、振荡器等组成部分,对应教材第四章第二节。

- 时钟电路的构成与工作原理- 计数器的作用及其编程方法- 振荡器的种类及其在电子时钟中的应用3. 单片机编程设计:结合教材第三章,介绍编写电子时钟程序所需的指令和编程技巧。

- 基本计时指令的使用- 程序流程图的绘制- 中断处理在电子时钟中的应用4. 电路设计与制作:依据教材第五章,指导学生进行电子时钟的电路设计和组装。

单片机课程设计电子时钟

单片机课程设计电子时钟

目录第一部分设计任务及要求 (2)1.1单片机设计设计内容 (2)1.2单片机课程设计要求 (2)1.3 系统运行流程 (2)第二部分设计方案 (3)2.1 总体设计方案说明 (3)2.2 系统方框图 (3)2.3 系统流程图 (3)第三部分主要器材及基本简介 (7)3.1 主要器材 (7)3.2主要器材简介 (7)第四部分系统硬件设计 (7)4.1 数码管显示电路 (7)4.2键盘输入电路 (8)4.3 蜂鸣器 (8)第五部分课程设计总结 (9)附录 (9)1. 系统源程序注释及功能说明 (9)2. 原理图 (17)毕竟是两年前写的东西了,在这里分享一下自己的思路,程序100%能运行,只不过是在我的那块板子上,要参考的话,最好去看看自己用的板子的接口和板子的原理图啥样。

第一部分设计任务及要求1.1单片机设计设计内容利用STC89C51RC单片机和LCD7407六段数码管实现可预置参数的电子钟,可由按键切换不同的功能。

1.2单片机课程设计要求80C51系列单片机的外围接口电路设计,掌握应用软件的编写及调试。

学会用软件调试硬件和用硬件调试软件。

1.硬件设计要求:CPU选用 STC89C51RC,内有 4KB Flash ROM。

显示用6位LED,LED共阴极接法,采用动态显示法。

用芯片7407作7段LED段选驱动,用芯片7406段LED位段选驱动。

要求有单片机复位键,功能选择键,加/减键,移位键,确认键。

要求用Protel绘制电路原理图2.软件编写要求:(1)基本要求:实时时钟:显示年月日时分秒,各两位,分二页显示。

可以上电自动按预置时间走时。

(2)提高要求:时钟上电后,显示时分秒,用按键切换年月日3秒后,返回时分秒。

可以手动预置年、月、日、时、分、秒后,时间走时。

预置的位要求闪烁。

闹钟功能:定时到报警(喇叭发声),手动预置定时时间。

定时器(倒计时)功能:定时清0报警(喇叭发声),手动预置定时时间。

单片机简易时钟课程设计

单片机简易时钟课程设计

单片机简易时钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握时钟电路的组成及工作原理。

2. 学生能运用所学编程知识,编写简易时钟程序,实现时、分、秒的正常显示。

3. 学生了解单片机在日常生活和工业中的应用,认识到单片机技术的重要性。

技能目标:1. 学生能独立完成单片机简易时钟的电路搭建,提高动手实践能力。

2. 学生能通过编程实现对时钟时间的调整,培养问题解决能力和逻辑思维能力。

3. 学生能够运用所学知识,进行课程项目的展示和汇报,提高沟通表达能力。

情感态度价值观目标:1. 学生对单片机技术产生兴趣,培养积极探索、求知若渴的学习态度。

2. 学生在课程实践中,养成团队协作、共同解决问题的良好习惯。

3. 学生通过单片机简易时钟的制作,认识到科技改变生活,增强社会责任感和创新意识。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手能力和创新精神。

学生特点:学生在本年级已具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。

教学要求:教师应注重理论与实践相结合,关注学生的个体差异,引导学生主动探究,培养实际操作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 理论知识:- 单片机基础原理复习;- 时钟电路的组成和工作原理;- 程序设计基础,重点讲解循环结构和条件判断;- 单片机I/O口编程及应用。

2. 实践操作:- 电路搭建:指导学生搭建简易时钟电路,熟悉相关电子元器件的使用;- 程序编写:指导学生编写简易时钟程序,实现时、分、秒的显示和调整;- 系统调试:教授学生如何对程序进行调试,确保时钟运行稳定。

3. 教学大纲:- 第一阶段:复习单片机基础原理,学习时钟电路原理,为期2课时;- 第二阶段:学习程序设计基础,进行I/O口编程实践,为期3课时;- 第三阶段:进行电路搭建和程序编写,为期4课时;- 第四阶段:系统调试,课程项目展示与评价,为期1课时。

基于单片机的电子钟设计

基于单片机的电子钟设计

基于单片机的电子钟设计摘要:电子钟是一种普遍使用的时钟类型。

通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。

本文介绍了基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。

该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。

设计方案使用的单片机是AT89C52,时钟模块为DS1302。

实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。

关键词:单片机、电子钟、DS13021. 概述电子钟是目前流行的现代时钟类型之一。

通过单片机,可以实现数字时钟的各种功能,例如:时间显示、闹钟功能、温度显示等。

作为一种普遍应用于家庭以及公共场所的计时工具,电子钟能够提高人们的时效性、管理效率。

本文将介绍基于单片机的电子钟设计方案,其中包括硬件系统的设计和程序代码的实现。

该电子钟的基本功能包括:时钟模式、闹钟模式、温度显示和日期显示。

设计方案使用的单片机是AT89C52,时钟模块为DS1302。

实验结果表明,该电子钟系统具有稳定性高、精度高、实用性强等特点。

2. 硬件设计2.1 系统原理系统的核心是AT89C52单片机,其包括了8051架构下所有标准的特殊功能寄存器以及升级的功能模块。

DS1302是常用的实时时钟模块,它包含一个时钟/日历的B类时钟芯片、一个31个字节的静态RAM 以及一个摆振电路。

通过与AT89C52的串行通信接口,可以实现时钟芯片与单片机的通信。

2.2 电路设计电路设计包括AT89C52单片机、DS1302时钟芯片、4个7段数码管以及相关的外围元件。

其中,输入电源电压为5V直流电压,4个7段数码管均采用共阴极的连接方式。

2.3 电路说明(1) 时钟模块DS1302DS1302是一种时钟模块,其具有许多特性,例如:硬件控制时间的计数、在停电情况下,仍能保持时间记录、考虑到掉电情况、在无外部纪念日的情况下,为计时器提供64字节的RAM等特点。

简易数字电子时钟的设计

简易数字电子时钟的设计
2.2.1 单片机芯片的选择方案...............................................................................................3 2.2.2 显示模块选择方案和论证...........................................................................................3 2.2.3 时钟芯片的选择方案...................................................................................................3 2.2.4 电路设计最终方案确定...............................................................................................3
快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为 12MHz,电容应尽可能的选 择陶瓷电容,电容值约为 22μ F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与 单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3. 复位 RST 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将 使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0-P3 口均置 1 引脚 表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。当复位脚由高电平变为低电平 时,芯片为 ROM 的 00H 处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路 是复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的 输出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮 复位两种方式,此电路系统采用的是按钮复位电路。 4.输入输出引脚 (1) P0 端口[P0.0-P0.7] P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。 对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上 拉电阻。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据总线,访 问期间内部的上拉电阻起作用。 (2) P1 端口[P1.0-P1.7] P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3) P2 端口[P2.0-P2.7] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程 序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址 的外部数据存储器时其引脚上的内容在此期间不会改变。 (4) P3 端口[P3.0-P3.7] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告设计课题:简易电子时钟的设计专业班级:07通信1班学生姓名:黎捐学号:0710618134指导教师:曾繁政设计时间:2010.11.5—2010.12.20一、设计任务与要求(1)设计任务: 利用单片机设计并制作简易的电子时钟,电路组成框图如图所示。

(2)(2)设计要求:1)制作完成简易的电子时钟,时间可调整。

2)有闹钟功能。

二、方案设计与论证简易电子时钟电路系统由主体电路和扩展功能电路两主题组成,总体功能原理是以STC89C52单片机为主要的控制核心,通过外接4个独立式键盘作为控制信号源,八个七段数码管作为显示器件,蜂鸣器作为定时器件,单片机实时的去执行相应的功能。

在数码管上显示出来,此时通过不同的按键来观看和调节各种数据。

CPU 控制原理图如图1所示。

图1. CPU 控制原理图三、硬件系统的设计3.1 STC89C52控制模块STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O )端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。

MCS-52单片机内部结构8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM):8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编时间显示显示主控器(51单片机)时间 调整声音报 时(选做)址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图2. 单片机8052的内部结构程序存储器(ROM):8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

定时/计数器(ROM):8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

并行输入输出(I/O)口:8052共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。

全双工串行口:8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

中断系统:8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

时钟电路:8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。

图3. 单片机的引脚图3.2 复位电路8051的复位方式可以是自动复位,也可以是手动复位,见下图4。

此外,RESET/V pd还是一复用脚,V cc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

这里采用的是手动复位电路。

图4. 上电自动和手动复位电路图3.3时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。

本文用的是内部时钟方式。

电路设计如图5所示。

图5. 内部和外部时钟方式图3.4单片机的最小系统单片机的最小系统是由电源、复位、晶振、/EA=1组成,图6. 单片机最小系统的结构图3.5 键盘功能模块根据系统的基本的要求,基于时间的观看和设定等功能,采用由四个键构成的独立式键盘分别接在STC89C52单片机的P1.4-P1.7,非常的方便,同时相对于独立式键盘大大节省了空间,在软件的设计时带来了极大的方便,使程序简易明了,可读性强。

图7.按键电路图本次设计中,四个键分别定义为M 键、S1键、S2键和T 键,对应着菜单与确定,加1控制,减1控制,返回控制,各键功能单一,操作起来十分的清晰与方便。

当用手按下一个键时,如图7所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。

这就是抖动。

抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms 。

很容易想到,抖动问题不解决就会引起对闭合键的识别。

用软件方法可以很容易地解决抖动问题,这就是通过延 迟10ms 来等待抖动消失,这之后,在读入键盘码。

图8. 按键抖动信号波形3.6 LED 显示电路显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。

采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。

LED 显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。

对于多位LED 显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。

键按前沿后沿闭合S 2S 3S 4S 5P 14P 15P 16P 17图9. 数码管的硬件连接示意图3.7 定时提示模块电子钟的另外一个要求功能是在定时到达时候发出闹铃,本次设计利用蜂鸣器来实现。

具有电路结构非常简单,控制极其方便等优点。

3.8 系统电路图总原理图.PCB图见附录元件类型名称型号数量单片机STC89C52RC 1液晶显示器1602A 1晶振12.000 1蜂鸣器HYDZ 1按键 5电容30nf 222U 1电阻460欧 110k微调 1排阻1K*8 1三极管NPN8050 1四、数字钟的软件设计系统的软件设计也是工具系统功能的设计。

单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。

4.1 系统软件设计流程图主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。

开始启动定时器按键检测时间显示图10. 主程序流程图按键处理是先检测M按键是否按下,M按键如果按下,就显示菜单;如果没有按下,就检测S1按键是否按下,S1按键如果按下,相应数字就加1;如果没有按下,就检测S2按键是否按下,S2按键如果按下,相应数字就减1;如果没有按下,就检测T键是否按下,T键如果按下,就返回或撤消选项,如果没有按下,就把时间显示出来。

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。

4.2主程序:#include"keyscan.h"#include"speaker.h"sfr p2=0xa0;bit baoshi;bit lingsheng=0;uchar count;void time_dispose(); void time_compare(); void time_baoshi(uchar a);void T_init(){TMOD=0x01;TH0=(65536-49994)/256; TL0=(65536-49994)%25 6;EA=1;ET0=1;TR0=1;}void main() {DelayMs(10);DelayMs(10);lcd_init();now_time_show();P2=0xaa;T_init();SPK=1;while(1){keyscan();if(lingsheng){alarm_clock();lingsheng=0;baoshi=0;}if(baoshi){baoshi=0;if(!lingsheng){timing_speaker(shi);}}}}void time0(void)interrupt 1{TH0=(65536-49996)/256;TL0=(65536-49996)%256;count++;if(count==19){time_dispose();}if(count==20){count=0;now_time_show();P2=~P2;time_compare();}}void time_dispose() {miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;day++;if(day==7)day=0;ri++;if(yue==1||yue==3||yue= =5||yue==7||yue==8||yue ==10||yue==12){ if(ri==32){ ri=1; yue++;if(yue==13){yue=1;year++;if(year==3000)year=2010;}}}if(yue==2){if(((year%4==0)&&(year%100!=0))||(year%400==0)){if(ri==30){ri=1;yue++;}}else if(ri==29){ri=1;yue++;}}if(yue==4||yue==6||yue==9||yue==11){ if(ri==31){ri=1;yue++;}}}}}}void time_compare(){if(alarm_on_off){if(shi==timing_hou)if(fen==timing_min)if(miao==timing_sec){lingsheng=1;}}if(fen==0)if(miao==0)baoshi=1;}报时程序#include<reg52.h>sbit SPK=P1^0;sbit stop_m=P1^4;voidspeak_delay(unsigned int cnt){unsigned int a,b;for(a=cnt;a>0;a--)for(b=65;b>0;b--);}void speak_us(){unsigned int a;a=40; while(a--);}voidtiming_speaker(unsignedchar ab){unsigned int i,j;if(ab==0)ab=24;for(j=ab;j>0;j--){ for(i=0;i<300;i++){speak_delay(1);SPK=!SPK;}SPK=1;speak_delay(3);for(i=0;i<1000;i++){speak_delay(1);SPK=!SPK;}SPK=1;speak_delay(1500);}SPK=1;}void alarm_clock(){unsigned int i,j;for(j=20;j>0;j--) {for(i=0;i<400;i++) {speak_delay(1); SPK=!SPK;}SPK=0;speak_delay(30); for(i=0;i<200;i++) {speak_delay(1); SPK=!SPK;} SPK=1;speak_delay(20);for(i=0;i<500;i++){speak_delay(1);SPK=!SPK;}SPK=1;speak_delay(20);for(i=0;i<1000;i++){speak_us();SPK=!SPK;}SPK=1;if(!stop_m){speak_delay(10);if(!stop_m){j=1;while(!stop_m);}}speak_delay(500);}SPK=1;}液晶显示程序#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit rs=P2^0;sbit rw=P2^1;sbit e=P2^2;uchar shiw,gew;ucharshi=12,fen=30,miao=30; uchartiming_hou=12,timing_m in=30,timing_sec; ucharnian1=20,nian2=10,yue= 6,ri=10,day=4;uint year=2010;uchar codexing[7][3]={{'S','U','N'}, {'M','O','N'},{'T','U','E'},{ 'W','E','D'},{'T','H','U'},{' F','R','I'},{'S','A','T'}}; uchar a;bit alarm_on_off=0;bit bf=1;code uchartime_set_1[]={"A:settim e"};code uchar time_set_2[]={"B:alarmclock"};code uchartime_up[]={"alarmclock"};void writ_com(uchar date){bf=1;rs=0;rw=1;while(bf){P0=0xff;e=1;a=P0;e=0;bf=a&0x80;}rw=0;P0=date;e=1;e=0;}void writ_date(uchar date){bf=1;rs=0;rw=1;while(bf){P0=0xff;e=1;a=P0;e=0;bf=a&0x80;}rs=1;rw=0;P0=date;e=1;e=0;}void lcd_init(){writ_com(0x38);writ_com(0x0c);writ_com(0x06);writ_com(0x01);writ_com(0x80);}void writ_str(ucharadd,uchar dat2){shiw=dat2/10;gew=dat2%10;writ_com(add);writ_date(0x30+shiw); writ_date(0x30+gew); }void time_setting(){uchar time_i;writ_com(0x01);writ_com(0x0f);writ_com(0x80);for(time_i=0;time_i<9;ti me_i++)writ_date(time_set_1[tim e_i]);writ_com(0xc0);for(time_i=0;time_i<13;ti me_i++)writ_date(time_set_2[tim e_i]);}void now_time_show() {writ_com(0x01);nian1=(uchar)(year/100); nian2=(uchar)(year%100);writ_str(0x81,nian1);writ_str(0x83,nian2);writ_date('-');writ_str(0x86,yue);writ_date('-');writ_str(0x89,ri);writ_com(0x8c);writ_date(xing[day][0]);writ_date(xing[day][1]);writ_date(xing[day][2]);writ_str(0xc4,shi);writ_date(':');writ_str(0xc7,fen);writ_date(':');writ_str(0xca,miao);}void timing_set(){uchar i;writ_com(0x01);writ_com(0x83);for(i=0;i<11;i++)writ_date(time_up[i]);writ_com(0xc0);if(alarm_on_off){ writ_date('O');writ_date('N');}else{ writ_date('O');writ_date('F');writ_date('F');}writ_com(0xc5);writ_date('0'+timing_hou/10);writ_date('0'+timing_hou%10);writ_date(':');writ_date('0'+timing_min/10);writ_date('0'+timing_min%10);writ_date(':');writ_date('0'+timing_sec/10);writ_date('0'+timing_sec%10);按键程序#include"lcd.h"sbit m=P1^4;sbit s1=P1^5;sbit s2=P1^6;sbit t=P1^7;bit sys;//0bit one_fan,two_fan; uchar time_od;void DelayMs(uint tim) { uint x,y;for(x=tim;x>0;x--) for(y=110;y>0;y--);}void set_dingshi() { if(!m){DelayMs(10);if(!m){time_od++;while(!m);switch(time_od){case1:writ_com(0xc6);break;case2:writ_com(0xc9);break;case3:writ_com(0xcc);break;case4:writ_com(0xc0);time_od=0;break;default:break;} } }if(!s1){DelayMs(10);if(!s1){DelayMs(180);switch(time_od){case0:alarm_on_off=1;timing_set();writ_com(0xc0);break;case1:timing_hou++;if(timing_hou==24)timing_hou=0;timing_set();writ_com(0xc6);break;case2:timing_min++;if(timing_min==60)timing_min=0;timing_set();writ_com(0xc9);break;case :timing_sec++;if(timing_sec==60)timing_sec=0;timing_set();writ_com(0xcc);break;default:break;} } }if(!s2){ DelayMs(10);if(!s2){DelayMs(180);switch(time_od) {case 0:alarm_on_off=0; timing_set();writ_com(0x c0);break;case1:timing_hou--;if(tim ing_hou==255)timing_ho u=23;timing_set();writ_com(0x c6);break;case2:timing_min--;if(ti ming_min==255)timing_ min=59;timing_set();writ_com(0x c9);break;case3:timing_sec--;if(tim ing_sec==255)timing_se c=59;timing_set();writ_com(0x cc);break;default:break;} } }if(!t){ DelayMs(10);if(!t){while(!t);two_fan=1;time_setting();writ_com(0xc0); } } }void set_systime(){if(!m){DelayMs(10);if(!m) {time_od++;while(!m);switch(time_od){case1:writ_com(0xc8);break;case2:writ_com(0xc5);break;case3:writ_com(0x84);break;case4:writ_com(0x87);break;case5:writ_com(0x8a);break;case6:writ_com(0x8d);break;case7:time_od=0;writ_com(0xcb);break;default:break;} }}if(!s1){DelayMs(10);if(!s1){DelayMs(180);switch(time_od){case0:miao++;if(miao==60)miao=0;now_time_show();writ_com(0xcb);break;case1:fen++;if(fen==60)fen=0;now_time_show();writ_com(0xc8);break;case2:shi++;if(shi==24)shi=0;now_time_show();writ_com(0xc5);break;case3:year++;if(year==2099)year=2000;now_time_show();writ_com(0x84);break;case4:yue++;if(yue==13)yue=1;now_time_show();writ_com(0x87);break;case 5:ri++;if(yue==2){ if(((year%4==0)&&(year%100!=0))||(year%400==0)){ if(ri==30)ri=1;}Elseif(ri==29)ri=1; }if(yue==4||yue==6||yue==9||yue==11)if(ri==31)ri=1;if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)if(ri==32)ri=1;now_time_show();writ_com(0x8a);break;case6:day++;if(day==7)day=0;now_time_show();writ_com(0x8d);break;default:break;}}}if(!s2){DelayMs(10);if(!s2){DelayMs(180);switch(time_od){case0:miao--;if(miao==255)miao=59;now_time_show();writ_com(0xcb);break;case1:fen--;if(fen==255)fen=59;now_time_show();writ_com(0xc8);break;case2:shi--;if(shi==255)shi=23;now_time_show();writ_com(0xc5);break;case3:year--;if(year==1999)year=2100;now_time_show();writ_com(0x84); break;case4:yue--;if(yue==0)yu e=12;now_time_show(); writ_com(0x87);break; case 5:ri--;if(yue==2) { if(((year%4==0)&&(ye ar%100!=0))||(year%400 ==0)){ if(ri==0)ri=29;}else if(ri==0)ri=28;}if(yue==4||yue==6||yue= =9||yue==11)if(ri==0)ri=30;if(yue==1||yue==3||yue= =5||yue==7||yue==8||yue ==10||yue==12)if(ri==0)ri=31;now_time_show();writ_c om(0x8a);break;if(ri==0)ri=31;now_time _show();writ_com(0x8a); break;case6:day--;if(day==255) day=6;now_time_show(); writ_com(0x8d);break;}}}if(!t){DelayMs(10);if(!t){ while(!t);two_fan=1;time_setting();writ_com(0x80);}}}void one_keyscan(){if(!m) //{DelayMs(10);if(!m){two_fan=0while(!m);if(!sys){time_od=0;now_time_show();writ_com(0xcb);while(!two_fan){set_systime();}}else{ timing_set();writ_com(0xc0);time_od=0;while(!two_fan){set_dingshi(); }}} }if(!s1){ DelayMs(10);if(!s1){writ_com(0x80);while(!s1);sys=0;} }if(!s2){ DelayMs(10);if(!s2){ writ_com(0xc0);while(!s2);sys=1;} }if(!t){ DelayMs(10);if(!t){ while(!t);one_fan=1;sys=0;writ_com(0x0c);now_time_show();TR0=1;} }}void keyscan(){ if(!m) {DelayMs(10);if(!m){TR0=0;one_fan=0;time_setting();writ_com(0x80);while(!m);while(!one_fan){one_keyscan();}}}五、调试过程硬件调试:拿到电路板后,检查有没有虚焊等错误后,我装上元件焊好,但是下载好程序后喇叭没有声音,经检查发现NPN三极管管脚顺序放错了,改正后硬件就没有错误了。

相关文档
最新文档