实验八 简易电子时钟设计
设计制作电子时钟
设计制作简易数字钟一、设计要求1、设计一振荡源,用于产生1Hz的脉冲信号;2、能完成从00时00分00秒到23时59分59秒走时,并实时显示时、分、秒;3、具有手动校时、校分、校秒功能。
发挥部分:具有正点报时功能。
要求在59分58秒开始报时,持续5秒钟。
二、总体设计方案1、方案选择数字钟实际上是由一个对标准频率(1HZ)进行计数的计数电路为主要部分构成的。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ 时间信号必须做到准确稳定。
通常使用石英晶体振荡器电路来构成数字钟的标准时间基准信号。
数字钟的组成框图如下图所示。
数字钟计时周期是24,因此必须设置24 计数器,秒、分、时由七段数码管显示。
为使数字钟走时与标准时间一致,校时电路是必不可少的。
设计中采用状态机控制校时,通过切换开关用秒脉冲或手动按键产生脉冲先后对“时” “分” “秒”计数器进行校时操作。
2、数字钟的构成(1)数字钟的构成:振荡器、分频器、计数器、译码器、LED数码管显示器等几部分。
附加功能的实现还需采用T’触发器及与门和或门及蜂鸣器组成报时电路。
(2)数字钟的时、分、秒实际上就是由一个24 进制计数器(00-23),两个60 进制计数器(00-59)级联构成。
设计数字钟实际上就是计数器的级联。
(3)芯片选型:由于24进制、60进制计数器均由集成计数器级联构成,且都包含有基本的十进制计数器,从设计简便考虑,芯片选择十进制计数器74LS390。
3、元器件列表:型号74LS00、74LS04、74LS08、74LS21、74LS32、74LS47、74LS74、74LS86、74LS390、CD4068、CD4060、CD4511。
晶体管8050、510欧姆电阻、LED、轻触开关、自锁开关、蜂鸣器、10p电容、晶振32768、10M电阻。
三、系统工作原理1、主计数部分原理图图1主计数部分原理图如图所示,用两个十进制计数器74LS390组成60进制计数器和24进制计数器,分别用于对分、秒和时的计数。
简单电子时钟课程设计
简单电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的主要组成部分及其功能。
2. 学生能够掌握电子时钟显示时间的基本方法,包括时、分、秒的表示和转换。
3. 学生能够了解电子时钟的简易电路图,并认识常见电子元件。
技能目标:1. 学生能够运用所学知识,设计并搭建一个简易的电子时钟。
2. 学生能够通过实际操作,调试和优化电子时钟的运行效果。
3. 学生能够运用电子时钟知识解决实际问题,提高创新能力和动手能力。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发学习热情,树立科学探究精神。
2. 学生在合作探究中,培养团队协作能力和沟通能力,增强集体荣誉感。
3. 学生通过学习电子时钟的制作,认识到科技对生活的影响,培养环保意识和节能意识。
课程性质:本课程为实践性课程,结合理论知识与实际操作,注重培养学生的动手能力和创新能力。
学生特点:六年级学生具备一定的认知能力和动手能力,对新奇事物充满好奇心,善于合作探究。
教学要求:教师需引导学生掌握电子时钟的基本原理和制作方法,注重培养学生的实践能力和团队协作能力,提高学生的科学素养。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本章节教学内容依据课程目标,结合课本《信息技术》六年级下册第四章“走进电子世界”内容进行组织。
1. 电子时钟原理:介绍电子时钟的基本工作原理,包括晶振振荡器、分频器、计数器、显示电路等组成部分。
2. 电子元件认知:学习常见电子元件,如电阻、电容、二极管、三极管等,并了解其在电子时钟中的作用。
3. 制作简易电子时钟:详细讲解电子时钟的制作步骤,包括电路图的绘制、元件的选取、焊接和调试。
4. 时间的表示与转换:学习电子时钟中时、分、秒的表示方法,以及它们之间的转换关系。
5. 教学大纲安排:- 第一节课:电子时钟原理及电子元件认知;- 第二节课:绘制简易电子时钟电路图,学习焊接技巧;- 第三节课:组装电子时钟,进行初步调试;- 第四节课:优化电子时钟,学习时间表示与转换。
自制小时钟小实验知识拓展
自制小时钟小实验知识拓展小时钟是我们日常生活中常见的计时工具,但是你知道它是如何工作的吗?通过自制小时钟小实验,我们可以深入了解小时钟的工作原理和相关知识。
实验材料准备:1. 一块透明玻璃或塑料板2. 一张透明胶纸3. 一块小木板或硬纸板4. 一块尺寸适中的白纸5. 一只细长的针6. 一颗AA电池7. 两根金属导线8. 一颗小型发光二极管(LED)9. 一些铜片或铝箔10. 一些电线固定夹11. 一些胶水或胶带实验步骤:1. 准备一个小时钟的表盘。
将白纸铺在透明玻璃或塑料板上,用透明胶纸固定。
2. 在表盘上绘制小时刻度,每个小时一个刻度,共12个刻度。
可以使用铜片或铝箔剪成合适的形状粘贴在表盘上,也可以直接在白纸上绘制。
3. 制作指针。
将小木板或硬纸板剪成合适的形状,固定一根细长的针在其中,使其成为一个指针。
可以使用胶水或胶带固定。
4. 将指针固定在表盘上,使其能够自由转动。
可以使用电线固定夹将指针固定在表盘的中心点上。
5. 准备电路。
将一根金属导线的一端连接到LED的正极,另一端连接到电池的正极。
将另一根金属导线的一端连接到LED的负极,另一端连接到电池的负极。
6. 将LED固定在表盘上,使其正好在12个小时刻度之间的任意位置。
可以使用胶水或胶带固定。
7. 将电路连接好,确保LED能够亮起。
此时,小时钟小实验就完成了。
实验原理:小时钟的工作原理基于电路的闭合和开启。
当指针指向刻度上的任意一个小时时,指针上的金属部分会与LED的负极连接,而LED的正极与电池的正极相连,电路闭合,LED亮起。
当指针指向两个刻度之间时,指针上的金属部分不会与LED的负极连接,电路打开,LED熄灭。
知识拓展:通过这个小实验,我们可以了解到小时钟是通过电路的开启和闭合来实现的。
在小时钟中,指针起到了触发开关的作用。
当指针指向刻度时,触发开关闭合,电路通路,LED亮起;当指针指向两个刻度之间时,触发开关打开,电路断开,LED熄灭。
电子钟课程设计
电子钟课程设计一、课程目标知识目标:1. 学生能理解电子钟的基本原理,掌握电子钟的组成结构及其功能。
2. 学生能掌握时、分、秒的概念,学会电子钟时间的设置与调整。
3. 学生了解电子钟的制作过程,掌握相关电子元件的使用方法。
技能目标:1. 学生能运用所学知识,动手制作一个简单的电子钟。
2. 学生通过实践操作,培养解决实际问题的能力,提高动手实践能力。
3. 学生能够运用电子钟的制作过程,学会分析问题、解决问题,提高创新思维。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发探索科学技术的热情。
2. 学生通过合作完成电子钟的制作,培养团队协作精神和沟通能力。
3. 学生在电子钟制作过程中,学会珍惜时间,养成良好的时间观念。
4. 学生能够认识到科技对社会发展的作用,增强社会责任感和使命感。
课程性质:本课程为实践性较强的课程,结合理论知识和动手操作,培养学生的实际操作能力。
学生特点:五年级学生具有一定的认知能力、动手能力和创新能力,对新鲜事物充满好奇。
教学要求:结合学生特点,注重理论与实践相结合,强调学生的动手实践能力和创新思维能力的培养。
在教学过程中,关注学生的个体差异,鼓励学生提问、思考、探索,实现课程目标的分解和达成。
二、教学内容1. 电子钟原理及组成:介绍电子钟的基本工作原理,电子钟的各部分组成及其功能,如振荡器、分频器、计数器、显示装置等。
2. 时、分、秒的概念与换算:学习时间的基本单位,掌握时、分、秒之间的换算关系,为电子钟时间设置打下基础。
3. 电子元件认识:学习常用电子元件,如电阻、电容、二极管、三极管等,了解其作用和正确使用方法。
4. 电子钟的制作:结合教材内容,指导学生动手制作一个简单的电子钟,包括电路图的绘制、元件的安装、电路调试等。
5. 时间设置与调整:教授电子钟时间设置的方法,让学生学会如何调整电子钟的时间,确保其准确运行。
6. 故障排查与解决:培养学生分析问题、解决问题的能力,当电子钟出现故障时,能够进行简单的排查与修复。
电子钟的课程设计
电子钟的课程设计一、课程目标知识目标:1. 学生能理解电子钟的基本工作原理,掌握其核心部件的功能和相互关系。
2. 学生能描述电子钟的计时方法,解释时分秒的概念及其在电子钟中的作用。
3. 学生能够运用基本的电子元件,如电阻、电容、二极管等,分析它们在电子钟中的作用。
技能目标:1. 学生能够动手组装简单的电子钟,并正确调整时间。
2. 学生能够运用所学知识,解决电子钟运行中出现的简单故障。
3. 学生能够通过小组合作,进行电子钟的设计与制作,提高团队协作能力。
情感态度价值观目标:1. 学生培养对电子产品的兴趣,激发探索电子世界的热情。
2. 学生在学习过程中,培养耐心、细致、严谨的科学态度。
3. 学生通过动手实践,体验成功的喜悦,增强自信心和自主学习能力。
4. 学生能够认识到科技发展对生活的影响,提高科技创新意识。
本课程针对中学生设计,结合学生好奇心强、动手能力强、抽象思维能力逐渐形成的心理特点,注重理论与实践相结合,培养学生的创新意识和实践能力。
课程目标具体、可衡量,旨在让学生在掌握电子钟相关知识的同时,提高解决问题的能力,培养科学素养和团队协作精神。
二、教学内容本章节教学内容主要包括以下几部分:1. 电子钟基本原理:介绍电子钟的工作原理,包括晶振、分频器、计数器等核心部件的功能和作用。
2. 电路元件认知:学习电子钟中常用的电子元件,如电阻、电容、二极管、三极管等,并了解它们在电路中的作用。
3. 计时方法与时分秒概念:讲解电子钟的计时方法,引导学生理解时分秒的换算关系,以及它们在电子钟中的表示方法。
4. 电子钟组装与调试:指导学生动手组装电子钟,学习焊接技巧,掌握电子钟的调试方法,确保电子钟正常运行。
5. 故障分析与维修:介绍电子钟常见故障的分析方法,指导学生学会排除简单故障,提高解决问题的能力。
6. 电子钟设计与制作:组织学生进行小组合作,开展电子钟设计与制作活动,培养学生的创新意识和团队协作精神。
教学内容按照以下进度安排:1. 电子钟基本原理(1课时)2. 电路元件认知(1课时)3. 计时方法与时分秒概念(1课时)4. 电子钟组装与调试(2课时)5. 故障分析与维修(1课时)6. 电子钟设计与制作(3课时)本章节教学内容与教材紧密关联,确保科学性和系统性。
简易电子钟设计报告
简易电子钟设计报告一设计目的电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械钟相比具有更高的准确性和直观性,且具有无机械传动装置等特点,因此得到了广泛的使用。
电子钟从原理上看是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
设计与制作电子钟可以使我们了解电子钟的原理,并且学会制作电子钟.而且通过电子钟的制作进一步地了解各种在制作中用到的中小规模集成电路的作用及使用方法。
且由于电子钟包括组合逻辑电路和时序电路,通过此次设计可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
二设计任务设计制作一个数字电子钟指标:(1)时间计数电路采用24进制,从00开始到23后再回到00;(2)各用2位数码管显示时、分、秒;(3)用6块74LS90异步计数器和1块74LS08二输入端四与门实现该电子钟的逻辑功能。
三数字电子钟电路系统设计下面将介绍数字电子钟的整个电路系统设计的过程。
包括数字电子钟的设计原理,设计方案的确定,数字电子钟的电路设计计算机模拟仿真几大部分。
3.1设计原理U2数字电子钟是一个对标准频率(1Hz )进行计数的计数电路。
主要由振荡器、计数器、集成门电路和显示器电路功能模块组成。
振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果通过显示器以“时”、“分”、“秒”的顺序以数字形式显示出来。
秒计数器电路计满 60 后触发分计数器电路,分计数器电路计满 60 后触发时计数器电路,当计满 24 小时后又开始下一轮的循环计数。
3.2 设计方案本电路系统由晶体振荡电路(在此该电路由脉冲时钟发生器替代,不做设计),时间计数电路,集成门电路组成。
其中,时间计数电路用六个 74LS90 组成。
U1U7U6U810000000Hz141 2 3 INA INB R01 R02 QA12 QB 9 QC 8 QD11DCD_HEXDCD_HEX6 7R91 R92GND74LS90DU5AGND14 12 3 6 7INA INB R01 R02 R91 R92QA 12 QB 9 QC 8 QD1174LS08D74LS90DU9U12U1114 1 2 3 INAINB R01 R02 QA 12 QB 9 QC 8 QD11DCD_HEXDCD_HEXGND6 7R91 R92U13AU15U1474LS90DU3GND14 12 3 6 7U10 INA INB R01 R02 R91 R92QA12 QB 9 QC 8 QD1174LS08D141 2 3 6 7INA QA12 INB QB 9 QC 8R01 QD 11R02 R91 R9274LS90DU16ADCD_HEXDCD_HEX74LS90DU474LS08DGND14 1 2 36 7INA INB R01 R02 R91 R92QA12 QB 9 QC 8 QD11GND74LS90D电路整体原理电路图GND秒钟设计部分电路图U11 U9U1214 1 2 3INAINBR01R02QA12QB9QC8QD11DCD_HEXDCD_HEXGND67R91R9274LS90DU10U13A74LS08DGND1412367INAINBR01R02R91R92QA12QB9QC8QD1174LS90D分钟设计部分电路图U15U14 U314 1 2 3INAINBR01R02QA12QB9QC8QD11DCD_HEX DCD_HEX6 7R91R9274LS90DU4U16A74LS08DGND1412367INAINBR01R02R91R92QA12QB9QC8QD11GND74LS90D时钟设计部分电路图大致工作原理:当分(秒)个位的74LS90芯片的进位输入端11端的脉冲进位信号传到十位的脉冲输入端时,十位端便计数一次,十位端计数满6时便会向时(分)脉冲端进位。
简易电子时钟
难度等级:A简单
题目编号:013
简易电子时钟
一、功能介绍
该作品只利用单片机的最小系统板、一块时钟芯片和一块1602的液晶实现年、月、日、时、分、秒的显示及设定,最好有闹钟的功能。
二、设计要求
1.时间显示误差小于3s
2.能够设置时间及具有闹钟报警功能。
三、参考方案设计
1.原理框图见图1。
图1 红外线检测部分电路图
2.制作思路
(1)本作品可以有两种方案,一是直接用单片机的定时器;二是用一块时钟芯片实现时钟的控制;
(2)本作品主要分为两大部分来调试,一是时钟芯片的调试,二是显示器的调试;
(3)该作品集趣味性、实用性于一体,能很好的激发同学们的兴趣;
3.设计注意的地方
图2 PCF8563时钟芯片的原理图。
设计制作电子时钟
设计制作简易数字钟一、设计要求1、设计一振荡源,用于产生1Hz的脉冲信号;2、能完成从00时00分00秒到23时59分59秒走时,并实时显示时、分、秒;3、具有手动校时、校分、校秒功能。
发挥部分:具有正点报时功能。
要求在59分58秒开始报时,持续5秒钟。
二、总体设计方案1、方案选择数字钟实际上是由一个对标准频率(1HZ)进行计数的计数电路为主要部分构成的。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。
通常使用石英晶体振荡器电路来构成数字钟的标准时间基准信号。
数字钟的组成框图如下图所示。
数字钟计时周期是24,因此必须设置24计数器,秒、分、时由七段数码管显示。
为使数字钟走时与标准时间一致,校时电路是必不可少的。
设计中采用状态机控制校时,通过切换开关用秒脉冲或手动按键产生脉冲先后对“时”“分”“秒”计数器进行校时操作。
2、数字钟的构成(1)数字钟的构成:振荡器、分频器、计数器、译码器、LED数码管显示器等几部分。
附加功能的实现还需采用T’触发器及与门和或门及蜂鸣器组成报时电路。
(2)数字钟的时、分、秒实际上就是由一个24进制计数器(00-23),两个60进制计数器(00-59)级联构成。
设计数字钟实际上就是计数器的级联。
(3)芯片选型:由于24进制、60进制计数器均由集成计数器级联构成,且都包含有基本的十进制计数器,从设计简便考虑,芯片选择十进制计数器74LS390。
3、元器件列表:型号74LS00、74LS04、74LS08、74LS21、74LS32、74LS47、74LS74、74LS86、74LS390、CD4068、CD4060、CD4511。
晶体管8050、510欧姆电阻、LED、轻触开关、自锁开关、蜂鸣器、10p电容、晶振32768、10M电阻。
三、系统工作原理1、主计数部分原理图图1主计数部分原理图如图所示,用两个十进制计数器74LS390组成60进制计数器和24进制计数器,分别用于对分、秒和时的计数。
电子技术简易时钟课程设计
1绪论摘要数字电子钟是一种用数字显示秒﹑分﹑时的记时装置,与传统的机械钟相比,他具有走时准确﹑显示直观﹑无机械传动装置等优点,因而得到了广泛的应用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
时钟采用24小时制计时法,它是由数字脉冲发生电路、计数电路、译码电路、校时电路以及显示器等组成。
为了简化电路结构,数字钟电路与定时电路之间的连接采用直接译码技术。
具有电路结构简单、动作可靠、使用寿命长、更改设定时间容易,制造成本低等优点。
关键词:数码管;555振荡器;与非门;BCD七段译码器目录摘要 (I)1绪论 (1)1.1 课题意义及背景 (1)1.2 课题设计内容及要求 (1)2系统论述 (3)3硬件电路设计 (4)3.1 555振荡器电路设计 (4)3.2 分频器电路设计 (4)3.3 计数器路设计 (5)3.4 显示电路设计 (6)3.5 校时电路设计 (7)4 系统调试及实验结果 (9)4.1 系统综述 (9)4.2 实验结果 (9)总结 (11)参考文献 (12)附录: (13)致谢 (15)1绪论1.1 意义及背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。
而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时叙电路。
通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
电子时钟课程设计 (2)
电子时钟课程设计1. 引言本篇文档介绍了一个关于电子时钟的课程设计方案。
电子时钟是一种常见的时间显示设备,它可以通过集成电路和显示屏来实现时间的精确显示。
本课程设计旨在帮助学生深入了解电子时钟的工作原理和实现方法,并通过实际动手实践来巩固所学知识。
2. 设计目标本课程设计的主要目标如下:1.了解电子时钟的基本工作原理;2.掌握使用集成电路和显示屏实现电子时钟的方法;3.理解时钟实时显示的原理,并能够实现时间的准确显示;4.学会利用按键和继电器等模块实现时钟的功能扩展。
3. 设计内容本课程设计包括以下三个主要部分:3.1 硬件设计在硬件设计部分,学生需要选择适当的集成电路和显示屏,根据设计要求进行电路布局和连线。
具体的设计步骤如下:1.确定所需的功能,包括显示时间、日期、闹钟等;2.选择适当的集成电路,如时钟芯片、计数器芯片等,并了解其引脚功能;3.选择合适的显示屏,如数码管、液晶显示屏等,并了解其接口要求;4.根据引脚功能和接口要求,进行电路布局和连线;5.搭建电路并进行测试,确保电子时钟的基本功能正常。
3.2 软件设计在软件设计部分,学生需要编写相应的程序代码,控制集成电路和显示屏实现电子时钟的功能。
具体的设计步骤如下:1.熟悉集成电路的工作原理和编程接口;2.编写初始化程序,对集成电路进行初始化设置;3.编写时钟显示程序,实现时间的实时显示功能;4.编写日期显示程序,实现日期的显示功能;5.编写闹钟程序,实现闹钟功能的设定和响铃;6.编写功能扩展程序,如按键控制、亮度调节等。
3.3 整体调试在整体调试部分,学生需要对硬件和软件进行整体的测试和调试,确保电子时钟的各项功能正常工作。
具体的调试步骤如下:1.连接电子时钟的电源,确保电路和显示屏正常供电;2.进行硬件自检,检查电路连线和元件的工作状态;3.启动电子时钟,观察显示屏是否正常显示时间和日期;4.设置闹钟,检查闹钟的设定和响铃功能;5.进行功能扩展测试,如按键控制、亮度调节等;6.若发现问题,及时进行修改和调试,直至所有功能正常。
课程设计数字电子闹钟
数字闹钟的设计数字闹钟的设计与制作一、设计任务与要求设计并制作一个带有可定时起闹的数字钟1.有“时”、“分”十进制显示,“秒”使用发光二极管闪烁表示2.以24小时为一个计时周期3.走时过程中能按预设的定时时间(精确到小时)启动闹钟,以发光二极管闪烁表示,启闹时间为3s~10s二、实验仪器及主要器件5V电源1台面包板1块74LS163 6片74LS00 5片74LS138 2片CD4511 4片LM555 1片74LS123 1片LED共阴极显示器4片电阻若干电容3个导线15米三、设计原理方案系统构成1、标准时间源l )标准时间源即秒信号发生器2 )可采用LM555构成多谐振荡器,调整电阻可改变频率,使之产生1Hz的脉冲信号(即T=1S)LM555管脚排列及电路T=0.7(RA+2RB)CT=1S,C=220uF计算得RA+2RB≈6.5K取RA=1.5K,RB=2.4K2.计时部分:时计数单元一般为24进制计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码。
模60计数器采用异步方式如秒计数器:分成个位和十位,个位模十,十位模六。
个位从0000计数到1001,利用置数端将个位从0000重新开始计数,同时将1001信号作为一个CP脉冲信号传给十位,让十位开始从0000开始计数。
以此规律开始计数,直到十位计数到5,个位计数到9时,通过十位的置数端将十位清零,重新开始计数,并将此信号作为一个CP脉冲信号传给分计数器。
模24计数器电路模24计数器采用同步方式,使用两片74LS163芯片,cp脉冲均由分计数器提供.第一片制成模10计数器,将1001信号提取出来后给与清零端。
第二片芯片制成模为3的计数器,原数据ABCD给予0000信号.将第一片芯片的0011信号与第二片芯片的0010信号提取出来给与第一片芯片的置数端与第二片芯片的清零端,上升沿过来之后,两片芯片同时清零3、定时起闹部分l )正点起闹,不要求分2 )使用2片74LS138,分别选出小时的十位和个位3 )小时十位为0~2,3-8译码器只使用前2个输入端,小时个位为0~9,3-8译码器只有3个输入端,会丢失几个时间点:8点、9点、18点、19点。
单片机课程设计-简易电子钟
单片机课程设计报告课题名称:简易电子钟专业:班级:学号:学生姓名:指导教师:一、摘要数字钟已经成为人们日常生活中不可缺少的必需品,广发应用于家庭及办公室等公共场所,给人们的生活、学习、工作及娱乐带来了极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使得数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用方便,但鉴于单片机的定时器功能也可以完成数字钟的设计,因此进行数字的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和生活的各个角落,有力地推动了各行各业的技术改造和产品的更新换代,应用前景广阔。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器等),再配以相应的软件,达到制作简易数字钟的目的。
最后再通过keil进行C程序的修改编译,protues电路仿真。
二、设计目的熟练使用Keil开发环境,具备编写单片机程序(汇编语言或C语言)的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。
三、设计要求设计一个数字钟,该数字钟基本功能:使用单片机的定时/计数器实现数字中的定时计数功能,秒计60次成分,分计60次成小时,小时计24次则计满一天。
本设计用LED显示,其中2个LED显示器显示秒,2个LED显示器显示分钟,2个LED显示器显示小时。
同时为了使用方便,本题目还需要设计几个简单按键,可以通过按键实现时、分的调整及复位,这样在主程序中需要加入键盘设置子程序。
四、设计思路1、基于单片机AT89C51的T0定时部分2、校时和复位电路3、显示电路五、C51源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uchar second=0;uchar minute=0;uchar hour=12;uchar m=0;sbit P1_0=P1^0; //minute调整定义sbit P1_1=P1^1; //hour调整定义sbit P1_2=P1^2; //复位键void delay(uchar k); //延时子程序void time( ); //时间处理子程序void display( ); //显示子程序void keyscan( ); //键盘扫描子程序void delay (uchar k){ uchar j;while((k--)!=0){ for(j=0;j<250;j++){;}}}void time(void){if(second==60) //秒钟设为60进制{ second=0;minute++;if(minute==60) //分钟设为60进制{ minute=0;hour++;if(hour==24) //时钟设为24进制{ hour=0;}}}}void display(void){P2=0xfe;P0=tab[hour/10]; //显示小时的十位delay(1);P2=0xfd;P0=(tab[hour%10])|0X80; //显示小时的个位delay(1);P2=0xfb;P0=tab[minute/10]; //显示分的十位delay(1);P2=0xf7;P0=(tab[minute%10])|0X80; //显示分的个位delay(1);P2=0xef;P0=tab[second/10]; //显示秒的十位delay(1);P2=0xdf;P0=tab[second%10]; //显示秒的个位delay(1);}void keyscan(void){if(P1_0==0) //按键1,分的调整{ if(P1_0==0){ delay(100);minute++;if(minute==60){minute=0;}}}if(P1_1==0) //按键2,小时的调整{ if(P1_1==0){ delay(100);hour++;if(hour==24){hour=0; }}}if(P1_2==0) //按键,3复位{ delay(10);if(P1_2==0){ hour=0;minute=0;second=0;}}}void timer0(void) interrupt 1 using 0 //定时器计数,定时50ms,mstcnt满20,秒加1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;TMOD = 0x01;m++;if(m==20){second++;m=0;}}void main(void){ P1=0xff; //初始化P1口,全设为1 TMOD = 0x01; //timer0为定时器0,方式1TH0=(65536-50000)/256; //预置计数初值TL0=(65536-50000)%256;EA=1; // Cpu开中断ET0=1; //开定时器中断TR0=1; //启动定时器while (1){keyscan( ); //按键扫描time( ); //时间处理display( ); //显示时间}}六、电子钟硬件仿真图七、小结单片机是我所学专业的主要课程之一,因此我认为单片机课程设计是十分必要而且十分重要的。
电子钟课程设计实验报告
电子钟课程设计实验报告实验报告:电子钟课程设计一、实验目的:1. 掌握电子时钟的硬件设计和软件编程方法。
2. 熟悉数字电路的设计和实现。
3. 提高电路设计和实验能力。
二、实验设备和材料:1. FPGA 开发板。
2. 七段数码管。
3. 按钮开关。
4. 时钟电路。
三、实验原理:本电子钟的基本原理是通过 FPGA 芯片实时计数,并将计数结果转化为时间的显示。
时钟电路提供一个恒定的时钟信号,FPGA 芯片在每个时钟脉冲到来时进行计数,并将计数结果转化为显示在七段数码管上。
按钮开关用于设置时间。
四、实验步骤:1. 确定时钟信号的频率,并设计时钟电路,将时钟信号连接到FPGA 开发板上的时钟输入引脚。
2. 将七段数码管分别连接到 FPGA 开发板上的输出引脚。
3. 设计计数模块,包括计数器和时钟信号的同步控制。
4. 设计显示模块,将计数结果转化为七段数码管的控制信号。
5. 设计按钮开关控制模块,用于设置时间和调整闹钟参数等功能。
6. 将上述模块整合在一起,并进行综合和实现。
7. 进行电路调试和测试,检查电子钟的功能是否正常。
五、实验结果:经过调试和测试,实验电子钟正常工作,能够实时显示当前时间,并且可以通过按钮开关进行时间设置和闹钟调整。
六、实验总结:通过本次实验,我掌握了电子时钟的硬件设计和软件编程方法,提高了数字电路设计和实验能力。
通过学习和实践,我深刻理解了数字电路和时序控制的基本原理,并能够将其应用到实际项目中。
我还发现,在设计和实现电子钟的过程中,需要注意时序控制的正确性,以确保信号的稳定和正确传递。
简易电子闹钟电子课程设计
简易电子闹钟电子课程设计一、课程目标知识目标:1. 让学生掌握简易电子闹钟的基本原理,包括时钟电路、闹钟设置和显示功能。
2. 了解常见电子元器件的功能和作用,如电阻、电容、二极管、三极管等。
3. 掌握数字电路的基础知识,如逻辑门、触发器等。
技能目标:1. 培养学生运用所学知识设计简易电子闹钟的能力,具备实际操作和调试电路的技能。
2. 提高学生分析问题和解决问题的能力,学会查阅相关资料,了解电子技术发展趋势。
情感态度价值观目标:1. 培养学生对电子技术的兴趣和爱好,激发创新意识和实践欲望。
2. 增强学生的团队合作意识,培养沟通与协作能力。
3. 培养学生严谨、细致、勤奋的学习态度,养成良好地时间管理观念。
课程性质:本课程为电子技术实践课程,注重理论联系实际,培养学生动手操作和创新能力。
学生特点:本课程针对初中或高中年级学生,他们对电子技术有一定的基础,好奇心强,具备一定的动手能力。
教学要求:结合学生特点,注重启发式教学,引导学生主动探究,充分调动学生的积极性。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效评估。
二、教学内容1. 电子元器件基础知识:介绍电阻、电容、二极管、三极管等基本元器件的原理、功能及应用。
- 教材章节:第一章 电子元器件- 内容列举:1.1 电阻、1.2 电容、1.3 二极管、1.4 三极管2. 数字电路基础:讲解逻辑门、触发器等基本数字电路的原理和应用。
- 教材章节:第二章 数字电路- 内容列举:2.1 逻辑门、2.2 触发器3. 简易电子闹钟电路设计:分析电子闹钟的原理,指导学生设计并搭建简易电子闹钟电路。
- 教材章节:第三章 时钟电路- 内容列举:3.1 时钟电路原理、3.2 闹钟设置与显示、3.3 简易电子闹钟设计4. 实践操作与调试:培养学生动手操作能力,学会使用万用表、示波器等工具进行电路测试与调试。
- 教材章节:第四章 电子电路实践- 内容列举:4.1 万用表使用、4.2 示波器使用、4.3 电路测试与调试5. 创新设计与展示:鼓励学生发挥创意,对简易电子闹钟进行改进和优化,并进行成果展示。
电子钟课程设计制作
电子钟课程设计制作一、教学目标本课程旨在让学生了解电子钟的基本原理,掌握电子钟的制作方法,培养学生的动手能力和创新能力。
具体目标如下:1.知识目标:使学生了解电子钟的工作原理,掌握基本的电子元件焊接技巧,了解时钟芯片的使用方法。
2.技能目标:培养学生独立完成电子钟的设计与制作,提高学生的实际操作能力。
3.情感态度价值观目标:培养学生对科技创新的热爱,增强学生的团队协作意识,提高学生解决问题的能力。
二、教学内容本课程的教学内容主要包括电子钟的工作原理、电子元件的认识与焊接、时钟芯片的使用以及电子钟的制作。
具体安排如下:1.电子钟的工作原理:介绍电子钟的基本构成,解释各部分的作用。
2.电子元件的认识与焊接:介绍常见的电子元件,如电阻、电容、二极管等,以及它们的焊接方法。
3.时钟芯片的使用:讲解时钟芯片的原理,演示如何使用时钟芯片来驱动电子钟。
4.电子钟的制作:指导学生动手制作电子钟,培养学生实际操作能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
具体应用如下:1.讲授法:用于讲解电子钟的工作原理和时钟芯片的使用方法。
2.讨论法:鼓励学生就电子钟制作过程中遇到的问题进行讨论,共同寻找解决方案。
3.案例分析法:分析典型的电子钟制作案例,帮助学生掌握制作技巧。
4.实验法:指导学生动手制作电子钟,培养学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的电子钟制作教材,为学生提供系统的学习资料。
2.参考书:提供丰富的电子钟制作相关书籍,方便学生课后拓展学习。
3.多媒体资料:制作精美的PPT、视频等多媒体资料,帮助学生更好地理解电子钟的制作过程。
4.实验设备:准备充足的实验设备,如电子元件、焊接工具等,确保每个学生都能动手实践。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式,包括平时表现、作业、考试等。
简易电子钟的设计与实现.docx
简易电子钟的设计与仿真一、设计要求和电路原理1.1 设计要求1)可以准确地显示北京时间。
2)时间显示选择24小时模式。
3)选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管显示。
4)采用Keil C51编译,Proteus软件进行仿真。
1.2 设计原理与思路利用单片机的定时与中断系统功能实现电子钟的计数和调时。
采用AT89C52定时中断方式实现24小时制时钟精确的计时。
通过外部的12M(11.0529M)Hz 晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。
从而实现00:00:00—23:59:59 之间的任意时刻显示。
为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。
形成一个具有复位和校时功能的简易电子时钟。
二、电子时钟设计方案2.1电子钟设计的基本方法2.1.1电子钟实现计时的方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计时。
(1) 计数初值计算:把定时器T0设为工作方式2,产生0.25ms定时中断,计数溢出4000次即得时钟计时最小单位秒,而4000次计数可用软件方法实现。
假设使用T/C0,方式2,0.25ms定时,fosc=12MHz。
则初值a满足(256-a)×1/12MHz×12μs =250μsa=6 (6H)TH0=#6H; TL0=#6H(2) 采用中断方式进行溢出次数累计,计满4000次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.1.2 电子钟的时间显示电子钟的时钟时间在8位数码管上进行显示,时、分、秒的显示值可以在单片机的内部RAM设置三个缓冲单元,30H、31H、32H分别存储时、分、秒的值。
简易电子钟的设计
湖南建高等专科学校课程设计说明书课题名称: 简易电子钟的设计专业名称:学生班级:学生姓名:学生学号:指导教师:《单片机技术》课程设计任务书一、设计题目:简易电子钟的设计二、适用班级:电气0401~0405三、指导教师:王韧四、任务与要求:在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用于工业、农业、日常生活等领域,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表的一个发展方向,具有一定的实用价值。
1、本课题任务如下:设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、本课题可选择设计方案如下:(1)、基于单片机并行口的电子钟的设计在AT89S52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口(P0.0~P0.7对应于LED的a~dp),P2.5~P2.0作LED的位控输出线(P2.5~P2.0对应于LED5~LED0),P1口外接四个按键A、B、C、D(对应于P1.0~P1.3)。
(2)、基于单片机串行口的电子钟的设计将AT89S52的串行口扩展成并行口,外接由六个LED数码管(LED5~LED0)构成的显示器;P1口外接四个按键A、B、C、D(对应于P1.0~P1.3)。
(3)、基于Intel 8279的电子钟的设计利用Intel 8279芯片为AT89S52扩展并行口,通过Intel 8279外接由六个LED数码管(LED5~LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。
实验8 数字电子钟的设计
实验8 数字电子钟的设计实验8数字电子钟的设计数字实验时钟设计一、实验目的1.学习综合使用常用电路单元设计数字系统2。
学习组装和调试技术3、完成数字钟的基本功能及扩展电路的设计任务二、实验原理数字时钟是一种计时设备,在人类视觉器官中显示“小时”、“分钟”和“秒”。
其计时周期为12小时,满刻度为12:59:59秒。
此外,它还应具有时间校准和时间报告功能。
因此,基本的数字时钟电路主要由解码显示、“时”、“分”、“秒”计数器、时间校正电路、时间报告电路和振荡器组成。
干电路系统由第二信号发生器、“时、分、秒”计数器、解码器和显示器、时间校准电路和整点时间报告电路组成。
第二个信号发生器是整个系统的时基信号。
它直接决定了定时系统的精度。
它一般由石英晶体振荡器和分频器来实现。
向“第二计数器”发送标准秒信号。
“第二个计数器”采用60基计数器。
每60秒发现一个“分钟脉冲”信号,该信号将用作“分钟计数器”的时钟脉冲。
“子计数器”也采用60个基本计数器。
每60分钟,它会发出一个“时间脉冲”信号,该信号将被发送到“时间计数器”。
“小时计数器”采用12位计时器,可实现12小时的累计。
解码显示电路将“小时”、“分钟”和“秒”计数器的输出状态解码为七段显示解码器,并通过六位led七段显示进行显示。
整点定时电路根据定时系统的输出状态产生脉冲信号,然后触发音频发生器实现定时。
时间校准电路用于校准和调整“小时”、“分钟”和“秒”的显示数字。
1、振荡器振荡器的功能是产生时间标准信号。
数字时钟的精度主要取决于时间标准信号的频率和稳定性。
2、计数器根据计数周期,分别形成两个60进制(秒、分钟)和一个12进制(小时)计数器。
正确连接可以形成秒、分、小时计数,实现计时功能。
六进制计数器十六进制计数器和192级联形成十六进制计数器特殊12进制计数器3.解码和数字显示电路译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。
可被人们的视觉器官所接受。
简易电子时钟设计单片机
基于单片机的简易电子时钟设计一功能分析1).时制式为24小时制。
2).采用LED数码管显示时、分,秒采用数字显示。
3).具有方便的时间调校功能。
4).计时稳定度高,可精确校正计时精度。
二总体方案设计论证比较2.1 实现时钟计时的基本方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs =50000μsX=15536→10000→3CB0H(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2 电子钟的时间显示电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED137H 36H 35H 34H 33H 32H 31H 30H时十位时个位分隔分十位分个位分隔秒十位秒个位2.3 电子钟的时间调整电子钟设置3个按键通过程序控制来完成电子钟的时间调整。
A键调整时;B键调整分;C键复位2.4 总体方案介绍2.4.1 计时方案利用AT89S51单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
2.4.2 控制方案AT89S51的P0口和P2口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1口外接四个按键A、B、C构成键盘电路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六、简易电子时钟设计一、实验内容:(1)、任务:设计一个简易电子时钟,实现分、秒计时功能。
(2)、要求:控制实验板上液晶输出分、秒数值,在软件环境下编写源文件,用软件器件实现。
二、实验源程序顶层主程序:module lcdshizhong(clk,rstn,LCD_COM0_sig,LCD_COM1_sig,LCD_COM2_sig,LCD_COM3_sig,LCD_5_sig,LCD_6_sig,LCD_7_sig,LCD_8_sig,LCD_9_sig,LCD_10_sig,LCD_11_sig,LCD_12_sig);input clk;input rstn;output LCD_COM0_sig;output LCD_COM1_sig;output LCD_COM2_sig;output LCD_COM3_sig;output LCD_5_sig;output LCD_6_sig;output LCD_7_sig;output LCD_8_sig;output LCD_9_sig;output LCD_10_sig;output LCD_11_sig;output LCD_12_sig;wire [3:0] minute_h;wire [3:0] minute_l;wire [3:0] second_h;wire [3:0] second_l;clock clock_inst(.clkk(clk),.rstn(rstn),.minute_h(minute_h),.minute_l(minute_l),.second_h(second_h),.second_l(second_l));LCD LCD_inst(.clk(clk),.rstn(rstn),.LCDDP1(1'b0),.LCDDP2(1'b0),.LCDDP3(1'b0),.LCDCol(1'b1),.LCD1(minute_h),.LCD2(minute_l),.LCD3(second_h),.LCD4(second_l),// .LCD1(4'b0001),// .LCD2(4'b0010),// .LCD3(4'b0011),// .LCD4(4'b0100),.LCD_COM0_sig(LCD_COM0_sig),.LCD_COM1_sig(LCD_COM1_sig),.LCD_COM2_sig(LCD_COM2_sig),.LCD_COM3_sig(LCD_COM3_sig),.LCD_5_sig(LCD_5_sig),.LCD_6_sig(LCD_6_sig),.LCD_7_sig(LCD_7_sig),.LCD_8_sig(LCD_8_sig),.LCD_9_sig(LCD_9_sig),.LCD_10_sig(LCD_10_sig),.LCD_11_sig(LCD_11_sig),.LCD_12_sig(LCD_12_sig));endmoduleendmodule调用子程序:1、时钟模块module clock(clkk,rstn,minute_h,minute_l,second_h,second_l);input clkk;//input clk;input rstn;output [3:0] minute_h; //分钟的高位output [3:0] minute_l; //分钟的低位output [3:0] second_h; //秒钟的高位output [3:0] second_l; //秒钟的低位reg [3:0] minute_h;reg [3:0] minute_l;reg [3:0] second_h;reg [3:0] second_l;reg second_l_flag; //秒钟低位的进位标志reg second_h_flag; //秒钟高位的进位标志reg minute_l_flag; //分钟低位的进位标志// reg minute_h_flag; //分钟高位的进位标志reg clk1;//reg clkk;reg [22:0] count;always@(posedge clkk)beginif(count == 23'b10110111000110110000000)begincount <= 0;clk1 <= ~clk1;endelsecount <= count + 1'b1;end//end/*//实验时选为2hz的时钟频率always @(posedge clk or negedge rstn)beginif(!rstn)clk1 <= 1'b0;elseclk1 <= ~clk1;end*///秒钟的低位always @(posedge clk1 o r negedge rstn)if(!rstn)beginsecond_l <= 4'b0000;second_l_flag <= 1'b0;endelsebeginif(second_l==4'b1001)beginsecond_l <= 4'b0000; //second_l + 1'b1;second_l_flag <= 1'b1;endelsebegin//if(second_l < 4'b1000)// beginsecond_l <= second_l + 1'b1;second_l_flag <= 1'b0;// end//else// begin// second_l <= 4'b0000;// second_l_flag <= 1'b0;endend//秒钟的高位always @(posedge second_l_flag or negedge rstn)if(!rstn)beginsecond_h <= 4'b0000;second_h_flag <= 1'b0;endelsebeginif(second_h==4'b0101)beginsecond_h <= 4'b0000;//second_h + 1'b1;second_h_flag <= 1'b1;endelsebegin//if(second_h < 4'b0100)// beginsecond_h <= second_h + 1'b1;second_h_flag <= 1'b0;// end//else// begin// second_h <= 4'b0000;// second_h_flag <= 1'b0;endend//分钟的低位always @(posedge second_h_flag or negedge rstn)if(!rstn)beginminute_l <= 4'b0000;minute_l_flag <= 1'b0;endelsebeginif(minute_l==4'b1001)beginminute_l <= 4'b0000;//minute_l + 1'b1;minute_l_flag <= 1'b1;endelsebegin//if(minute_l < 4'b1000)//beginminute_l <= minute_l + 1'b1;minute_l_flag <= 1'b0;//end//else//begin// minute_l <= 4'b0000;//minute_l_flag <= 1'b0;endend//分钟的高位always @(posedge minute_l_flag or negedge rstn)if(!rstn)beginminute_h <= 4'b0000;// minute_h_flag <= 1'b0;endelsebeginif(minute_h==4'b0101)beginminute_h <= 4'b0000;//minute_h + 1'b1; // minute_h_flag <= 1'b1;endelsebegin//if(minute_h < 4'b0100)//beginminute_h <= minute_h + 1'b1;// minute_h_flag <= 1'b0;//end//else//begin// minute_h <= 4'b0000;//minute_h_flag <= 1'b0;endendendmodule2、4-7译码模块,module seg4_7(clk,rst_n,data_in,seg_out);input clk;input rst_n;input [3:0] data_in;output [7:0] seg_out;reg [7:0] seg_out;always@(posedge clk or negedge rst_n)beginif(rst_n==1'b0) beginseg_out <= 8'b11111111;endelse begincase(data_in[3:0])4'b0000: seg_out <= 8'b11000000;//04'b0001: seg_out <= 8'b11111001;//14'b0010: seg_out <= 8'b10100100;//24'b0011: seg_out <= 8'b10110000;//34'b0100: seg_out <= 8'b10011001;//44'b0101: seg_out <= 8'b10010010;//54'b0110: seg_out <= 8'b10000010;//64'b0111: seg_out <= 8'b11111000;//74'b1000: seg_out <= 8'b10000000;//84'b1001: seg_out <= 8'b10010000;//94'b1010: seg_out <= 8'b10001000;//A4'b1011: seg_out <= 8'b10000011;//b4'b1100: seg_out <= 8'b11000110;//C4'b1101: seg_out <= 8'b10100001;//d4'b1110: seg_out <= 8'b10000110;//E4'b1111: seg_out <= 8'b10001110;//Fdefault: seg_out <= 8'b11111111;//全灭endcaseendendendmodule3、 // --将内部输入的4字节数码管电平信号处理,得到4+8bit电平输出module LCD4Digit(input LCDFrameclk,input LCDPWMclk,input rstn,input LCDDP1,input LCDDP2,input LCDDP3,input LCDCol,input [7:0] LCD1,input [7:0] LCD2,input [7:0] LCD3,input [7:0] LCD4,output LCD_COM0_sig,output LCD_COM1_sig,output LCD_COM2_sig,output LCD_COM3_sig,output LCD_5_sig,output LCD_6_sig,output LCD_7_sig,output LCD_8_sig,output LCD_9_sig,output LCD_10_sig,output LCD_11_sig,output LCD_12_sig);wire [1:0] LCD_COM0enc;wire [1:0] LCD_COM1enc;wire [1:0] LCD_COM2enc;wire [1:0] LCD_COM3enc;wire [1:0] LCD_5enc;wire [1:0] LCD_6enc;wire [1:0] LCD_7enc;wire [1:0] LCD_8enc;wire [1:0] LCD_9enc;wire [1:0] LCD_10enc;wire [1:0] LCD_11enc;wire [1:0] LCD_12enc;// LCD Com signals 处理共阳极公共引脚电平LCDEncoding4to1com LCD_COM0enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDcom({1'b1, 1'b0, 1'b0,1'b0}), .LCDcomEncoded(LCD_COM0enc));PWM LCD_COM0_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_COM0enc), .PWMV oltage(LCD_ COM0_sig));LCDEncoding4to1com LCD_COM1enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDcom({1'b0, 1'b1, 1'b0,1'b0}), .LCDcomEncoded(LCD_COM1enc));PWM LCD_COM1_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_COM1enc), .PWMV oltage(LCD_ COM1_sig));LCDEncoding4to1com LCD_COM2enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDcom({1'b0, 1'b0, 1'b1,1'b0}), .LCDcomEncoded(LCD_COM2enc));PWM LCD_COM2_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_COM2enc), .PWMV oltage(LCD_ COM2_sig));LCDEncoding4to1com LCD_COM3enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDcom({1'b0, 1'b0, 1'b0,1'b1}), .LCDcomEncoded(LCD_COM3enc));PWM LCD_COM3_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_COM3enc), .PWMV oltage(LCD_ COM3_sig));// LCD Segment Signals 处理数码管电平LCDEncoding4to1 LCD_5enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({!LCD1[3], !LCD1[4], !LCD1[6 ], !LCD1[5]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_5enc));PWM LCD_5_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_5enc), .PWMV oltage(LCD_5_sig) );LCDEncoding4to1 LCD_6enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({LCDDP1, !LCD1[2], !LCD1[1 ], !LCD1[0]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_6enc));PWM LCD_6_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_6enc), .PWMV oltage(LCD_6_sig) );LCDEncoding4to1 LCD_7enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({!LCD2[3], !LCD2[4], !LCD2[6 ], !LCD2[5]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_7enc));PWM LCD_7_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_7enc), .PWMV oltage(LCD_7_sig) );LCDEncoding4to1 LCD_8enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({LCDDP2, !LCD2[2], !LCD2[1 ], !LCD2[0]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_8enc));PWM LCD_8_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_8enc), .PWMV oltage(LCD_8_sig) );LCDEncoding4to1 LCD_9enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({!LCD3[3], !LCD3[4], !LCD3[6 ], !LCD3[5]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_9enc));PWM LCD_9_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_9enc), .PWMV oltage(LCD_9_sig) );LCDEncoding4to1 LCD_10enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({LCDDP3, !LCD3[2], !LCD3[1 ], !LCD3[0]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_10enc));PWM LCD_10_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_10enc), .PWMV oltage(LCD_10_s ig));LCDEncoding4to1 LCD_11enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({!LCD4[3], !LCD4[4], !LCD4[6 ], !LCD4[5]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_11enc));PWM LCD_11_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_11enc), .PWMV oltage(LCD_11_s ig));LCDEncoding4to1 LCD_12enc_inst(.clk(LCDFrameclk), .rstn(rstn), .LCDSegments({LCDCol, !LCD4[2], !LCD4[1], !LCD4[0]}), .LCDcom(LCDcom), .LCDSegEncoded(LCD_12enc));PWM LCD_12_inst(.clk(LCDPWMclk), .rstn(rstn), .V oltage(LCD_12enc), .PWMV oltage(LCD_12_s ig));endmodule4、公共引脚电平编码模块module LCDEncoding4to1com(clk, rstn, LCDcom, LCDcomEncoded);input clk, rstn;input [3:0] LCDcom;output [1:0] LCDcomEncoded; // {Full Drive, Pull Up, Pull Down}reg [1:0] LCDcomEncoded;reg [2:0] state;parameter seg1a=0, seg1b=1, seg2a=2, seg2b=3, seg3a=4, seg3b=5, seg4a=6, seg4b=7 ;always @(state)begincase (state)seg1a:beginLCDcomEncoded = LCDcom[3] ? 2'b00 : 2'b10; // (0V or 2V) endseg1b:beginLCDcomEncoded = LCDcom[3] ? 2'b11 : 2'b01; // (3V or 1V) endseg2a:beginLCDcomEncoded = LCDcom[2] ? 2'b00 : 2'b10; // (0V or 2V) endseg2b:beginLCDcomEncoded = LCDcom[2] ? 2'b11 : 2'b01; // (3V or 1V) endseg3a:beginLCDcomEncoded = LCDcom[1] ? 2'b00 : 2'b10; // (0V or 2V) endseg3b:beginLCDcomEncoded = LCDcom[1] ? 2'b11 : 2'b01; // (3V or 1V) endseg4a:beginLCDcomEncoded = LCDcom[0] ? 2'b00 : 2'b10; // (0V or 2V) endseg4b:beginLCDcomEncoded = LCDcom[0] ? 2'b11 : 2'b01; // (3V or 1V) enddefault:beginLCDcomEncoded = 21'b00;endendcaseendalways @(posedge clk or negedge rstn)beginif (rstn == 0)beginstate = seg1a;endelsebegincase (state)seg1a:state = seg1b;seg1b:state = seg2a;seg2a:state = seg2b;seg2b:state = seg3a;seg3a:state = seg3b;seg3b:state = seg4a;seg4a:state = seg4b;seg4b:state = seg1a;endcaseendendendmodule5、脉冲电压转换模块module PWM(clk, rstn, V oltage, PWMV oltage);input clk, rstn;input [1:0] V oltage;output PWMV oltage;reg PWMV oltage;reg [2:0] state;parameter PWM0=0, PWM1=1, PWM2=2 ;always @(state)begincase (state)PWM0:beginif (V oltage == 2'b00)PWMV oltage = 1'b0;else if (V oltage == 2'b11)PWMV oltage = 1'b1;else if (V oltage == 2'b01)PWMV oltage = 1'b1;else if (V oltage == 2'b10)PWMV oltage = 1'b1;endPWM1:beginif (V oltage == 2'b00)PWMV oltage = 1'b0;else if (V oltage == 2'b11)PWMV oltage = 1'b1;else if (V oltage == 2'b01)PWMV oltage = 1'b0;else if (V oltage == 2'b10)PWMV oltage = 1'b1;endPWM2:beginif (V oltage == 2'b00)PWMV oltage = 1'b0;else if (V oltage == 2'b11)PWMV oltage = 1'b1;else if (V oltage == 2'b01)PWMV oltage = 1'b0;else if (V oltage == 2'b10)PWMV oltage = 1'b0;enddefault:beginPWMV oltage = 1'b0;endendcaseendalways @(posedge clk or negedge rstn) beginif (rstn == 0)beginstate = PWM0;endelsebegincase (state)PWM0:state = PWM1;PWM1:state = PWM2;PWM2:state = PWM0;endcaseendendendmodule6、 LCD电平编码module LCDEncoding4to1(clk, rstn, LCDSegments, LCDcom, LCDSegEncoded);input clk, rstn;input [3:0] LCDSegments;output LCDcom; // Just used for simulationoutput [1:0] LCDSegEncoded;reg LCDcom;reg [1:0] LCDSegEncoded;reg [2:0] state;parameter seg1a=0, seg1b=1, seg2a=2, seg2b=3, seg3a=4, seg3b=5, seg4a=6, seg4b=7 ;always @(state)begincase (state)seg1a:beginLCDcom = 1'b0;LCDSegEncoded = LCDSegments[3] ? 2'b11 : 2'b01; // (3V or 1V)endseg1b:beginLCDcom = 1'b1;LCDSegEncoded = LCDSegments[3] ? 2'b00 : 2'b10; // (0V or 2V)endseg2a:beginLCDcom = 1'b0;LCDSegEncoded = LCDSegments[2] ? 2'b11 : 2'b01; // (3V or 1V)endseg2b:beginLCDcom = 1'b1;LCDSegEncoded = LCDSegments[2] ? 2'b00 : 2'b10; // (0V or 2V)endseg3a:beginLCDcom = 1'b0;LCDSegEncoded = LCDSegments[1] ? 2'b11 : 2'b01; // (3V or 1V)endseg3b:beginLCDcom = 1'b1;LCDSegEncoded = LCDSegments[1] ? 2'b00 : 2'b10; // (0V or 2V)endseg4a:beginLCDcom = 1'b0;LCDSegEncoded = LCDSegments[0] ? 2'b11 : 2'b01; // (3V or 1V)endseg4b:beginLCDcom = 1'b1;LCDSegEncoded = LCDSegments[0] ? 2'b00 : 2'b10; // (0V or 2V)enddefault:beginLCDSegEncoded = 2'b00;endendcaseendalways @(posedge clk or negedge rstn)beginif (rstn == 0)beginstate = seg1a;endelsebegincase (state)seg1a:state = seg1b;seg1b:state = seg2a;seg2a:state = seg2b;seg2b:state = seg3a;seg3a:state = seg3b;seg3b:state = seg4a;seg4a:state = seg4b;seg4b:state = seg1a;endcaseendendendmodule三、程序设计思想及原理:本次实验在液晶显示的基础上增加了一个秒分模块,设计秒分模块就是用时钟驱动计数器实现,比如秒针的低位从0变到9时就会给秒针的高位进一位。