定时闹钟设计实习报告

合集下载

定时器的设计实验报告

定时器的设计实验报告

定时器的设计实验报告1. 引言定时器是一种常见的计时装置,广泛应用于各个领域,如电子设备、工业自动化、交通运输等。

本实验通过设计一个基于脉冲计数的定时器电路,旨在研究其工作原理,探索其在实际应用中的可行性和性能表现。

2. 原理及设计2.1 工作原理脉冲计数定时器是一种通过计数器累加输入脉冲信号的数量来实现计时的装置。

其基本原理是利用脉冲信号的频率和计数器的计数速度之间的关系,通过计数器的累加值计算时间间隔。

2.2 设计步骤1. 确定定时器的时间基准。

时间基准可以选择外部脉冲输入或者由稳定的晶振产生。

2. 设计计数器的位数。

根据计时的范围确定计数器的位数,以保证计数范围的覆盖。

3. 计算计数器的计数速度。

根据计时的最大时间间隔和计数器的位数,计算所需的输入脉冲频率。

4. 根据计数器的位数和计数速度,选择合适的计数器芯片。

5. 配置计数器芯片的工作模式和输入脉冲的触发方式。

6. 连接电路并验证设计是否符合要求。

2.3 接线图_______________input > Counter > output________ Display_________3. 实验结果及分析3.1 实验设置- 输入脉冲频率:1kHz- 计数器位数:4位- 计数器芯片:74HC163- 时间基准:晶振(频率为10MHz)3.2 实验结果在实验过程中,我们通过将输入脉冲接到74HC163计数器芯片的CP 输入端,将74HC163的输出接到数码显示器,观察并记录实时的计数结果。

在实验进行中,我们发现计数器芯片的最大计数范围是15(4位二进制),对应的时间间隔为15ms(1kHz输入脉冲时)。

3.3 实验分析通过实验结果可以看出,该定时器电路能够准确计时,实际测量的时间结果与理论计算非常接近。

由于74HC163计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。

然而,该设计存在一个缺点,即计数器位数的限制。

由于计数器位数的限制,导致定时的最大时间间隔受到了限制。

定时闹钟设计实习报告(打印版)

定时闹钟设计实习报告(打印版)

中国电子科技大学实习总结报告实习类型生产实习实习单位电子科学学院实习基地实习起止时间 201X年7月X日至202X年6月X日指导教师所在院(系)电子科学学院班级电信X班学生姓名学号202X年 6月 20日定时闹钟设计一、课题目的现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

首基、典花、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

单片机作为应用最广泛的控制系统之一,具有体积小,易于控制,价格便宜,安全可靠等等优良的性能而被广泛的关注。

无论是小到儿童玩具,到工业控制系统,大到航天航空系统的设计与操作之中,随处可见单片机的踪影。

大学电子专业,电气专业,通信等专业开设单片机课程,对人才的培养无疑是有着重大的意义的。

本次课程设计的题目是定时闹钟设计,通过课程设计使学生更进一步掌握单片机原理与应用课程的有关知识,提高用C语言编程的能力,并将所学的内容加以综合;通过查阅资料,了解所学知识的应用情况;通过课程设计全面系统的了解单片机的设计方法及设计步骤,了解微机系统的基本组成及开发设计过程中需要注意的问题。

1、设计目的及意义(1)设计目的1)掌握52系列单片机的基本硬件结构及工作原理;2)掌握52系列单片机的汇编语言及基本程序设计方法;3)学习并掌握使用52系列单片机开发控制系统的基本步骤及方法。

(2)设计意义学习单片机最重要的方法就是实现理论与实践相结合的学习方法。

有些工程师说过,能利用单片机设计并实现电子时钟,技能基本上掌握单片机的使用。

所以设计电子时钟的真正目的不在于设计出成品而投入使用,而是在于熟悉单片机的基本功能与编程来实现单片机的控制。

作为大学生,以后出去就业或是继续学业,都要有一定的动手能力和实践能力,而这,便是电子计时器设计的另一个目的。

定时叫醒器设计报告

定时叫醒器设计报告

基础工程设计报告一、引言1、本课题属于大学生应掌握的自主研究课题。

属模电,数电基本知识范围,对大学生进一步掌握相关知识有重要作用;2、设计的具体任务:采用压电蜂鸣器发出定时叫醒声响,具有自动清零及调节叫醒时间功能。

3、实验方法和设计;:1)计时器为递减计时,时间间隔为1秒。

递减到零时蜂鸣器报警、发光二极管亮灯;2)具有99以内任意选定进制的定时功能,设置有外部操作开关,控制计时器的显示预置数,直接清零,暂停/继续功能。

二、正文1、系统组成(系统框图):定时叫醒器的总体参考方案框图如下图所示。

它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路(简称控制电路)等五个模块组成。

其中计数器和控制电路是系统的主要模块。

计数器完成任意定时计时功能,而控制电路完成计数器的显示预置数、直接清零、暂停/继续计数,译码显示电路的显示定时时间到报警等功能。

定时叫醒器设计总体框图秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不太高,故电路可采用555集成电路或由TTL与非门组成的多谐振荡器构成。

译码显示电路由74LS48和共阴极七段LED显示器组成。

报警电路在实验中可用发光二极管和鸣蜂器代替。

主体电路:两计数芯片的置数端和清零端分别共用一个开关,开始后,定时叫醒器秒的置数端无效,倒数计时器开始进行倒计时,逐秒倒计到零。

选取“00”这个状态,通过组合逻辑电路给出截断信号,让该信号与时钟脉冲在与门中将时钟截断,使计时器在计数到零时停住。

2、系统方案论证:分析可知,计数器和控制电路是系统的主要部分。

计数器完成计时功能,而控制电路完成计数器的显示预置数、直接清零、暂停/继续计数、译码显示电路的显示、定时时间到报警等功能。

为了满足系统的设计要求,在设计控制电路时,应正确处理各个信号之间的时序关系。

在操作直接清零开关时,要求计数器清零。

当显示预置数开关闭合、直接清零开关断开时,控制电路应封锁时钟信号CP,同时计数器完成置数功能,译码器显示电路显示预设值;当显示预置数开关断开时,计数器开始计数;当暂停/继续开关拨在暂停位置上时,计时器停止计数,处于保持状态;当暂停/连续开关拨在连续时,计数器继续递减计数。

大学数字钟实训报告

大学数字钟实训报告

一、摘要本次实训旨在通过设计和制作一个数字时钟,加深对数字电子技术理论知识的理解,提高动手实践能力。

在实训过程中,我们学习了数字钟的原理、电路设计、元件选择、焊接调试等技能。

最终,我们成功制作出了一个具有时、分、秒显示功能的数字时钟,并通过实际运行验证了其功能。

二、实训目的1. 掌握数字电子钟的原理和设计方法。

2. 熟悉常用数字电路元件的功能和特性。

3. 提高动手实践能力,培养创新意识。

4. 增强团队协作精神,提高沟通能力。

三、实训内容1. 数字钟原理数字钟是一种将时间信息转换为数字信号,并通过数码管显示的电子计时设备。

其基本原理是利用石英晶体振荡器产生稳定的时钟信号,通过计数器进行计数,并通过译码器和数码管显示时间。

2. 电路设计本次实训采用以下电路设计:(1)时钟信号产生:利用555定时器产生1Hz的时钟信号。

(2)秒计数器:采用CD4060计数器,实现秒的计数。

(3)分计数器:采用CD4518计数器,实现分的计数。

(4)时计数器:采用CD4518计数器,实现时的计数。

(5)译码器:采用CD4511译码器,将计数器的输出信号转换为数码管所需的信号。

(6)数码管显示:采用共阴极七段数码管,显示时、分、秒。

3. 元件选择本次实训选用的元件如下:(1)时钟信号产生:555定时器、电阻、电容。

(2)计数器:CD4060、CD4518。

(3)译码器:CD4511。

(4)数码管显示:共阴极七段数码管。

(5)其他元件:电阻、电容、电位器、晶体管、开关等。

4. 焊接调试(1)按照电路图进行元件焊接。

(2)检查电路连接是否正确,并进行初步调试。

(3)调整电位器,使数码管显示正确的时间。

(4)测试电路功能,确保时、分、秒显示准确。

四、实训总结1. 通过本次实训,我们掌握了数字电子钟的原理和设计方法,熟悉了常用数字电路元件的功能和特性。

2. 在实训过程中,我们提高了动手实践能力,培养了创新意识。

3. 团队协作精神得到了加强,沟通能力得到提高。

安卓设计闹钟报告心得

安卓设计闹钟报告心得

安卓设计闹钟报告心得一、引言随着现代社会的快节奏生活,人们面临着越来越多的压力和时间管理的挑战。

而作为时间管理的工具之一,闹钟在我们的日常生活中扮演着重要的角色。

作为一名安卓设计师,我受命设计一款优秀的安卓闹钟应用。

在这个过程中,我不仅学到了很多设计技巧,更体会到了用户体验设计的重要性。

