单片机课程设计之智能电子钟
- 格式:doc
- 大小:818.02 KB
- 文档页数:25
摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
关键词 : 单片机;数码管;数字时钟目录1 系统功能要求 (1)2 设计原理及方案论证 (2)2.1数字钟原理 (2)2.2电子时钟方案 (2)2.3数码管显示方案 (3)3 主控制器和外围器件 (4)3.1单片机主控芯片 (4)3.2 LED驱动芯片 (4)3.3 4x4矩阵键盘模块 (5)3.4 蜂鸣器模块 (5)3.5 下载线接口电路 (6)3.6 DS1302时钟模块 (6)3.7 单片机晶振模块 (7)4 系统硬件电路设计 (8)4.1 单片机整体功能模块图 (8)4.2 单片机蜂鸣器和数码管连接图 (8)4.2 单片机矩阵键盘连接图 (9)4.3 单片机时钟模块和晶振连接图 (9)5 软件程序设计 (10)6 实验测试部分 (20)6.1测试结果 (20)6.1.1电子钟正常的运行 (20)6.1.2电子钟矫正时间后的运行 (20)6.2测试结果分析与结论 (21)7总结 (22)8参考文献 (23)1 系统功能要求本次设计时钟电路,使用了AT89S52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂。
单片机MCS-51数钟课程设计系别:专业:班级:姓名及学号:日期:目录单片机MCS-51数钟 (1)课程设计 (1)一、课程设计的目的 (3)二、课程设计任务 (3)三、硬件结构概述 (4)(一)复位电路 (4)(二)晶振电路 (4)(三)按键电路 (4)(四)显示部分 (5)四、软件结构概述 (5)(一)代码说明 (5)(二)按键处理思路 (10)(三)秒表设计思路 (11)五、调试过程 (12)(一)系统仿真 (12)(二)仿真过程中出现的问题及解决方案 (12)六、心得体会 (13)七、参考文献 (14)一、课程设计的目的(1)巩固、加深和扩大单片机应用的知识面, 提高综合及灵活运用所学知识解决工业控制的能力;二、(2)培养针对课题需要, 选择和查阅有关手册、图表及文献资料的自学能力, 提高组成系统、编程、调试的动手能力;三、(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程, 软硬件设计的方法、内容及步骤。
四、课程设计任务(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成设计。
也可以在其它MCS—51单片机硬件板上完成, 或自行设计硬件并制做完成。
(2)程序的首地址应使目标机可以直接运行, 即从0000H开始。
在主程序的开始部分必须设置一个合适的栈底。
程序放置的地址须连续且靠前, 不要在中间留下大量的空闲地址, 以使目标机可以使用较少的硬件资源。
(3)6位LED数码管从左到右分别显示时、分、秒(各占用2位), 采用24小时标准计时制。
开始计时时为000000, 到235959后又变成000000。
(4)在键盘上选定3个键分别作为小时、分、秒的调校键。
每按一次键, 对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位 (例如分加到59后变为00, 但小时不发生改变)。
(5) 软件设计必须使用MCS-51片内定时器, 采用定时中断结构, 不得使用软件延时法。
电子时钟课程设计组员任务分工成绩硬件制作软件设计一、设计详细功能分析1、时钟显示功能单片机发送的信号通过程序控制最终在数码管上显示出来。
数码显示管能够实时显示时分秒,年月日等信息,实现电子时钟最基本的功能,即时间显示。
2、时钟设置功能时间具有实时性,这就要求电子时钟能够实现对时间的调节,能够调整时分秒,正确显示时间,所以时钟调节功能是很有必要的。
3、闹钟功能电子时钟最重要的一个功能就是闹钟,这在人们生活中已经得到了广泛应用,手动设置需要闹钟提醒的时间,然后闹铃提醒,以至于我们不会忘记重要的时间。
4、秒表计时秒表计时,意思就是通过时钟内部的时间设置,数码管上的数字按照秒依次增长,这个功能常常用于各种比赛环节,也成为时钟必要的功能之一。
5、整点报时功能当时钟走到每一个整点时,扬声器发声,作为一个扩展功能,这在电子时钟设计中是一个有意义的部分,此次为们做了添加。
二、设计方案本设计采用C语言程序设计,使AT89C51单片机控制数码管显示时分秒,年月日,当秒计数计满60时就向分进位,分计满60后向时计数器进位,小时计数器按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
当计时发生误差的时候可以用校时电路进行手动校正。
整个系统采用应用广泛的AT89C51作为时钟控制芯片,利用单片机内部的计数器来实现的,它的处理过程如下:首先设定单片机内部的一个计数器工作与定时方式,对时钟周期计数形成基准时间,然后用另一个计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。
然后通过数码管把它们的内容在相应位置显示出来即可。
数码管显示采用两个四位数码管。
由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方式。
动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。
在具体处理时,计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。
单片机原理及接口技术课程设计智能电子钟姓名:***学号:指导教师:***院系(部所):机电工程学院专业:机械设计制造及其自动化完成日期:2012年12月20日摘要本设计采用单片机AT89S52芯片以及相关的芯片来实现多功能的数字钟。
该设计选用一线制温度计DS18B20 作为温度传感器,实时时钟芯片DS1302提供当前日期和时间数据,并将实时的日期和温度数据在字符型液晶显示器LCD1602上显示出来。
本文设计了一种基AT89S52单片机,使用Dallas的一线制数字温度计DS18B20作为温度传感器,实时时钟芯片DS1302提供当前日期和时间数据,并将实时的日期和温度数据字符型液晶显示器LCD1602上显示,本次设计的多功能数字钟采用数字电路对日期和温度进行控制设置,我们采用LCD液晶显示,以24小时的计时方式,根据LCD显示原理进行显示,定时器计数。
在本次设计中,电路具有显示日期、时间、温度的基本功能,还可以实现对它们的调整。
本次设计要达到的目的是:具有时间显示和手动校对功能,24小时制;具有年、月、日显示和手动校对功能;具有显示当前星期的功能;具有闹铃功能;具有环境温度采集功能;掉电后无需重新设置时间和日期。
关键词: DS1302时钟芯片;LCD1602;DS18B20温度传感器.目录1 总体方案设计 (2)1.1 设计内容 (2)2 单元模块设计 (3)2.1 各单元模块功能介绍及电路设计 (3)2.1.1 温度采集电路 (3)2.1.2 DS1302时钟电路 (3)2.1.3 串行通信接口电路 (4)2.1.4 电源电路 (4)2.1.5 按键电路 (5)2.1.6液晶显示显示电路 (5)2.2 特殊器件介绍 (5)2.2.1 AT89S52单片机芯片 (5)2.2.2 DS1302介绍 (6)2.2.3 温度传感器DS18B20 (7)2.2.4 液晶显示LCD1602 (7)3软件设计 (8)3.1软件设计流程 (8)3.1.1 温度采集流程 (9)3.2.2 日期数据处理流程 (9)4 调试与结果 (10)附录 (11)参考文献 (23)1 总体方案设计1.1 设计内容该电路具有显示日期、时间、温度的基本功能,还可以实现对它们的调整。
单片机课程设计报告---单片机的电子钟设计单片机课程设计报告---单片机的电子钟设计一、设计简介本课程设计是以单片机为核心,设计一个具有显示时间和闹钟功能的电子钟。
电子钟是人们日常生活中必备的计时工具,其精度和稳定性直接影响到人们的时间安排和生活质量。
因此,本设计的目的是通过学习和实践,掌握单片机的应用和电子钟的设计方法,提高我们的实践能力和理论知识水平。
二、硬件设计1.单片机选择本设计选用AT89C51单片机作为主控制器。
AT89C51是一种低功耗、高性能的8位单片机,具有丰富的I/O口和片内资源,适合用于各种嵌入式系统开发。
2.显示模块显示模块采用LED数码管,用于显示时间、日期和闹钟状态。
为了方便调试和编程,我们选用4位一体式数码管。
3.按键模块按键模块包括功能键和调整键,用于设置时间、日期和闹钟。
我们选用4个独立式按键,分别实现上调、下调、设置和闹钟功能。
4.蜂鸣器模块蜂鸣器模块用于发出闹钟声音。
我们选用一款常见的无源蜂鸣器,通过单片机的一个IO口控制其频率,实现声音提示功能。
三、软件设计1.时钟芯片驱动本设计选用DS1302时钟芯片,用于提供实时时间和日期的信息。
DS1302与单片机通过I2C协议进行通信,需要编写相应的驱动程序。
驱动程序包括时钟芯片的初始化、数据读写和中断处理等。
2.显示驱动显示驱动程序负责控制数码管的显示。
驱动程序包括延时函数、位选函数和段选函数等。
通过调用这些函数,我们可以实现时间、日期和闹钟状态的动态显示。
3.按键驱动按键驱动程序负责识别用户的按键操作。
驱动程序通过检测独立式按键的状态变化,识别出不同的按键操作,并执行相应的功能。
例如,当用户按下上调键时,驱动程序将调用时钟芯片的读秒函数,并将时间的小时数加1。
4.蜂鸣器驱动蜂鸣器驱动程序负责控制蜂鸣器的声音频率。
驱动程序通过设置单片机的定时器寄存器,产生一定频率的方波信号,驱动蜂鸣器发声。
为了实现不同的声音效果,我们可以通过改变方波信号的频率和持续时间来实现。
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个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。
闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。
多功能电子数字钟设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。
软件用C语言来实现, 主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。
关键词单片机液晶显示器模块数字钟一硬件电路设计及描述;1.MCS-51单片机单片机是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的结构特点有以下几点: 8位CPU;片内振荡器及时钟电路; 32根I/O线;外部存储器ROM和RAM;寻址范围各64KB;两个16位的定时器/计数器; 5个中断源, 2个中断优先级;全双工串行口。
定时器/计数器8051内部有两个16位可编程定时器/计数器, 记为T0和T1。
16位是指他们都是由16个触发器构成, 故最大计数模值为2 -1。
可编程是指他们的工作方式由指令来设定, 或者当计数器来用, 或者当定时起来用, 并且计数(定时)的范围也可以由指令来设置。
这种控制功能是通过定时器方式控制寄存器TMOD来完成的。
在定时工作时, 时钟由单片机内部提供, 即系统时钟经过12分频后作为定时器的时钟。
技术工作时, 时钟脉冲由TO和T1输入。
中断系统8051的中断系统允许接受五个独立的中断源, 即两个外部中断申请, 两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入, 输入方式可以使电平触发(低电平有效), 也可以使边沿触发(下降沿有效)。
2.8051的芯片引脚如图1-2所示VCC: 供电电压。
单片机电子时钟课程设计实验报告(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. 单片机基本原理:介绍51单片机的内部结构、工作原理,重点讲解CPU、内存、I/O口等基础知识。
相关教材章节:第一章 单片机概述2. 单片机编程基础:讲解单片机编程语言(C语言),包括数据类型、运算符、控制语句等。
相关教材章节:第二章 单片机编程语言3. 电子时钟原理:介绍电子时钟的组成、工作原理,重点讲解时、分、秒的显示方式及换算关系。
相关教材章节:第三章 电子时钟原理4. 中断和定时器:讲解中断的概念、原理和应用,以及定时器的工作原理和编程方法。
相关教材章节:第四章 中断与定时器5. 电子时钟程序设计:结合以上知识,设计并实现一个简单的电子时钟程序,包括显示、计时等功能。
一、总设计思路电子时钟是我们日常生活中最常见的一种钟表,由于它结构简单、功耗低、时间精度比较准、等优点,使得广泛应用,在未来肯定有很大的市场。
这次课程设计我的目的就是尝试着做一个电子时钟。
1、系统功能显示时间、声音提示、调整时间、设置闹钟的功能。
2、功能硬件实现方案时间显示:时间的显示我选用的是六位七段数码管,由于数码管控制简单,而且显示效果好,所以选用它。
由于静态显示方式比较占资源,而且电路比较复杂,所以我们选择了动态显示方式,电路简单,效果挺好。
时间调整和闹钟设置:是通过外部两个按键触发单片机中断进而控制时间的调整。
其中一个按键是模式选择按键通过触发外部中断0来选择功能,功能主要是选择要调时、调分、调秒、闹钟调时、闹钟调分、闹钟调秒六种模式。
第二个按键通过触发外部中断1来在相应的模式下对时间的大小做调整。
声音提示:通过利用蜂鸣器来作为发生装置,有整点提示功能和闹铃功能。
时间发生:利用单片机自带定时器0做定时,通过软件控制来产生时、分、秒。
3、功能软件实现方案由于单片机C语言已经全面普及,它的程序容易理解、简单易写、可移植性好,所以我们选择用单片机C语言来写。
4、开发环境操作系统:window 7旗舰版64位程序编辑编译软件:KEIL μVision V4.60.6.10仿真软件;Proteus V ersion 7.85.、总设计原理框图STC89C52RC6位七段数码管显示时、分、秒蜂鸣器发声装置时钟复位电路按键调时模块一、硬件设计定时和程序执行及控制模块:我们选择的是宏晶科技生产的STC89C52RC芯片,它在很多硬件资源上比8051提升了不少,所以在后期我们可以做更多扩展和维护。
时间显示模块::采用六个七段带小数点的共阴极数码管。
声音提示模块:采用简单蜂鸣器做声音提示。
调时模块:通过两个简单按键来触发中断调时。
时钟复位模块:采用11.0592MHz的晶振,提供单片机工作频率。
二、设计原理图三、芯片解说STC89C52:是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。
单片机电子时钟课程设计报告一、引言。
随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。
其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。
本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。
二、设计方案。
1. 硬件设计。
本课程设计选用了51单片机作为核心处理器,配合数码管显示模块、时钟芯片等外围器件,构成了电子时钟的硬件平台。
通过对硬件电路的设计和布线,实现了对时间的精准显示和控制。
2. 软件设计。
在软件设计方面,本课程设计采用了C语言作为编程语言,利用单片机的定时器、中断等功能模块,编写了精确的时钟控制程序。
通过对时钟的分、秒、小时的精准控制,实现了电子时钟的正常运行和显示。
三、功能实现。
1. 时间显示。
经过精心设计的软件程序,实现了对时间的精准显示。
时钟的显示界面清晰明了,数字显示稳定可靠,能够满足人们对时间的基本需求。
2. 时间调整。
通过设置按键,可以对时钟进行时间的调整。
用户可以根据实际需求,随时对时钟的时间进行调整,保证时钟的准确性。
3. 闹铃功能。
本课程设计还实现了闹铃功能,用户可以通过设置闹铃时间,让时钟在设定的时间点发出提示音,提醒用户重要事件的发生。
四、实验结果。
经过实际测试,本课程设计的电子时钟能够稳定可靠地运行,显示精准,功能完善。
时钟的硬件和软件设计均达到了预期的要求,符合设计的初衷和要求。
五、总结与展望。
本课程设计通过对单片机电子时钟的硬件和软件设计,成功实现了一个功能强大、稳定可靠的电子时钟。
但是,仍有一些功能可以进一步完善和优化,比如增加温湿度显示功能、实现无线时间校准等。
未来,我们将继续努力,不断完善电子时钟的功能,为人们的生活带来更多的便利。
六、参考文献。
[1] 《单片机原理与接口技术》,XXX,XXX出版社,2008。
[2] 《C语言程序设计》,XXX,XXX出版社,2010。
七、致谢。
感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。
单片机课程设计题目: 智能电子钟学生姓名专业班级指导教师成绩工程技术学院2016 年 3 月目录一、系统设计内容 0设计要求: 0可实现的具体功能: 0二、总体设计 (1)DS1302简介 (1)LCDl602简介 (2)AT89C51单片机简介 (2)三、硬件设计 (2)原理图 (3)PCB板丝印层 (3)PCB板底层 (3)四、软件设计流程 (3)总体设计 (3)主程序流程图 (4)显示流程图 (4)DS1302读取流程 (5)外部中断0流程 (5)外部中断1流程 (6)五、仿真效果图 (8)六、总结与体会 (10)附录 (11)1、程序 (11)2、参考文献 (12)智能电子钟(LCD显示)一、系统设计内容设计要求:以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1)计时:秒、分、时、天、周、月、年;(2)闰年自动判别;(4)时间、月、日交替显示;(5)自定任意时刻自动开/关屏;(6)计时精度:误差≤1秒/月(具有微调设置);(7)键盘采用动态扫描方式查询。
所有的查询、设置功能均由功能键K1、K2完成。
本设计采用市场上流行的时钟芯片DS1302进行制作。
可实现的具体功能:智能电子钟的原理主要由4部分组成:(1)单片机的外围设备,即单片机最小系统,此部分是保证单片机正常工作的必要部分;(2)显示部分:LCD显示,即显示年、月、星期、日、时、分、秒等;(3)时钟芯片DS1302,DS1302是DALLAS公式推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。
实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力;(4)按键部分:按键实现开关显示屏对时钟时间的微调,开关键在正常显示模式下按下开火关LCD显示;模式键:可切换到时间调整界面,再按一次退出,此时开关屏键实现对秒的加一操作。
摘要单片机经过几十年的发展,已经广泛应用于生活中的各个领域。
单片机以其体积小、功能全、性价比高等诸多优点,在许多行业都得到了广泛应用。
在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
基于单片机的智能电子钟作为设计的课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。
另外LCD的智能电子钟已经越来越流行,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。
所以,智能电子钟作为设计课题很有价值。
随着科技的发展,单片机的应用正在不断深入,涉及到日常生活的方方面面。
本设计是基于单片机AT89S51为控制核心,以液晶为显示的数字时钟。
本数字时钟设计的原理相对简单,所以硬件电路也相对简单,难点和重点主要放在C 语言的编程上,使用到定时器的子程序、延时程序、时分秒的控制程序、液晶模块和单片机模块的初始化程序、液晶显示的程序等,各个函数交叉调用,配合主程序的运行。
关键字:LCD1602 AT89S51 定时器目录第一章设计要求 ............................... 错误!未定义书签。
1.1LCD电子钟的功能要求 (1)1.2智能电子钟的设计要求 (1)第二章方案选择与系统框图及工作原理 (2)2.1方案选择 (2)2.2系统框图 (2)2.3工作原理 (2)第三章硬件电路设计与分析 (3)3.1控制模块 (3)3.2显示模块 (4)3.3按键电路 (6)3.4报警部分模块 (7)第四章软件设计与分析 (8)4.1基本资源的使用 (8)4.2程序设计的基本思路 (8)4.3程序的主要流程图 (9)第五章Protues仿真与调试 (11)第六章PCB板的设计 (13)第七章原件明细清单 (14)第八章课程设计总结 (15)致谢 (16)参考文献 (17)附录 (18)附件1 硬件电路原理图 (18)附件2 程序清单 (18)第一章设计要求1.1 LCD电子钟的功能要求(1)能显示年、月、日、时、分、秒(通常显示时、分、秒);(2)能对年、月、日、时、分、秒进行预置;(3)具有定时功能,定时时间到声光报告。
基于单片机的智能电子时钟的设计及应用一、引言智能电子时钟是一种应用广泛的电子产品,它不仅能够准确显示时间,还具备了一系列智能化的功能,如闹钟、温湿度显示、定时开关等。
基于单片机的智能电子时钟设计是近年来电子技术领域中备受关注的研究方向。
本文将详细介绍基于单片机的智能电子时钟设计及其应用,并对其进行深入研究。
二、基于单片机的智能电子时钟设计原理1. 选取合适的单片机芯片在设计基于单片机的智能电子时钟之前,首先需要选取合适的单片机芯片。
常见选择包括51系列、AVR系列和ARM系列等。
根据具体需求和功能要求进行选择,并考虑到其性价比、易用性和扩展性。
2. 时钟模块设计在整个系统中,准确显示时间是最基本也是最关键的功能之一。
因此,需要设计一个稳定可靠且精度高的时钟模块。
常见选择包括RTC 芯片和GPS模块等。
3. 显示模块选择与驱动为了实现时间的直观显示,需要选择合适的显示模块。
常见选择包括LED数码管、LCD液晶显示屏和OLED显示屏等。
同时,还需要设计合适的驱动电路,以实现对显示模块的控制。
4. 功能模块设计除了基本的时间显示功能外,智能电子时钟还可以具备一系列智能化功能。
常见功能包括闹钟、温湿度显示、定时开关等。
这些功能需要通过相应的传感器和控制电路来实现。
三、基于单片机的智能电子时钟应用1. 家庭生活基于单片机的智能电子时钟在家庭生活中有着广泛应用。
它可以作为家庭闹钟,准确地唤醒人们起床;同时也可以作为温湿度监测器,在家中监测室内温湿度,并提供相应数据。
2. 办公场所在办公场所中,基于单片机的智能电子时钟可以作为时间提醒器,在工作时间结束时提醒人们休息;同时也可以作为定时开关,在指定时间自动打开或关闭相应设备。
3. 公共场所在公共场所中,基于单片机的智能电子时钟具备更多应用场景。
例如,在火车站、机场等候车室中,它可以作为候车时间显示器,为旅客提供准确的候车时间信息。
四、基于单片机的智能电子时钟设计案例以基于51系列单片机的智能电子时钟设计为例,具体设计方案如下:1. 硬件设计选用51系列单片机作为主控芯片,搭配RTC芯片作为时钟模块。
单片机智能时钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本工作原理和编程方法。
2. 学生能掌握智能时钟的电路构成,功能实现及编程技术。
3. 学生能了解智能时钟在现实生活中的应用。
技能目标:1. 学生能运用所学知识,设计并搭建单片机智能时钟电路。
2. 学生能编写程序,实现智能时钟的基本功能,如时间显示、闹钟设定等。
3. 学生能通过实验,分析并解决单片机智能时钟在运行过程中可能出现的问题。
情感态度价值观目标:1. 学生培养对单片机及电子技术的兴趣,增强学习动力。
2. 学生在团队合作中,学会沟通、协作,培养团队精神。
3. 学生能够关注单片机智能时钟在生活中的应用,体会科技发展对生活的影响。
课程性质:本课程为实践性较强的课程,注重理论知识与实际操作相结合。
学生特点:学生具备一定的电子技术基础和编程能力,对单片机有一定了解。
教学要求:教师需引导学生运用所学知识解决实际问题,培养学生的动手能力和创新意识。
在教学过程中,注重理论与实践相结合,提高学生的实际操作能力。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面得到全面提升。
二、教学内容1. 单片机基础理论:回顾单片机的结构、工作原理,重点讲解时钟电路、I/O 口编程、中断系统等基础知识。
教材章节:第一章 单片机原理与接口技术2. 智能时钟电路设计:介绍智能时钟的硬件电路设计,包括时钟芯片、显示模块、按键模块等组成部分。
教材章节:第二章 常用单片机外围电路设计3. 单片机编程技术:讲解智能时钟的编程方法,包括时间显示、闹钟设定、调整时间等功能实现。
教材章节:第三章 单片机C语言编程4. 实践操作:指导学生进行智能时钟的电路搭建、编程、调试及优化。
教材章节:第四章 单片机实践操作5. 课程项目:以小组形式完成一个具有创意的单片机智能时钟设计,并进行展示和评价。
教材章节:第五章 课程设计与实践教学进度安排:1. 第1-2周:回顾单片机基础理论,介绍智能时钟电路设计。
单片机课程设计题目: 智能电子钟学生姓名专业班级指导教师成绩工程技术学院2016 年 3 月目录一、系统设计内容 (1)1.1 设计要求: (1)1.2 可实现的具体功能: (1)二、总体设计 (2)2.1 DS1302简介 (2)2.2 LCDl602简介 (3)2.3 AT89C51单片机简介 (3)三、硬件设计 (3)3.1 原理图 (4)3.2 PCB板丝印层 (4)3.3 PCB板底层 (4)四、软件设计流程 (4)4.1 总体设计 (4)4.2主程序流程图 (5)4.3显示流程图 (5)4.4 DS1302读取流程 (6)4.5 外部中断0流程 (6)4.6 外部中断1流程 (7)五、仿真效果图 (9)六、总结与体会 (11)附录 (12)1、程序 (12)2、参考文献 (22)智能电子钟(LCD显示)一、系统设计内容1.1 设计要求:以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1)计时:秒、分、时、天、周、月、年;(2)闰年自动判别;(4)时间、月、日交替显示;(5)自定任意时刻自动开/关屏;(6)计时精度:误差≤1秒/月(具有微调设置);(7)键盘采用动态扫描方式查询。
所有的查询、设置功能均由功能键K1、K2完成。
本设计采用市场上流行的时钟芯片DS1302进行制作。
1.2 可实现的具体功能:智能电子钟的原理主要由4部分组成:(1)单片机的外围设备,即单片机最小系统,此部分是保证单片机正常工作的必要部分;(2)显示部分:LCD显示,即显示年、月、星期、日、时、分、秒等;(3)时钟芯片DS1302,DS1302是DALLAS公式推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。
实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力;(4)按键部分:按键实现开关显示屏对时钟时间的微调,开关键在正常显示模式下按下开火关LCD显示;模式键:可切换到时间调整界面,再按一次退出,此时开关屏键实现对秒的加一操作。
二、总体设计图2.1 设计方案框图2.1 DS1302简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
图2.2 DS1302芯片2.2 LCDl602简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
2.3 AT89C51单片机简介AT89C51(如图所示)是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable andErasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
三、硬件设计智能电子钟(LCD 显示) 3.1 原理图P2.7/A1528P2.6/A1427P2.5/A1326P1.78P2.4/A1225P1.67P2.3/A1124P1.56P2.2/A1023P1.45P2.1/A9P1.34P1.23P1.1/T 2EX 2P1.0/T 21EA31AL E 30PSEN 29P3.0/RXD 10P3.1/T XD11P3.7/RD17P3.2/INT 012P3.6/WR 16P3.3/INT 113P3.5/T 115P3.4/T 01489C51X12X23VCC18VCC21RST 5SCL K 7I/O6U2WD1100-11C430uFC530uFX232.768kHzB13VVCCR21k10uF161514131211109RP1RE SPACK4VCC12K 12K112K23.2 PCB 板丝印层3.3 PCB 板底层四、软件设计流程4.1 总体设计在整个程序运行过程中,总体上可分为以下几方面:4.2主程序流程图4.3显示流程图4.4 DS1302读取流程4.5 外部中断0流程4.6 外部中断1流程五、仿真效果图日期时间交替显示:关屏时间调整六、总结与体会历经一个星期的设计、修改、调试,最终,我们得到了想要的结果,感受成功之喜悦,但这并不意味着我们做得很好,相反,在这当中暴露出了我们在各个方面许许多多的问题,学到许多的同时感触也很深厚。
在硬件设计时,通过对需要系统的分析,单元模块的设计,元件的选取等,使我们了解到平时所学单片机课程的实用价值,以及设计过程中的大局协调、取舍、分析能力的培养。
在编程以及仿真时,充分将单片机原理的知识学以致用,既是对我们单片机基础知识的考验,又是对我们灵活运用及创新能力的检验;既考验我们的学习能力,又考验逻辑思维技巧;既体现了个人对课程设计的灵思妙想,又培养了团队之间的合作能力。
我们能够很好地完成这次课设,离不开在科学研究上实事求是的工作原则、一丝不苟的工作态度、勤于思考的工作方法、百折不饶的工作精神和精益求精的工作作风,此外,最重要的就是团队之间相处和谐、分工明确。
在大家的共同努力下,得到了满意的成果,更使我们明白团队合作的重要与便利。
最后,衷心感谢老师在这次设计中耐心给予的大量帮助,解决了我程序中存在的不少问题,并指导了我一些设计的思路,也令我明白自己的大量不足之处,受益匪浅。
附录1、程序#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define DS1302_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_WRITE 0x84#define DS1302_DAY_WRITE 0x86#define DS1302_WEEK_WRITE 0x8a#define DS1302_MONTH_WRITE 0x88#define DS1302_YEAR_WRITE 0x8c#define DS1302_PROTECT_WRITE 0x8e#define DS1302_SECOND_READ 0x81#define DS1302_MINUTE_READ 0x83#define DS1302_HOUR_READ 0x85#define DS1302_DAY_READ 0x87#define DS1302_WEEK_READ 0x8b#define DS1302_MONTH_READ 0x89#define DS1302_YEAR_READ 0x8dsbit lcden = P2^2;sbit lcdrs = P2^0;sbit write = P2^1;sbit sck = P1^6; //时钟sbit io = P1^7; //数据sbit rst = P1^5;// DS1302复位unsigned char Chinese_1[3]={0x2d,0x20,0x3a};// “-”“”“:”unsigned char Chinese_2[7]={0x31,0x32,0x33,0x34,0x35,0x36,0x37};//一二三四五六天//unsigned char Cursor[6]={0x81,0x83,0x85,0x90,0x92,0x94};//定义光标移动的位置unsigned char num = 0;unsigned int ji = 0;unsigned int jiao = 0;void Delayms(unsigned int z)//延时{unsigned int x,y;for(x=z;x>0;x--)for(y=115;y>0;y--);}//lcd子程序void Write_com(unsigned char com)//写命令{lcdrs = 0;P0 = com;Delayms(5);lcden = 1;Delayms(5);lcden = 0;}void Write_data(unsigned char dat)//写数据{lcdrs = 1;P0 = dat;Delayms(5);lcden = 1;Delayms(5);lcden = 0;}unsigned char Read_com()//读命令{unsigned char com;write = 1;lcdrs = 0;lcden = 1;com = P0;Delayms(5);write = 0;lcdrs = 0;lcden = 0;return com;}void init_lcd()//lcd初始化{lcden = 0;Write_com(0x38);Write_com(0x0c);Write_com(0x06);Write_com(0x01);Write_com(0x80);}//ds1302子程序void DS1302WriteByte(uchar dat)//写字节{uchar i;sck=0;Delayms(2);for(i=0;i<8;i++){io=dat&0x01;//取最低位,注意DS1302的数据和地址都是从最低位开始传输的Delayms(2);sck=1;Delayms(2);sck=0;dat>>=1;}}uchar DS1302ReadByte()//读字节{uchar i,dat;Delayms(2);for(i=0;i<8;i++){dat>>=1;if(io==1)//当数据线为高时,证明该位数据为1dat|=0x80;//要传输数据的当前值置为1,若不是,则为0sck=1;Delayms(2);sck=0;Delayms(2);}return dat;}uchar DS1302Read(uchar cmd)//读命令{uchar dat;rst=0;sck=0;rst=1;DS1302WriteByte(cmd);//传输地址dat=DS1302ReadByte();//读取要得到的时间/日期sck=1;rst=0;return dat;}void DS1302Write(uchar cmd,uchar dat)//写命令{rst=0;sck=0;rst=1;DS1302WriteByte(cmd);//传输地址DS1302WriteByte(dat);//写入时间/日期sck=1;rst=0;}void Init_DS1302(void)//初始化{DS1302Write(0x8e,0x00);//写保护关DS1302Write(DS1302_SECOND_WRITE,0x55);//初始秒值DS1302Write(DS1302_MINUTE_WRITE,0x59);//初始分钟DS1302Write(DS1302_HOUR_WRITE,0x23);//初始为24小时模式初始时间为DS1302Write(DS1302_DAY_WRITE,0x02);//20xx年x月x日星期xDS1302Write(DS1302_MONTH_WRITE,0x03);DS1302Write(DS1302_YEAR_WRITE,0x16);DS1302Write(DS1302_WEEK_WRITE,0x03);DS1302Write(0x90,0x01);//充电DS1302Write(0xc0,0xf0);//初始化一次标示DS1302Write(0x8e,0x80);}void Split_display(unsigned char address)//取数显示{unsigned char i;i=DS1302Read(address);i=i/16+'0';Write_data(i);//显示十位Delayms(3);i=DS1302Read(address);i=i%16+'0';Write_data(i);//显示个位Delayms(5);}void Dispaly_shi()//显示时间{Write_com(0x84);Split_display(DS1302_HOUR_READ);//显示小时Write_data(Chinese_1[2]);//显示“:”Delayms(3);Split_display(DS1302_MINUTE_READ);//显示分钟Write_data(Chinese_1[2]);Delayms(3);Split_display(DS1302_SECOND_READ);//显示秒Delayms(3);Delayms(50);}void Display_nian()//显示年月日{uchar i;Write_com(0x82);Delayms(100);Write_com(0x82);Delayms(100);Write_data('2');Delayms(5);Write_data('0');Delayms(1);Split_display(DS1302_YEAR_READ);//显示年份Write_data(Chinese_1[0]);//显示“-”Delayms(3);Split_display(DS1302_MONTH_READ);//显示月份Write_data(Chinese_1[0]);Delayms(3);Split_display(DS1302_DAY_READ);//显示日期Write_data(Chinese_1[1]);Delayms(3);Write_data(Chinese_1[1]);Delayms(3);i=DS1302Read(DS1302_WEEK_READ);//显示星期i=i%16+'0';Write_data(i);Delayms(3);Write_com(0x82);Delayms(50);}void inter0() interrupt 0//按键中断1{ji = ji+1;if(ji%2 == 0)Write_com(0x0c);elseWrite_com(0x08);}void inter2() interrupt 2//按键中断2{unsigned char k,j,i,b;//Delayms(500);while(INT1!=1);b = Read_com();b = ACC & 0x7f;Write_com(0x01);Dispaly_shi();EA = 0;EX0=0;EX1=0;k=DS1302Read(DS1302_SECOND_READ);while(INT1){Write_com(0x8a);Write_com(0x0f);if(INT0==0){Delayms(10);if(INT0==0){if(k<0x59){ACC = k;#pragma asmadd a,#1da a#pragma endasmk = ACC;}else{DS1302Write(DS1302_SECOND_WRITE,k);while(k!=0){ k=DS1302Read(DS1302_SECOND_READ);}Write_com(0x01);Dispaly_shi();}Write_com(0x8a);i=k/16+'0';j=k%16+'0';Write_data(i);Delayms(3);Write_data(j);while(!INT0);}}}while(!INT1);DS1302Write(DS1302_SECOND_WRITE,k);Write_com(0x0c);Write_com(0x01);if(jiao==0){ Dispaly_shi();}else {Display_nian();}Write_com(b);EA = 1;EX0=1;EX1=1;}void main(){uchar i;write = 0;Delayms(50);IT0=1;IT1=1;EX0=1;EX1=1;EA=1;init_lcd();Init_DS1302();while(1){Write_com(0x01);for(i=9;i>0;i--)Dispaly_shi();Write_com(0x01);for(i=9;i>0;i--)Display_nian();Delayms(50);};}2、参考文献郭文川. MCS-51单片机原理、接口及应用电子工业出版社2013.01 吴国凤、宣善立. C/C++程序设计高等教育出版社2009.09江思敏、陈明Protel电路设计教程清华大学出版社2006.12莫名到奇妙. DS1302中文资料,带源代码百度文库2012.5.10 wubanwudi. 超详细的ds1302使用说明及其例程百度文库2011.08.10。