数字闹钟课程设计报告
数字时钟课程设计报告(论文版)

多功能数字时钟设计报告题目:数字闹钟系别:电子信息工程系专业:电子信息工程班级:3班组员:黄斯文,李安源摘要数字电子钟是一种用数字显示秒﹑分﹑时的记时装置,与传统的机械时钟相比,它一般具有走时准确﹑显示直观﹑无机械传动装置等优点,因而得到了广泛的应用:小到人们的日常生活中的电子手表、电子闹钟,大到车站﹑码头﹑机场等公共场所的大型数字显电子钟。
本课程设计是要通过简单的逻辑芯片实现数字电子钟。
要点在于用555芯片连接输出为一秒的多谐振荡器用于时钟的秒脉冲,用74LS160(10进制计数器)、74LS00(与非门芯片)等连接成60和24进制的计数器,再通过数码管显示,构成简单数字时钟。
关键字数字时钟计数器555芯片分频器数码管74LS系列校时报时目录一、设计任务和要求 (3)二、设计的方案的选择与论证 (3)(1)总体电路分析 (3)(2)仿真分析 (4)(3)仿真说明 (4)三、电路设计计算与分析 (4)(1)计数计时电路 (4)(2)分钟计时电路 (5)(3)秒钟计时电路 (7)(4)校时选择电路 (8)(5)整点译码电路 (9)(6)定时比较电路 (11)(7)脉冲产生电路 (12)四、总结及心得 (13)五、附录 (15)(1)元器件明细表 (15)(2)附图 (17)六、参考文献 (17)一、设计任务和要求实现24小时的时钟显示、校准、整点报时、闹铃等功能。
具体要求:(1)显示功能:具有“时”、“分”、“秒”的数字显示(“时”从0~23,分0~59,秒0~59)。
(2)校时功能:当刚接通电源或数字时钟有偏差时,可以通过手动的方式去校时。
(3)整点报时:当时钟计时到整点时,能进行整点报时。
(4)闹铃功能:在24小时之内,可以设定定时时间,当数字时钟到定时时间时能进行报时提醒。
二、设计的方案的选择与论证(1)总体电路分析总体电路设计是将单元电路模块小时计时电路、分钟计时电路、秒计时电路、校时选择电路、整点译码电路、闹钟电路等模块连接在一起,外接输入开关和输出显示数码管构成。
数字式闹钟电路设计报告

数字式闹钟电路设计报告目录一.设计任务和要求 (1)二.设计方案的选择与论证 (2)三.电路设计计算与分析 (5)四.总结及心得 (15)五.附录 (17)六.参考文献 (18)一.设计任务和要求数字式闹钟的具体要求如下:(1) .时钟功能:具有24小时或12小时的计时方式,显示时、分、秒。
(2) .具有快速校准时、分、秒的功能。
(3) .能设定起闹时刻,响闹时间为1分钟,超过1分钟自动停;具有人工止闹功能;止闹后不再重新操作,将不再发生起闹。
二.设计方案的选择与论证2.1 数字闹钟的设计思想要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。
而脉冲源产生的脉冲信号的频率较高,因此,需要进行分频,使得高频脉冲信号转变为适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1HZ)。
经过分频器输出的秒脉冲信号到计数器中进行技术。
由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要对计数器分别设计为60进制,60进制和24进制(本次我选作24进制)的,并发出驱动信号。
各计数器输出信号经译码器、驱动器到数字显示器,按“时”、“分”、“秒”顺序将数字显示出来。
值得注意的是:任何计时装置都有误差,因此应考虑校准时间电路。
校时电路一般采用自动快速调整和手动调整,“自动快速调整”可利用分频器输出的不同频率的脉冲使显示的时间自动迅速调整。
“手动调整”可利用手动的节拍调准显示时间。
基于要求本次采用了自动快速调整。
数字闹钟要求有定时响闹的功能,故需要提供设定闹时电路和对比起闹电路。
设时电路应共享译码器、驱动器到数字显示器,以便使用者设定时间,并可减少电路的芯片数量;而对比起闹电路提供声源,应具有人工止闹功能,止闹后不再重新操作,将不再发生起闹等功能。
2.2 数字闹钟组成框图及工作过程数字闹钟的组成框图如图1.1所示:分别由数码显示电路,计数器,校时电路,脉冲产生的分频器及振荡器,闹时设置电路和闹时电路。
课程设计_数字电子钟设计报告 -终

