简易数字钟的设计
- 格式:doc
- 大小:344.50 KB
- 文档页数:13
中文摘要数字钟已经成为人们日常生活中不可缺少的必需品,广发应用于家庭及办公室等公共场所,给人们的生活、学习、工作及娱乐带来了极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使得数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用方便,但鉴于单片机的定时器功能也可以完成数字钟的设计,因此进行数字的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和生活的各个角落,有力地推动了各行各业的技术改造和产品的更新换代,应用前景广阔。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED 数码显示器等),再配以相应的软件,达到制作简易数字钟的目的。
硬件部分采用了单片机原理实验室的实验箱进行合理接线调试;软件部分通过keil进行了C程序的修改编译,protues软件仿真等。
最终在实验箱上实现了与仿真结果相同的实际效果。
关键词单片机定时功能、AT89C51、共阴LED、Keil、Protues软件。
AbstractMicroelectronics and computer technology along with the rapid development and progress, making the design of electronic systems and applications have entered a new era. The traditional manual design process is being advanced electronic design automation technology to replace. And is currently supporting modern technology has become the universal platform for electronic design, and step by step to support the development of system-level design. Only to hardware description language and logic synthesis-based top-down design methodology to meet the increasingly complex needs of digital system design. The progressive development of the taxi industry, the taxi meter is getting higher and higher requirements, the user requires not only the performance of the stability of billing, billing and accurate anti-cheat functions; and as a result of the instability in oil prices, billing system the need for regular adjustment of the meter so that users can request not to change the hardware to facilitate the billing system modifications.The system is the use of language, it can make use of digital circuits and system description, simulation and automatic design, and software as a development platform designed billing system procedures taxi and carried out a simulation program. To the achievement of pre-billing and simulation, as well as car to start, stop, pause and other functions, and dynamic scan shows the number of fares.Key Words Microcontroller\、AT89C51、7SEG-MPX6-CC-RED 、Keil、Proteus目录中文摘要 (I)Abstract (II)目录......................................................................................................................................... I II 1设计任务描述.. (1)1.1设计题目:简易数字钟的设计 (1)1.2 设计要求: (1)1.2.1 设计目的 (1)1.2.2 基本要求 (1)2设计思路 (2)3设计方框图 (3)3.1数字钟硬件部分示意图 (3)3.2数字钟软件部分组成框图 (4)3.2.1时间调整的程序流程 (4)3.2.2时钟显示程序流程 (5)4各部分模块介绍 (6)4.1单片机AT89C51芯片分析 (6)4.2晶振电路模块 (7)4.3复位电路模块 (7)4.4显示模块 (8)4.5时间校对按键模块 (9)5简易数字钟源程序 (10)5.1源程序 (10)6数字钟源程序的仿真 (15)6.1编译、连接 (15)6.2仿真 (16)6.2.1生成HEX文件 (16)6.2.2仿真结果 (16)7数字钟硬件原理图 (17)7.1总原理图 (17)8主要原器件清单 (18)小结 (19)致谢 (20)参考文献 (21)1 设计任务描述1.1 设计题目:简易数字钟的设计1.2 设计要求:1.2.1 设计目的熟练使用Keil开发环境,具备编写单片机程序(汇编语言或C语言)的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。
设计制作简易数字钟一、设计要求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. 数字显示器:数字钟需要一个数字显示器来显示当前的
时间。
可以采用LED或LCD显示器,显示数字0-9等基本数字以及冒号等特殊符号。
2. 时间设置按钮:数字钟需要一个或多个按钮来设置时间。
用户可以通过按下按钮来调整小时、分钟和秒等时间设置。
3. 电路板:数字钟需要一个电路板来控制时间的计数和显示。
电路板上包含微控制器或集成电路芯片,负责处理输
入和输出信号,控制时间的计数和显示。
4. 电源:数字钟需要一个电源来供电。
可以使用电池或直
接接入电源插座。
5. 外壳:数字钟需要一个外壳来保护内部组件,同时也可以起到美观的作用。
外壳材料可以选择塑料、金属或木材等。
6. 时钟机芯:数字钟需要一个时钟机芯,用于稳定时间的计数和显示。
时钟机芯可以是石英机芯、机械机芯或电子机芯等。
7. 其他功能:数字钟还可以添加其他功能,如闹钟、温度显示、日历等。
这些功能可以通过额外的按钮和显示屏来实现。
需要根据实际需求和预算来选择设计数字钟的具体要素和组件。
同时,还需要考虑数字钟的易用性、耐用性和美观性等因素。
设计完成后,还需要进行测试和调整,确保数字钟的正常工作。
数字逻辑电路课程设计报告多功能数组钟设计一、设计要求:通过Maxplus II使用VHDL语言编写设计一款多功能数字钟,具体功能如下:1、时钟时,分,秒分别显示且能正确计数。
2、整点报时,时钟在将要到达整点的最后十秒,给予蜂鸣提示。
3、校时,可以通过相应开关按钮对时钟的时分秒进行调整。
4、闹钟,用户可以预设闹铃时刻,当时间到达该时刻时,发出蜂鸣提示。
二、总体设计:1、设计框图:2、外部输入输出要求:外部输入要求:输入信号有1024Hz时钟信号、低电平有效的秒清零信号CLR、低电平有效的调分信号SETmin、低电平有效的调时信号SEThour;外部输出要求:整点报时信号SOUND(59分51/3/5/7秒时未500Hz低频声,59分59秒时为1kHz高频声)、时十位显示信号h1(a,b,c,d,e,f,g)、时个位显示信号h0(a ,b,c,d,e,f,g)、分十位显示信号m1及分个位m0、秒十位s1及秒个位s0;数码管显示位选信号SEL0/1/2等三个信号。
3、各模块功能:1)FREQ分频模块:整点报时用的1024Hz与512Hz的脉冲信号,这里的输入信号是1024Hz信号,所以只要一个二分频即可;时间基准采用1Hz输入信号直接提供(当然也可以分频取得,这里先用的是分频取得的信号,后考虑到精度问题而采用硬件频率信号。
2)秒计数模块SECOND:60进制,带有进位和清零功能的,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO。
3)分计数模块MINUTE60进制,带有进位和置数功能的,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO。
4)时计数模块HOUR:24进制,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位。
5)扫描模块SELTIME:输入为秒(含个/十位)、分、时、扫描时钟CLK1K,输出为D和显示控制信号SEL。
6)整点报时功能模块ALERT:输入为分/秒信号,输出为高频声控Q1K和Q500。
毕业设计76简易数显电子钟设计一、引言电子钟是指使用数字显示的时钟,通过LED或LCD等显示器件显示时间。
本文将设计一款简易数显电子钟,采用数字管显示器件,实现准确显示时间的功能。
设计的电子钟具有简单、易操作、精确显示等特点,适合作为毕业设计的对象。
二、设计原理1.时钟芯片选取:选用高精度的时钟芯片,可以提供准确的时间信号。
2.数字显示器件选取:采用数字管显示时、分、秒的数据。
3.控制电路设计:根据时钟芯片提供的时间信号,通过控制电路将时、分、秒的数据传输到数字显示器件进行显示。
三、设计步骤1.选择时钟芯片:根据设计需求,选择适合的高精度时钟芯片,如DS13022.搭建电路原理图:根据选定的时钟芯片的电路原理图,搭建控制电路的原理图,包括时钟芯片、数字显示器件等。
3.PCB设计:根据电路原理图,进行PCB设计,制作电路板。
4.组件焊接:根据PCB设计制作的电路板,将所有的电子组件焊接到电路板上。
5.软件编程:根据时钟芯片的数据手册,编写软件程序,实现数据传输和显示功能。
6.系统调试:完成软硬件的搭建后,进行系统调试,检查时钟芯片和控制电路的正常工作情况。
7.最终制作:将电路板安装到外壳中,搭建简易数显电子钟的最终产品。
四、设计注意事项1.保证电路的稳定性和可靠性:在电路设计和焊接过程中,注意选择合适的电子元件,以确保电路的稳定性和可靠性。
2.时钟芯片的驱动:在软件编程过程中,需要熟悉时钟芯片的控制寄存器和通信协议,以确保准确的数据传输。
3.屏幕显示:在选择数字显示器件时,需考虑显示器件的亮度、清晰度等因素,以保证用户操作的便捷性。
五、设计成果展示通过厚一学期的努力,成功设计并制作了一款简易数显电子钟。
设计的电子钟具有准确的时间显示功能,通过数字管显示时、分、秒的数据。
用户可以方便地通过操作按钮调整时间。
电子钟外观简洁大方,适合放置在家居或办公场所使用。
六、结论本文以设计一款简易数显电子钟为目标,经过认真的设计与制作,成功实现了时、分、秒的准确显示功能。
数字电子技术课程设计报告要求:设计一个能显示时、分、秒的简易数字钟。
步骤:用verilog语言在记事本编写程序,再用QuartusⅡ仿真,定义针脚,在面板上模拟。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的寿命,因此得到广泛的应用。
设计原理及框图数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路,具有时、分、秒计数显示功能,以24小时为计数循环。
这次实验主要是要实现时钟的计时功能,时间计数由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器,,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器.,然后需要把8位二进制数转变为译码管需要的8421码。
设计方案:这个实验总体分:秒、分、时三个模块,计时和较准两个模式标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲之一。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个时脉冲信号,该信号作为时计数器的时钟脉冲之一,时计数器采用24进制计时器,可实现对一天24小时的计时。
译码显示电路将“时”、“分”、“秒”计数器的输出状态通过译码管显示。
这们时钟的计时功能就实现了,秒模块是一个以1HZ的clock信号控制的60进制计数器,并同时产生分进位信号tun。
always @(posedge clock)beginif(sec==59) \\当秒等于59时,如果处于计时模式时产生begin \\一个进位脉冲tun, 否则tun信号暂停sec<=0;tun<=1;elsetun<=tun;endelse \\若秒不等于59,同样如果处于计时模式begin \\就使tun信号清0,否则tun信号暂停sec<=sec+1;if(at==0)tun<=0;elsetun<=tun;endend分模块也是一个60进制计数器,并产生小时的进位信号mod,但要受到两个控制信号的控制一个是进位信号tun,另一个是t_min的按建信号。
中文摘要数字钟已经成为人们日常生活中不可缺少的必需品,广发应用于家庭及办公室等公共场所,给人们的生活、学习、工作及娱乐带来了极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使得数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用方便,但鉴于单片机的定时器功能也可以完成数字钟的设计,因此进行数字的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和生活的各个角落,有力地推动了各行各业的技术改造和产品的更新换代,应用前景广阔。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED 数码显示器等),再配以相应的软件,达到制作简易数字钟的目的。
硬件部分采用了单片机原理实验室的实验箱进行合理接线调试;软件部分通过keil进行了C程序的修改编译,protues软件仿真等。
最终在实验箱上实现了与仿真结果相同的实际效果。
关键词单片机定时功能、AT89C51、共阴LED、Keil、Protues软件。
AbstractMicroelectronics and computer technology along with the rapid development and progress, making the design of electronic systems and applications have entered a new era. The traditional manual design process is being advanced electronic design automation technology to replace. And is currently supporting modern technology has become the universal platform for electronic design, and step by step to support the development of system-level design. Only to hardware description language and logic synthesis-based top-down design methodology to meet the increasingly complex needs of digital system design. The progressive development of the taxi industry, the taxi meter is getting higher and higher requirements, the user requires not only the performance of the stability of billing, billing and accurate anti-cheat functions; and as a result of the instability in oil prices, billing system the need for regular adjustment of the meter so that users can request not to change the hardware to facilitate the billing system modifications.The system is the use of language, it can make use of digital circuits and system description, simulation and automatic design, and software as a development platform designed billing system procedures taxi and carried out a simulation program. To the achievement of pre-billing and simulation, as well as car to start, stop, pause and other functions, and dynamic scan shows the number of fares.Key Words Microcontroller\、AT89C51、7SEG-MPX6-CC-RED 、Keil、Proteus目录中文摘要 (I)Abstract (II)目录......................................................................................................................................... I II 1设计任务描述.. (4)1.1设计题目:简易数字钟的设计 (4)1.2 设计要求: (4)1.2.1 设计目的 (4)1.2.2 基本要求 (4)2设计思路 (5)3设计方框图 (6)3.1数字钟硬件部分示意图 (6)3.2数字钟软件部分组成框图 (6)3.2.1时间调整的程序流程 (6)3.2.2时钟显示程序流程 (7)4各部分模块介绍 (8)4.1单片机AT89C51芯片分析 (8)4.2晶振电路模块 (10)4.3复位电路模块 (10)4.4显示模块 (11)4.5时间校对按键模块 (11)5简易数字钟源程序 (12)5.1源程序 (12)6数字钟源程序的仿真 (17)6.1编译、连接 (17)6.2仿真 (18)6.2.1生成HEX文件 (18)6.2.2仿真结果 (19)7数字钟硬件原理图 (19)7.1总原理图 (19)8主要原器件清单 (20)小结 (21)致谢 (22)参考文献 (23)1 设计任务描述1.1 设计题目:简易数字钟的设计1.2 设计要求:1.2.1 设计目的熟练使用Keil开发环境,具备编写单片机程序(汇编语言或C语言)的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。
简易数字钟的设计一.指标要求1.用中小规模集成电路设计一台能显示“时”,“分”,“秒”的简易数字钟;2.除按24小时计数外,还应具有手动调节小时,分钟,秒的校时功能;3.具有整点报时功能;二.设计计算1.整体方案设计1.1课题分析数字钟一般由6个部分组成,其中振荡器和分频器组成标准的秒信号发生器,由不同进制的计数器,译码器和显示器组成计时系统。
秒信号送入计数器进行计数,把累计的结果以“时”“分”“秒”的十进制数字显示出来。
“时”显示由二十四进制计数器,译码器和显示器构成,“分”“秒”显示分别由六十进制计数器,译码器和显示器构成。
1.2工作原理数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。
干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发现胡一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过六位LED七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后触发一音频发生器实现报时。
校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整的。
数字电子钟由振荡器、分频器、计数器、译码显示、报时等电路组成。
其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。
数字钟在日常生活中最常见,应用也最广泛。
随着科学技术不断地发展,人们对于数字钟的要求也在不断地提高,而传统的数字钟,多数只能显示小时、分钟等信息,功能单一,而且大都采用LED数码管作为显示器件,功耗大,不能令消费者满意。
因此有必要对数字钟进行改进。
本课题设计是基于数字钟的原理,在经典基本电路上加以改进,设计并制作符合指标要求的多功能数字时钟。
该多功能数字钟设计基于单片机技术原理,以单片机芯片AT89S51作为核心控制器,通过硬件电路的制作以及软件程序的编制来完成。
本文详细叙述了系统硬件、软件的具体实现过程,重点阐述时钟系统硬件中时钟主控模块、键盘模块、报时模块、液晶显示模块的模块化设计与制作;软件中同样采用模块化的设计,主要包括键盘模块、时钟主控模块、报时模块、时间调整模块设计,并采用简单流通性强的C语言编程实现。
本设计实现了显示年、月、日、时、分、秒、星期的功能,按键调整时间,仿电台整点报时功能。
该系统功能实用,实现方法简单,具有工作稳定、使用方便等特点,可以广泛应用于人们日常生活中。
关键字:单片机AT89S51;数字钟;LCD1602;报时。
The digital clock is used widely in our daily life. With the development of science and technology, the performance of digital clock has been improving for people’s requirements. However, the most traditional digital clocks can only show some messages such as hours, minutes, etc. For the single functions and high power consumption of the LED digital tube as display device, they cannot make customer satisfaction. There is a need to improve on the digital clock.The subject of design is based on the principle of digital clock, in the classic to be improved on the basic circuit design and production meet the index requirements of multi-functional digital clock.The multi-function digital clock design principles based on microcontroller technology to chip AT89S51 microcontroller as the core controller, through the production of hardware and software to complete the preparation process.This paper describes the system hardware and software realization process, we focus on the design and production of the hardware keyboard module clock system, the clock master module, alarm module, LCD module;in the design of the software,modular design is also adopt , the keyboard module, the clock master module, alarm module, ime adjustment and timing module are all included, and with a simple C language programming,we achieve the function of software control.With the device,the function of display the year, month, day, hour, minute, second, week of features, buttons to adjust time, set the alarm of time, the whole point timekeeping of imitation radio is realized. Considering the system is functional、practical、simple to achieve、stable and easy to use , it can be widely used in our daily life.Key words:Singlechip AT89S52;Digital clock;LCD1602;alarm clock.目录1绪论 (1)1.1课题的提出及研究意义 (1)1.1.1课题的提出 (1)1.1.2课题研究的意义 (1)1.2数字时钟的发展现状 (2)1.3课题研究目的、研究内容及设计方案选择 (3)1.3.1课题研究目的 (3)1.3.2课题研究内容 (3)1.3.3课题设计方案选择 (4)2 多功能数字时钟硬件设计 (4)2.1主控制模块设计 (5)2.1.1单片机AT89S51的特性概述 (5)2.1.2单片机AT89S51管脚说明 (5)2.1.3单片机AT89S51最小系统 (7)2.2显示模块设计 (8)2.2.1LCD1602显示器的结构 (8)2.2.2LCD1602数据原理 (9)2.2.3显示模块的数据连接 (10)2.3键盘模块设计 (11)2.4报时电路模块设计 (12)2.5本章小结 (13)3软件设计部分 (13)3.1软件总体框图主函数的设计 (13)3.2LCD1602显示模块程序的编写 (14)3.3键盘模块程序的编写 (16)3.4中断模块程序的编写 (18)3.4.1中断初始化函数 (18)3.4.2中断程序 (18)3.5报时模块程序的编写 (19)3.6延时模块程序的编写 (20)3.7进位模块程序编写 (20)3.8本章小结 (20)4综合调试 (21)5结论 (21)谢辞 (23)参考文献 (24)附录 (25)1 绪论人类的生活和工作均离不开时钟。
课程设计报告设计题目:基于VHDL语言的简易数字钟设计摘要随着电子设计自动化技术(EDA)的进步,数字电路在实际生活当中已经占据了重要的位置。
在EDA技术中,最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术。
该技术的出现,使电子系统设计发生了质的变化。
设计速度快、体积小、重量轻、功耗小的集成电路已成为趋势。
用VHDL 语言开发的数字电路,大大简化了对工控电路的设计并且减低了成本。
本文介绍了利用VHDL硬件描述语言设计一款多功能数字钟的方法。
可以实现显示、预置时分秒,年月日(可以准确显示每月天数,包括对闰年的计算);秒表;整点报时的功能。
利用6个7段数码管显示时分秒或年月日。
在Quartus II 开发环境下编译仿真了设计的程序。
仿真结果表明,该设计方法切实可行,具有一定的借鉴性。
关键词:EDA,VHDL,数字钟,Quartus II目录摘要I一、课程设计目的 1二、课程设计内容及要求 12.1 设计内容12.2设计要求 12.3发挥部分1三、VHDL程序设计 13.1整体介绍 13.2时钟模块 23.3日期模块23.4整点报时模块33.5秒表模块4四、仿真与分析 5五、器件编程下载及设计结果 5六、课程设计总结 5七、参考文献 6八、附录7一、课程设计目的掌握利用可编程逻辑器件和EDA设计工具进行电子系统设计的方法二、课程设计内容及要求2.1设计内容用VHDL语言实现数字钟的设计,要求设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。
2.2设计要求用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。
Up为高电平时,upclk有脉冲到达时,预置位加1.否则减1.2.3发挥部分本设计除满足基本要求外,还实现了秒表及整点报时的功能。
《数字电路》课程设计总结报告题目:数字钟设计2010 年 12 月 12 日数字钟设计 (3)一、设计任务 (3)1.1功能描述 (3)二、设计框图与整机概述 (3)2.1主题电路图 (3)2.2系统的工作原理 (3)三、各单元电路的设计方案及原理说明 (4)3.1设计思路 (4)3.2振荡器的设计 (4)3.3分频器的设计 (4)3.4分秒计数器的设计 (4)3.5校时电路的设计 (5)3.6显示电路的设计 (6)四、调试过程及结果分析 (6)4.1调试过程 (6)4.2结果分析 (6)五、设计、安装及调试中的体会 (6)六、对本次课程设计的意见和建议 (7)七、参考文献 (7)八、附录 (7)数字钟设计一、设计任务1.1功能描述设计一个多功能数字中电路,基本功能为:①准确计时,以数字形式显示分、秒的时间;②分和秒的计时要求为60进位;③校正时间。
二、设计框图与整机概述2.1主题电路图1s2.2系统的工作原理由振荡器产生高稳定的高频脉冲信号,作为数字钟的时间基准(系统时钟),再经分频器输出标准秒脉冲信号。
秒计数器计满60后向分计数器进位,分计数器计满60后重新开始计时。
计数器的输出经译码器送显示器。
计时出现误差时可以用校时电路进行校分。
分显示器 秒显示器时译码器 秒译码器分计数器 秒计数器 校时电路 分频器振荡器三、各单元电路的设计方案及原理说明3.1设计思路主体电路是由功能部件或单元电路组成的。
在设计这些电路或选择部件时,尽量用同类型的器件,如所有功能部件都采用TTL集成电路或都采用CMOS集成电路。
3.2振荡器的设计振荡器是数字钟的核心。
振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。
一般来说,振荡器的频率越高,计时精度越高。
在这里我们选用由集成电路定时器555与RC组成的多谐振荡器。
这里选用555构成的多谐振荡器,输出振荡频率v0=1KHz的脉冲,电路参数如下图所示。
序号:学号:课程名称: FPGA设计及应用论文题目:简易数字钟的EDA设计学生姓名:学院(系):专业班级:简易数字钟的EDA设计一、产品设计需求说明本产品实现的功能:1、数字钟功能:数字钟时间为24小时一个周期:数字钟须显示时、分、秒。
2、校时功能:可以分别对时、分、秒进行单独校时,使其调整到标准时间。
3、扩展功能:整点报时系统。
设计整点报时电路,每当数字钟达到整点时开始报时,并发出鸣叫声,十秒后鸣叫结束。
设计参数:使用的芯片/硬件平台GW48实验系统软件平台WindowsXP + MuxplusII10.1二、方案设计及实现1、系统实现原理和总体框图数字式电子钟实际上是一个对标准1Hz进行计数的计数电路,秒计数器满60秒后向分计数器进位,分计数器满60秒后向时计数器进位,时计数器按24翻1规律计数,计数输出经译码器送LED显示器,由于计数的起始时间不可能与标准时间(北京时间)一致,故需要在电路上加上一个校时电路,该数字式电子钟除用于计时外,还能整点报时,如图(1-1)所示为多功能数字式电子钟的构成框图。
除校时功能外,电子钟处于其他功能状态时并不影响数字钟的运行,该电子钟利用GW48 EDA实验平台的扬声器进行整点报时。
图(1-1)多功能数字式电子钟的系统框图2、主要模块之计数器模块的设计计数器模块说明:时分秒计数器模块由秒个位、十位计数器,分个位、十位计数器以及时个位、十位计数电路组成。
其中,秒个位和秒十位计数器、分个位和分十位计数为六十进制计数器,而根据设计要求,时个位和时十位构成的为二十四进制计数器。
因此时分秒计数器模块可划分为时计数、分计数和秒计数3个子模块,根据设计要求,时计数子模块为一个二十四进制可预置的BCD码计数器模块;分计数和秒计数子模块均为六十进制可预置的BCD码计数器模块。
算法原理如图(1-2)、图(1-4)、图(1-6)所示源代码:1)、六进制计数器:--File:counter6.vhd--Designer:AAA--Module:decimal counter--Description: It is a decimal counter with a carry.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 图(1-2)六进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter6 ISPORT(clk:IN STD_LOGIC;reset:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(2 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);c:OUT STD_LOGIC);END counter6;ARCHITECTURE dianzizhong OF counter6 ISSIGNAL count:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THEN --计数器复位count<=din;c<='0';ELSIF rising_edge(clk) THENIF count="101" THEN --到5后,计数器清零count<="000";c<='1';ELSEcount<=count+1;c<='0';END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-3) 六进制计数器功能仿真图2)、十进制计数器:--File:counter10.vhd--Designer:AAA--Module:decimal counter--Description: It is a decimal counter with a carry.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 图(1-4)十进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter10 ISPORT(clk :IN STD_LOGIC;reset: IN STD_LOGIC;din: IN STD_LOGIC_VECTOR(3 DOWNTO 0);dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c: OUT STD_LOGIC);END counter10;ARCHITECTURE dianzizhong OF counter10 ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THEN --计数器复位count<=din;c<='0';ELSIF rising_edge(clk) THENIF count="1001" THEN --到9后,计数器清零count<="0000";c<='1';ELSEcount<=count+1;c<='0';END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-5) 十进制计数器功能仿真图3)、二十四进制计数器:--File:counter24.vhd--Designer:沙桂珍--Module:counter base-24--Description: It is a counter base-24.--Simulator:MAX plusII 10.0.9/Window XP--Synthesizer:MAX plusII 10.0.9/Window XP--Date:10/16/11--Modify date:10/5/12LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;图(1-6)二十四进制计数器工作流程图USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter24 ISPORT(clk:IN STD_LOGIC;reset:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(5 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END counter24;ARCHITECTURE dianzizhong OF counter24 ISSIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINdout<=count;PROCESS(clk,reset,din)BEGINIF reset='0' THENcount<=din;ELSIF rising_edge(clk) THENIF count="100011" THEN --达到23时下一次归0count<="000000";ELSIF count(3 DOWNTO 0)="1001" THENcount(3 DOWNTO 0)<="0000"; --低位到9后,计数器清零count(5 DOWNTO 4)<=count(5 DOWNTO 4)+1; --高位加1ELSEcount(3 DOWNTO 0)<=count(3 DOWNTO 0)+1;END IF;END IF;END PROCESS;END dianzizhong;仿真图:图(1-7) 二十四进制计数器功能仿真图3、主要模块之校时模块的设计校时模块说明:当刚接通电源或走时出现误差时都需要对时间进行校正,对时间的校正是通过对时间的重置来实现,当功能键reset为1、load为0时即进入校时模式,此模式下可通过对sel键的选择来给时,分,秒中的一个进行置数,当sel为“01”时是校时状态,为“10”时是校分状态,为“11”时是校秒状态,在对其中一个置数时不会影响其他两个计数。
第三单元简易数字钟的设计数字钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无需机械传动等优点。
因而得到了广泛的应用。
小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数字电子钟,数字钟到处可见。
在数字电路的学习中,已经学习过用计数器芯片搭建数字钟。
51单片机内部集成了定时器/计数器,这为构建数字钟带来了方便。
在本单元中,学习如何用51单片机来构建一个功能数字钟。
【任务要求】在八个数码管上显示时、分、秒以及两个横杠。
通过单片机内部定时器控制走时,走时准确。
系统有四个按键,功能分别是调整,加,减,确定。
在按下调整键时候,显示“时”的两位数码管以1 Hz 频率闪烁。
如果再次按下调整键,则“分”开始闪烁,“时”恢复正常显示,依次循环,直到按下确定键,恢复正常的显示。
在数码管闪烁的时候,按下加或者减键可以调整相应的显示内容。
按键支持短按和长按,即短按时,修改的内容每次增加一或者减小一,长按时候以一定速率连续增加或者减少。
【学习知识点】数码管的原理,驱动程序的实现。
独立按键的原理及程序的实现。
51单片机内部定时器的原理及应用【内容安排】第一节:数码管显示原理及应用实现第二节:独立按键检测原理及应用实现第三节:计时的原理及实现第四节:数字钟的构建第一节数码管显示原理及应用实现1.1 数码管显示原理数字钟要把时间显示到数字显示的装置上,常用的数字显示装置有数码管、液晶、LED、CRT显示器等。
在单片机系统设计中,LED数码管是最基本的显示装置。
在数字钟的设计中我们用数码管对中的小时、分和表来进行显示。
LED数码管能显示各种数字或符号,由于它具有显示清晰、亮度高、寿命长、价格低廉的特点,因此使用非常广泛。
图1.1是几个数码管的图片,图a为单位数码管,图b为双位数码管,图c为四位数码管。
a 单位数码管b 双位数码管c 四位数码管图1.1数码管图片那么数码管是如何的工作呢?还记得我们小时候玩过的“火柴棒游戏”吗,几根火柴组合起来,可以拼成各种各样的图形,数码管实际上就是利用这个原理做成的。
如何设计简单的数字时钟电路数字时钟电路是一种常见的电子电路,用于显示时间并具备时间计时功能。
设计一个简单的数字时钟电路可以通过以下步骤实现。
第一步:确定数字时钟的显示方式常见的数字时钟电路可以采用七段数码管进行显示,每个数码管由七个LED灯组成,用于显示数字0-9。
可以根据需要选择合适的数码管来完成数字时钟的显示。
第二步:确定时钟的计时器数字时钟电路需要一个计时器来跟踪时间。
常见的计时器可以使用555定时器或者基于微控制器的计时器模块。
选择适合自己的计时器并连接到电路中。
第三步:连接七段数码管将选定的七段数码管连接到电路中。
每个数码管的七个LED灯分别对应数码管的a、b、c、d、e、f、g引脚,根据数码管的型号和引脚布局进行正确连接。
例如,将数码管的a引脚连接到计时器的输出引脚,b引脚连接到计时器的另一个引脚,以此类推。
第四步:设计时钟功能根据需要设计时钟功能,包括显示当前时间、设置闹钟、调节亮度等。
可以通过增加按钮开关、旋转编码器或者完成基于微控制器的编程来实现这些功能。
第五步:连接电源和调试将数字时钟电路与合适的电源连接,并进行必要的调试。
确保电路中的元件连接正确并正常工作。
如果有需要,可以使用示波器或多用途测试仪来辅助调试。
总结:通过以上步骤,我们可以设计一个简单的数字时钟电路。
根据需求选择合适的数码管和计时器,连接七段数码管,设计时钟功能并连接电源进行调试。
这样就可以得到一个能够准确显示时间并具备计时功能的数字时钟电路。
需要注意的是,以上步骤只是设计一个简单的数字时钟电路的基本流程,具体的实现可能因项目需求和硬件平台的差异而有所不同。
在实际应用中,还需要考虑电路的稳定性、精度和可靠性等因素,并根据实际情况进行细节调整和优化。
第三单元简易数字钟的设计数字钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无需机械传动等优点。
因而得到了广泛的应用。
小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数字电子钟,数字钟到处可见。
在数字电路的学习中,已经学习过用计数器芯片搭建数字钟。
51单片机内部集成了定时器/计数器,这为构建数字钟带来了方便。
在本单元中,学习如何用51单片机来构建一个功能数字钟。
【任务要求】➢在6个数码管上显示时、分、秒,共6位数字。
➢通过单片机内部定时器控制走时,走时准确。
➢系统有四个按键,功能分别是调整时间,加,减,确定。
在按下调整键时候,显示“时”的两位数码管以1 Hz 频率闪烁。
如果再次按下调整键,则“分”开始闪烁,“时”恢复正常显示,依次循环,直到按下确定键,恢复正常的显示。
在数码管闪烁的时候,按下加或者减键可以调整相应的显示内容。
按键支持短按和长按,即短按时,所修改的数字每次增加1或者减小1,长按时候以一定速率连续增加或者减少10。
【学习知识点】➢数码管的原理,驱动程序的实现。
➢51单片机内部定时器的原理及应用➢独立按键的原理及程序的实现。
【内容安排】第一节:数码管显示原理及应用实现第二节:独立按键检测原理及应用实现第三节:计时的原理及实现第四节:基于定时器的程序改进第五节:数字钟的构建第一节数码管显示原理及应用实现1.1 数码管显示原理数字钟要把时间显示到数字显示装置上,常用的数字显示装置有数码管、液晶、LED、CRT显示器等。
在单片机系统设计中,LED数码管是最基本的显示装置。
在数字钟的设计中我们用数码管对中的小时、分和表来进行显示。
LED数码管能显示各种数字或符号,由于它具有显示清晰、亮度高、寿命长、价格低廉等特点,因此使用非常广泛。
图1.1是几个数码管的图片:a图为单位数码管, b图为双位数码管,c图为四位数码管。
a 单位数码管b 双位数码管c 四位数码管图1.1 数码管图片那么数码管是如何的工作呢?还记得我们小时候玩过的“火柴棒游戏”吗,几根火柴组合起来,可以拼成各种各样的图形,数码管实际上就是利用这个原理做成的。
图1.2 单个数码管引脚标号,共阴和共阳的内部连接图单个数码管由8个发光二极管组成,其中7个长条形的发光管排列成一个“日”字形,我们称之为“段”,另一个圆点形的发光管在数码管的右下角作为小数点用,图1.2中的a 图是数码管的段标号以及外接引脚排列图,由图可以看出,单个数码管共有10个引脚,其中8个发光二极管的一端分别与数码管的8八个引脚相接,8个发光二极管的另外一端汇集在一起,称之为公共端,与数码管上下排引脚当中的那个引脚相连,称之为“公共端”。
公共端既可以接地,也可以接高电平。
公共端接地的数码管,是将发光二极管的阴极连接在一起接地,点亮数码管,各段需加高电平,称之为“共阴极数码管”;公共端接高电平的数码管,是将发光二极管的阳极连接在一起接高电平,点亮数码管,各段需加低电平,称之为“共阴极数码管”;图1.2中的b图和c图分别是共阴极数码管和共阳极数码管内部原理图。
1.2 单个数码管的控制我们以共阴极的数码管为例,先介绍如何控制一个8段数码管显示“0”-“F”16个数字或数字。
例1.1 单个数码管显示“0”-“F”1)硬件电路设计图1..4 单个LED数码管控制电路图1.3 单个数码管显示控制电路由于51单片机I/O高电平驱动能力有限,故在数码管与单片机之间串入锁存器74HC573,增加段的驱动能力,段限流电阻330Ω。
2)软件设计为了获得“0”-“F”16个不同字符,数码管各段所加的电平不同,因此I/O口输出的编码也不同。
因此首先要建立一个编码表,见表3.1。
表3.1 LED数码管字型字段编码表有了字型段码对照表,就可以用软件的方式进行8段码的译码。
如要显示字型“1”,P0输出值为0x06;显示字型“2”,P0口输出值为0x5B。
#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define port_seg P1uchar code seg_7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的字码放在数组中,数组名前面的code表示把数组的元素放在Flash中,而不是//RAM,这样可以节省RAM的空间。
//************************************************************************ // ms延时子函数//************************************************************************ void delayms(uint xms)//1ms的延时函数{uint i,j;for(i=0;i<112;i++)for(j=0;j<xms;j++);}//************************************************************************ // 主函数//************************************************************************ void main(void){uchar count;while(1) //定义循环变量{for(count=0;count<16;count++) //16次循环{port_seg=seg_7[count]; //从数组中取段码值赋给P1口delayms(1000); //间隔1s}}}讨论区:(1)限流电阻可以像图1.4那样接么?在图1.4中,限流电阻接在数码管和地之间,而不是接在锁存器与数码管之间,合理的选取电阻的阻值,可以实现数码管的点亮,而且只用了一个电阻,节省了电路的成本。
看起来是完美的方案,但是在实际调试的时候,我们会发现显示不同的数值,数码管的段亮度不同。
比喻说:显示”8”,亮度较低,显示”1”。
亮度较高,这是为什么呢?原因在于,只接一只电阻,各段电流和是一定的,当数码管段显示”8”的时候,7段全亮,那么每一段的电流就只有总电流的图1.3 只接一只电阻1/7,而如果显示”1”,那么每一段的电流为总电流的1/2,显示不同数字或者字符,段电流不相等,所以亮度也不同。
所以这种电阻的接入方法是不合理的。
(2)如何来识别数码管的引脚1.3 多位数码管的显示一个LED数码管只能显示一位数字,一般在系统中经常使用多个LED数码管,如要显示时间、温度、转速等等。
在上面一位数码管控制显示的简单例子中,我们可以看到,一个数码管要使用51单片机的8个I/O口来输出段码,当使用多个数码管的时候,显然采用这种控制方式有些问题,因为51单片机不能提供太多的I/O控制引脚。
多个数码管的显示驱动系统的实现,有多种不同的方式可以采用,而且在硬件和合软件的设计上也是不同的。
多个LED数码管显示电路按驱动方式可分为静态显示和动态显示两种方法。
采用静态方式显示时,除了在改变显示数据的时间外,所有的数码管都处于通电发光状态,每个数码管通电占空比为100%,静态显示的优点:显示稳定,亮度高,程序设计简单,MCU负担小,缺点是:占用硬件多(如I/O口、锁存电路等),耗电量大。
图2.19 是4个共阳极数数码管静态显示时的连接方式与显示状态,当单片机系统中使用静态数码管显示时,需要在每一个数码管上添加一个锁存器,当需要某个数码管显示其他内容时,只需要修改与其相连的锁存器的值即可。
而所谓动态显示方式,就是一位一位地轮流点亮各个数码管。
对于每一位数码管而言,每隔一定时间点亮一次,所以当扫描的时间间隔足够小时,观察者就不会感觉到数码管在闪烁,看到的现象就是所有数码管在一起发光(同看电影的道理是一样的)。
在动态显示中,数码管的将不仅仅由导通时电流的大小决定,而且还跟每一位点亮的时间和扫描周期这两个因素有关。
动态显示的优点:占用硬件资源小,耗电量小。
缺点是:显示稳定性不够好,亮度低,程序设计相对复杂,MCU负担过重。
为了减轻MCU的负担和编程的复杂性,同时简化外围电路,还可以使用专用的数码管控制器件。
图2.20 4个共阴极数码管动态显示时的连接方式与显示状态1. 使用串行传送数据的静态显示。
(1)硬件设计在静态显示的描述中,每位数码管都需要接一个锁存器,MCU把要显示的数据送给锁存器,锁存器锁存器之后再送给数码管,这里采用了移位寄存器74HC595来驱动8位静态数码管,74HC595末级带有锁存器,同时可以实现数据的串行传输,节省了I/O口。
图式串行传送数据的硬件电路图。
图设计中将八片八位串行输入/并行输出移位寄存器74HC595依次串接,第一片74HC595的DS端接到MCU的数据输出端P2^7,其他的74HC595的DS端分别接前一片的Q7’端,所有的74HC595的sTcp和sHcp分别相接到一起与MCU的P2^6和P2^5相连(sTcp是数据的移位脉冲,sHcp是存储器使能端)。
在经过sTcp时钟线64个脉冲后,要显示的8个字符并没有在8个数码管上显示,而是存储在移位寄存器内部的存储器中,然后再经过一个sHcp的脉冲,数据才会在8个数码管上显示,最先发送的显示字符段码将显示在最右边。
在这个电路中,硬件上使用了8片8位串行输入/并行输出移位寄存器74HC595串接,占用了MCU的3个I/O口,,硬件开销大,软件的实现比较简单,MCU只需把显示的内容一次性输出即可,如果显示内容没有变化时,MCU是不需要对显示部分进行任何操作的。
(2)软件设计#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit ds=P2^7;sbit sh_cp=P2^6;sbit st_cp=P2^5;uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; //共阴数码管段码void seg595(uchar num){ uchar i,seg_num;seg_num=table[num];for(i=0;i<8;i++){ sh_cp=0;ds=seg_num&0x01;sh_cp=1;seg_num=seg_num>>1;}}void main(void){st_cp=0;seg595(1);seg595(2);seg595(3);seg595(4);seg595(5);seg595(6);seg595(7);seg595(8);sh_cp=1;while(1);}2. 数码管动态显示设计(一)采用数码管动态扫描显示方式,可以节省硬件电路,但软件设计相对复杂。