高仿真数码管电子钟课程设计报告
电子钟课程设计报告

电子钟课程设计报告一、设计任务和要求设计一个电子钟,要求:1、以十进制数显示时、分、秒;2、具有时、分、秒校准功能二、设计说明1、所需的原件:时钟脉冲、电源+V cc、按钮开关、开关SW、双输入端与门、三输入端与门、双输入端或门、74LS160计数器、74LS49译码器、RESPACK7(做上拉电阻)、七段显示数码管、与非门2、电路设计图如下:3、电路分析:(1)、时钟的分秒为60进制,时为24进制,从上往下排序数码管D1D2组成秒,D3D4组成分,D5D6组成时。
当D1的计数器进位时,RCO输出高电平给D2的计数器的ENP、ENT,因为整个电路都使用同一个时钟信号,因此D2的计数器的ENP、ENT和CLK同时为高电平,因此计数器加一。
同理D2的计数器的进位会使D3是其计数器加一,以此类推,构成时钟。
(2)工作时候把SW断开,按钮开关全部闭上(3)七段显示数码管必须要接上拉电阻才能工作(4)校准功能:吧开关SW闭上,按一下按钮开关AN1,在那时会输出一个高电平,在三端输入与门和时钟信号,接地结果反向的信号相与,输出高电平再或门之后输出高电平使计数器工作一次,即加一。
因此AN1按一下,D1加一,即秒加一。
同理AN2可以校准分,AN3可以校准时。
校准后断开SW让其开始工作。
四、调试(1)把时钟信号频率调成1Hz,开始工作,检查D1到D2进位是否正确(2)把时钟信号频率调成10Hz,开始工作,检查D2到D3进位是否正确(3)把时钟信号频率调成100Hz,开始工作,检查D3到D4进位是否正确(4)把时钟信号频率调成600Hz,开始工作,检查D4到D5进位是否正确把时钟信号频率调成6KHz,开始工作,检查D5到D6进位是否正确,再检查D5 D6是否组成24进制出现的问题:1、若数码管的示数不变,可能是开关SW合上了2、如果各个数码管一起计数,可能是是开关SW合上了,而且按钮开关全部断开了。
3、进位是0—1—2—3……9—19—10—11,则计数器的进位输出连到了下一个个计数器的时钟输入端了。
单片机技术课程设计报告(数码管电子时钟)