数字闹钟设计报告目录1. 设计任务与要求 (2)2. 设计报告内容2.1实验名称 (2)2.2实验仪器及主要器件 (2)2.3实验基本原理 (3)2.4数字闹钟单元电路设计、参数计算和器件选择…………………………3-72.5数字闹钟电路图 (8)2.6数字闹钟的调试方法与过程 (8)2.7设计与调试过程的问题解决方案 (8)3.实验心得体会……………………………………………………………………9、101. 设计任务与要求数字闹钟的具体设计任务及要求如下:(1) 有“时”、“分”十进制显示, “秒”使用发光二极管闪烁表示。
(2) 以24小时为一个计时周期。
(3) 走时过程中能按预设的定时时间(精确到小时)启动闹钟, 以发光二极管闪烁表示, 启闹时间为3s~10s。
2. 设计报告内容2.1实验名称数字闹钟2.2实验仪器及主要器件(1)CD4511( 4片)、数码管(4片)(2)74LS00(6片)(3)74LS138(2片)(4)74LS163(6片)(5)LM555(1片)(6)电阻、电容、导线等(若干)(7)面包板(2片)、示波器等2.3数字闹钟基本原理要想构成数字闹钟, 首先应选择一个标准时间源——即秒信号发生器。
可以采用LM555构成多谐振荡器, 通过改变电阻来实现频率的变化, 使之产生1HZ的信号。
计时的规律是: 60秒=1分, 60分=1小时, 24小时=1天, 就需要对计数器分别设计为60进制和24进制的, 并发出驱动信号。
各计数器输出信号经译码器到数字显示器, 按“时”、“分”顺序将数字显示出来, 秒信号可以通过数码管边角的点来显示。
数字闹钟要求有定时响闹的功能, 故需要提供设定闹时电路和对比起闹电路。
设时电路应共享译码器到数字显示器, 以便使用者设定时间, 并可减少电路的芯片数量;而对比起闹电路提供声源, 应具有人工止闹功能, 止闹后不再重新操作, 将不再发生起闹等功能。
数字电子钟的逻辑框图如图所示。
数字钟实验报告5篇范文

数字钟实验报告5篇范文第一篇:数字钟实验报告数字钟实验报告班级:电气信息i类112班实验时间:实验地点:指导老师:目录一、实验目的-----------------3二、实验任务及要求--------3三、实验设计内容-----------3(一)、设计原理及思路3(二)、数字钟电路的设计--------------------------4(1)电路组成---------4(2)方案分析---------10(3)元器件清单------11四、电路制版与焊接---------11五、电路调试------------------12六、实验总结及心得体会---13七、组员分工安排------------19一、实验目的:1.学习了解数码管,译码器,及一些中规模器件的逻辑功能和使用方法。
2.学习和掌握数字钟的设计方法及工作原理。
熟悉集成电路的引脚安排,掌握各芯片的逻辑功能及使用方法了解面包板结构及其接线方法。
3.了解pcb板的制作流程及提高自己的动手能力。
4.学习使用protel软件进行电子电路的原理图设计、印制电路板设计。
5.初步学习手工焊接的方法以及电路的调试等。
使学生在学完了《数字电路》课程的基本理论,基本知识后,能够综合运用所学理论知识、拓宽知识面,系统地进行电子电路的工程实践训练,学会检查电路的故障与排除故障的一般方法锻炼动手能力,培养工程师的基本技能,提高分析问题和解决问题的能力。
二、实验任务及要求1.设计一个二十四小时制的数字钟,时、分、秒分别由二十四进制、六十进制、六十进制计数器来完成计时功能。
2.能够准确校时,可以分别对时、分进行单独校时,使其到达标准时间。
3.能够准确计时,以数字形式显示时、分,发光二极管显示秒。
4.根据经济原则选择元器件及参数;5..小组进行电路焊接、调试、测试电路性能,撰写整理设计说明书。
三、实验设计内容1、设计原理及思路 3.1数字钟的构成数字钟一般由振荡器、分频器、计数器、译码器、显示器、较时电路、报时电路等部分组成,这些都是数字电路中应用最广的基本电路3.2原理分析数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。
数字闹钟课程设计报告资料整理

