单片机课程论文设计-电子钟课程设计4
单片机课程设计(电子钟)
摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
关键词 : 单片机;数码管;数字时钟目录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单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂。
(完整版)单片机毕业课程设计电子钟
摘要围绕电子钟系统的设计与开发工作进行研究和实践,详细介绍了电子钟系统的整体结构、硬件设计、软件设计,系统方案以及其的开发和具体实现。
介绍一种基于在系统可编程技术和C51编译器配有集成开发的新型电子钟的设计方法,阐述了其工作原理和软硬件设计。
在硬件上,用KEIL公司的C51大规模集成芯片对其外围电路进行集成,用1片8051实现了几十片分离元件才能实现的功能,几乎将整个系统下载于同一芯片中,实现了所谓的片上系统,从而大大简化了系统结构,增强了系统的可靠性和性价比。
该电子钟特别适用于家庭、办公大楼、公共场所等。
关键词电子钟;单片机;硬件设计;软件设计ABSTRACTAround the electronic clock system design and development of the study and practice, details the electronic clock system overall, , software design, system solutions as well as the development and implementation. Introduction of a new technology based on in-system programming and C51 compiler equipped with an integrated development of new electronic clock design method, explains . In the its surrounding, to integrate 1 tablet 8051 implementation of scores of tablets separation components to implement functionality,almost the entire system for download on the same chip, implementation of the so-called SOC, thereby greatly simplifies system structure, enhances system reliability and目录1 系统总体设计方案 (4)1.1 设计课题任务 (4)1.2 功能要求说明 (4)1.3 总体方案介绍及工作原理 (4)2 硬件系统的设计 (6)2.1 系统各功能模块介绍 (6)2.2 系统电路图 (7)2.3 系统元器件清单 (7)3 软件系统的设计 (8)3.1设计使用单片机资源介绍 (8)3.2 软件系统各功能模块介绍 (8)3.3 软件系统程序流程框图 (9)3.4 软件系统的程序 (10)4 系统的仿真分析及结论 (11)4.1 系统设计的使用说明 (11)4.2 系统设计的仿真结果 (11)4.3 系统的误差分析 (12)4.4 设计体会 (12)4.5 教学建议 (13)参考文献 (14)致谢 (15)附录(1)……………………………………………………………………………16附录(2)……………………………………………………………………………171 系统总体设计方案1.1 设计课题任务设计一个具有特定功能的电子钟。
毕业设计论文_单片机电子时钟的设计
毕业设计论文_单片机电子时钟的设计摘要:电子时钟作为一种常见的时间显示装置,在现代社会中应用广泛。
本文设计了一款基于单片机的电子时钟,使用DS1307实时时钟芯片来获取系统时间,并通过数码管进行显示。
设计过程中,通过对单片机的编程和电路的连接,实现了时间的显示与调节功能,具有较高的准确性和稳定性。
该设计方案简单、实用,可用于各种场合。
关键词:单片机;电子时钟;DS1307;数码管1.引言电子时钟是一种利用电子技术构造的显示时间的装置,具有时间准确、使用简单、显示清晰等特点,广泛应用于生活和工作中。
本文以单片机为核心,设计了一款实时准确的电子时钟,提高了时间的准确度和稳定性。
2.设计原理该设计的核心是通过单片机与DS1307实时时钟芯片的连接,使得单片机可以获取到准确的系统时间,并通过数码管进行显示。
DS1307芯片通过I2C总线与单片机连接,通过读取芯片中的时间寄存器,单片机可以获得当前的时间信息。
3.硬件设计本设计中使用了AT89S52单片机作为主控芯片,通过引脚与DS1307芯片相连。
单片机的P0口接到数码管的段选信号,P1口接到数码管的位选信号,通过控制这两个口的输出状态,可实现对数码管上显示的数字进行控制。
同时,为了使时钟可以正常运行,需外接一个晶振电路为单片机提供时钟信号。
4.软件设计通过对单片机的编程,实现了以下功能:(1)初始化DS1307芯片,设置初始时间;(2)每隔一秒读取一次DS1307芯片的时间寄存器,将时间信息保存到单片机的RAM中;(3)根据当前时间信息,在数码管上显示对应的小时和分钟。
5.调试与测试经过硬件的连接以及软件的编写,进行了调试与测试。
将初始时间设置为08:30,观察数码管上的显示是否正确,以及时间是否准确。
同时,通过手动调节DS1307芯片中的时间,检查单片机是否能正确获取时间,并进行显示。
6.总结与展望本文设计了一款基于单片机的电子时钟,通过单片机与DS1307芯片的连接和编程,实现了准确的时间显示功能。
单片机课程设计报告单片机的电子钟设计
单片机课程设计报告---单片机的电子钟设计单片机课程设计报告---单片机的电子钟设计一、设计简介本课程设计是以单片机为核心,设计一个具有显示时间和闹钟功能的电子钟。
电子钟是人们日常生活中必备的计时工具,其精度和稳定性直接影响到人们的时间安排和生活质量。
因此,本设计的目的是通过学习和实践,掌握单片机的应用和电子钟的设计方法,提高我们的实践能力和理论知识水平。
二、硬件设计1.单片机选择本设计选用AT89C51单片机作为主控制器。
AT89C51是一种低功耗、高性能的8位单片机,具有丰富的I/O口和片内资源,适合用于各种嵌入式系统开发。
2.显示模块显示模块采用LED数码管,用于显示时间、日期和闹钟状态。
为了方便调试和编程,我们选用4位一体式数码管。
3.按键模块按键模块包括功能键和调整键,用于设置时间、日期和闹钟。
我们选用4个独立式按键,分别实现上调、下调、设置和闹钟功能。
4.蜂鸣器模块蜂鸣器模块用于发出闹钟声音。
我们选用一款常见的无源蜂鸣器,通过单片机的一个IO口控制其频率,实现声音提示功能。
三、软件设计1.时钟芯片驱动本设计选用DS1302时钟芯片,用于提供实时时间和日期的信息。
DS1302与单片机通过I2C协议进行通信,需要编写相应的驱动程序。
驱动程序包括时钟芯片的初始化、数据读写和中断处理等。
2.显示驱动显示驱动程序负责控制数码管的显示。
驱动程序包括延时函数、位选函数和段选函数等。
通过调用这些函数,我们可以实现时间、日期和闹钟状态的动态显示。
3.按键驱动按键驱动程序负责识别用户的按键操作。
驱动程序通过检测独立式按键的状态变化,识别出不同的按键操作,并执行相应的功能。
例如,当用户按下上调键时,驱动程序将调用时钟芯片的读秒函数,并将时间的小时数加1。
4.蜂鸣器驱动蜂鸣器驱动程序负责控制蜂鸣器的声音频率。
驱动程序通过设置单片机的定时器寄存器,产生一定频率的方波信号,驱动蜂鸣器发声。
为了实现不同的声音效果,我们可以通过改变方波信号的频率和持续时间来实现。
电子钟课程设计论文
电子钟课程设计论文一、课程目标知识目标:1. 学生能理解电子钟的基本原理,掌握电子钟的主要组成部分及其功能。
2. 学生能掌握电子钟电路图的识别和解读,了解电子元器件的作用。
3. 学生能运用所学的电子钟知识,分析并解决实际问题。
技能目标:1. 学生能独立完成电子钟的组装和调试,提高动手实践能力。
2. 学生能运用电子技术知识,设计简单的电子钟电路。
3. 学生能通过小组合作,进行电子钟的制作,培养团队协作和沟通能力。
情感态度价值观目标:1. 学生能培养对电子技术的兴趣,激发学习热情。
2. 学生在电子钟制作过程中,培养耐心、细致的工作态度。
3. 学生通过课程学习,认识到科技发展对生活的影响,增强社会责任感和创新意识。
课程性质:本课程为实践性课程,结合理论知识和动手操作,培养学生的实际应用能力。
学生特点:六年级学生具备一定的电子技术基础,具有较强的求知欲和动手能力。
教学要求:注重理论与实践相结合,提高学生的动手实践能力,培养创新精神和团队合作意识。
通过课程目标的分解,使学生在学习过程中达到预期的学习成果,为后续教学设计和评估提供依据。
二、教学内容本课程教学内容紧密结合课程目标,选取以下内容进行教学:1. 电子钟原理:介绍电子钟的工作原理,包括晶振、分频器、计数器等组成部分的功能。
2. 电子元器件:讲解电子钟中常用的电子元器件,如电阻、电容、二极管、三极管等,并介绍其作用。
3. 电路图识别:教授如何识别和解读电子钟电路图,使学生能够理解电路的连接关系。
4. 电子钟组装与调试:指导学生进行电子钟的组装、焊接和调试,培养学生的动手实践能力。
5. 故障分析与维修:教授常见电子钟故障的分析方法,引导学生学会排查和解决问题。
教学内容安排如下:第一课时:电子钟原理及组成部分介绍第二课时:电子元器件的认识和使用第三课时:电路图识别及解读第四课时:电子钟组装与焊接第五课时:电子钟调试与故障排查教材章节关联:教学内容与教材《电子技术》第五章“时序逻辑电路”相关联,具体涉及以下内容:1. 时序逻辑电路的基本概念2. 时序逻辑电路的分析与设计方法3. 常用时序逻辑电路及应用4. 电子钟电路实例分析三、教学方法为了提高教学效果,激发学生的学习兴趣和主动性,本课程采用以下多样化的教学方法:1. 讲授法:在讲解电子钟原理、电子元器件知识等理论性较强的内容时,采用讲授法进行教学。
单片机课程设计电子钟
单片机课程设计电子钟一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其内部结构及工作流程;2. 使学生掌握电子时钟的基本原理,包括时、分、秒的计算与显示;3. 引导学生了解并运用编程语言(如C语言)实现对单片机的控制。
技能目标:1. 培养学生运用所学知识,独立设计并制作一个简单的电子时钟;2. 提高学生动手实践能力,学会使用编程软件、调试程序;3. 培养学生团队协作能力,共同完成课程设计任务。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其创新意识;2. 培养学生面对问题主动思考、积极探究的良好习惯;3. 培养学生具备耐心、细心的品质,提高其克服困难的自信心。
课程性质:本课程属于实践性较强的课程,要求学生将理论知识与实际操作相结合,完成电子钟的设计与制作。
学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对于综合运用知识进行实践尚需引导。
教学要求:注重理论与实践相结合,引导学生通过自主探究、动手实践掌握知识,关注学生的个体差异,提供有针对性的指导。
在教学过程中,注重培养学生团队协作、创新精神和解决问题的能力。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面得到全面提升。
二、教学内容1. 单片机基础理论:- 单片机的内部结构及工作原理;- 单片机的指令系统及编程方法。
2. 电子时钟原理:- 电子时钟的基本构成,包括时钟芯片、显示模块等;- 时、分、秒的计算与显示方法。
3. 编程语言应用:- C语言基础,包括数据类型、运算符、控制结构等;- 单片机编程技巧,如中断处理、定时器应用等。
4. 实践操作:- 电子时钟的设计与制作,包括硬件电路搭建、程序编写及调试;- 熟悉编程软件(如Keil)的使用,完成程序下载与调试。
教学大纲安排:1. 第一周:单片机基础理论,电子时钟原理学习;2. 第二周:C语言基础知识学习,编程技巧讲解;3. 第三周:实践操作,分组进行电子时钟设计与制作;4. 第四周:课程总结与展示,学生汇报作品,教师点评。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
电子钟单片机课程设计报告(含源码)
一、总设计思路电子时钟是我们日常生活中最常见的一种钟表,由于它结构简单、功耗低、时间精度比较准、等优点,使得广泛应用,在未来肯定有很大的市场。
这次课程设计我的目的就是尝试着做一个电子时钟。
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。
七、致谢。
感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。
单片机电子时钟毕业论文设计
单片机电子时钟毕业论文设计电子时钟是一种通过电子技术实现时间显示的设备,具有时间准确、操作简单、功能丰富等特点。
本设计基于单片机技术,以8086单片机为核心控制单元,实现了电子时钟的时间显示、闹钟设置、日历查询等功能。
本论文主要包括硬件设计与软件设计两个方面。
一、硬件设计电子时钟的硬件设计包括时钟电路、显示电路和调试电路三部分。
1.时钟电路时钟电路采用晶体振荡器作为信号源,通过外部输入电路将晶振的运行频率转换为单片机可用的时钟脉冲信号,并与封装在单片机内部的计数器相连。
2.显示电路显示电路由显示模块、驱动模块和输入模块组成。
显示模块采用数码管实现时间的显示,其中包括时、分、秒三个数码管以及闹钟时间的显示。
驱动模块将单片机的输出信号转化为适合数码管显示的信号,并进行相应的时序控制。
输入模块通过按键输入实现对时钟的设置和调整。
3.调试电路调试电路主要用于对电子时钟的运行状态进行监测和调试。
其中包括状态指示灯、背光控制电路和串口调试接口。
状态指示灯用于指示时钟的工作状态,背光控制电路用于控制数码管的亮度,串口调试接口用于通过计算机对时钟进行调试和数据交互。
二、软件设计软件设计包括时钟显示、闹钟设置和日历查询三个功能模块。
1.时钟显示通过单片机的定时器和计数器模块,实现对系统时钟的实时计时和更新。
根据计时结果,将时、分、秒数据分别送到相应的数码管显示。
通过按键输入,实现对时间的调整和设置。
2.闹钟设置通过按键输入,设置闹钟的触发时间。
当系统时间与闹钟时间一致时,触发相应的闹钟功能,比如闹铃声响起或者背光闪烁等。
3.日历查询通过按键输入,查询相应的日期和星期。
根据计时结果,实时更新日期和星期的显示。
三、实验结果设计的电子时钟能够准确显示时间,并具备闹钟设置和日历查询功能。
在实际测试中,时钟的时间显示精度达到毫秒级别,闹钟的触发精度达到秒级别,操作简单方便。
总结:本论文以8086单片机为核心,通过硬件设计和软件设计实现了电子时钟的时间显示、闹钟设置和日历查询等功能。
单片机电子钟课程设计
单片机电子钟课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理和编程方法。
2. 学生能够掌握电子时钟的构成和工作原理。
3. 学生能够运用所学知识,设计并实现一个具有基本功能的单片机电子钟。
技能目标:1. 学生能够运用编程软件进行单片机程序编写和调试。
2. 学生能够使用电子元件搭建电路,并进行基本的电路测试和故障排除。
3. 学生能够通过团队协作,完成电子钟的设计、制作和优化。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识和探索精神。
2. 培养学生良好的团队合作精神和沟通能力。
3. 培养学生严谨的科学态度,注重实践操作,提高问题解决能力。
课程性质:本课程为实践性较强的课程,结合理论教学和动手操作,培养学生实际动手能力和创新思维。
学生特点:学生为初中生,具备一定的物理和数学基础,对电子技术有一定的好奇心和求知欲。
教学要求:教师需结合学生特点,采用启发式教学,引导学生主动探究,注重理论与实践相结合,提高学生的实际操作能力。
同时,关注学生的个体差异,给予个性化指导,确保课程目标的达成。
通过课程学习,使学生能够将所学知识应用于实际项目中,培养其综合素质。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理和编程语言(C语言),对应教材第二章内容。
2. 电子时钟原理:讲解电子时钟的基本构成、计时原理和显示技术,对应教材第四章内容。
3. 硬件电路设计:学习并设计单片机电子钟的电路图,选择合适的电子元件,对应教材第三章内容。
4. 程序设计与调试:编写单片机程序,实现电子钟的基本功能,如时、分、秒显示,闹钟等,对应教材第五章内容。
5. 电路搭建与测试:根据设计电路图,搭建实体电路,进行功能测试和故障排查,对应教材第六章内容。
6. 项目制作与优化:以小组形式完成电子钟的制作,对产品进行优化和改进,提高性能和稳定性。
教学进度安排:第一周:单片机基础知识学习,熟悉编程环境。
第二周:电子时钟原理学习,设计电路图。
单片机课程论文设计-电子钟课程设计[修改版]
第一篇:单片机课程论文设计-电子钟课程设计单片机课程论文设计——电子钟一课程设计的主要内容1 设计思想1.1硬件设计思想 1.1.1电路设计思想电路原理图见图1,由动态数码显示组成时、分、秒的显示。
把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中S-S8端口上;“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上。
1.1.2键盘设计思想键盘是微机的主要设备,按键的读取容易引起错误动作。
可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms. 1.2软件设计思想本系统的主程序主要完成时间显示和修改时间的功能。
而时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。
1.2.1数据与代码转换由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。
但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。
可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。
具体转换过程如下:我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。
如:有一个单元存储了45这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A中。
A中BCD码,高位四位代表¡4¡低四位代表¡5¡同时送给两个译码器中,译码后¡45¡字就在两个LED中显示出来。
单片机电子钟课程设计论文
单片机电子钟课程设计一、设计内容要求1.电子钟显示时、分、秒。
2.具有定时报警功能;每天可设置4个报警时间(时、分)。
3.能借助键盘,设置时钟及报警时间。
4.报警时,蜂鸣器鸣响1秒,然后停止。
5.停电后所有设定的数据不丢失。
6.重新开机可以重新设定时钟。
二、硬件设计要求根据项目的要求,去选择相应的电路,比如MCU系统,输入输出驱动电路,电源供电电路。
使用电子CAD,设计原理图,印刷电路板图。
原理图中元件电气图形符号,必须符合国家标准。
整体布局合理,标注规范、明确、美观,不产生歧义。
列出完整的元件清单(标号、型号及大小、封装形式、数量)。
估算电路板的功耗,并对供电形式提出要求。
根据设计好的原理图,焊接实物(可用万用板)三、软件设计要求⏹简单的用户使用说明书。
⏹根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模块。
⏹程序在必要的地方进行注释。
⏹每个函数的出入口要有输入输出参数的说明。
⏹程序必须具有良好的可读性,可重用,容易调试和维护。
⏹使用C语言进行编程,允许中间加插汇编。
四、设计内容(一)、硬件设计4.1.1.晶振电路及XTAL1,XTAL2的连接如右图1X1,X2分别是系统时钟信号Fosc的输入、输出端。
一般的晶振的负载电容为15p或12.5p ,如果再考虑元件引脚的等效输入电容,则两个22p的电容构图1晶振电路模块成晶振的振荡电路就是比较好的选择。
子科技协会制作8051C单片机开发系统,该开发板的使用的是石英晶体振荡器,晶振频率为fo=11.0592MHz,而振荡电容C1、C2的典型值取值范围为20—33pF,所以这里取22pF的瓷介电容。
注意:为减少寄生电容对振荡频率的影响,在印制板上的电容C1和C2应尽可能靠近CPU芯片的X1和X2引脚。
4.1.2、复位电路及复位引脚RST的连接入作图2所示,开发板采用的是RC分立元件构成的外部复位电路。
掉电复位。
当正常工作时,二极管D801反偏,断电后,VCC下降,当VCC=0时,VCC与地GND等电位,电容C801通过D801放电,保证再上电时,RST引脚为高电平,CPU可靠复位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程论文设计-电子钟课程设计题目:多功能电子时钟系别:电气与电子工程系专业:姓名:学号:指导教师:年月日1 概述 (3)1.1设计任务 (3)1.2设计要求 (3)1.3扩展功能 (3)2 系统总体方案及硬件设计 (3)2.1系统总体方案 (3)2.2硬件各部分设计 (4)3 软件设计 (5)3.1软件设计流程 (6)3.2子程序模块 (6)4 Proteus软件仿真 (7)参考文献附:源程序代码1.1 设计目的设计一多功能智能电子时钟。
1.2 设计要求(1)主电路系统由秒信号发生器、“时、分、秒”计数器、驱动器及显示器、校时电路;(2)秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加来实现,译码显示电路将“时”、“分”、“秒”计数器的输出状态在六位LED七段显示器显示出来;(3)可以来对“时”、“分”、“秒”显示数字进行校对调整的;(4)可以设置三个定时闹钟;(5)编写程序,用Proteus软件进行仿真。
1.3 扩展功能(1)增加跑表功能;(2)可以设置数码管定时开启与关闭;(3)可以设置闹钟的开启与关闭。
2系统总体方案及硬件设计2.1系统总体方案2.1.1 单片机芯片的选择本设计选用STC89C52单片机,它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,足够本设计之用,高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
功能强大、使用方便的STC89C52单片机适用于许多较为复杂的应用场合。
2.1.2 总体设计及系统原理定时闹钟的整体设计较简单,包括单片机、自动复位电路、键盘电路、显示电路、驱动与指示电路、闹钟报警电路。
在确定系统的大体形式之后,画出本系统的总体结构布局,电路原理如图2-1所示显示电路用的是七段数码管,数码管段选通过锁存器74HC573接单片机的P2口,数码管由74LS138译码器控制位选,并且每位均接有一个或门,以增强驱动能力;本设计还有模式指示LED灯,由P1口控制,以此来识别不同的设置模式;系统的输入控制按键有P3口来实现,可以设置各个时间参数及闹钟使能。
2.2. 硬件各部分设计2.2.1 单片机单片机最小系统选用STC89C52,包含上电自动复位电路和手动复位电路,可对单片机进行复位操作。
2.2.2 显示部分本设计显示用的是四位七段显示共阴数码管,用来显示时间及跑表参数,LED数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。
7段LED由7个发光二极管按“日”字型排列,所有发光二极管的阳极连在一起称共阳极接法,阳极连在一起称为共阴极接法。
本文选用共阴极LED,所有发光二极管的阴极连在一起与或门74LS34相连,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。
因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字显示码来控制LED 的显示,此数据称为字符的段码或称为字型码。
LED显示器与单片机的接口一般有静态显示与动态显示接口两种方式,本设计采用动态显示方式。
在这种显示电路中,一个字位一个字位地轮流点亮各个LED,每一字位停留1ms左右,由于人的视觉暂留,好像6只LED是同时点亮的,并不察觉有闪烁现象。
这种动态LED显示接口由于所有数码管共用一个段码出口,分时轮流通电,从而大大简化课硬件线路,降低了成本。
2.2.3 驱动部分为是数码管有足够的亮度,本设计中增加了数码管驱动电路,用74HC573和或门74LS34来驱动,其中锁存器利用其驱动能力,并未用其锁存数据的功能。
2.2.4 模式指示电路为了区别该时钟的不同运行状态,在设计中加入了指示电路:LED1:闹钟1时间设定指示;LED2:闹钟2时间设定指示;LED3:闹钟3时间设定指示;LED4:数码管熄灭时间设定,第二功能:指示闹钟的开启与关闭;组合指示:LED全部亮,表示设定数码管开显示时间。
2.2.5 按键部分按键设定部分比较简单,因为本系统按键少,所以在设计上采用了独立按键方式,程序的编制上也采用了简单的扫描方式。
按下操作键K1-K6动作如下:操作键K1:模式调整;操作键K2:时间位设置;操作键K3:时间值增加键;操作键K4:跑表开始与停止;操作键K5:闹钟开启与关闭键;操作键K6:时间秒位清零键,用于细调时间。
2.2.6 电铃电路此电路由电源、一个蜂鸣器、一个三极管和一个电阻组成,当定时时间到,由STC89C52单片机的P1.5口向三极管基极输入低电平,三极管导通蜂鸣器报警,这时三极管充当开关的作用。
3软件设计3.1软件设计流程3.2 子程序模块主要控制子程序说明如下:✓delay:延时子程序;✓Timer0Interrupt: 定时器T0计时中断程序,每隔0.2ms中断一次;✓disp1:跑表显示子程序;✓disp:时间显示子程序;其中显示分六路,第一个和第二个数码管显示的是时,第三个和第四个数码管显示分,第五个和第六个数码管显示的是秒。
流程图如下:4 Proteus软件仿真本设计已在Proteus中仿真,程序运行正常,图4-1是仿真截图:图 4-1参考文献1、《单片机原理及应用》张毅刚主编高教出版社2、《单片机原理及C51编程》宋彩利等编西安交通大学出版社3、《单片机原理及应用技术》黄惟公等编西安电子科技大学出版社附源程序代码1#include <reg52.h>2#define uint unsigned int3#define uchar unsigned char4sbit led1=P1^2;5sbit led2=P1^1;6sbit led3=P1^0;7sbit led4=P1^4;89sbit lk138=P1^3;10sbit beep=P1^5;1112sbit key1=P3^0; //模式设定13sbit key2=P3^1; //时间位14sbit key3=P3^2; //时间调整15sbit key4=P3^4; //跑表16sbit key5=P3^5; //开关闹钟17sbit key6=P3^6; //秒位清零键1819uint temp,temp1;20uchar p1,p2,p3;21uchar moshi,shi,fen,miao; //正常显示设22定2324uchar shi1,fen1,miao1;25uchar shi2,fen2,miao2; //闹钟设定26uchar shi3,fen3,miao3;2728uchar shi4,fen4,miao4;29uchar shi5,fen5,miao5; //开关显示设定3031uchar smoshi;32uchar code 33table[]={0xde,0x82,0x57,0x97,0x8b,0x9d,0xd 34d,0x86,35360xdf,0x9f,0xcf,0xd9,0x5c,0xd3,0x5d,0x4d,0x 37cb,0x20};38void key_s1(void); //模式选择键39void key_s2(void); //操作位调整键40void key_s3(void);41void key_s3_n1(void);42void key_s3_n2(void);43void key_s3_n3(void);44 void key_s3_n4(void);45void key_s3_n5(void);46void ms(void);47void delay(uint ms);48void disp1(uchar hp,uchar mp,uchar sp);49void disp(uchar h,uchar m,uchar s);5051void initTimer0()52{53TMOD=0x12; //定时器0,方式2;定时器541,方式155TH0=0x38;56TL0=0x38;57TH1=0x0D8;58TL1=0x0F0; //定时10ms59EA=1;60ET0=1;61ET1=1;62TR0=1;63TR1=0; //先关闭定时器164temp=0;65temp1=0;66p3=0;67shi1=12;68}69void main()70{71initTimer0();72while(1)73{ key_s1();74ms();75if(miao>0x3b)76{ miao=0;77fen++;78if(fen>0x3b)79{80fen=0;81shi++;82if(shi>0x17)83{ shi=0;84}85}86}8788if(p3>0x63)89{90p3=0;91p2++;92if(p2>0x3b)93{94p2=0;95p1++;96if(p1>0x09)97{ p1=0;98}99}100}101if(key6==0)102{miao=0;103}104if(key4==0)105{ TR1=~TR1;106}107if(key5==0)108{109temp1=~temp1;110}111if(temp1==0)112{113led4=0;114beep=1;115}116if(((shi==shi1)&(fen==fen1)&(miao==miao1)& 117temp1)||((shi==shi2)&(fen==fen2)&(miao==mi 118ao2)&temp1)||((shi==shi3)&(fen==fen3)&(mia 119o==miao3)&temp1))120{121beep=0;122}123if(((shi==shi1)&(fen==fen1)&(miao==miao1+1 1240))||((shi==shi2)&(fen==fen2)&(miao==miao2 125+10))||((shi==shi3)&(fen==fen3)&(miao==mia 126o3+10)))127{128beep=1;129}130131if((shi==shi4)&(fen==fen4)&(miao==miao4)) 132 {133lk138=0; led3=0;134}135136if((shi==shi5)&(fen==fen5)&(miao==miao5)) 137{138lk138=1; led3=1;139}140}141}142void disp(uchar h,uchar m,uchar s)143{144P0=0xf0;145P2=table[s%10];146delay(1);147P2=0x00;148149P0=0xf1;150P2=table[s/10];151delay(1);152P2=0x00;153154P0=0xf2;155P2=table[m%10];156delay(1);157P2=0x00;158P0=0xf2;159P2=0x20;160delay(1);161P2=0x00;162163P0=0xf3;164P2=table[m/10];165delay(1);166P2=0x00;167168P0=0xf4;169P2=table[h%10];170delay(1);171P2=0x00;172P0=0xf4;173P2=0x20;174delay(1);175P2=0x00;176177178P0=0xf5;179P2=table[h/10];180delay(1);181P2=0x00;182}183void disp1(uchar hp,uchar mp,uchar sp) 184185{186P0=0xf0;187P2=table[sp%10];188delay(1);189P2=0x00;190191P0=0xf1;192P2=table[sp/10];193delay(1);194P2=0x00;195196P0=0xf2;197P2=table[mp%10];198delay(1);199P2=0x00;200P0=0xf2;201P2=0x20;202delay(1);203P2=0x00;204205P0=0xf3;206P2=table[mp/10];207delay(1);208P2=0x00;209210P0=0xf4;211P2=table[hp%10];212delay(1);213P2=0x00;214P0=0xf4;215P2=0x20;216delay(1);217P2=0x00;218219220P0=0xf5;221P2=0x4f;222delay(1);223P2=0x00;224}225226227void key_s1(void)228{229P3=0xff;230if(P3==0xfe)231{232delay(5);233if(P3==0xfe)234{ delay(100);235if(P3==0xff)236moshi++;237}238if(moshi>6) moshi=0;239}240}241void ms(void)242{ switch(moshi)243{244case 0:disp(shi,fen,miao); led4=1; 245key_s2(); key_s3(); break;246case 1:disp(shi1,fen1,miao1); 247led1=0;led2=1;led3=1;led4=1;248key_s2(); key_s3_n1(); 249break;250case 2:disp(shi2,fen2,miao2); 251led1=1;led2=0;led3=1;led4=1;252key_s2(); key_s3_n2(); 253break;254case 3:disp(shi3,fen3,miao3); 255led1=1;led2=1;led3=0;led4=1;256key_s2(); key_s3_n3(); 257break;258case 4:disp(shi4,fen4,miao4); 259led1=1;led2=1;led3=1;led4=0;260key_s2(); key_s3_n4(); 261break;262case 5:disp(shi5,fen5,miao5); 263led1=0;led2=0;led3=0;led4=0;264key_s2(); key_s3_n5(); 265break;266case 6:disp1(p1,p2,p3); 267led1=1;led2=1;led3=1;led4=1;268if(key5==0) p1=p2=p3=0; 269break;270default: break;271}272273}274275void key_s2(void)276{277P3=0xff;278if(P3==0xfd)279{ delay(5);280if(P3==0xfd)281{ delay(100);282if(P3==0xff)283smoshi++;284}285if(smoshi>2) smoshi=0;286}287}288void key_s3(void)289{290P3=0xff;291if(P3==0xfb)292{293switch(smoshi)294{295case 0:miao++; if(miao>59) 296miao=0; break;297case 1:fen++; if(fen>59) 298fen=0; break;299case 2:shi++; if(shi>23) 300shi=0; break;301default: break;302}303}304}305306void key_s3_n1(void)307{308 P3=0xff;309if(P3==0xfb)310{311switch(smoshi)312{313case 0:miao1++; if(miao1>49) 314miao1=0; break;315case 1:fen1++; if(fen1>59) 316fen1=0; break;317case 2:shi1++; if(shi1>23) 318shi1=0; break;319default: break;320}321}322}323324void key_s3_n2(void)325{326P3=0xff;327if(P3==0xfb)328{329switch(smoshi)330{331case 0:miao2++; if(miao2>49) 332miao2=0; break;333case 1:fen2++; if(fen2>59) 334fen2=0; break;335case 2:shi2++; if(shi2>23) 336shi2=0; break;337default: break;338}339}340}341void key_s3_n3(void)342{343P3=0xff;344if(P3==0xfb)345{346switch(smoshi)347{348case 0:miao3++; if(miao3>49) 349miao3=0; break;350case 1:fen3++; if(fen3>59) 351fen3=0; break;352case 2:shi3++; if(shi3>23) 353shi3=0; break;354default: break;355}356}357}358void key_s3_n4(void)359{360P3=0xff;361if(P3==0xfb)362{363switch(smoshi)364{365case 0:miao4++; if(miao4>59) 366miao4=0; break;367case 1:fen4++; if(fen4>59) 368fen4=0; break;369case 2:shi4++; if(shi4>23) 370shi4=0; break;371default: break;372}373}374}375void key_s3_n5(void)376{377P3=0xff;378if(P3==0xfb)379{380switch(smoshi)381{382case 0:miao5++; if(miao5>59) 383miao5=0; break;384case 1:fen5++; if(fen5>59) 385fen5=0; break;386case 2:shi5++; if(shi5>23) 387shi5=0; break;388default: break;389}390}391}392void delay(uint ms)393{394uint x,y;395for (x=0;x<60;x++)396 for (y=0;y<ms;y++);397}398399void Timer0Interrupt(void) interrupt 1 400{ temp++;401if(temp==0x1388) //设置定时器工402作循环500次403{404temp=0;405miao++;406407}408}409void Timer1Interrupt(void) interrupt 3 410{411TH1 = 0x0D8;412TL1 = 0x0F0;413p3++;414}415416417418419420421422423424425426427。