福建工程学院软件学院题目:电子时钟班级:物联网2班姓名:孙建兴学号: 3112113229指导老师:郑旭丹日期: 2013 年 11 月 14 日课设报告目录1 摘要 (3)2 设计要求 (3)2.1 功能需求 (3)2.2 设计要求 (3)3 硬件设计及描述 (5)3.1 总体描述 (5)3.2 系统总体框图 (6)3.3 Proteus电路图 (6)3.4 各部分硬件介绍 (6)4 软件设计流程及描述 (9)4.1 程序流程图 (9)4.2函数模块及功能 (9)5 功能实现(功能介绍+照片) (19)6 心得体会 (19)7 源程序 (20)1 摘要通过本课程设计使学生进一步巩固单片机原理与技术的基本概念、理论,分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效的将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。
2 设计要求要求能够熟练的用单片机中定时/计数、中断、数码管显示等技术参考教或相关资料,采用C语言采用编程实现数字时钟的功能,在数码管上实时显示,并运用Proteus软件绘制电路原理图,进行仿真验证和误差分析。
2.1 功能需求1、在数码管上动态显示时间,时钟的工作范围在00:00:00~24:59:59。
2、可对时钟在00:00:00~24:59:59范围内任意正常的设置。
2.2 设计要求1、通过数码管动态显示时间信息。
图2.1 数码管2、通过独立键盘的P32和P33接口分别实现开始计时和时间设置功能。
图2.2 独立键盘3、通过矩阵键盘实现时间设置功能中时间的更改。
图2.3 4*4矩阵键盘3 硬件设计及描述3.1 总体描述1、程序开始后首先显示00-00-00等待按键,按P3^2键后开始计时功能。
2、当按下P3^3键后进入时间设置模式,等待用户设置时间。
3、通过矩阵键盘设置时间,可对时间的每一位进行增减操作。
4、限制每一位的数字范围,即秒的个位和分的个位为0-9,十位为0-5;当小时的十位为0-1时,其个位0-9,当十位为2时,其个位0-3。
[数电课程设计数字电子时钟的实现] 电子时钟课程设计
![[数电课程设计数字电子时钟的实现] 电子时钟课程设计](https://img.taocdn.com/s3/m/09fa58d0af45b307e9719786.png)
[数电课程设计数字电子时钟的实现] 电子时钟课程设计课程设计报告设计题目:数字电子时钟的设计与实现班级:学号:姓名:指导教师:设计时间:摘要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表的报时。
诸如,定时报警、按时自动打铃、时间程序自动控制等,这些,都是以钟表数字化为基础的。
功能数字钟是一种用数字电路实现时、分、秒、计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
从原理上讲,数字钟是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟,而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及使用方法。
通过此次课程设计可以进一步学习与各种组合逻辑电路与时序电路的原理与使用方法。
通过仿真过程也进一步学会了Multisim7的使用方法与注意事项。
本次所要设计的数字电子表可以满足使用者的一些特殊要求,输出方式灵活,如可以随意设置时、分、秒的输出,定点报时。
由于集成电路技术的发展,,使数字电子钟具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。
关键词:数字钟,组合逻辑电路,时序电路,集成电路目录摘要 (1)第1章概述············································3第2章课程设计任务及要求·······························42.1设计任务············································42.2设计要求············································4第3章系统设计··········································63.1方案论证············································63.2系统设计············································63.2.1结构框图及说明·································63.2.2系统原理图及工作原理···························73.3单元电路设计········································83.3.1单元电路工作原理·······························83.3.2元件参数选择···································14第4章软件仿真·········································154.1仿真电路图··········································154.2仿真过程············································164.3仿真结果············································16第5章安装调试··········································175.1安装调试过程········································175.2故障分析············································17第6章结论···············································18第7章使用仪器设备清单··································19参考文献·················································19收获、体会和建议·········································20第1章概述数字集成电路的出现和飞速发展,以及石英晶体振荡器的广泛应用,使得数字钟的精度稳定度远远超过了老式的机械表,用数字电路实现对“时”、“分”、“秒”数字显示的数字钟在数字显示方面,目前已有集成的计数、译码电路,它可以直接驱动数码显示器件,也可以直接采用才COMS--LED光电组合器件,构成模块式石英晶体数字钟。
电子数字时钟课程设计报告(数电)

电子数字时钟课程设计报告(数电)第一篇:电子数字时钟课程设计报告(数电)数字电子钟的设计1.设计目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。
而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时叙电路。
通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
1.1设计指标1.时间以12小时为一个周期;2.显示时、分、秒;3.具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; 1.2 设计要求1、电路设计原理说明2、硬件电路设计(要求画出电路原理图及说明)3、实物制作:完成的系统能达到题目的要求。
4、完成3000字的课程设计报告2.功能原理2.1 数字钟的基本原理数字电子钟由信号发生器、“时、分、秒”计数器、LED数码管、校时电路、整点报时电路等组成。
工作原理为时钟源用以产生稳定的脉冲信号,作为数字种的时间基准,要求震荡频率为1HZ,为标准秒脉冲。
将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计数器,可以实现24小时的累计。
LED数码管将“时、分、秒”计数器的输出状态显示。
校时电路是来对“时、分、秒”显示数字进行校对调整。
2.2 原理框图3.功能模块3.1 振荡电路多谐振荡器也称无稳态触发器,它没有稳定状态,同时无需外加触发脉冲,就能输出一定频率的矩形波形(自激振荡)。
电子钟课程设计报告

电子钟课程设计报告一、课程目标知识目标:1. 学生能理解电子钟的基本原理,掌握电子钟的组成、工作方式及相关电子元件的功能。
2. 学生能描述电子钟中数字电路的基本逻辑关系,理解时、分、秒的计算方法。
3. 学生了解电子钟的调试与检修方法,掌握基本的时间调整与故障排查技巧。
技能目标:1. 学生能运用所学知识,动手组装简单的电子钟电路,并能正确进行调试。
2. 学生能通过实际操作,学会使用万用表、电烙铁等基本电子工具,培养实际动手能力。
3. 学生能通过团队合作,解决电子钟组装过程中遇到的问题,提高问题分析和解决能力。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发创新意识,提高科学探究的积极性。
2. 学生在团队协作中,学会尊重他人,培养良好的沟通与协作能力。
3. 学生通过学习电子钟的制作过程,认识到时间的宝贵,培养珍惜时间、严谨细致的态度。
课程性质:本课程为实践性较强的电子技术课程,旨在让学生在动手实践中掌握电子钟的基本原理和组装调试技能。
学生特点:五年级学生对电子技术有一定的好奇心,具备基本的动手能力,但需加强对电子元件和电路的理解。
教学要求:注重理论与实践相结合,关注学生的个体差异,引导学生在动手实践中学习,培养其创新思维和团队协作能力。
通过课程目标的具体分解,为后续教学设计和评估提供明确方向。
二、教学内容根据课程目标,本章节教学内容分为以下三个部分:1. 电子钟原理及组成- 介绍电子钟的基本原理,包括时、分、秒的计算方法。
- 电子钟的组成:时钟振荡器、分频器、计数器、显示器等。
- 教材章节:第三章“数字电路基础”及第四章“时钟电路”。
2. 电子元件及其功能- 学习常用电子元件:电阻、电容、二极管、三极管等。
- 电子元件在电子钟中的应用及其功能。
- 教材章节:第二章“常用电子元件”。
3. 电子钟组装与调试- 学习电子钟的组装方法,包括焊接技术、电路连接等。
- 掌握电子钟的调试技巧,如时间调整、故障排查等。
《电子技术课程设计报告》:多功能数字钟电路设计与仿真

电子技术课程设计报告——多功能数字钟电路设计与仿真目录一、实验名称 (1)二、用途 (1)三、主要技术指标 (1)四、设计步骤 (1)1、数字钟的构成 (1)2、各模块设计 (2)(1)石英晶体振荡器 (2)(2)分频器 (3)(3)分秒计时器 (4)(4) 小时计时器 (4)(5)译码器与数码管 (5)(6)校时电路 (6)(7)整点报时电路 (6)(8)闹钟电路 (7)五、电路仿真及调试 (8)六、元器件明细表 (8)七、小结 (10)一、实验名称多功能数字钟电路设计与仿真二、用途数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟。
三、主要技术指标①时间以24小时为一个周期;②数值显示时、分、秒;③有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;④具有整点报时功能,当时间到达整点前5秒进行蜂鸣报时;⑤具有闹钟功能,当时间到达预设的时间进行蜂鸣闹铃;⑥为了保证计时的稳定及准确须由石英晶体振荡器提供时间基准信号。
四、设计步骤1、数字钟的构成数字式计时器应由秒发生装置、计秒,计分,计时部分、时间显示部分、时间校正和闹钟报时等几部分组成。
所涉及的电子器件主要有振荡器、加法计数器、译码器、显示器、寄存器、比较器等。
其中,振荡器组成标准秒信号发生器;由不同进制的计数器、译码器和显示器组成计时,显示系统;寄存器和比较器构成定点报时系统。
其结构原理图如下:该系统的主要工作原理是:①振荡器产生高稳定的高频脉冲信号,作为数字钟的时间基准(系统时钟),再经分频器输出标准秒脉冲信号。
②秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。
数字时钟课程设计报告

一.设计题目数字时钟仿真设计二.设计目的和要球1)目的掌握数字时钟的工作原理和设计方法,学会用Multisim10软件操作实验内容,掌握设计性试验的实验方法。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的应用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。
而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时序电路。
通过它可以进一步学习和掌握各种组合逻辑电路与时序电路的原理和方法。
2)要求(1)设计一个具有时、分、秒的十进制数字显示的计时器。
(2)具有手动校时、校分的功能。
(3)通过开关能实现小时的十二进制和二十四进制转换。
(4)具有整点报时的功能,应该是每个整点完成相应点数的报时,如3点钟响3声。
三.设计原理1)总体方案设计数字时钟由振荡器、分频器、计数器、译码现实、报时等电路组成。
其中,振荡器和分频器组成标准信号发生器,直接决定计时系统的精度。
由不同进制的计数器、译码器和显示器组成计时系统。
将标准秒信号送入采用六十进制的“秒计数器”,每累计60s就发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用六十进制计数器,每累计60min,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用二十四进制或十二进制计时器,可实现对一天24h 或12h 的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态通过六位七段译码器显示器显示出来,可进行整点报时,计时出现误差时,可以用校时电路校时、校分。
数字时钟的原理框图如图1所示。
2)单元电路设计1.秒脉冲产生电路秒脉冲产生电路用一个1Hz 的秒脉冲时钟信号源代替。
电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。
要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。
实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。
1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。
2.建立新文件, 选择文本类型或原理图类型。
3. 编写程序。
4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。
若结果不正确, 则修改程序, 再编译, 直到正确。
模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高仿真数码管电子钟目录高仿真数码管电子钟 (2)摘要 (2)1 引言 (3)1.1 本系统研究的背景和意义 (3)1.2 本系统主要研究内容 (3)2 系统总体设计 (4)2.1 系统设计方案与论证 (4)2.11 FPGA设计方案 (4)2.12 NE555时基电路设计方案 (4)2.13单片机设计方案 (5)2.14最终设计方案 (5)2.2 系统总体结构图 (5)3 系统硬件设计 (7)3.1 芯片介绍 (7)3.11 8051单片机简单介绍 (7)3.12 74LS138 3-8译码器介绍 (9)3.2 系统硬件原理图 (11)3.3复位模块 (11)3.4按键模块 (12)3.5显示驱动模块 (13)4 系统软件设计 (13)4.1 系统软件总体设计 (13)4.2 中断子程序 (14)4.3按键扫描子程序 (15)5 系统调试 (16)5.1 硬件调试 (16)5.2 软件调试 (16)6 结论 (16)参考文献 (17)附录 (18)高仿真数码管电子钟摘要电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可拓展性能强等特点,被广泛应用于生活和工作当中。
本文主要为实现一款可正常显示时间、带有hAM/24制调整、带有PMh12/显示以及时间校准功能的一款基于单片机仿真的多功能电子钟。
本文对当前的电子钟开发手段进行了比较与分析,最终确定了采用单片机技术实现高仿真电子钟的设计。
本设计采用51AT芯片作为核心,采用外部时钟89C脉冲定时,用oteusPr软件自带的电子钟组件实现高度仿真的显示效果。
软件部分主要采用简单且流通性强的C51语言编写实现。
这种高度仿真的电子钟具有电路简单,读取方便、显示直观、功能多样、时间精度较高、操作简单、编程容易成本低廉等诸多优点。
本次设计主要是用oteusPr电路软件实现了高仿真数码管电子钟的仿真。
稍加改装,增加部分功能所生产出的实际产品即可应用于一般的生活和工作中,从而给人们的生活和生产带来便利,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:电子钟、单片机、51AT、C5189C1 引言时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。
从古代的铜壶滴漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现了时间的重要,同时也代表着科技的进步。
致力于计时器的研究和充分发挥时钟的作用,将有着主要的意义。
1.1 本系统研究的背景和意义20世纪末,电子技术获得了飞速的发展。
在其推动下,现代电子产品几乎渗透到了社会的各个领域,有利的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。
然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。
平时我们要求上班准时,约会或召开会议要提前时间;火车要准时到达,航班准时起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。
所以说能随时准确知道时间并利用时间,是我们生活和工作中必不可少的。
电子钟是采用电子电路实现对时分秒进行数字显示的及时装置,广泛应用于个人家庭,车站,码头办公室等办公场所。
由于数字集成电路的发展,使得数字钟的精度远远超过老式机械钟表,钟表的数字化给人们的生产生活带来了极大的方便,而且大大的扩展了原先钟表的功能。
诸如定时自动报警、0按时自动打铃、定时广播、自动启闭路灯、定时开关烘箱、通断电力设备,设置各种定时电气的自动启用等,所有这些都已钟表数字化为基础的,因此,研究数字电子钟及扩大其应用,有着非常现实的意义。
1.2 本系统主要研究内容本设计采用51Pr软件89CAT芯片作为核心,采用外部时钟脉冲定时,用oteus自带的电子钟组件实现高度仿真的显示效果。
本次设计的电子钟主要研究内容:(1)研究电子时钟的原理与实现方法(2)51单片机的原理与应用(3)构思基于单片机的高仿真电子时钟的实现方案(4)熟悉运用C51单片机语言编写软件系统(5)熟悉运用Keil C软件与Proteus软件仿真和调试系统2 系统总体设计2.1 系统设计方案与论证电子时钟既可以通过纯硬件实现,也可以通过软硬件结合实现,根据电子时钟里的核心部件——秒信号的产生原理,通常有以下三种形式:2.11 FPGA设计方案现场可编程门阵列(即FPGA)是20世纪70年代发展起来的一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。
FPGA在设计过程中方便、快捷,而且FPGA技术功能强大,能够应用其制作诸如基代码发生器、数字频率计、电子琴、电梯控制器、自动售货机控制系统、多功能波形发生器、步进电机定位控制系统、电子时钟等。
应用FPGA能够将时钟设计为四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。
多时钟系统能够包括上述四种时钟类型的任意组合。
2.12 NE555时基电路设计方案采用NE555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或为处理器的外部中断输入信号,可构成电子钟。
通过调整相关参数可使输出的频率为精确的1HZ。
图2.12 基于 NE555的秒信号发生器采用NE555定时器设计电子时钟,成本低,容易实现。
但是受芯片引脚数量和功能的限制,不容易实现电子时钟的多功能性。
2.13单片机设计方案利用单片机的智能性,可方便的实现具有智能的电子钟设计。
单片机具有时钟振荡系统,利用系统时钟借助微处理器的定时器/计数器可实现电子钟功能。
然而系统时钟误差较大,电子钟的积累误差也可能较大,所以通过误差修改软件加以修正,或者在设计高精度的时钟日历芯片,以精确时间,另外很多功能不同的单片机是兼容的,这就更便于实现产品的多功能性。
2.14最终设计方案在比较了三种方案之后,考虑单片机货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,故采用单片机作为本次设计的硬件基础。
本次设计用Proteus软件本身的50HZ激励源作为时钟脉冲,接入单片机的外部中端口来仿真是想基准时钟信号输入。
2.2 系统原理及总体结构图本系统采用51单片机中51AT芯片控制整个系统,连接各部分模块,下89C面为系统的设计原理组成框图:图2.2 系统原理组成框图本系统主要采用单片机作为主控芯片,外接复位模块、调整校时模块、驱动显示模块和外部时钟脉冲。
本设计采用50HZ激励源仿真时钟脉冲,驱动显示模块主要由单片机P2.0—P2.2三个端口接74LS138译码器,8个输出端口接8片74100的使能端,P2.3接74LS138的使能端,P2.4—P2.7接到8片74100的输入端,采取动态扫描原理来驱动显示。
由于50HZ激励源仿真时钟脉冲接在AT89C51芯片的INT0中断端口,激励源时钟脉冲周期为0.02秒,在每一个时钟脉冲上升沿触发中断,调用中断子程序。
中断子程序主要为每0.5秒使显示组件中的LED[:]点亮,每1秒LED[:]关闭且秒递增,满60秒加分,同时每秒刷新时分秒显示。
系统设置了显示缓冲disp_Buffer[],共有7位,前6位为时分秒显示缓冲(各占两位),第7位控制AM、PM、SET标志以及LED发光管闪光显示。
disp_Buffer[6]从低位到高位,第1位为0时AM显示,为1时PM显示;第2位为0时12h制,为1时24h制,仅当第2位为1时,第1位才有效;第3位为SET标志位,为1时处于设置状态,发光管亮,为0时处于显示状态,发光管灭;第4位为LED闪烁控制位,为0时亮,为1时灭。
系统在显示状态时,中断开,循环执行中断子程序,秒递增,刷新显示,将当前时间current_Time中的相应位装入disp_Buffer中相应位,再从单片机P2端口输出驱动显示。
当系统处于设置状态时,关闭中断,显示暂停,执行调整与设置时钟程序。
3 系统硬件设计3.1 芯片介绍3.11 8051单片机简单介绍AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4KB的可反复擦除的只读程序存储器(PEROM)和128B随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合。
主要性能参数:①与MCS-51产品指令系统完全兼容②4K字节可重擦写FLASH闪速存储器③1000次擦写周期④全静态操作:0HZ-24MHZ⑤三级加密程序存储器⑥128 8字节内部RAM⑦32个可编程I/O口线⑧2个16位定时/计数器⑨6个中断源⑩可编程串行UART通道图3.111 AT89C51 引脚封装图芯片引脚介绍:(1)主电源引脚◇ VCC:+5 V电源◇ VSS:地线。
(2)时钟电路引脚◇ XTAL1和XTAL2:外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(3)控制信号引脚◇ RST/VPD:复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。
◇ ALE/PROG:地址锁存控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。
◇ PSEN:片外程序存储器读选通信号输出端。
◇ EA/VPP:访问程序存储控制信号。
当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21V EPROM编程电源VPP。
(4)I/O引脚P0.0 ~ P0.7: P0口8位双向口线。
P1.0 ~ P1.7 :P1口8位双向口线。
P2.0 ~ P2.7 :P2口8位双向口线。
P3.0 ~ P3.7 :P3口8位双向口线。
P3口线的第二功能。
P3的8条口线都定义有第二功能,详见表3-1。
表3-11 P3口各引脚与第二功能表以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。
对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。
对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。