以下是我在设计闹钟应用过程中的心得体会。

二、确定用户需求在设计任何一款应用之前,第一步就是明确用户的需求。

通过调研和用户访谈,我们得出了以下主要用户需求:1. 简洁易用:用户希望闹钟应用的界面简洁明了,操作简单,能够快速设置和关闭闹钟。

2. 自定义功能:用户希望能够自定义闹钟的音乐、音量和振动模式,以适应不同的个性化需求。

3. 多种提醒方式:为了避免单一音乐提示的单调,用户希望闹钟应用能够提供多种提醒方式,如铃声、震动等。

4. 可靠性:用户对闹钟应用的准确性和稳定性有较高的要求,不容忽视任何一个闹钟事件。

5. 智能化:用户期望闹钟应用能够提供智能化的功能,如自动调整闹钟提醒时间、智能识别用户作息规律等。

三、界面设计基于用户需求,我们制定了简洁明了的界面设计原则。

在设计过程中,我遵循了以下几个原则:1. 一目了然:界面要简洁明了,用户一眼能够看清楚当前设定的闹钟时间,以及相关的设置选项。

2. 直观易用:界面的操作要符合用户的习惯,设置按钮要放置在直观的位置,以便用户快速找到和操作。

3. 美观大方:界面要以简约、现代的风格为主,颜色搭配上要清晰、自然,不拥挤且舒适的排版。

4. 自适应布局:考虑到不同的安卓手机尺寸和屏幕比例,界面的布局要能够自动适应不同的屏幕。

同时,为了提升用户体验,我还加入了一些特色设计:- 睡眠模式:应用内置了睡眠模式,用户可以在晚上设定睡眠时间,应用会在睡眠时间内自动关闭闹钟和关闭提醒通知。

- 智能推荐:根据用户的作息规律和设置的需求,应用可以智能推荐合适的闹钟时间。

- 背景音乐:用户可以选择自己喜欢的音乐作为闹钟的背景音乐,以更好地开始一天。

多功能闹钟设计实验报告

多功能闹钟设计实验报告

多功能闹钟设计实验报告
一、实验目的
1、熟悉实验装置,学会选用其功能电路,连接成实验需要的系统。

2、DS18b20温度传感器,DS1302时钟芯片,LCD1602的应用
二、实验内容
实验要求:1)设计能支持年、月、日、星期、时、分、秒的时钟,时钟有时间调整功能
2)提供固定时间点的闹钟报时功能;
3)具有温度测温及显示功能
4)以上数据要求液晶显示
三、流程图
初始化液晶,定时器 获取温度和时间
初始化18b20,并转化温度,存入数组
初始化1302并用RAM 存取定时时间 蜂鸣器响
按下S4键

正常显示年月日,时间,温度 蜂鸣器停止
是 根据S1按键次数选择要更改的数字 闹钟到时 S4按八次 按下S2 数字加一 键盘扫描
S1是否按下 是
否 按下S3
数字减
一。

自动报时数字钟实训报告

自动报时数字钟实训报告

一、实训目的本次实训旨在通过制作一个自动报时数字钟,加深对数字电路原理的理解,提高电子制作技能,并学会使用相关电子元件和设备。

通过本次实训,我们期望达到以下目标:1. 掌握数字电子钟的基本工作原理和电路设计方法。

2. 熟悉数字电路元件的识别、测试和焊接技术。

3. 学会使用数字电路测试仪器,如示波器、逻辑分析仪等。

4. 提高团队合作能力和问题解决能力。

二、实训环境实训地点:电子实验室实训设备:数字电子钟制作套件、万用表、示波器、逻辑分析仪、焊接工具、电源等。

三、实训原理数字电子钟主要由以下几个部分组成:时钟电路、译码电路、显示电路和报时电路。

1. 时钟电路:由晶振、分频器等组成,产生稳定的时钟信号。

2. 译码电路:将时钟电路产生的时钟信号转换为可以驱动显示器的信号。

3. 显示电路:由数码管组成,用于显示时间。

4. 报时电路:在设定的时间触发报时功能,发出声音或灯光提示。

四、实训过程1. 电路设计:根据实训要求,设计数字电子钟的电路图,包括时钟电路、译码电路、显示电路和报时电路。

2. 元件准备:根据电路图,准备所需的电子元件,如晶振、分频器、译码器、数码管、报时模块等。

3. 电路焊接:按照电路图,将元件焊接在电路板上,注意焊接质量,避免短路或虚焊。

4. 电路调试:使用万用表测试电路的电压、电流等参数,确保电路正常工作。

5. 报时功能调试:设置报时时间,测试报时功能是否正常。

6. 测试与验证:使用示波器、逻辑分析仪等测试仪器,对电路进行测试,确保电路功能正常。

五、实训结果经过调试,我们成功制作了一个自动报时数字钟。

该数字钟可以显示时、分、秒,并在设定的时间发出声音或灯光提示。

六、实训总结1. 技术收获:通过本次实训,我们掌握了数字电子钟的基本工作原理和电路设计方法,学会了使用相关电子元件和设备,提高了电子制作技能。

2. 团队合作:在实训过程中,我们进行了团队合作,分工合作,共同完成了实训任务。

3. 问题解决:在实训过程中,我们遇到了一些问题,如电路故障、元件故障等,通过查阅资料、讨论和请教老师,我们成功解决了这些问题。

闹钟实验报告

闹钟实验报告

阿坝师专电子信息工程系单片机与接口技术课程设计总结报告设计题目:带有LCD的定时闹钟学生姓名:翟华学号:20113043系别:电子信息工程系专业:计算机控制技术指导教师:莫建麟2012年12月16日题目带有LCD的定时闹钟专业计算机控制技术学号 20113043 姓名翟华主要内容:设使用89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD 时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可以使用。

基本要求:.字符型LCD(16*2)显示器.显示格式“时时分分”。

.由LED闪动来做秒计数表示。

.一旦时间到侧发动声响,同时继电器启动,可以扩充控制家电开启和关闭。

.程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00 00”,按下操作键K1-k4动作如下:(1)K1—设置现在的时间。

(2)K2—显示闹钟设置的时间。

(3)K3—设置闹铃的时间。

(4)K4—闹铃ON/OFF的状态设置,设置ON时连续三次发出“哗”的一声,off置为哗的一声。

设置当前时间或闹铃时间如下:(1)K1—时的调整。

(2)K2—分的调整。

(3)K3—设置完成。

(5)OFF发出“哗”K4---闹铃时间到时,发出一阵声响,按下本键可以停止声响。

除了显示当前时间的功能外,还可以扩充如下功能; .增加秒表计数。

.闹铃时间到侧产生音乐声。

.增加减计数功能。

.增加多组计数的功能。

参考文献郭天祥 51单片机C语言教程-入门。

余发山单片机原理及应用技术。

中国矿业大学出版社。

涂世亮,张友德。

单片微机控制技术。

清华大学出版社。

一.设计本电子定时闹钟的目的和意义以单片机为核心的数字时钟是很有社会意义和社会价值的。

钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能。

1.1 本LCD电子闹钟的特点和功能介绍数字钟介绍时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。

闹钟设计实验报告

闹钟设计实验报告

闹钟设计实验报告院系: 计算机与通信学院专业: 计算机科学与技术班级: 01154 班姓名: 伍晨曦(13号)指导老师: 杨华一.实验目的:1.学会VHDL语言的并发执行的特点;2.熟悉VHDL的一些语法;3.初步了解VHDL的编程思路;二.内容实验:一个电子钟.能用数码管显示时间.可以更改时间.可以闹铃.. 具有电子钟得功能.即可以正确的显示时间,可以更改时间.可以在规定的时间内闹铃,闹铃的时间为1分钟.闹铃的时间可调.三.实验原理根据VHDL语言编制底层模块,采用基本的图像法来完成顶层的布线,利用VHDL语言编制模块可以省去很多复杂的连线及列写复杂的逻辑函数关系。

其中的时间模块用计数器来模拟.一个24位计数器来模拟小时,两个60位计数器来模拟分钟和秒.其中闹铃里要加一个寄存器来存贮闹铃的设定.显示模块用数码管来显示.按照本课程设计要求及提供的数字逻辑系统EDA实验设备,思路如下:设计好小时、分钟、秒钟、按键、寄存器、扫描、闹铃、七段码、二选一、顶层电路的设计。

这些模块采用VHDL语言设计,然后生成模块存放在库中供以后调用。

采用图形法来设计顶层模块并编译、仿真并下载,生成大模块已完成课程要求。

