8位数字钟程序

合集下载

多功能数字钟

多功能数字钟

电子技术课程设计多功能数字钟学院:专业、班级:姓名:学号:指导老师:2008年12月目录1、设计任务与要求 (2)2、总体框图 (2)3、选择器件 (2)4、功能模块 (3)(1)时钟记数模块 (3)(2)整点报时驱动信号产生模块 (6)(3)八段共阴扫描数码管的片选驱动信号输出模块 (7)(4)驱动八段字形译码输出模块 (9)5、总体设计电路图 (10)(1)仿真图 (10)(2)电路图 (11)(3)管脚图 (11)6、设计心得体会 (12)一、设计任务与要求1、具有时、分、秒记数显示功能,以24小时循环计时。

2、要求数字钟具有清零、调节小时、分钟功能。

3、具有整点报时,整点报时的同时LED灯花样显示。

二、总体框图多功能数字钟总体框图如下图所示。

它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。

系统总体框图三、选择器件网络线若干/人、共阴八段数码管6个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、seltime(驱动8位八段共阴扫描数码管的片选驱动信号输出模块)、deled(驱动八段字形译码输出模块)。

四、功能模块多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。

(1) 时钟记数模块:<1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。

VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk,reset:in std_logic;daout:out std_logic_vector(5 downto 0));end entity hour;architecture fun of hour issignal count:std_logic_vector(5 downto 0);begindaout<=count;process(clk,reset)beginif(reset='0') thencount<="000000";elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#24#) thencount<=count+7;else count<="000000";end if;elsif(count<16#23#) thencount<=count+1;else count<="000000";end if;end if;end process;end fun;<1.2>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,clk1,reset,sethour:in std_logic;enhour:out std_logicdaout:out std_logic_vector(6 downto 0));end entity minute;architecture fun of minute issignal count:std_logic_vector(6 downto 0); begindaout<=count;process(clk,reset,sethour)beginif(reset='0') thencount<="0000000";elsif(sethour='0') thenenhour<=clk1;elsif(clk' event and clk='1') thenif(count(3 downto 0)="1001") thenif(count<16#60#) thenif(count="1011001") thenenhour<='1';count<="0000000"; else count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#) thencount<=count+1;enhour<='0';elsecount<="0000000";end if;end if;<1.3>VHDL程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk,reset,setmin:IN STD_LOGIC;enmin:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0)); END entity second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 downto 0); BEGINdaout<=count;process(clk,reset,setmin)beginif(reset='0') thencount<="0000000";elsif(setmin='0')thenenmin <=clk;elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#60#)thenif(count="1011001")thenenmin<='1';count<="0000000";ELSE count<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#)thencount<=count+1;enmin<='0';elsecount<="0000000";end if;end if;end process;END fun;(2)整点报时驱动信号产生模块该模块功能:在时钟信号(CLK)的作用下可以生成波形,SPEAK输出接扬声器,以产生整点报时发声。

数字钟的设计方法及步骤

数字钟的设计方法及步骤

四川机电职业技术学院数字电子课程设计说明书题目:数字电子钟院系名称:电子电气工程系专业班级:09电气6班学生姓名:姚瑶学号:0907041114指导教师:刘惠兰、刘廷敏、徐贵仁教师职称:2010年12月15日摘要数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。

在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。

为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。

关键词:数字集成电路计数器七段数码显示校时电路1设计题目数字电子钟A 纸,页边距为2.5cm数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。

在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。

为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。

1.1数字钟的组成和工作原理一个简单的数字钟,主要由六部分组成。

整机电路方框图如图1-1所示。

图1-1数字钟整机方框图(宋体,5号)1.1.1石英晶体振荡器模块振荡器主要用来产生时间标准信号。

因为数字钟的精度,主要取决于时间标准信号的频率及其稳定度,所以要产生稳定的时标信号,一般是采用石英晶体多谐振荡器,从数字钟的精度考虑,晶振频率愈高,钏表的计时准确度就愈高。

但这会使振荡器的耗电量增大,分频器的级数也要增多。

所以在确定频率时应考虑两方面的因素,然后再选定石英晶体的型号。

