实验八 简易电子时钟设计
设计制作电子时钟

设计制作简易数字钟一、设计要求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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 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时就会给秒针的高位进一位。