四:源程序的实现1.小时的模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk :in std_logic;ho2,ho1 :out std_logic_vector(3 downto 0));end hour;architecture structure of hour issignal h2_temp :std_logic_vector(3 downto 0);signal h1_temp :std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk'event and clk='1') thenif(h2_temp="0010" and h1_temp="0011")thenh2_temp<="0000";h1_temp<="0000";elsif(h1_temp="1001")thenh1_temp<="0000";h2_temp<=h2_temp+1;elseh1_temp<=h1_temp+1;end if;end if;ho2<=h2_temp;ho1<=h1_temp;end process;end structure;波形图2.分钟的模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk :in std_logic;cn :out std_logic;ho2,ho1 :out std_logic_vector(3 downto 0));end minute;architecture structure of minute issignal h2_temp :std_logic_vector(3 downto 0); signal h1_temp :std_logic_vector(3 downto 0); beginprocess(clk)beginif(clk'event and clk='1') thenif(h2_temp="0101" and h1_temp="1001")thenh2_temp<="0000";h1_temp<="0000";cn<='1';elsif(h1_temp="1001")thenh1_temp<="0000";h2_temp<=h2_temp+1;elseh1_temp<=h1_temp+1;cn<='0';end if;end if;ho2<=h2_temp;ho1<=h1_temp;end process;end structure;波形图3.秒钟的模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(clk :in std_logic;cn :out std_logic;ho2,ho1 :out std_logic_vector(3 downto 0));end second;architecture structure of second issignal h2_temp :std_logic_vector(3 downto 0);signal h1_temp :std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk'event and clk='1') thenif(h2_temp="0101" and h1_temp="1001")thenh2_temp<="0000";h1_temp<="0000";cn<='1';elsif(h1_temp="1001")thenh1_temp<="0000";h2_temp<=h2_temp+1;elseh1_temp<=h1_temp+1;cn<='0';end if;end if;ho2<=h2_temp;ho1<=h1_temp;end process;end structure;波形图和分钟的一样.4.按键设计的模块:library ieee;use ieee.std_logic_1164.all;entity set isport(clk :in std_logic;hour,minute,second,bar:in std_logic;c1,c2 :in std_logic;sett :in std_logic;setring,setb :out std_logic;seth1,setm1,sets1 :out std_logic;seth,setm,sets :out std_logic);end set;architecture structure of set isbeginprocessbeginif(sett='0')thenseth1<=c2;setm1<=c1;sets1<=clk;seth<=bar and clk and hour;setm<=bar and clk and minute;sets<=bar and clk and second;setring<=bar and clk;setb<=bar;elsesets1<=second and clk;seth1<=hour and clk;setm1<=minute and clk;end if;end process;end structure;5.寄存器模块:library ieee;use ieee.std_logic_1164.all;entity regist isport(hour1,hour2,minute1,minute2,second1,second2 :in std_logic_vector(3 downto 0);set:in std_logic;outh1,outh2,outm1,outm2,outs1,outs2 :out std_logic_vector(3 downto 0) --output :out std_logic);end regist;architecture structure of regist isbeginprocess(set)beginif(set'event and set='1')thenouth1<=hour1;outh2<=hour2;outm1<=minute1;outm2<=minute2;outs1<=second1;outs2<=second2;end if;end process;end structure;波形图:6.闹铃模块:library ieee;use ieee.std_logic_1164.all;entity ring isport(hour1,hour2,minute1,minute2,second1,second2 :in std_logic_vector(3 downto 0);set :in std_logic;h1,h2,m1,m2,s1,s2 :in std_logic_vector(3 downto 0);output :out std_logic;oh1,oh2,om1,om2,os1,os2 :out std_logic_vector(3 downto 0));end ring;architecture structure of ring isbeginprocessbeginoh1<=hour1;oh2<=hour2;om1<=minute1;om2<=minute2;os1<=second1;os2<=second2;if(set='1')thenoutput<='0';elsif(hour1=h1 and hour2=h2 and minute1=m1 and minute2=m2)thenoutput<='1';elseoutput<='0';end if;end process;end structure;波形图:7.扫描电路:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity m1 isport(clk :in std_logic;hour1,hour2,minute1,minute2,second1,second2:in std_logic_vector(3 downto 0);q :out std_logic_vector(5 downto 0);output :out std_logic_vector(3 downto 0));end m1;architecture structure of m1 istype state is(s0,s1,s2,s3,s4,s5);signal presentstate :state;signal nextstate :state;beginswitchtonextstate :process(clk)beginif clk'event and clk='1' thenpresentstate<=nextstate;end if;end process switchtonextstate;changestate :process(presentstate)begincase presentstate iswhen s0=>nextstate<=s1;q<="000001";output<=hour2;when s1=>nextstate<=s2;q<="000010";output<=hour1;when s2=>nextstate<=s3;q<="000100";output<=minute2;when s3=>nextstate<=s4;q<="001000";output<=minute1;when s4=>nextstate<=s5;q<="010000";output<=second2;when s5=>nextstate<=s0;q<="100000";output<=second1;when others=>nextstate<=s0;q<="100000";output<=second1;end case;end process;end structure;波形图:8.二选一电路:library ieee;use ieee.std_logic_1164.all;entity twotoone isport(a,b :in std_logic_vector(3 downto 0);e,f :in std_logic_vector(5 downto 0);set :in std_logic;m :out std_logic_vector(5 downto 0);c :out std_logic_vector(3 downto 0));end twotoone;architecture structure of twotoone isbeginprocessbeginif(set='1')thenc<=a;m<=e;elsec<=b;m<=f;end if;end process;end structure;波形图:9.七段码:library ieee;use ieee.std_logic_1164.all;entity seg_7 isport(input :in std_logic_vector(3 downto 0);segment :out std_logic_vector(6 downto 0));end seg_7;architecture structure of seg_7 isbeginprocess(input)begincase input iswhen "0000" => segment <= "0111111";when "0001" => segment <= "0000110";when "0010" => segment <= "1011011";when "0011" => segment <= "1001111";when "0100" => segment <= "1100110";when "0101" => segment <= "1101101";when "0110" => segment <= "1111101";when "0111" => segment <= "0100111";when "1000" => segment <= "1111111";when "1001" => segment <= "1101111";when others => segment <= "0000000";end case;end process;end structure;10.顶层模块:library ieee;use ieee.std_logic_1164.all;entity clock isport(clk :in std_logic;hour1,minute1,second1 :in std_logic;bar,cp,sett :in std_logic;ring1 :out std_logic;e :out std_logic_vector(5 downto 0);segment :out std_logic_vector(6 downto 0));end clock;architecture structure of clock iscomponent setport(clk :in std_logic;hour,minute,second,bar:in std_logic;c1,c2 :in std_logic;sett :in std_logic;setring,setb :out std_logic;seth1,setm1,sets1 :out std_logic;seth,setm,sets :out std_logic);end component;component hourport(clk :in std_logic;ho2 :out std_logic_vector(3 downto 0);ho1 :out std_logic_vector(3 downto 0));end component;component minuteport(clk :in std_logic;cn :out std_logic;ho2,ho1 :out std_logic_vector(3 downto 0));end component;component secondport(clk :in std_logic;cn :out std_logic;ho2,ho1 :out std_logic_vector(3 downto 0));end component;component registport(hour1,hour2,minute1,minute2,second1,second2 :in std_logic_vector(3 downto 0);set :in std_logic;outh1,outh2,outm1,outm2,outs1,outs2 :out std_logic_vector(3 downto 0));end component;component ringport(hour1,hour2,minute1,minute2,second1,second2 :in std_logic_vector(3 downto 0);set :in std_logic;h1,h2,m1,m2,s1,s2 :in std_logic_vector(3 downto 0);output :out std_logic;oh1,oh2,om1,om2,os1,os2 :out std_logic_vector(3 downto 0));end component;component m1port(clk :in std_logic;hour1,hour2,minute1,minute2,second1,second2:in std_logic_vector(3 downto 0);q :out std_logic_vector(5 downto 0);output :out std_logic_vector(3 downto 0));end component;component twotooneport(a,b :in std_logic_vector(3 downto 0);e,f :in std_logic_vector(5 downto 0);set :in std_logic;m :out std_logic_vector(5 downto 0);c :out std_logic_vector(3 downto 0));end component;component seg_7port(input :in std_logic_vector(3 downto 0);segment :out std_logic_vector(6 downto 0));end component;signal w1,w2,cn2,cn1,cn0 :std_logic;signal h2,h1,a2,a1,s2,s1 :std_logic_vector(3 downto 0);signal h20,h10,m20,m10,s20,s10 :std_logic_vector(3 downto 0);signal h21,h11,m21,m11,s21,s11 :std_logic_vector(3 downto 0);signal h22,h12,m22,m12,s22,s12 :std_logic_vector(3 downto 0);signal q0,q1 :std_logic_vector(5 downto 0);signal p0,p1 :std_logic_vector(3 downto 0);signal c :std_logic_vector(3 downto 0);signal c1,c2 :std_logic;signal sh,sm,ss :std_logic;signal cnm,cns :std_logic;beginu0: set port map(clk,hour1,minute1,second1,bar,c1,c2,sett,w1,w2,cn2,cn1,cn0,sh,sm,ss);u1: hour port map(sh,h20,h10);u2: hour port map(cn2,h2,h1);u3: minute port map(cn1,c2,a2,a1);u4: minute port map(sm,cnm,m20,m10);u5: second port map(cn0,c1,s2,s1);u6: second port map(ss,cns,s20,s10);u7: regist port map(h10,h20,m10,m20,s10,s20,w1,h11,h21,m11,m21,s11,s21);u8: ring port map(h11,h21,m11,m21,s11,s21,w2,h1,h2,a1,a2,s1,s2,ring1,h12,h22,m12,m22,s12,s22);u9: m1 port map(cp,h12,h22,m12,m22,s12,s22,q0,p0);u10: m1 port map(cp,h1,h2,a1,a2,s1,s2,q1,p1);u11: twotoone port map(p0,p1,q0,q1,w2,e,c);u12: seg_7 port map(c,segment);end structure;顶层电路图:五.心得体会:1.进一步熟悉了VHDL的编程思想.2.做实验细心,发挥想象,充分运用所学知识。