数字电路实验课程设计报告数字闹钟第一部分设计任务1.1设计任务设计、制作一个带有校时功能、可定时起闹的数字闹钟。
1.2设计指标1、有“时”、“分”十进制显示,“秒”使用分个位数码管上的DP点显示。
2、计时以24小时为周期。
(23:59→00:00)3、具有校时电路,可进行分、时较对。
4、走时过程能按预设的定时时间(精确到小时)启动闹钟产生闹铃,闹铃响时约3s。
第二部分设计方案2.1总体设计方案说明系统组成:秒信号发生器:由LM555构成多谐振荡器走时电路:计数器和与非门组成校时电路:秒信号调节闹钟电路:跳线的方法由计数器、译码器、组合逻辑电路、单稳态电路组成显示电路:译码器数码管模块结构与方框图第三部分电路设计与器件选择3.1秒信号发生器3.1.1模块电路及参数计算提供秒脉冲取R1=1.5K,R2=2.4KC=220uF T≈1S3.1.2工作原理和功能说明CR T C R R T PL PH 2217.0)(7.0=+=z11H Tf ==CR R T T T PL PH )2(7.021+=+=3.1.3器件说明内部电路组成:(1)分压器(3个R)(2)电压比较器(A1、A2)(3)RS 触发器(4)反相器(5)晶体管T1端2端3端4端5端6端7端8端3.2走时电路设计3.2.1模块电路及参数计算包括秒计时器、分计时器、时计时器,每一部分由两片计数器级联构成。
(1).秒计时器:十进制与六进制级联而成,由两片74LS163和与非门实现。
(2).分计时器:同秒计时器。
(3).时计时器:模24,计数显示00~23。
由两片74LS160和与非门实现。
3.2.2工作原理及功能说明秒分计时器原理时计数器原理74LS160其清零方式通常称为“异步清零”,即只要清零端有效,不管有无时钟信号,输出端立即为0。
译码显示电路用译码器74LS48对计数结果进行译码,译码后在共阴极数码管上显示。
3.2.3器件说明74LS163结构图74LS160结构图3.3时间校对电路3.3.1模块电路及参数计算用555输出信号加至分,时计时器使其快速计数3.3.2工作原理和功能说明将所需要校对的时或分计数电路的脉冲输入端切换到秒信号,使用快脉冲计数,到达标准时间后再切换回正确的输入信号。
数字钟课程设计报告排版

数字钟课程设计报告排版一、课程目标知识目标:1. 学生能理解数字钟的基本原理和组成部分,掌握数字钟电路的设计方法。
2. 学生能够运用所学知识,设计并制作一个简单的数字钟。
3. 学生了解数字钟在日常生活和科技领域中的应用。
技能目标:1. 学生能够运用电子元件和工具进行数字钟的搭建,提高动手实践能力。
2. 学生掌握数字钟程序编写的基本方法,培养编程思维和解决问题的能力。
3. 学生能够通过课程学习,培养团队协作和沟通表达的能力。
情感态度价值观目标:1. 学生对电子技术产生兴趣,激发探索科学技术的热情。
2. 学生在学习过程中,养成积极思考、勇于创新的习惯。
3. 学生通过团队合作,学会尊重他人、分享成果,培养良好的团队精神。
课程性质:本课程为电子技术实践课程,注重理论与实践相结合,培养学生的动手能力和创新能力。
学生特点:五年级学生,具备一定的电子元件知识和编程基础,好奇心强,喜欢动手实践。
教学要求:结合学生特点,注重启发式教学,引导学生自主探究,关注学生个体差异,因材施教。
通过课程学习,使学生在掌握知识技能的同时,培养良好的情感态度价值观。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 数字钟原理及组成- 介绍数字钟的基本原理,包括计时、显示等部分- 分析数字钟的各个组成部分,如时钟电路、计数器、译码器、显示器件等2. 数字钟电路设计- 学习数字钟电路的基本设计方法- 掌握常见电子元件的使用,如IC、晶体振荡器、LED等3. 数字钟程序编写- 了解编程语言及其在数字钟设计中的应用- 学习编写简单的数字钟程序,实现计时、显示等功能4. 数字钟制作与调试- 制定制作数字钟的步骤,明确各阶段任务- 学习使用工具和仪器,进行数字钟的搭建和调试5. 数字钟应用与拓展- 探讨数字钟在日常生活和科技领域的应用- 激发学生兴趣,引导他们进行数字钟的拓展创新教学内容安排与进度:第一课时:数字钟原理及组成第二课时:数字钟电路设计第三课时:数字钟程序编写第四课时:数字钟制作与调试第五课时:数字钟应用与拓展教材章节及内容:第一章:电子技术基础1.1 数字电路概述1.2 常见电子元件介绍第二章:数字钟设计与制作2.1 数字钟原理2.2 数字钟电路设计2.3 数字钟程序编写2.4 数字钟制作与调试第三章:数字钟应用与拓展3.1 数字钟在日常生活和科技领域的应用3.2 数字钟的拓展与创新三、教学方法1. 讲授法:- 在数字钟原理及组成、数字钟电路设计等内容的教学中,采用讲授法,为学生讲解基本概念、原理和方法。
数字闹钟课程设计报告

目录一、摘要 (2)二、实验要求 (2)三、实验电路及功能说明 (2)四、实验程序流程图 (5)五、实验结果分析 (7)六、设计心得 (8)七、程序清单 (9)八、参考文献 (14)九、附录(AT89C51单片机) (14)一、摘要:作为一个合格的大学生,不仅需要有过硬的理论知识,还应该有动手实践的能力,并且是将理论结合实际,提升到应用层面。
以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。
此次《微机课程设计》对理论结合实际的动手能力和自学能力有很强的体现。
我们这次是基于AT89C51单片机数字闹钟的设计。
关键词:数字闹钟,单片机AT89C51,LED数码管。
二、实验要求:1.通过单片机实现秒、分、小时的进位(24小时制)。
2.将当前时分秒在七段LED显示器上显示(如:091132)。
3.可设置闹钟的时间当前值(对准时间),设置闹铃时间,闹铃功能的关闭和开放。
.三、实验电路及功能说明:仿真电路图如下:图1图2该数字闹钟是用一片A T89C51A单片机通过编程去驱动8个数码管实现的。
通过5个开关控制,从上到下5个开关KEY1~KEY5的功能分别为:KEY1,调节时间,每调一次分加1;KEY2, 调节时间,每调一次时加1;KEY3,从其它状态切换至时钟状态;KEY4,切换至闹钟设置状态;KEY5,闹钟关闭和开放.控制键分别与P1.0~P1.4口连接.其中:A.通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.B.从P0.4输出一个信号发光二极管发光,二极管在闹铃开关打开时发光。
C.从P0.0输出一个信号使蜂鸣器发声,蜂鸣器在闹铃打开并设置的闹钟时间到了时候鸣叫。
(图1是时钟运行状态,图2是闹钟运行状态)功能说明:1.各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;2.AT89C51单片机,通过编写程序对数码显示进行控制。
数字钟课程设计报告老板

数字钟课程设计报告老板一、课程目标知识目标:1. 学生理解数字时钟的基本构成和工作原理,掌握时、分、秒的概念及其相互关系。
2. 学生学会读取和设置数字时钟,掌握12小时制和24小时制的转换方法。
3. 学生了解数字时钟在日常生活和时间管理中的重要性。
技能目标:1. 学生能够运用所学知识,独立完成一个简易数字时钟的制作。
2. 学生通过实际操作,提高动手能力,培养问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生培养对时间观念的尊重,增强时间管理意识,养成良好的作息习惯。
2. 学生在实践过程中,体验成功的喜悦,提高对科学技术的兴趣和热爱。
3. 学生在团队协作中,学会相互尊重、沟通和协作,培养集体荣誉感。
本课程针对小学五年级学生,结合学生的年龄特点和认知水平,注重实践操作和团队合作。
课程设计以学生为主体,激发学生的兴趣和积极性,培养其自主学习和创新能力。
通过本课程的学习,期望学生能够掌握数字时钟的相关知识,提高实践操作技能,同时培养良好的时间观念和团队协作精神。
后续教学设计和评估将以此为基础,确保课程目标的实现。
二、教学内容本课程教学内容分为以下三个部分:1. 数字时钟基础知识- 时、分、秒的概念及其相互关系- 数字时钟的构成和工作原理- 12小时制和24小时制的区别及转换方法教学内容关联教材章节:第三章《时间与时刻》2. 数字时钟的制作与操作- 简易数字时钟的制作步骤- 数字时钟的读取和设置方法- 故障排查与问题解决教学内容关联教材章节:第四章《电子时钟》3. 时间观念与团队协作- 时间管理的重要性与方法- 团队合作的意义与技巧- 实践活动中的相互尊重与沟通教学内容关联教材章节:第五章《时间管理》和第六章《团队协作》教学进度安排:1. 数字时钟基础知识(2课时)2. 数字时钟的制作与操作(3课时)3. 时间观念与团队协作(2课时)教学内容注重科学性和系统性,结合课程目标,以实践操作为主,引导学生掌握数字时钟相关知识,培养时间管理和团队协作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书系 别: 机电学院专业:电信12级学 生姓名: 张峰、汪志明学号: 20120112302012011242课程设计题目: 数字闹钟6月22日〜7月4日机电楼实验室 杨婷下达任务书日期:2015 年6月22日起迄日期:课程设计地点: 指导教师:一、摘要 (2)二、实验要求 (2)三、实验电路及功能说明 (2)四、实验程序流程图 (5)五、实验结果分析 (7)六、设计心得 (8)七、程序清单 (9)八、参考文献 (14)九、附录(AT89C51单片机) (14)一、摘要:作为一个合格的大学生,不仅需要有过硬的理论知识,还应该有动手实践的能力,并且是将理论结合实际,提升到应用层面。
以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。
此次《微机课程设计》对理论结合实际的动手能力和自学能力有很强的体现。
我们这次是基于AT89C51单片机数字闹钟的设计。
关键词:数字闹钟,单片机AT89C51 LED数码管。
二、实验要求:三、 1.通过单片机内部定时器产生秒脉冲定时中断,在中断服务程序中实现秒,分,小时的进位(24小时制)。
四、 2.将当前时分秒在七段LED显示器上显示;(如: 112233)五、3.可设置闹钟的时间当前值(对准时间),设置闹铃时间,闹铃功能的关闭和开放。
•三、实验电路及功能说明:仿真电路图如下:图1时钟界面图2闹钟开启状态该数字闹钟是用一片AT89C51A单片机通过编程去驱动8个数码管实现的。
通过5 个开关控制,从上到下5个开关KEY1~KEY5的功能分别为:KEY1,调节时间,每调一次分加1;KEY2,调节时间,每调一次时加1;KEY3,从其它状态切换至时钟状态;KEY4, 切换至闹钟设置状态;KEY5,闹钟关闭和开放.控制键分别与P1.0~P1.4 口连接.其中:A. 通过P2 口和P3 口去控制数码管的显示如图所示P2 口接数码管的a―― g端,是控制输出编码,P3 口接数码管的1―― 8端,是控制动态扫描输出.B. 从P0.4输出一个信号发光二极管发光,二极管在闹铃开关打开时发光。
C. 从P1.5输出一个信号使蜂鸣器发声,蜂鸣器在闹铃打开并设置的闹钟时间到了时候鸣叫。
(图1是时钟运行状态,图2是闹钟运行状态)功能说明:1 .各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;2 . AT89C51单片机,通过编写程序对数码显示进行控制。
3.八个7段数码管显示时钟信号。
四、实验程序流程图:1.主程序流程图:2.时钟中断程序流程图:T返回主程序--------------1 1 ------------------------------------------------------- 1时数值timel.hour加1,time1.m in ute 归零3.按键程序流程图:Y判断时间与闹钟时间是否相同YNN程序初使化分十位归 零,alarms[4]=0.五、实验结果分析:此数字闹钟设计是利用 protues 仿真软件进行仿真。
基本上实现了要求的功能,该多功 能数字钟实现的时钟显示、闹钟功能,校准时钟时只设计了时加键和分加键以及清零键,没有设置减分减时键以及秒数调整按键。
可以通过循环调节得到正确的调节数值。
本程序共有分端口设置模块,计数模块,显示模块等几个模块。
经过调试,本程序可以实 现题目的要求。
时、分、秒都分两位。
个位满十后就向前进一位。
分秒的十位满六十后也向前 进一位。
显示小时两位在满二十四后重新计数。
。
程序中设置5个开关控制,从上到下5个开关KEY1~KEY5的功能分别为:KEY1,调节时间,每调一次分加1 ; KEY2,调节时间,每调一次时输岀时钟时个位加1,dat1[6]++,延时.输岀闹钟时个位加•1,alarms[6]++,延时标志flag输岀时钟分个位加输岀闹钟分十位加输岀时钟分十位加1,dat1[4]++,延时输岀闹钟时十位加1,alarms[7]++,延时时十位归 零,alarms[7]=0.dat1[4]>2?输岀时钟时十位加时十位归 零,dat1[7]=0分十位归 零,dat1[4]=0判断时加判断标志flag 是 否为 0,flag=0?hour 是否按下,“•;: _ YP1.2=0?dat1[6]>9?Y判断分加tmi nute 是否按 下,P1.1=0?NY输岀闹钟分个位加0,flag=O?alarms[3]>9?Ydat1[3]>9?alarms[4]>2?Yalarms[6]>9?Yalarms[7]>2?Ydat1[7]>2?加1; KEY3,从其它状态切换至时钟状态;KEY4,切换至闹钟设置状态;KEY5,闹钟关闭和开放控制键分别与P1.0~P1.4 口连接•应该注意的是,经仿真,程序中设置的功能全都可以良好运行。
过程中遇到的问题:1.数码管显示不正常,出现乱码;2•实验过程中,按下按键会出现抖动,需适当调整延时程序。
六、设计心得通过对数字闹钟的编程实现,对硬件特别是单片机的原理和实现都有了很深的解。
更加深了对C语言和汇编的使用•整个程序中涉及单片机的使用,C语言和汇编语言熟练掌握的要求。
可以说整个文件中最麻烦的就是进位条件的判断,编程中经常犯想当然的错误。
另外对于中断服务子程序的类型设置问题,由于以前对这个概念的理解留于表面,编程中出现了不少奇怪的错误。
再调试中尝试使用了分割法,对错误模块进行定位,再进行排查.在算法实现上要有一定的思路要更能体现设计的目的。
同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。
通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。
可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。
因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。
所以在以后的学习中一方面我要不断的巩固自己所学的理论知识,一方面还要多参加实际操作工作以便提高自己的实际操作能力。
其实这次课程设计的最大收获应该是找到了解决问题的几个很好的途径: 1.讨论2.通过网络,在自己的网站上也收获了很多,共享让我们共同进步。
此外,我学会了看硬件结构图,并学会了自己去独立的完善一个程序,对程序的效用等做思考。
并体会到:问别人只能帮你开拓思路,真正解决问题还是要靠自己去摸索。
当然讨论是很好的学习途径,它会让你事半功倍.由于时间不是很充裕,程序中有很多值得改善的地方,我尝试再其中加入更多的功能,但调试的结果没有,所以需要继续努力。
七、程序清单#in clude<reg51.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intuint tco un t,u;dat2[]={0,0,0,0,0,0,0,0};〃uchar dat1[]={0,0,0,0,0,0,0,0};〃时钟定时缓冲区uchar alarms[]={0,0,0,0,0,0,0,0};〃闹钟定时缓冲区uchar dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};〃un sig ned char code SEG7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,};〃共阳极led数码管"0~9","-"的字段码sbit tminuite=P1A0;sbit thour=P1Al;sbit shizho ng=P1A2;sbit alarm=P1A3;sbit alarmswitch=P1A4;sbit P0_4=P0A4;sbit P0_0=P0A0;uint sw=0;uchar k;uchar ms=0;uchar flag=0;〃闹钟切换标志位uchar sec=0;〃闹钟计时秒uchar mi nit=O; 〃闹钟计时分struct time{uchar sec on d;uchar minu te;uchar hour;}time1;〃定义名为time 的结构体,变量名timel uchar n ,i;void delay(n)//1ms 延时函数{{while( n--)微机原理课程设计for(i=120;i>0;i--);void modify(void)// 时间调整{EA=0;if(thour==0){if(flag==O)〃时钟调整每次加1{dat1[6]++;delay(200);if(dat1 [6] >3&&dat1[7]==2){dat1[6]=0;dat1[7]=0;}if(dat1[6]>9){dat1[6]=0;dat1[7]++;if(dat1[7]>2){dat1[7]=0;}}}if(flag==1)//闹钟时钟定时{alarms[6]++;delay(200);if(alarms[6]>3&&alarms[7]==2)微机原理课程设计{alarms[6]=0;alarms[7]=0;}if(alarms[6]>9){alarms[6]=0;alarms[7]++;if(alarms[7]>2){alarms[7]=0;}}}}if(tminute==O)〃分钟调整每次加 1 {if(flag==0){dat1[3]++;delay(200);if(dat1[3]>9){dat1[4]++;dat1[3]=0;if(dat1[4]>5){dat1[4]=0;}}}if(flag==1)//闹钟分钟定时alarms[3]++; delay(200);if(alarms[3]>9){alarms[4]++;alarms[3]=0;if(alarms[4]>5){alarms[4]=0;}}}}if(shizhong==O)〃时钟返回,秒表显示和缓冲初始化{ flag=0;}if(alarmswitch==O){if(sw==0){sw=1;P0=0x10;}else{sw=0;PO=OxOO;}delay(500);}if(alarm==O)〃闹钟键按下,显示00-00-00{flag=1;alarms[O]=O;alarms[1]=0; alarms[2]=10;alarms[3]=0;alarms[4]=0;alarms[5]=10;alarms[6]=0;alarms[7]=0;}EA=1;} void init(void)// 初始化{TMOD = 0x11;THO = OxDB;TL0 =0xFF;〃工作方式3 (两个8位定时/计时器(只有T0有)),定时24 ET0 = 1;TR0=1;tcoun t=0;u=0;P0=0x00;EA = 1;//开放中断void test(void){for(k=0;k<8;k++){if(flag==O){ P3=~dis_bit[k];P2=~SEG7[dat1[k]]; delay(1);P3=~0X00;}if(flag==1){ P3=~dis_bit[k];P2=~SEG7[alarms[k]]; delay(1);P3=~0X00;}void mai n(){ini t();delay(10);while(1) //括号的“ 1”表示while()判断条件为真,只要不是“0”,这个循环就一直循环下去,要跳出这个循环,只能在子程序里设置出口。