图1-2晶体振荡器之一100kΩ1.1.2分频器模块因为振荡器产生的时标信号频率很高,要使它变成能用来计时的“秒”信号,需要一定级数的分频电路。

数字时钟_89C52_单片机C语言程序

数字时钟_89C52_单片机C语言程序
/*列扫描控制 LED1位 2位 3位 4位 5位 6位 7位 8位*/
uchar MON[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
uchar A;
uchar BIN=0; /* 【BIN】作为倒计时开始的标志 */
TH0 = (65536 - 10000) / 256; /*给定计时器高位赋予 初值=15536/256*/
TL0 = (65536 - 10000) % 256; /*给定计时器低位赋予 初值=15536%256 */
ET0 = 1; /*打开定时器外部终断0允许 ET1是中断器1的开关*/
P2 = C[4];
Delay(1);
P0 = Code[Msec%10]; /*第五位的数字显示【分】的【个】位 */
P2 = C[5];
Delay(1);
Delay(1);
P0 = 0x40; /*第六位符号【-】的显示 */
P2 = C[6];
Delay(1);
P2 = C[2];
Delay(1);
if(x/50==0)
P0 = 0x40; /*第三位符号【-】的显示 */
else
P0 = 0x00;
P2 = C[3];
Delay(1);
P0 = Code[min/10]; /*第四位的数字的显示【分】的【十】位 */
uchar month=7;
uchar month2;
uchar day=19;
uchar set1 = 1; /* set1=1 是调节 时分秒 set1=2时时调节 年月日 set=3时事调节闹钟 */

AT89C52单片机的数字时钟

AT89C52单片机的数字时钟

摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。

数字钟的精度、稳定度远远超过老式机械钟。

在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。

在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整、整点报时。

关键字:数字钟、时间。

AbstractAt the end of the 20th century, electronic technology has experienced rapid growth, the modern electronic products, almost permeated the various sectors of society, and promoted the development of social productive forces and the social informatization level, but also improve the modern electronic products to further improve the performance, product update rhythm also more and more quickly.A digital clock is used in digital circuit ", "" points" and "second" digital display timer. A digital clock accuracy and stability than old mechanical clock. In this design, we adopt LED digital display tube, minutes and seconds, when in 24 hours time, according to the principle of dynamic display of digital tube to show, with the crystals 12MHz produce oscillation pulses, timer count. In this design, the circuit has its time, still can realize the function of the time.Key words: electric clock、time.目录第一章绪论 (4)1.1数字电子钟的背景 (4)1.2数字电子钟的意义 (4)1.3数字电子钟的应用 (4)第二章整体设计方案 (5)2.1单片机的基本结构 (5)第三章数字钟的硬件设计 (9)3.1最小系统设计 (9)3.2LED显示电路 (11)3.3键盘控制电路 (13)3.4数字钟的硬件图 (14)第四章数字钟的软件设计 (15)4.1系统软件设计流程图 (15)第五章系统仿真 (18)5.1PROTUES软件介绍 (18)5.2电子钟系统PROTUES仿真 (18)第六章调试与功能说明 (19)6.1系统性能测试与功能说明 (19)6.2系统时钟误差分析 (19)6.3软件调试问题及解决 (19)结束语 (20)参考文献(REFERENCES): (21)附录一 (22)源程序清单 (22)第一章绪论1.1数字电子钟的背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字时钟代码

数字时钟代码

数字时钟代码1. 介绍数字时钟是一种常见的显示时间的装置,它通过数字显示屏显示当前的小时和分钟。

本文档将介绍如何编写一个简单的数字时钟代码。

2. 代码实现以下是一个基本的数字时钟代码实现示例:import timewhile True:current_time = time.localtime()hour = str(current_time.tm_hour).zfill(2)minute = str(current_time.tm_min).zfill(2)second = str(current_time.tm_sec).zfill(2)clock_display = f"{hour}:{minute}:{second}"print(clock_display, end="\r")time.sleep(1)代码说明:- `time.localtime()` 函数返回当前时间的结构化对象,包括小时、分钟和秒等信息。

- `str(current_time.tm_hour).zfill(2)` 将小时转换为字符串,并使用 `zfill()` 方法填充到两位数。

- `str(current_time.tm_min).zfill(2)` 和`str(current_time.tm_sec).zfill(2)` 同理处理分钟和秒。

- 使用 f-string 格式化字符串 `clock_display`,将小时、分钟和秒显示为 `` 的形式。

- `print(clock_display, end="\r")` 使用 `\r` 实现覆盖打印,使得时钟在同一行连续显示。

- `time.sleep(1)` 让程序每隔一秒更新一次时间。

请注意,上述代码需要在支持 Python 的环境中运行。

3. 结束语通过以上的代码实现,我们可以编写一个简单的数字时钟。

AT89C2051数字电子钟的设计

AT89C2051数字电子钟的设计

AT89C2051数字电子钟的设计一、设计任务与要求1.通过单片机技术使 LED 数码管输出显示时间。

2. 可通过按键设置闹钟功能,且停闹无须手工操作。

3. 提高计时精度,使计时误差最小。

4. 通过键盘 2 个键,从左到右依次标名为 SET,DOWN,UP,ENTER, 用来修改和设置系统时钟。

二、方案设计与论证其主要设计思想是:整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。

时钟芯片产生时钟信号,利用单片机的 I/O 口传给单片机;并通过 I/O 口实现 LCD 的显示。

系统设有 4 个按键可以对时间星期年月日进行调整,还可以设置闹钟。

本电路以一片AT89C2051 单片机为主体,其显示数据从P3.0-P3.7 口输出,P1 口输出对应的六位位选信号。

电子钟程序设计时使用了 T0 作为计时,T1 为调整时显示用。

只要对程序稍加更改,可以很容易的实现 8 路定时功能。

电子钟只用一个轻触式按键来完成所有的设置。

为了使闹钟音量足够大,采用了 PNP 型三极管 8550 来驱动蜂鸣器,驱动电阻用 1K 的,蜂鸣器为 5V 小型蜂鸣器。

若用 NPN 来驱动蜂鸣器音量要小一点。

LED 数码管位驱动用8850,电子钟采用自制的 3A 开关电源供电。

AT89C205 是一个低电压,高性能 CMOS 8 位单片机,片内含 2k bytes 的可反复擦写的只读 Flash 程序存储器和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大。

但它只有 20 个引脚,15 个双向输入/输出(I/O)端口,其中 P1 是一个完整的 8 位双向 I/O 口,两个外中断口,两个 16 位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。

8位锁存器的工作原理

8位锁存器的工作原理

8位锁存器的工作原理8位锁存器是一种常用的数字电路元件,用于存储和传输8位二进制数据。

它是由8个D触发器组成的,每个D触发器都可以存储一个二进制位。

在工作过程中,8位锁存器根据控制信号的输入和时钟信号的变化来实现数据的存储和传输。

我们来看看8位锁存器的内部结构。

它由8个D触发器组成,每个D触发器有一个数据输入端(D)、时钟输入端(CLK)、复位输入端(RST)和输出端(Q)。

D触发器的输出端连接到相邻一个D触发器的数据输入端,形成一个级联的结构。

这样,当时钟信号发生变化时,数据就会从第一个D触发器传递到第二个D触发器,依次类推,最终传递到第八个D触发器。

在工作过程中,8位锁存器需要根据控制信号来决定是存储数据还是传输数据。

当控制信号为存储(Load)时,数据将会被写入到锁存器中。

具体操作是将要存储的数据输入到每个D触发器的数据输入端,并将控制信号输入到每个D触发器的复位输入端。

当时钟信号发生变化时,控制信号会使得每个D触发器的复位输入端被激活,将数据存储到锁存器中。

当控制信号为传输(Transfer)时,数据将会被传输到下一个级联的锁存器中。

具体操作是将时钟信号输入到每个D触发器的时钟输入端,使得数据从一个D触发器传递到下一个D触发器。

这样,当时钟信号发生变化时,数据就会从第一个D触发器传递到第二个D触发器,依次类推,最终传递到第八个D触发器。

需要注意的是,在传输过程中,控制信号需要保持为传输(Transfer)状态,否则数据将不会被传输到下一个级联的锁存器中。

此外,当控制信号为传输(Transfer)状态时,输入的数据将会被传输到输出端,从而可以被其他电路元件读取和使用。

通过控制信号的切换,8位锁存器可以实现数据的存储和传输,从而在数字电路中起到重要的作用。

它可以用于存储和传输各种类型的数据,例如数字信号、图像数据、音频数据等。

在计算机系统中,8位锁存器常常被用于存储和传输字节数据,从而实现数据的存储和传输。

基于Proteus的单片机控制电子时钟电路设计与仿真

基于Proteus的单片机控制电子时钟电路设计与仿真
方案二:AT89S52是一个低消耗,高性能CMOS8为单片机,片内含4kBytes ISP的可反复撰写1000次的Flash只读程序存储器。主要性能有:与MCS—51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程.
Philips公司以其在嵌入式应用方面的巨大优势,将MCS—51从单片机微型计算机发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩.
嵌入式系统
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展.因此,对单片机的理解可以从单片机微型计算机、单片微控制器延伸到单片机应用系统。
第二章
2.1
单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器、实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入系统集成在一块芯片上。
从节省单片机芯片I/O口和降低能耗的角度出发,本数字电子钟数码管显示选择采用方案二.
3.3
1.电源电路
本数字电子钟设计所需电源电压为直流、电压值大小为5V的电压源。从硬件实物设计简易程度与经费方面考虑,用两节电压值为2.5V干电池与电路电压源引脚相连接即可达到硬件设计要求。即本数字电子钟设计用两节电压值大小2。55V干电池做硬件电路电压源。

八位数码管显示原理

八位数码管显示原理

八位数码管显示原理八位数码管是一种常用的数字显示器件,它由8个LED(发光二极管)组成,可以显示0-9的数字。

在很多电子设备中,我们经常会见到它的身影,比如计算器、电子钟、电子秤等。

那么,八位数码管是如何实现数字显示的呢?接下来,我们就来详细了解一下八位数码管的显示原理。

首先,我们要了解八位数码管的结构。

八位数码管由8个LED组成,每个LED代表一个数字,从左到右依次为a、b、c、d、e、f、g、dp。

其中,a-g分别代表数字的7段显示,dp代表小数点。

通过控制这些LED的亮灭,就可以显示出不同的数字。

接下来,我们来介绍八位数码管的工作原理。

八位数码管的显示原理是通过控制每个LED的亮灭来显示数字。

通过外部的控制电路,可以控制每个LED的通断,从而显示出不同的数字。

比如,要显示数字0,就需要同时点亮a、b、c、d、e、f这6个LED,而要显示数字1,就只需要点亮b、c这两个LED,其余的LED则熄灭。

通过这种方式,就可以实现数字的显示。

在实际应用中,八位数码管通常会与译码器、计数器等电子元件配合使用。

译码器可以将输入的二进制信号转换为对应的LED控制信号,而计数器可以提供递增的信号,从而实现数字的循环显示。

通过这些电子元件的配合,八位数码管可以实现更加丰富的数字显示功能。

除了显示数字外,八位数码管还可以显示一些字母和符号。

通过合理的控制LED的亮灭,可以显示出A-F这几个字母,以及一些特殊符号,比如减号、加号等。

这样,八位数码管就可以满足更多的显示需求。

总的来说,八位数码管是一种常用的数字显示器件,它通过控制LED的亮灭来显示数字、字母和符号。

在实际应用中,它通常与译码器、计数器等电子元件配合使用,以实现更加丰富的显示功能。

希望通过本文的介绍,能够让大家更加深入地了解八位数码管的显示原理。

多功能电子时钟

多功能电子时钟

摘要随着科学技术的不断发展,电子时钟已经成为一种普遍的工艺了。

日常生活中到处可见。

电子时钟的设计有很多种,普遍的电子时钟是基于单片机用汇编语言做成的扩展。

ARM功能也一样且更精确。

本文是详细介绍基于ARM上做成的电子时钟。

这个电子时钟的硬件是用LPC2103板, 8个按键和8个数码管组成的键盘显示板,还有LED灯当成闹铃使用。

此时钟还可以当成秒表使用。

这是一个基于ARM实现多功能的电子时钟。

关键词:ARM;数码显示管;按键;LED灯;目录前言3第一章概述 4 电子时钟概述 4第二章工作原理 5 系统框图 5时钟的工作原理与功能 5第三章硬件电路设计 6 键盘显示板的电路设计 6数码管的电路设计 8键盘电路设计 8蜂鸣器电路的设计 8的电路设计 9第四章软件设计 11 软件设计 11第五章调试过程 18 调试过程 18总结 18附录 18参考文献 20 谢辞 20前言时钟是人们生活中必不可少的一种工具,更是更是在人类生产,生活,学习等多个领域得到广泛的应用。

然而随着时间的推移,尤其是在现在科技的发达,生活水平高,什么都讲究效率的年代。

人们不仅对时钟的精度要求高,而且对时钟的功能的要求也越来越多。

时钟已不仅仅是一种用来显示时间的工具,而是在很多实际应用中它还需要能够实更多的其他功能。

比如日历显示功能,秒表功能,闹钟功能,温度或湿度的测量电压测量等。

时钟数字化给人们的生活带来了极大的方便,而且也大大地扩展了钟表原先的保湿功能。

诸如定时自动报警,按时自动闹铃,定时广播,各种定时电气的自动启用等。

这些功能都是一钟表数字化为基础的。

可以说设计多功能数字时钟的意义已不不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。

在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实施控制的实用系统,从而应用到实际工作与生产中去。

因此,研究数字时钟及扩大其应用,有着非常现实的意义。

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

数电综合实验——数字时钟仿真与调试

数电综合实验——数字时钟仿真与调试

译码器 译码器 译码器时计数器校时电路分频器555振荡器分计数器秒计数器整点报时电路显示部分驱动部分计数部分3.计数、译码、显示电路同理可得到二十四进制计数器,如图1-4所示译码电路可先用BCD-锁存器/七段译码/驱动器74LS47,它可以直接驱动共阳数码管显示器。

译码显示电路如图1-5所示4.校时电路校时电路的作用是当计数器刚接通电源或走时出现误差时,进行时间的校准。

校准电路如图1-6所示。

分为时校准、分校准、秒校准。

5.整点报时电路电路图如1-7所示。

此电路每当“分”计数器和“秒”计数器计到59分50秒时便会自动驱动蜂鸣器,发出报警声,报警时间为10秒。

3、实验心得经过一周的努力,终于完成了该电子时钟的课程设计。

经过这段时间的课程设计,我学到了许多东西,对课本上的内容的理解加深了印象,同时也学会了一种学习的态度。

理论要联系实践,当然实践也离不开理论,由于对课本的内容还不是很熟悉,所以在做这个课程设计前,我先把课本的重点知识复习了一遍,时序逻辑电路、组合逻辑电路等,然后就是到图书馆查找相应的资料,抱着好几本书就在那里认真地查,查的过程中也看到了很多关于CMOS芯片的应用实例。

理论上的知识搞定了,接下来就是开始设计了。

Mutisim这个软件的仿真,给我的印象是简洁实用,很多电路都能在上面先进行仿真,不过我这个题目的核心芯片在仿真上面,出现了一些问题,一些管脚的位置和实际的不一样,仿真调试不成功,于是我就想到,按照理论来讲这是没有错的,为了验证清除,我先将电路进行分模块调试,把每一部分都仔细检查了一遍,最终发现了与仿真的不同,接线是一样的,不过在真实的接线中可行,在仿真中却不行,最大一个不同之处就在于校时模块,虽然仿真是那种接法可行,不过在实际接线中我采用了另外一种接法。

这次课程设计也再次让我看到理论与实践的差别和联系,理论固然重要,然而我们要在实践中发现错误,并解决错误,也提高了自己的动手能力和实际解决问题的能力。

MD890系列GPS数字钟说明书

MD890系列GPS数字钟说明书

MD890系列GPS数字钟使用说明(V2.00)1、概述MD890系列GPS数字钟采用GPS(全球定位系统)作为标准时钟源,具有授时准确、可靠性好、使用方便等特点。

MD890系列GPS数字钟有多种型号,按显示尺寸分有1U钟、2U钟、5(英)寸钟和8(英)寸钟,按功能分有母钟和子钟,具体选型可参照表1,如果客户需要特殊规格,我们也可以按照客户的要求定做。

母钟内含GPS接收模块,接上GPS天线后可接收GPS 信号并解出其时间信息作为标准时间源。

因此,MD890系列GPS钟时间精度高,最高可达12uS。

母钟通过RS232和RS485串行通讯接口向外发布时间信息,RS232用于和微型计算机等外部设备连接。

RS485用于驱动子钟,1台母钟可驱动32个子钟,驱动距离可达1200米,如果子钟数量大于32,驱动距离大于1200米,都可以再进行扩展。

母钟还有1PPS信号输出接口,提供1PPS秒信号标记。

子钟则不含GPS接收模块,依靠接收母钟发布的时间信息,其成本低。

一般来说,在一个时间显示系统只需要一台母钟,其余全部用子钟,这样可以大大降低工程造价。

考虑到母钟和子钟可能相距较远,如果没有可靠接地,各个设备之间可能有电压差。

所以,MD890系列GPS数字钟的RS485接口都经过电气隔离,提高了可靠性,能有效防止各设备之间的电压差造成的损坏。

MD890系列GPS数字钟的(包括母钟和子钟)显示亮度均可调节,共有16级,其状态断电记忆。

表1、GPS钟选型表型号类型说明MD891 母钟19英寸1U标准机箱,内含GPS接收模块,RS232和RS485串行接口,数码管显示尺寸0.36英寸MD893 母钟19英寸2U标准机箱,内含GPS接收模块,RS232和RS485串行接口,数码管显示尺寸2.3英寸MD893 (SLAVE) 子钟19英寸2U标准机箱,RS485串行接口,数码管显示尺寸2.3英寸MD895 母钟长718×高190×深72(mm),内含GPS接收模块,RS232和RS485串行接口,数码管显示尺寸5英寸MD895(SLAVE)子钟长718×高190×深72(mm),RS485串行接口,数码管显示尺寸5英寸MD898 母钟长1020×高240×深80(mm),内含GPS接收模块,RS232和RS485串行接口,数码管显示尺寸8英寸MD898(SLAVE)子钟长1020×高240×深80(mm),RS485串行接口,数码管显示尺寸8英寸2、使用说明2.1、母钟使用说明2.1.1、母钟前后面板说明1U母钟前面板示意图1U母钟后面板示意图图1、母钟的前后面板示意图MD890系列GPS母钟前、后面板如图1所示,以MD891为例,前面板上有GPS指示灯、时间显示窗和“初始化”(INIT)、“模式”(MODE)、“加”(+)和“减”(-)4个按键。

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序
一、程序概述
本程序使用单片机AT89S52,通过数码管(8位)显示当前时间,支持12小时制和24小时制切换,精度为秒。

二、程序实现
程序首先定义了数码管的连接方式和每个数字的位图数据,然后定义了时间变量和函数,包括:
1.初始化函数:设置数码管端口和时钟计数器的计数方式。

2.读时钟函数:读取时钟计数器及寄存器,返回当前时间的小时、分钟和秒数。

3.显示函数:将当前时间转化为8个数码管显示的位图数据,用数字和符号映射表将数字和符号的位图数据与数码管连接方式对应起来,输出到数码管上。

在主函数中,程序初始化后循环执行读时钟函数和显示函数,实现时钟的实时显示。

三、程序特点
1.采用8位数码管显示,时间更加直观。

2.支持12小时制和24小时制切换,适用于不同场景。

3.实现精度为秒的实时显示,更加准确。

四、程序优化
1.增加闹钟功能,提醒用户打卡或者起床。

2.加入温度传感器模块,实现显示温度的功能。

3.优化显示效果,增加字体和颜色等选项。

五、程序应用
本程序可应用于家庭、办公室、学校等场合,用于显示时间,提醒用户合理安排时间和时间管理,也可作为DIY电子制作的教学和实验材料,提高学生的动手实践能力和电子信息技术水平。

单片机课程设计 多功能数字钟的设计

单片机课程设计 多功能数字钟的设计

摘要电子钟在日常生活中最常见,应用也最广泛。

作为一种定时工具被广泛的使用在生产生活的各方面。

人类最初依靠太阳的角度来进行定时,所以受天气的影响比较大,为了克服依靠自然现象定时的缺点人们发明的机器钟表,电子钟表一系列的定时工具。

而电子钟表具有价格便宜,质量轻,定时误差小等优点,被广泛的应用在生产,生活的各个方面。

由于电子钟的能提供精确定时又被广泛的运用在测量之中。

此电子钟采用单片机进行设计,8 段数码通过单片机进行刷新显示。

其设计的产品除了单片机之外没有用到其他集成块,使其成本可以大大降低,而其便于维修。

成品可以被广泛的用于公共场所,匾额装饰,以及教案等方面。

本文主要就是设计一款数字钟, AT89C51 单片机为核心,以配备 LED 显示模块、键盘输入模块、等功能模块。

数字钟采用 24 小时制方式显示时间,定时信息以及年月日显示等功能。

文章的核心主要从硬件设计和软件编程两个大的方面。

1目录摘要...... 1 1 设计要求及方案确定...... 3 1.1 设计要求...... 3 1.2 方案确定...... 3 2 硬件电路设计及描述...... 3 2.1 确定元器件的型号及参数...... 3 2.1.1 单片机的选择...... 3 2.1.2 AT89C51 单片机的介绍...... 5 2.1.3 LED 数码管显示模块...... 7 2.1.4 键盘输入模块 (8)2.1.5 闹铃模块...... 8 2.1.6 电源电路...... 8 2.1.7 蜂鸣器的介绍...... 9 2.2 硬件电路图 (10)3 软件设计...... 10 3.1 程序结构设计...... 10 3.1.1 程序结构...... 10 3.1.2 主要程序模块清单...... 11 3.2 程序...... 14 4 参考文献...... 17 结束语 (18)211.1 设计要求设计要求及方案确定利用单片机设计制作具有下列功能的数字钟:①自动计时,由 6 位 LED 显示器显示时、分和秒②具备调整功能,可以直接由 0~9 数字键设置当前时间;③具备定时闹钟功能。

基于AT89C51单片机的数字电子时钟设计

基于AT89C51单片机的数字电子时钟设计

/安徽工程大学机电学院单片机课程设计题目:数字电子时钟设计指导老师:***制作人员:范超学号:************班级:自动化2132日期:7月13日-7月24日总评成绩:课程任务设计书设计题目:数字电子时钟的设计设计任务:1.设计一款时,分,秒可调数字电子时钟可整点报时;2.设计三个按键K1,K2和K3,用于调节时钟的时间;3.用8个、七段LED数码管作为显示设备,开机显示00-00-00;本设计采用AT89C51单片机为核心器件。

具有电子钟显示,时间调整,整点报时等功能。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

根据60秒为一分、60分为1小时的计数周期,构成秒、分、时的计数,实现计时的功能。

而且能显示清晰、直观的数字符号。

针对数字钟会产生误差的现象,就设计有校准时间的功能。

AT89C51单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为24时00分00秒,另外应有校时功能。

电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。

用晶体振荡器产生时间标准信号,这里采用石英晶体振荡器。

根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个24进制(时)的计数器。

显示器件选用LED八段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

关键字:Proteus,Keil uVision,AT89C51,电子钟,整点报时摘要 (3)第1章概述 (5)1.1 设计背景 (5)1.2系统方案论证与设计 (5)第2章系统硬件设计 (7)2.1 系统总电路的设计 (7)2.1.1系统的总框图 ................................................................................................2.1.2芯片的选择 (7)2.2最小系统设计 (9)2.2.1时钟电路的选择与设计 (10)2.2.2复位电路的选择与设计 .............................................. 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
keybuff[3]=(keybuff[3]<<1)|KeyDecmin;
for(j=0;j<4;j++)
{
if((keybuff[j]&0x0F)==0x00)
{
KeySta[j]=0;
}
else if((keybuff[j]&0x0F)==0x0F)
{
KeySta[j]=1;
}
}
}
void InterruptTime() interrupt 1
LedBuff[5]=LedChar[sec%10];
LedBuff[6]=LedChar[10];
}
}
void ExchangeTime()
{
if(flag==1)
{
flag=0;
sec++;
if(sec>=60)
{
sec=0;
min++;
if(min>=60)
{
min=0;
hour++;
if(hour>=24)
}
}
}
void KeyAction()
{
if(k==0)
{
hour++;
if(hour>=24)
hour=0;
}
else if(k==1)
{
hour--;
if(hour==-1)
hour=23;
}
else if(k==2)
{
min++;
if(min>=60)
{min=0;
hour++;
if(hour>=24)
{
static unsigned int cnt=0;
TH0=0xFC;
TL0=0x67;
cnt++;
if(cnt>=1000)
{
cnt=0;
flag=1;
}
LedScan();
KeyScan();
}
void int0_inter() interrupt 0
{
keyflag=~keyflag;
}
case 5:P0=0x5F;P1=LedBuff[6];i++;break;
case 6:P0=0x3F;P1=LedBuff[4];i++;break;
case 7:P0=0x1F;P1=LedBuff[5];i=0;break;
}
}
void KeyScan()
{
unsigned char j;
void ExchangeTime();
void KeyDriver();
void KeyAction();
void main()
{
EA = 1;
IT0 = 1;
TMOD = 0x01;
TH0 = 0xFC;
=1;
TR0=1;
while(1)
{
if(keyflag)
case 1:P0=0xDF;P1=LedBuff[1];i++;break;
case 2:P0=0xBF;P1=LedBuff[6];i++;break;
case 3:P0=0x9F;P1=LedBuff[2];i++;break;
case 4:P0=0x7F;P1=LedBuff[3];i++;break;
unsigned char k=0;//用于KeyAction和KeyDriver
bit flag=0;
bit keyflag=1;
sbit KeyAddhour = P2^4;
sbit KeyDechour = P2^5;
sbit KeyAddmin = P2^6;
sbit KeyDecmin = P2^7;
hour=0;
}
}
else if(k==3)
{
min--;
if(min==-1)
{
min=59;
hour--;
if(hour==-1)
hour=23;
}
}
else {}
}
void LedScan()
{
static unsigned char i=0;
P1=0x00;
switch(i)
{
case 0:P0=0xFF;P1=LedBuff[0];i++;break;
{
ExchangeTime();
}
else
{
KeyDriver();
}
LedBuff[0]=LedChar[hour/10];
LedBuff[1]=LedChar[hour%10];
LedBuff[2]=LedChar[min/10];
LedBuff[3]=LedChar[min%10];
LedBuff[4]=LedChar[sec/10];
static unsigned char keybuff[4]={0xFF,0xFF,0xFF,0xFF};
keybuff[0]=(keybuff[0]<<1)|KeyAddhour;
keybuff[1]=(keybuff[1]<<1)|KeyDechour;
keybuff[2]=(keybuff[2]<<1)|KeyAddmin;
hour=0;
}
}
}
}
void KeyDriver()
{
static unsigned char backup[4]={1,1,1,1};
for(k=0;k<4;k++)
{
if(backup[k]!=KeySta[k])
{
if(backup[k]!=0)
{
KeyAction();
}
backup[k]=KeySta[k];
unsigned char LedBuff[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char KeySta[]={0xFF,0xFF,0xFF,0xFF};
unsigned char hour=0;
unsigned char min=0;
unsigned char sec=0;
5
8位共阴数码管,外部中断进入调时模式,4个按键实现:时+;时-;分+;分-。分享给大家。
参考教材——《手把手教你学51单片机》C语言版
#include<reg51.h>
unsigned char code LedChar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//共阴
相关文档
最新文档