创新实训报告(数字闹钟)

创新实训报告(数字闹钟)

创新设计实训报告题目数字闹钟系别物理与电子工程学院年级Y07 专业电子信息工程班级电子信息072 学号Y101072学生姓名指导教师职称讲师设计时间2010.9目录一、实验名称及其设计方案 (3)实验名称: (3)实验要求: (3)具体设计方案: (3)二、硬件知识简介 (4)51单片机应用知识简介: (4)原理图 (4)程序 (8)参考文献 (14)一、实验名称及其设计方案实验名称:数字闹钟。

设计一个由按键、数码管、蜂鸣器、单片机构成的数字闹钟实验要求:(1)数码管正确显示时、分、秒;(2)可以切换12小时制和24小时制;(3)可以设置当前时间;(4)具有闹钟功能,闹钟时刻可以设置;具体设计方案:(1)利用单片机P1口运作数码管正确显示时、分、秒;P2口作为数码管的操作码;(2)通过P3的一个端口用开关键切换12小时制和24小时制;(3)P3端口用开关按键可以设置当前时间(通过移位达到对十、分、秒的增减);(4)P3的一个端口接扬声器,达到闹铃功能,闹铃时刻可以设置(正点报时);二、硬件知识简介:51单片机应用知识简介:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

作为嵌入式系统核心的单片机具有体积小、功能全、性价比高等诸多优点。

51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、偏上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。

在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。

C语言C语言是Combined Language(组合语言)的中英混合简称。

是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

电子时钟实习实训报告

电子时钟实习实训报告

实训设计任务书机电一体化技术专业2009年级3班一、设计题目数字电子时钟设计二、主要内容1、利用CPU的定时器定时,设计一个电子时钟,使七段数码管输出记时值,格式如下:XX XX XX 由左向右分别为:时、分、秒2、利用蜂鸣器实现整点报时功能3、利用AN1~AN4实现时,分的分别加减。

三、具体要求1、本实验连线板上已经接好,无需另外接线。

①本实验中要把跳线JP1(板子右上角,LED灯正上方)跳到DIG上,J23(在黄色继电器右上方)接到右端。

②本实验中要把跳线J9(紧贴51插座右方,蜂鸣器下方,RST复位键上方)跳到右端③本实验要把跳线J6跳到AN端,AN1(P0.0)~ AN4(P0.4),J6在51插座右下方,4×4键盘左上方。

2、实验说明①与定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。

TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。

TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

本实验中用定时器T0产生1秒钟基本时间单位,本系统fosc=11.0592MHz,当定时器T0工作在方式1(16位)时,最大定时时间为:216* 0.9216μs= 60397.9776μs再利用软件记数,当T0中断17次时,所用时间为60397.9776*17=1026765.6192μs≈1s 因此在T0中断处理程序中,要判断中断次数是否到17次,若不到17次,则只使中断次数加1,然后返回,若到了17次,则使电子秒表记时值加1(十进制),请参考硬件实验四有关内容。

②本实验中要将实时时钟值送到6个共阴极数码管中显示,这可通过调用编写的显示子程序来实现,实现过程是:先将(时、分、秒)3个记时值按个位和十位拆开成6个数字,然后查(0~9)段码表,再将段码分别送到显示缓冲区(片内数据存储30H~35H设定为显示缓冲区, 用于存放段码)中去,最调用显示子程序送到6个共阴极数码管中显示。

定时闹钟实验报告

定时闹钟实验报告

一、实验目的1. 理解定时闹钟的基本原理和工作流程。

2. 掌握定时闹钟的电路设计方法。

3. 熟悉定时闹钟的关键元件及其功能。

4. 学会使用定时闹钟进行时间管理和任务提醒。

二、实验器材1. 集成电路:555定时器、计数器、比较器等。

2. 电阻、电容、二极管等电子元件。

3. 电源:直流电源。

4. 电路板、焊锡、电烙铁等焊接工具。

5. 数字多用表、示波器等测试设备。

三、实验原理定时闹钟的核心部件是555定时器,它可以通过外部电路设置产生精确的定时信号。

结合计数器和比较器,可以实现定时闹钟的定时功能。

1. 555定时器:555定时器是一种通用的时基电路,可以产生方波、三角波、锯齿波等波形信号。

通过外部电路设置,可以调整其定时时间。

2. 计数器:计数器用于对555定时器产生的脉冲信号进行计数,实现定时功能。

3. 比较器:比较器用于比较计数器的计数值与预设的闹钟时间,当计数值达到预设时间时,触发报警电路。

四、实验步骤1. 电路设计:根据实验要求,设计定时闹钟电路图。

电路图包括555定时器、计数器、比较器、报警电路等部分。

2. 元件选择:根据电路图,选择合适的电子元件。

注意选择具有较高精度和稳定性的元件。

3. 电路焊接:按照电路图,将选定的元件焊接在电路板上。

4. 电路调试:使用数字多用表测试电路各部分的电压和电流,确保电路正常工作。

5. 设置闹钟时间:通过调整外部电路,设置定时闹钟的闹钟时间。

6. 测试与验证:使用示波器观察定时闹钟产生的信号波形,确保定时闹钟的定时功能正常。

五、实验结果与分析1. 定时功能:通过实验验证,定时闹钟可以按照预设的时间进行定时,触发报警电路。

2. 闹钟时间设置:实验表明,通过调整外部电路,可以方便地设置定时闹钟的闹钟时间。

3. 报警功能:实验验证,定时闹钟的报警电路可以发出明显的报警声,提醒用户。

六、实验总结1. 掌握定时闹钟的基本原理和工作流程:通过本次实验,我们对定时闹钟的原理有了更深入的了解,掌握了其工作流程。

定时闹钟的设计毕业设计

定时闹钟的设计毕业设计

定时闹钟的设计毕业设计定时闹钟的设计毕业设计随着现代生活的快节奏发展,人们对时间的重视程度越来越高。

无论是工作、学习还是休闲娱乐,时间的合理规划和管理都变得至关重要。

在这个背景下,定时闹钟成为了人们生活中不可或缺的工具之一。

本文将探讨定时闹钟的设计,旨在提供一种创新的思路和方法,以满足人们对时间管理的需求。

一、市场调研在进行定时闹钟的设计之前,我们首先需要进行市场调研,了解人们对于闹钟的需求和使用习惯。

通过问卷调查、深入访谈等方式,我们可以获取到大量的数据和信息。

例如,人们对于闹钟的音量、铃声选择、操作便捷性等方面都有着不同的偏好。

在这个基础上,我们可以更好地理解用户需求,为设计定时闹钟提供指导。

二、功能设计基于市场调研的结果,我们可以设计出一款功能丰富的定时闹钟。

首先,闹钟应该具备可调节的音量和铃声选择功能,以满足不同用户的需求。

其次,闹钟应该具备多个闹铃设置的功能,用户可以根据自己的日程安排,设置不同的闹铃时间。

此外,闹钟还可以添加一些附加功能,如天气预报、日历提醒等,以提升用户的使用体验。

三、外观设计除了功能设计,外观设计也是定时闹钟设计的重要一环。

一个简约、美观的外观设计可以增加用户的购买欲望和使用愉悦感。

我们可以采用流线型的设计风格,使用优质的材料和工艺,打造出一款时尚、高端的定时闹钟。

同时,闹钟的显示屏可以采用LED背光技术,以提供更清晰、更舒适的视觉体验。

四、用户体验设计用户体验设计在定时闹钟的设计中起着至关重要的作用。

我们可以通过简化操作流程、提供友好的用户界面等方式,提升用户的使用体验。

例如,可以设计一个直观、易懂的设置界面,让用户可以轻松地设置闹钟时间和其他功能。

此外,我们还可以考虑添加一些智能化的功能,如语音控制、手机APP连接等,以进一步提升用户的便捷性和舒适度。

五、安全性设计在定时闹钟的设计中,安全性也是一个不可忽视的因素。

我们需要确保闹钟的电路设计合理,电池的使用安全可靠。

定时闹钟 实验报告

定时闹钟  实验报告

DONGFANG COLLEGE,FUJIAN AGRICULTURE AND FORESTRY UNIVERSITY课程名称:单片机原理及接口技术论文题目:定时闹钟系别:计算机系年级: 09专业:电子信息工程班级: 01 学号: 0950302046姓名:陈志国成绩:任课教师:罗志聪2012年 1 月 2 日目录一、概述 (1)1.1设计目的及意义 (1)1.2设计任务 (1)1.3设计系统的主要功能 (1)二、系统总体方案及硬件设计 (2)2.1系统总体方案 (2)2.2系统设计总框图 (2)2.3硬件设计 (2)2.3.1单片机最小系统设计 (2)2.3.2报警模块设计 (6)2.3.3显示模块设计 (7)2.3.4调时模块设计 (9)三、软件设计 (10)3.1主程序流程图 (10)3.2定时中断子程序流程图 (11)3.3程序设计 (11)四、系统的仿真与调试 (12)4.1 proteus软件仿真 (12)4.2系统的调试 (11)五、设计总结与体会 (13)附录1:源程序代码 (13)附录2:系统原理图 (24)一、概述1.1设计目的及意义学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过的基础知识能有更深入的理解,并融会贯通。

学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯。

1.2设计任务完成所选题目的分析与设计,达到技术性能要求。

提交正式课程设计总结报告一份。

本文设计的定时闹钟的核心模块采用AT89C51芯片,时、分、秒用6位LED数码管显示。

在电路中通过四个按键S1、S2、S3和S4来进行定时、调时和复位,定时时间到通过蜂鸣器发出报警声。

1.3设计系统的主要功能(1)能显示时时-分分-秒秒。

(2)能够设置定时时间、修改定时时间。

(3) 定时时间到能发出报警声。

基于FPGA定时闹钟实验报告

基于FPGA定时闹钟实验报告

西南科技大学电工学,电子技术学生实验报告课程名称FPGA技术课程设计实验课题定时闹钟班级电子0902指导老师龙惠民评分实验小组2012年4月25日实验课题:定时闹钟实验时间:2012年4月16日—4月30日实验小组成员:一.设计要求设计一个具有系统时间设置和带闹钟功能的24小时计时器中的应用。

电子钟要求如下:(1)计时功能:4位LED数字时钟对当前时间的小时和分钟进行显示,显示的最长时间为23小时59分。

(2)设置并显示新的闹钟时间:用户先按“set”键,再用数字键“0”~“9”输入时间,然后按“alarm”键确认。

在正常计时显示状态下,用户直接按下“alarm”键,则已设置的闹钟时间显示在显示屏上。

(3)设置新的计时器时间:用户先按“set”键,再用数字键“0”-“9”输入新的时间,然后按“time”键确认。

在输入过程中;输入的数字在显示屏上从右到左依次显示。

例如,用户要设置新的时间12:00,则按顺序输入“l”,“2”,“0”,“0”键,与之对应,显示屏上依次显示的信息为:“1”,“12”;“120”,“1200”。

如果用户在输入任意几个数字后较长时间内,例如5秒,没有按任何键,则计时器恢复到正常的计时显示状态。

(4)闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声;二.设计流程1.顶层设计顶层设计结构2.各模块原理根据顶层设计结构,初步将定时闹钟分为分频器,计时模块,显示模块,闹钟模块。

(1).计时模块包括秒计时子模块(sec),分计时子模块(min),时计时模块(hour),以及主控子模块(control)。

其工作原理:为妙计时子模块送1HZ脉冲,但秒计数达60时,秒计数器清零,秒进位信号为‘1’,并作为分计数器的时钟信号。

每产生一个秒进位信号,分计数器加‘1’。

同样,分计数达60时,计数器清零,并产生一个分进位信号,作为时的时钟信号,每产生一个分进位信号,时计数器加1,当计数器达24时,计数器清零。

LED时钟实习报告.doc

LED时钟实习报告.doc
实习进一步加深《C 语言程序设计》、《单片机原理及应用》等相关课程中的理论知识,熟练 掌握单片机的编程、调试和应用系统的开发。 具体任务要求:
1、显示“时.分”进行显示,例如“12.18”,其中小数点每秒闪烁一次。 2、能够校正时间的时和分,按键分为 5 个功能键 (1)设定键:在计时模式时,按下此键时停止计时,进入设置状态,并切换到分钟的 设置状态,再按一次切换到小时的设置状态,每按下一次完成时.分设置的切换,用点亮时. 分个位的数码管小数点表示分或秒处于设置状态。在闹钟时间设定状态时,按下此键同样进 入设置状态,完成分、秒设置的切换。 (2)递增键:在设置状态时,按一次递增键,被设置的分钟数字或时钟数字增 1,持续 按下数字自动增 1。 (3)递减键:在设置状态时,按一次递减键,被设置的分钟数字或时钟数字减 1,持续 按下数字自动增 1。 (4)计时键:在设置状态或闹钟时间设定状态时,按下此键则单片机切换到计时的显 示模式,按照新的时.分设置值进行计时。如果已经在计时状态则此键无效。 (5)闹钟键:在计时模式时,按下此键则单片机切换到闹钟时间设定状态的显示模式。 等待“设定键”、“递增键”、“递减键”来设定分钟和秒钟。
报告
STC89C52 单片机介绍 STC89C52 单片机是由深圳宏晶公司代理销售的一款 MCU,是由美国 设计生产的一种低电压、高性能 CMOS 8 位单片机,片内含 8kbytes 的可反复写的 FlashROM 和 256bytes 的 RAM,2 个 16 位定时计数器。 STC89C52 单片机内部主要包括累加器 ACC(有时也简称为 A)、程序状态字 PSW、地址指示器 DPTR、 只读存储器 ROM、随机存取存储器 RAM、寄存器、并行 I/O 接口 P0~P3、定时器/计数器、串行 I/O 接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型计 算机。 3.3 功能设计流程

定时闹钟 课程设计

定时闹钟   课程设计

河海大学常州校区物联网工程学院单片机课程设计实验报告题目定时闹钟专业班级自动化二班指导教师黄皎学号1162510212姓名樊新月日期2014/01/07摘要:本系统采用MSC-51系列单片机以AT89S51为中心器件来设计定时闹钟。

定时闹钟是采用单片机控制电路实现对时、分、秒数字显示的计时装置。

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

在此次设计中,电路除具有显示时间的其本功能外,还可以实现对时间的调整和对闹钟时间的调整。

在提高模块,还可以通过串口通信,实现电脑对实验箱的控制。

关键词:AT89S51 数码管动态显示串口通信键盘AbstractThe system USES the MSC - 51 series microcontroller to AT89S51 a s the center device to design timing alarm clock. Timing alarm clock is using single-chip microcomputer control circuit to realize clock, minutes and seconds digital display timing device. In this design, usi ng LED digital tube rolling shows, minutes and seconds, with 24 ho urs time way, according to the principle of dynamic display of digital tube to display, with 12 MHZ of crystal oscillator produce oscillatio n pulse, the timer count. In this design, circuit in addition to display t he time the function outside, still can realize the time adjustment and the adjustment of the alarm clock time. On improving the module, b ut also through the serial communication to realize the experimentalbox, computer control.Keywords: AT89S51; keyboard.Dynamic digital tube display, serial communication control目录第一章设计任务 (5)1.1 设计背景及意义 (5)1.2 设计目的 (5)1.3 设计环节及进程安排 (6)第二章系统硬件设计及实现 (7)2.1硬件系统概述 (7)2.2 硬件系统框图 (7)第三章课程总结 (11)参考文献 (13)附录 (14)第一章设计任务1.1 设计背景及意义单片计算机即单片微型计算机。

定时闹钟设计 课程设计报告

定时闹钟设计  课程设计报告

按时闹钟设计之马矢奏春创作摘要:本设计目的是利用单片机设计制作一个简易的按时闹铃时钟,可以放在宿舍或教室使用,在夜晚或黑暗的场所也可以使用.可以设置现在的时间以及闹铃的时间而且显示出来,若时间到则发出一阵声响.本次设计的按时闹钟在硬件方面就采纳了AT89C52芯片,用6位LED数码管进行显示.LED用P0口进行驱动,采纳的是静态扫描显示,能够比力准确显示时时—分分—秒秒.通过五个功能按键可以实现对时间的修改、按时和闹铃终止,闹钟设置的时间到时蜂鸣器可以发作声响.在软件方面用C51编程.整个按时闹钟系统能完成时间的显示,调时和设置闹钟、停止响铃等功能,并经过系统仿真后获得了正确的结果.关键词:按时闹钟;蜂鸣器;AT89C52;74HC245;目录第1章绪论11.2.1设计要求:11.2.2设计任务:1第2章系统总体设计2系统设计需求总体设计方案第3章系统硬件设计43.2.3 74HC245芯片7??????LED显示模块????????按键模块??第4章系统软件设计11第5章系统测试13??测试环境??????测试步伐??????测试环境的构建??结论15致谢16参考文献17附录18第1章绪论本次课程设计的主题是按时闹钟,其基础部份是一个数字钟.电路系统由秒信号发生器、“时、分、秒”计数器、显示器组成.其中秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,这里用51单片机的按时器来实现.利用按时器获得每一秒的时刻,然后在法式中,我们就可以给秒进行逐秒赋值,满60秒则进位为1分,满60分则进位为1小时,满24小时则时间重置实现一天24小时的循环.译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过一个六位八段数码管显示出来.这里利用51单片机的相关知识,来实现电子闹钟的相关功能.实验使用了AT89C52、74HC245等芯片,通过单片机的P0、P3管脚来驱动数码管显示出相应的时刻.本文将讲述AT89C52、74HC245等芯片的基本功能原理,偏重点介绍该电子闹钟的设计.1.2.1设计要求:使用6位七段LED显示器来显示现在的时间;显示格式为“时时分分秒秒”;具有4个按键来做功能设置,可以设置现在的时间及显示闹铃设置时间;时间到则发出一阵声响,可通过按键复位;对单片机系统设计的过程进行总结,认真书写课程设计陈说并按时上交.1.2.2设计任务:利用51单片机结合七段LED显示器设计一个简易的按时闹铃时钟,可以放在宿舍或教室使用,由于用七段LED显示器显示数据,在夜晚或黑暗的场所也可以使用.可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响.论文分别叙述从硬件和软件上实现该设计的过程.第2章为总体设计方案.第3章主要介绍设计实现需要解决的硬件问题.依次介绍所使用的各种硬件的使用方法,并附上仿真电路图和文字说明.第4章从软件的角度说明实现该设计需要解决的问题.第2章系统总体设计系统要求实现以下功能:1.当电源接通时,系统能正确显示以后时间.2.以后时间与实时时间有误差时,可以通过键盘调整以后时间.3.系统允许进行闹钟设置,开启闹钟功能时,当设置的闹钟时间与以后时间一致的时候,系统通过蜂鸣器发出警报声而且可以通过按键停止.功能组成:本次设计中的计时功能很容易实现,难点在于时钟功能和闹钟功能的切换和时间的设置.该电子闹钟设计对51单片机按时器0装初值,使其初值对应50ms,按时器0的中断次数达到20次就刚好为1s,当秒部份计数到60时置零,并向分部份进一;当分部份计数到60时置零,并向时部份进一,那时部份计数到24时置零,从而满足时钟的正常工作.在设计过程中,我发现通过4个按键来完成一个闹钟的基础功能虽然可以实现,可是用户用起来就会很麻烦,因为有的键必需有多种功能和分歧的触发方式,我认为可以增加少许按键来方便用户快速了解到我们的闹钟是如何进行控制的.所以本次设计设置5个键依次对其进行“时间校准”、“闹钟设置”、“秒分时切换/终止警报”、“加1按钮”、“减1按钮”.“秒分时切换/终止报警”键在调时状态中,起时分秒切换的作用,在非调试状态下,起闹钟终止的作用.当用户按下“时间校准”的按钮后,法式会关闭T0按时器,之后时钟停止工作,此时数码管会显示以后静止的时间,说明已经进入时间校准的界面了.在完成时间校准后,翻开T0按时器,时钟会在设置好的时间上继续工作走秒.当用户按下“闹钟设置”按钮后,会将以后时间复制出来提供给按时界面,注意此时我们的时钟仍然在继续工作,只是数码管显示的是按时模式的静止时间.当设置好后,此时用户设置的时间只要没有触发过闹铃,再次按“闹钟设置”按钮就能检查并修改,即闹钟会保管下用户最后一次未被触发的闹钟时间.当正常工作的时钟时刻达到了预设的闹铃时刻,蜂鸣器发出警报声,屏幕会闪烁并显示以后时间.考虑到用户可能已经被提醒而不想继续被闹铃声干扰,还提供了一个能够终止闹铃的功能,此功能与“时分秒切换”功能共用同一按键,按下后时钟继续正常工作,且闹钟功能又可以重新设置.本设计在Keil编程环境下,使用C语言进行编程的编纂.编纂胜利后,通过仿真软件Proteus进行仿真测试.LED显示屏×1主控芯片:AT89C52闹钟提示:蜂鸣器人机交互:按键×5晶振:12KHz×1排阻:RESPACK8×1电容:10nf×2总线收发器:74HC245×2第3章系统硬件设计系统硬件模块主要分为以下几个模块:1.主控模块:控制其他子模块.2.时钟模块:为系统提供实时时间.3.显示模块:显示系统时间信息.4.按键模块:用户通过按键进行人机交互,修改实时时间、设置闹钟时间和终止闹钟报警. 5.闹钟模块:在所设闹钟时间发出警报声.(1).AT89C52简介AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash 只读法式存储器和256 bytes的随机存取数据存储器(RAM),器件采纳ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处置器和Flash 存储单位,AT89C52单片机在电子行业中有着广泛的应用.AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程按时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以依照惯例方法进行编程,也可以在线编程.其将通用的微处置器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱.AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应分歧产物的需求.AT89C52引脚图如图3.2.1:(2).工作原理AT89C52为8 位通用微处置器,采纳工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制.功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等.主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振.RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路.VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端.P0~P3 为可编程通用I/O 脚,其功能用途由软件界说,在本设计中,P0 端口(32~39 脚)被界说为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚界说为IR输入端,10 脚和11脚界说为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚界说为握手信号功能端口,连接主板CPU 的相应功能端,用于以后制式的检测及会聚调整状态进入的控制功能.P0 口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口.作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用.在访问外部数据存储器或法式存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻.在Flash编程时,P0 口接收指令字节,而在法式校验时,输出指令字节,校验时,要求外接上拉电阻.P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).与AT89C51 分歧之处是,P1.0 和P1.1 还可分别作为按时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和法式校验期间,P1 接收低8 位地址.P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部法式存储器或16 位地数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据.在访问8 位地址的外部数据存储器(如执行MOVX@RI 指令)时,P2 口输出P2锁存器的内容.Flash编程或校验时,P2亦接收高位地址和一些控制信号.P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口.P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL).P3 口除作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash闪速存储器编程和法式校验的控制信号.RST:复位输入.当振荡器工作时,RST引脚呈现两个机器周期以上高电平将使单片机复位.ALE/PROG:当访问外部法式存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节.一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于按时目的.要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲.对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG).如有需要,可通过对特殊功能寄存器(SFR)区中的8EH 单位的D0 位置位,可禁止ALE 把持.该位置位后,只有一条MOVX 和MOVC指令才华将ALE 激活.另外,该引脚会被微弱拉高,单片机执行外部法式时,应设置ALE 禁止位无效.PSEN:法式贮存允许(PSEN)输出是外部法式存储器的读选通信号,当AT89C52 由外部法式存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲.在此期间,当访问外部数据存储器,将跳过两次PSEN信号.EA/VPP:外部访问允许.欲使CPU 仅访问外部法式存储器(地址为0000H—FFFFH),EA 端必需坚持低电平(接地).需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态.如EA端为高电平(接Vcc端),CPU 则执行内部法式存储器中的指令.Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,固然这必需是该器件是使用12V编程电压Vpp.XTAL1:振荡器反相放年夜器及内部时钟发生器的输入端.XTAL2:振荡器反相放年夜器的输出端.利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接按时元件,内部振荡器便能发生自激振荡.按时元件可以采纳石英晶体和电容组成的并联谐振电路,如图3.2.2所示.晶振可以在1.2~12MHZ之间任选,甚至可以达到24MHz,可是频率越高功耗也就越年夜.和晶振并联的电容C1、C2的年夜小对振荡频率有微小影响,可以起到频率微调作用.时钟电路如图3.2.2:3.2.3 74HC245芯片电路中用74HC245芯片充任总线收发器,作用是放年夜信号,它具有典范的CMOS型三态缓冲门电路.由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超越其负载能力,一般应加驱动器.引脚界说:1引脚DIR:未输入输出端口转换用,当它为高电平“1”时,信号由“A”端口输入“B”端口输出;当它为低电平“0”时,信号由“B”端口输入“A”端口输出.29引脚:“A”端口输入输出端,每个端口与“B”端口对应.1118引脚:“B”端口输入输出端,每个端口与“A”端口对应.10引脚:GUD,电源地.20引脚:VCC,电源正极.74HC245引脚图如图3.2.3(1):图3.2.3(1)仿真电路图如图3.2.3(2):图3.2.3(2)3.3 LED显示模块本次课程设计采纳了6位数码管显示电路.在6位LED显示时,为了简化电路,降低本钱,采纳静态显示的方式, 6个LED显示器共用一个8位的I/O, 6位LED数码管的位选线分别由相应的P2. 0~P2. 5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口.译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过6位LED七段显示器显示出来.达到按时电路时根据计时系统的输出状态发生脉冲信号,然后去触发音频发生器实现闹铃.校时电路时用来对“时”、“分”、“秒”显示数字进行校对换整的.LED仿真电路图如图3.3:图3.4 按键模块按键模块共设置了五个按键,功能分别如下:(1).时间校准键“CLOCK”: 自锁开关,按下后进入校准设置,再次按下后退出.(2).闹钟设置键“ALARM CLOCK”: 自锁开关,按下后进入闹钟设置,再次按下后退出.另外可供用户对已经设置的闹钟时间进行检查或修改.(3). 秒分时切换/终止报警键“SWITCH/STOP”: 按钮开关,在按下“CLOCK”或“ALARM CLOCK”键时,为时分秒切换功能,默认是“秒”,再次按下是“分”,然后是“时”之后是“秒”,以此类推.在“CLOCK”或“ALARM CLOCK”键未按下时,为终止报警功能.(4).时间增加键“+”:按钮开关,可以在进入校准设置和闹钟设置后,进行加一把持.(5).时间减少键“”: 按钮开关,可以在进入校准设置和闹钟设置后,进行减一把持.按键模块仿真电路图如图3.4:闹铃指示设置有声和光两种形式.声音形式的关键元件是蜂鸣器.蜂鸣器有无源和有源两种,前者需要输入声音频率信号才华正常发声,后者则只需外加适当直流电源电压即可,本次设计我们使用的是后者.闹钟电路是用比力器来比力计时系统和按时系统的输出状态,如果计时系统和按时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放年夜电路驱动扬声器发声,从而实现按时闹响的功能.蜂鸣器仿真电路图如图3.5:第4章系统软件设计该部份主要分为实时时钟模块、LED显示模块、键盘中断模块、闹钟模块.实时时钟部份主要包括实时时间的读写,时间的修改.LED显示模块主要包括显示屏的初始化,显示的命令字.键盘中断模块包括各键的界说和作用,按键的消抖,各按键跳转的子法式分配.闹钟模块包括闹钟时间的设置,以及对蜂鸣器启动和停止条件的设置和处置.主法式包括三个部份.一是主函数部份,负责系统的初始化把持;从中断服务取得实时时间;判断闹钟时间是否与实时时间相等并在相等时发出警报声.第二部份是按时中断部份,分两种情况:负责处置从中断服务获得的时间数据并送至LED显示缓冲显示,或者显示闹钟设置界面并显示闹钟时间的设置过程.第三部份是外部中断,主要界说5个按键的作用,分配每一个按键跳转的子法式.第三部份负责时间和日期的修改,闹钟时间的设置,停止蜂鸣器鸣叫的功能.断系统在单片机应用系统中起着十分重要的作用,是现代嵌入式控制系统广泛采纳的一种适时控制技术,能对突发事件进行及时处置,从而年夜年夜提高系统对外部事件的处置能力.正是有了中断技术,单片机才得以能够普及.因此,中断技术是单片机的一项重要技术,掌握中断技术能开发出灵活、高效的单机片应用系统.要让单机片停止以后的法式去执行其他法式,需要向它发出请求信号,CPU接收到中断请求信号后才华发生中断.让CPU发生中断的信号称为中断源(又称中断请求源).单片机提供5个中断源,其中两个为外部中断请求源INT0(P3.2)和INT1(P3.3),两个片内按时器/计数器T0和T1的溢出请求中断源TF0和TF1,1个片内串行口发送或接收中断请求源T1和R1.单片机内的CPU工作时,如果一个中断源向它发出中断请求信号,它就会发生中断.可是,如果同时有两个中断源发出中断请求信号,CPU就会优先接收级别高的中断请求源,然后再接收优先级别低的中断请求.表4.3.2列出5个自力中断请求源由其硬件结构决定的自然优先级排列顺序.表4.3.2 单片机中断源的自然优先级、入口地址及中断编号对应于单片机的5个自力中断源,应有相应的中断服务法式.这些中断服务法式有专门规定的寄存位置,即表4.3.2的中断入口地址.当有了中断请求后,CPU可以根据入口地址迅速找到中断服务法式并开始执行,年夜年夜提高执行效率.主法式见附录.第5章系统测试Proteus仿真模拟软件.(1).在Proteus软件中绘制好按时闹钟仿真模拟电路图.(2).将Keil编译器生成的.hex文件载入AT89C52芯片.(3).在Proteus软件中,点击左下角的“play”按钮启动按时闹钟.如下图,“play”按钮在第一个.图5.3.1(3)仿真电路运行控制按钮详细测试内容如下:按时闹钟是否能正确显示时间;是否能正确显示闹钟设置时的界面;是否能正确显示时间调整时的界面.(1).显示时间点击“play”键之后,时钟系统开始走时,如图5.5.2(1):图5.3.2(1)经测试,显示结果达到预期要求.(2).时间调整测试如果用户发现时间运行分歧毛病,要对时间进行修改和调整,就需要进入时间修改的界面.预期可以对时、分、秒进行调整和修改.系统能正确显示时间修改的界面.用户可以完成时间的修改.经测试,该部份运行正常.(3).闹钟设置测试在系统能正确显示时间之后,用户若想设置闹钟,可以通过按键完成闹钟时间的设置.设置时间到后蜂鸣器报警,按下“STOP”键后警报停止经测试,该部份能正常运行.结论:通过以上对仿真项目的全面测试,可知仿真部份运行正常.通过以上测试,证明本设计基本实现系统所有要求,即能够正确显示时间信息,能够对以后时间进行调整和修改,而且能够设定闹钟并在所设置的闹钟时间发出警报声,通过按键可以停止警报.结论该系统采纳单机片AT89C52作为核心芯片,结合一些其他外围设备,一起构成了一款能够显示时间而且能够对其进行修改和设置按时闹钟的按时闹钟系统.该系统采纳数码管显示屏,能够清晰显示时间信息,而且能够友好的引导用户进行时间的修改以及闹钟的设置.可以通过各个寄存地址对时间进行读写把持,即读取时间和修改时间.利用蜂鸣器为用户提供闹铃功能,能够在设按时间发出警报声提醒用户.采纳按键较少的自力式键盘供人机交互,把持简双方便.可以通过键盘修改时间,也可以设置闹铃时间和修改闹铃时间,另外,在闹铃时间与系统时间一致,蜂鸣器鸣叫时,可以通过按键中断警报声.总之,该按时闹钟系统完成了市场上一般闹钟应有的功能,能够显示时间和设置闹钟,可以给用户提供时间信息.该设计也存在一些缺点,就是实际生产时投入资金会比市场上一般闹钟价格昂贵,如果进行包装,价格还会上升一些.另外,外观不如市场销售的闹钟美观.致谢衷心感谢雷俊红老师的指导.参考文献[1] 李强,51系列单片机应用软件编程技术[M].北京:北京航空航天年夜学出书社,.4:134138.[2] 薛慧芳.MCS51单机片串行口的一口多用[J].南京化工年夜学学报(自然科学版),1998,S1:8486.[3] 王东锋,王会良,董冠强.单机片C语言应用100例[M].北京:电子工业出书社,.3:218219,148152.[4] 楼然苗,李光飞.单片机课程设计指导(第2版)[M].北京:北京航空航天年夜学出书社,.1:285289.附录:系统电路图如下:系统电路图系统法式如下:#include<reg52.h>sbit btnTime = P1^0;sbit btnClock = P1^1;sbit btnSwitch = P1^2;sbit btnUp = P1^3;sbit btnDown = P1^4;sbit pin1 = P2^0;sbit pin2 = P2^1;sbit pin3 = P2^2;sbit pin4 = P2^3;sbit pin5 = P2^4;sbit pin6 = P2^5;sbit pinBuz = P2^6;unsigned char timer = 0,sec,min,hour,count = 0,s = 60,m = 60,h = 24,flag = 0; unsigned char code numbers[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delayMs(unsigned int k){unsigned int i,j;for(i = k;i>0;i)for(j = 110;j>0;j);}void timeChange(){sec++;if(sec == 60){sec = 0;min++;if(min == 60){min = 0;hour++;if(hour == 24)hour = 0;}}}void showTime(unsigned char zs,unsigned char zm, unsigned char zh){ pin1 = 1;P0 = numbers[zh/10];delayMs(5);pin1 = 0;pin2 = 1;P0 = numbers[zh%10]&0x7f;delayMs(5);pin2 = 0;pin3 = 1;P0 = numbers[zm/10];delayMs(5);pin3 = 0;pin4 = 1;P0 = numbers[zm%10]&0x7f;delayMs(5);pin4 = 0;pin5 = 1;P0 = numbers[zs/10];delayMs(5);pin5 = 0;pin6 = 1;P0 = numbers[zs%10];delayMs(5);pin6 = 0;}void setTime(){unsigned char st,mt,ht;if(btnTime == 0){delayMs(10);if(btnTime == 0){st = sec,mt = min,ht = hour;TR0 = 0;while(btnTime == 0){showTime(st,mt,ht);if(btnSwitch == 0){delayMs(10);if(btnSwitch == 0){while(!btnSwitch);count++;if(count == 3)count = 0;}}if(btnUp == 0){delayMs(10);if(btnUp == 0){while(!btnUp);switch(count){case 0:st++;if(st == 60)st = 0;break;case 1:mt++;if(mt == 60)mt = 0;break;case 2:ht++;if(ht == 24)ht = 0;break;default:;}}}if(btnDown == 0){delayMs(10);if(btnDown == 0){while(!btnDown);switch(count){case 0:if(st>0)st;elsest = 0;break;case 1:if(mt>0)mt;elsemt = 0;break;case 2:if(ht>0)ht;elseht = 0;break;default : ;}}}}TR0 = 1;sec = st,min = mt,hour = ht;}}showTime(sec,min,hour);}void setClock(){if(btnClock == 0){delayMs(50);if(btnClock == 0){if(flag == 0){s = sec;m = min;h = hour;}flag = 1;while(btnClock == 0){showTime(s,m,h);if(btnSwitch == 0){delayMs(10);if(btnSwitch == 0){while(!btnSwitch);count++;if(count == 3)count = 0;}}if(btnUp == 0){delayMs(10);if(btnUp == 0){while(!btnUp);switch(count){case 0:s++;if(s == 60)s = 0;break;case 1:m++;if(m == 60)m = 0;break;case 2:h++;if(h == 24)h = 0;break;default:;}}}if(btnDown == 0){delayMs(10);if(btnDown == 0){while(!btnDown);switch(count){case 0:if(s>0)s;elses = 0;break;case 1:if(m>0)m;elsem = 0;break;case 2:if(h>0)h;elseh = 0;break;default:;}}}}}}}void buzzer(){if((hour == h)&&(min == m)&&(sec == s)){int i;for(i = 1;i<30;i++){if(btnSwitch == 0){delayMs(20);if(btnSwitch == 0){break;}}pinBuz = 1;delayMs(450);showTime(sec,min,hour);pinBuz = 0;delayMs(300);showTime(sec,min,hour);}flag = 0;}}void init(){TMOD = 0x01;TH0 = (6553645872)/256;TL0 = (6553645872)%256;EA = 1;ET0 = 1;TR0 = 1;pinBuz = 0;}void main(){init();while(1){setTime();setClock();buzzer();}}void T0_ms() interrupt 1{TH0 = (6553645872)/256;TL0 = (6553645872)%256;timer++;if(timer == 20){timer = 0;timeChange();}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)设计要求
闹钟在日常生活中应用较多,这里将利用单片机设计一个最大定时时间为60分钟的定时闹钟,当定时时间到点的时候,闹钟播放声音,提醒使用者定时时间到。设计要求如下:
1)采用2个数码管显示定时时间;
2)用按键调节定时时间1~60,单位为min;
3)采用一个按键启动定时器工作;
4)采用蜂鸣器播放声音;
中国电子科技大学
实习总结报告
实习类型生产实习
实习单位电子科学学院实习基地
实习起止时间201X年7月X日至202X年6月X日
指导教师
所在院(系)电子科学学院
班 级电信X班
学生姓名
学 号
202X年 6月 20日
定时闹钟设计
一、课题目的
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
但本设计还有不足之处,就是按键时间长短的问题,如果按键按下的时间过短,计数器不会做加一,所以在定时时间内要一直按计数按键。
四、总结及体会
经过两个星期的课程设计,的确收获了很多,感觉自己对于微机原理与接口技术这门课程有了更加深刻的认识。因为把平时所学的知识应用于实践真的会遇到很多问题,当然也会发现很多乐趣在其中。这个就要不断的多次调试才能发现到问题究竟出在哪里。解决了这个问题之后对于如何暂停计时器也想了好多办法,也调试了很多次。最终通过将原中断向量入口地址进行修改,使其不再进入计时中断服务子程序就达到了要求。进位条件的判断,编程中仔细思考也就没有问题。另外对于中断服务子程序的类型设置问题,由于以前对这个概念的理解记得不清楚,于是找出课本再次进行研究。
单片机作为应用最广泛的控制系统之一,具有体积小,易于控制,价格便宜,安全可靠等等优良的性能而被广泛的关注。无论是小到儿童玩具,到工业控制系统,大到航天航空系统的设计与操作之中,随处可见单片机的踪影。大学电子专业,电气专业,通信等专业开设单片机课程,对人才的培养无疑是有着重大的意义的。
本次课程设计的题目是定时闹钟设计,通过课程设计使学生更进一步掌握单片机原理与应用课程的有关知识,提高用C语言编程的能力,并将所学的内容加以综合;通过查阅资料,了解所学知识的应用情况;通过课程设计全面系统的了解单片机的设计方法及设计步骤,了解微机系统的基本组成及开发设计过程中需要注意的问题。
2)晶振电路:
是指从一块石英晶体上按一定方位角切下薄片(简称为晶片),石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。晶振原理压电效应(物理特性):在水晶片上施以机械应力时,会产生电荷的偏移,即为正压电效应,逆压电效应,相对在水晶片上印加电场会造成水晶片的变形即产生逆压电效应,利用这种特性产生机械振荡,变换成电气信号。如图1-2所示:
复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。单片机由运算器、控制器、存储器、输入输出设备构成。此次课程设计所用到的单片机为STC89C52芯片。
1)、总体框图
图1-1总体框图
2)、模块电路分析
1) STC89C52单片机:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-52内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。它是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦1000次的Flash只读程序存储器,器件采用STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及STC8951引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC8952可为许多嵌入式控制应用系统提供高性价比的解方案。STC8952具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入输出(I/O)口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信,片内时钟振荡器。其单片机的外围引脚有40个,分别是:第20脚和40脚分别是电源,即GND和Vcc;第9脚是复位脚RST;第18脚是时钟XTAL2脚,片内振荡电路的输出端;第19脚是时钟XTAL1脚,片内振荡电路的输入端;第29脚:~PSEN脚,当访问外部程序存储器时,此引脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上;第30脚ALE/~PROG,当访问外部数据存储器时,ALE(地址锁存)的输出用于锁存地址的低字节;第31脚:~EA/Vpp为程序存储器内外部选通信号;P0^0-P0^7.P1^0-P1^7.P2^0-P2^7.P3^0-P3^7这32个引脚为数据的输出及输入引脚,即I/0口。
表1-1STC89C52主要功能
兼容MCS51指令系统
8K可反复擦写Flash ROM
32个双向I/O口
256*8bit内部RAM
3个16位可编程定时、计数器中断
时钟频率0-24MHZ
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗和掉电模式
软件设置睡眠和唤醒功能
1、设计目的及意义
(1)设计目的
1)掌握52系列单片机的基本硬件结构及工作原理;
2)掌握52系列单片机的汇编语言及基本程序设计方法;
3)学习并掌握使用52系列单片机开发控制系统的基本步骤及方法。
(2)设计意义
学习单片机最重要的方法就是实现理论与实践相结合的学习方法。有些工程师说过,能利用单片机设计并实现电子时钟,技能基本上掌握单片机的使用。所以设计电子时钟的真正目的不在于设计出成品而投入使用,而是在于熟悉单片机的基本功能与编程来实现单片机的控制。作为大学生,以后出去就业或是继续学业,都要有一定的动手能力和实践能力,而这,便是电子计时器设计的另一个目的。
在程序设计和算法实现上要多方面思考,全面的考虑问题,最好画好程序流程图,这样就能达到事半功倍的效果。同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。
三、调试分析
验证结果:将此程序在汇编器中生成的“.hex”文件,导入STC89C52芯片中,用鼠标右键点击STC89C52,然后点鼠标左键,弹出编辑元件的框图,在programfile里添加.hex文件,再点OK。显示过程是:通过P1口控制数码管的亮灭,再通过给P0口赋值显示对应的值。本设计时通过定义一个显示数组和几个独立按键数实现的,通过定时器中断产生一秒延迟。实验结果达到了实验要求。
2、总体设计方案
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
本设计使用LED数码管显示,LED显示器具有耗电少、成本低、配置简单灵活、安装方便、耐震动、使用寿命长等优点,因而应用广泛。该方案控制最简单,但是只能显示有限的符号和数字,对于设计中复杂的显示功能显然不能胜任。虽然点阵液晶可以显示多种字符和图形,拥有友好的人机界面及强大的显示功能。特别适用于智能控制的可编程人性化显示。但是考虑到本设计的实际要求,使用数码管显示就足以达到要求了。八段LED由八个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。(2)软件流程图;
图1-4蜂鸣器
二、软件编程
(1)编程思想:
该系统软件程序主要有主程序模块,定时中断服务程序,中断等待服务程序,独立按键服务程序,显示子程序服务程序等六大模块组成。
在STC89C52外围的P2.4管口上加扬声器,通过软件与硬件的结合可实现定时报警功能。
图中按键从上往下设定为可用KEY1,KEY2,KEY3,KEY1与P3.2相连,KEY2与P3.3相连,KEY3与P3.4相连。当需要启动计时功能时按一下KEY1键,启动计时功能。调好时间后按KEY2退出当前计时时间状态;当到达定时设定的时间时,蜂鸣器开始报警。在报警过程中,如果按下KEY3,停止报警,并跳出蜂鸣器循环程序。
相关文档
最新文档