实验七基本时钟模块和定时功能

合集下载

单片机课程设计数字钟实验报告

单片机课程设计数字钟实验报告

单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。

3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。

4、能够实现按键启动与停止功能。

5、能够实现整点报时功能。

6、能够实现秒表功能。

二、设计思路1、芯片介绍VCC:电源。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

实习项目- 定时器-功能说明

实习项目- 定时器-功能说明

功能说明1、时钟功能,24小时制。

2、可设定两个不同时间的闹钟。

3、可定时任意时间通电,可选择定时时间到后通电1--99分之后再断电。

4、可设定延迟到任意时间时断电。

5、时间的设置:按下《设置》键一次,进入时间设置模式。

此时分钟闪烁,按下《加》/《减》键可设置分。

再按一次《设置》键,小时闪烁,此时按下《加》/《减》键可设置小时。

设置好时间后,按《退出/取消》键退出时间设置模式。

6、定时、延迟、闹钟的功能设置:按下《设置》键3秒,进入设置项选择模式后数码管显示[CH**] ,按《加》/《减》键,可上、下翻页。

依次显示的内容与状态为:[CH**]定时时间的小时设置[CF**]定时时间的分钟设置[CC**]定时时间到达后,通电的时间长短设置。

00为时间到达后一直通电。

[C-**]定时功能的开关控制,OF 为关,既即使设置了定时时间,也不会起作用。

ON 为开。

[)H**]延迟时间的小时设置[)F**]延迟时间的分钟设置[)-**]延迟功能的开关设置,OF 为关,既即使设置了延迟时间,也不会起作用,ON为开。

[1H**]闹钟1的小时设置[1F**]闹钟1的分钟设置[1-**]闹钟1的开关设置,OF 为关,ON 为开。

[2H**]闹钟2的小时设置[2F**]闹钟2的分钟设置[2-**]闹钟2的开关设置,OF 为关,ON 为开。

当翻到某个设置项时,按下一次《设置》键进入设置状态,即可按《加》/《减》键设置相应的功能。

设置好后,再按一次《设置》键,退出设置状态回到设置项选择模式。

此时再按《加》/《减》键可翻转到其它设置项设置其它功能。

需设置的功能都已设置好了以后,按下《设置》键3秒即可退出设置模式。

退出定时、延迟、闹钟的功能设置模式后显示时钟。

7、当闹钟时间到响铃时,按下退出/取消键停止响铃。

8、当定时时间到达以后,且通电时间已经达到后,插座会自动断电。

如需恢复通电,需要进入功能设置模式,将定时开关关闭。

多功能电子时钟数字系统课程设计设计实验报告

多功能电子时钟数字系统课程设计设计实验报告

多功能电子时钟数字系统课程设计设计实验报告数字系统课程设计设计实验报告———多功能电子时钟目录一、电子时钟的功能及工作介绍 01、本设计电子时钟具有的功能 02、本设计电子时钟工作介绍 0二、设计思路 0三、各模块具体介绍 (1)计数器模块: (1)控制模块: (3)四、仿真 (6)五、实验成果 (6)六、实验总结和感想 (6)1、实验错误排查和解决 (6)2、实验感想 (7)七、各模块代码 (8)1、计数器模块 (8)2、控制模块 (20)一、电子时钟的功能及工作介绍1、本设计电子时钟具有的功能1)具有显示时、分、秒的功能,能准确显示时间2)能够手动设置时间3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响4)具有秒表功能,可以累计计时2、本设计电子时钟工作介绍此电子时钟开机后即会显示时间,其中后两位数码管显示秒,前两位数码管显示分,还可以通过拨盘开关S1来使得前两位数码管显示小时。

(开机后,按下按键1一次,会继续显示时间。

)此后,每按下按键1一次,会显示设置小时界面,按下按键1两次会显示设置分钟界面,按下按键1三次会显示闹钟设置小时界面,按下按键1四次会显示闹钟设置分钟界面,按下按键1五次会显示秒表界面。

而在每一个界面,按下按键2相应的位会开始跳动,在按下按键2时,跳动停止,此时按下按键3,即确认键,则会返回时间显示状态。

二、设计思路设计一个电子时钟,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。

我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。

在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。

定时器的实验报告

定时器的实验报告

一、实验目的1. 理解定时器的基本原理和工作方式。

2. 掌握定时器的配置和使用方法。

3. 通过编程实现定时器的定时功能。

4. 学习定时器中断的应用。

二、实验环境1. 实验设备:单片机实验板、电源、连接线等。

2. 实验软件:Keil uVision 4、IAR EWARM等C语言开发环境。

三、实验原理定时器是一种用于实现时间延迟的硬件模块,它能够在预定的时间内产生中断或完成特定的操作。

定时器通常由计数器、控制寄存器、时钟源等组成。

定时器的工作原理是利用时钟源产生的时钟信号对计数器进行计数,当计数器达到预设值时,触发中断或完成特定操作。

四、实验内容1. 定时器基本配置(1)设置定时器模式:根据实验需求,选择定时器的工作模式(如模式0、模式1等)。

(2)设置定时器时钟源:选择定时器时钟源(如系统时钟、外部时钟等)。

(3)设置定时器计数初值:根据实验需求,设置定时器计数初值。

2. 定时器定时功能实现(1)编写程序初始化定时器:配置定时器模式、时钟源、计数初值等。

(2)编写定时器中断服务程序:在中断服务程序中实现定时功能,如控制LED闪烁、读取传感器数据等。

3. 定时器中断应用(1)配置定时器中断:设置定时器中断优先级、中断使能等。

(2)编写定时器中断服务程序:在中断服务程序中实现所需功能,如采集数据、发送数据等。

五、实验步骤1. 编写程序初始化定时器:设置定时器模式、时钟源、计数初值等。

2. 编写定时器中断服务程序:实现定时功能,如控制LED闪烁。

3. 编写定时器中断配置程序:设置定时器中断优先级、中断使能等。

4. 编译、下载程序:将编写好的程序编译生成HEX文件,通过编程器下载到实验板上。

5. 运行实验:观察实验现象,如LED闪烁频率、数据采集等。

六、实验结果与分析1. 定时器定时功能实现实验结果显示,定时器能够按照设定的定时时间产生中断,中断服务程序能够正确执行。

例如,LED闪烁频率与定时时间一致。

简易数字时钟实验报告

简易数字时钟实验报告

简易数字时钟实验报告简易数字时钟实验报告引言:在现代社会中,时钟是人们生活中不可或缺的一部分。

无论是在家庭、学校还是工作场所,时钟都扮演着重要的角色。

然而,我们是否曾想过时钟是如何工作的呢?为了更好地理解时钟的原理和机制,我们进行了一项简易数字时钟实验。

实验目的:本实验的目的是通过制作一个简易的数字时钟来了解时钟的工作原理和数字显示技术。

实验材料:1. Arduino Nano开发板2. 数字时钟模块3. 面包板4. 连接线5. 电源适配器实验步骤:1. 将Arduino Nano开发板插入面包板上,并连接好电源适配器。

2. 将数字时钟模块与Arduino Nano开发板通过连接线连接起来。

3. 编写Arduino代码,实现数字时钟的显示功能。

4. 将编写好的代码上传到Arduino Nano开发板上。

5. 打开电源适配器,观察数字时钟是否能够正常显示时间。

实验结果:经过一番努力,我们成功地制作出了一个简易的数字时钟。

当我们打开电源适配器时,时钟模块上的数字显示屏幕亮起,并显示出当前的时间。

我们可以清晰地看到小时数、分钟数和秒数的变化。

这让我们深刻地认识到时钟背后的复杂工作原理和数字显示技术的重要性。

实验分析:通过这个实验,我们了解到数字时钟的工作原理是基于微控制器的。

Arduino Nano开发板作为一个微控制器,通过接收来自时钟模块的信号,然后将这些信号转化为可读的数字显示。

数字时钟模块内部包含了一系列的LED灯,通过控制这些LED灯的亮灭来显示时间。

同时,Arduino代码也起到了关键的作用,它将接收到的信号进行处理,并将处理后的结果发送给数字时钟模块进行显示。

实验心得:通过这个实验,我们不仅仅了解了数字时钟的工作原理和数字显示技术,还学习到了如何使用Arduino开发板和编写Arduino代码。

这个实验不仅提高了我们的动手能力,还培养了我们的逻辑思维和问题解决能力。

同时,我们也深刻认识到了科学实验的重要性,它能够帮助我们更好地理解和掌握知识。

定时器的实验报告

定时器的实验报告

定时器的实验报告1. 实验目的本实验旨在通过使用定时器,了解定时器的基本原理和应用。

2. 实验原理定时器是一种重要的计时工具,其基本原理是通过一个稳定的时钟信号,计算经过的时间并进行相应的操作。

定时器通常由一个计数器和一个时钟源组成。

定时器的计数器可以根据预设的值不断自增,当计数器达到设定值时,就会触发相应的中断或输出信号。

时钟源为定时器提供稳定的时钟脉冲,可以通过外部晶振、振荡器等方式提供。

3. 实验材料•单片机开发板•电脑•USB 数据线4. 实验步骤步骤1:准备工作连接开发板和电脑,确保开发板正常工作,并具备编程的能力。

步骤2:编写代码使用编程软件打开官方提供的开发工具,创建一个新项目。

在代码文件中添加定时器相关的代码,设置计数器的初始值和触发中断的条件。

步骤3:编译和烧录编译代码,并将生成的目标文件烧录到开发板中。

确保烧录成功,无误后进行下一步。

步骤4:实验测试将开发板连接到示波器或其他外设,观察定时器中断或输出信号的波形和频率。

根据需要,可以调整定时器的计数器初始值、触发条件等参数,观察不同的实验结果。

5. 实验结果与分析经过实验测试,可以观察到定时器正常工作,并且在达到预设值时触发中断或输出信号。

根据预先设定的参数,可以得到不同的定时器工作效果。

通过观察波形和频率,可以验证定时器的准确性和稳定性。

6. 实验总结本实验通过使用定时器,掌握了定时器的基本原理和应用。

定时器在嵌入式系统和计时器等领域具有重要的作用。

掌握定时器的使用,可以为后续的实验和项目开发提供参考和基础。

在实验过程中,需要注意定时器参数的设置和调整,以达到预期的结果。

定时器的使用还需要考虑中断优先级、占用资源等相关因素,并根据实际需求进行适当的优化。

7. 参考资料•数据手册,XX单片机系列。

•XX单片机开发手册。

以上是关于定时器的实验报告的基本结构,根据实际情况和实验过程,可以进行合理的扩展和修改。

在实验报告中,需要包含相关材料、步骤、结果和分析,以便于他人理解和参考。

定时器计数器定时功能的应用实验总结

定时器计数器定时功能的应用实验总结

定时器计数器定时功能的应用实验总结
定时器和计数器在很多应用中都有着重要的作用,尤其是在嵌入式系统和自动控制领域。

下面是一个关于定时器计数器定时功能应用的实验总结:
1. 实验目的:
了解定时器和计数器的基本工作原理,掌握定时功能的应用。

2. 实验器材:
单片机开发板、LED灯、Jumper线、电源等。

3. 实验步骤:
a. 将LED灯连接到开发板的一个GPIO口,设置为输出模式。

b. 初始化定时器和计数器,设置定时时间和计数器值。

c. 启动定时器,并在定时器中断处理函数中将LED灯的状态翻转。

d. 在主循环中等待定时时间到达。

4. 实验结果:
定时器定时时间到达时,LED灯会翻转一次。

5. 实验总结:
定时器和计数器的应用可以实现一些精确的定时操作,比如控制设备的定时开关、定时采集数据等。

在实际应用中,还可以根据需要设置不同的定时时长和计数器初值,实现更多功能。

需要注意的是,在实际应用中,要根据具体情况合理选择定时器和计数器的参数,以保证定时功能的准确性和稳定性。

另外,在使用定时器定时功能时,也要考虑对系统资源的合理利用,避免造成系统负荷过重。

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(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、学习使用protel或Altium designer进行电子电路的原理图设计、印制电路板设计;3、学习电路板制作、安装、调试技能和设计流程;4、了解数码管,译码器,555定时器及以下中规模器件的逻辑功能和使用方法。

二、设计任务和设计要求1、设计一多功能数字钟并进行仿真和PCB板制作。

2、基本功能:准确计时,以数字形式显示时、分、秒的时间。

3、扩展功能:校正时间,定时控制,正点报时。

三、设计方案1、数字钟设计方案基本框图如下2、各模块设计原理1.时的设计:时的计数以24小时为周期,按通常的习惯,24小时计数器的计数序列为00,01,…,22,23,00,…,即当计数到23小时59分59秒时,再来一个秒脉冲,计数器就进到00时00分00秒。

这样,可利用反馈置数或反馈清零法进行二十四进制计数,本实验采用74LS161进行设计。

2.分、秒的设计:分和秒计数器都是模M=60的计数器。

计数规律为00,01,…,58,59,00,…。

它们的个位都是十进制,而十位则是六进制。

3.译码显示:将计数器和闹钟输出的4位二进制代码,译码显示出相应的十进制数状态,可利用显示译码器和数码管实现。

4.校时电路:校时可用1s 脉冲快速校正,也可手动产生单次脉冲慢校正至时或者分计数器。

可设置不同脉冲来控制实现校正或正常计数。

5.定时控制:数字钟在指定的时刻发出信号,实现闹钟功能,通过数据选择器使得在设定闹钟是可在数码管上显示设定时间而不影响正常计数。

6.正点报时:每当数字钟计时快要到正点时发出声响,通常按照4低音1高音的顺序发出间断声响,以最后一声高音结束的时刻为正点时刻,即当分达到59,秒达到50开始发出声响,50、52、54、56、58、60(高音)。

定时器实验实验报告(两篇)

定时器实验实验报告(两篇)

引言概述:正文内容:1.定时器的基本原理和工作模式:1.1定时器的定义和分类;1.2定时器的内部结构和主要部件;1.3定时器的工作原理和工作模式。

2.定时器的输入和输出特性:2.1定时器的输入信号类型和特征;2.2定时器的输出信号类型和特征;2.3定时器的输入输出电平和电流要求。

3.定时器的应用范围和功能:3.1定时器在数字电路设计中的应用;3.2定时器在模拟电路设计中的应用;3.3定时器在控制系统中的应用。

4.定时器的性能评估和优化方法:4.1定时器的准确性和稳定性评估方法;4.2定时器的响应速度和精度评估方法;4.3定时器的功耗和效率评估方法;4.4定时器的优化方法和技巧。

5.定时器在现代电子技术中的发展趋势:5.1定时器的集成化发展;5.2定时器的多功能化发展;5.3定时器的低功耗和高效率发展;5.4定时器的微型化和高密度集成发展。

总结:通过对定时器实验的探究和分析,我们深入了解了定时器的基本原理、工作模式、输入输出特性、应用范围、性能评估方法以及发展趋势。

定时器作为一种常见的电子元器件,在数字电路设计、模拟电路设计以及控制系统中起着重要的作用。

随着现代电子技术的发展,定时器将逐渐向集成化、多功能化、低功耗和高效率的方向发展。

在今后的电子技术应用中,定时器将继续产生重要的影响和作用。

通过本文的详细阐述,读者能够全面了解定时器的工作原理、输入输出特性、应用范围、性能评估方法以及发展趋势。

这对于学习电子技术的相关专业人士、电子工程师以及电子设备制造商来说,具有重要的参考价值。

引言:定时器是一种常见的电子设备,用于测量和控制时间。

定时器在日常生活中有着广泛的应用,比如在厨房中用于计时烹饪过程,在实验室中用于管理实验时间,甚至在电子设备中用于实现各种功能。

本实验报告旨在介绍定时器的基本原理和应用,探讨不同类型的定时器的工作原理和使用方法,并分析定时器的优缺点及其在实际应用中的局限性。

概述:定时器是一种能够按照设定的时间来产生输出信号的设备。

定时闹钟实验报告

定时闹钟实验报告

一、实验目的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. 掌握定时闹钟的基本原理和工作流程:通过本次实验,我们对定时闹钟的原理有了更深入的了解,掌握了其工作流程。

实验七_基本时钟模块和定时功能

实验七_基本时钟模块和定时功能

基本时钟模块和定时功能姓名:邓陟学号:2009011976 实验班号:13 机器号:A65(A13)一、实验目的1.了解MSP430基本时钟模块的工作原理,掌握其控制方法掌握汇编语言中断程序设计方法2.了解利用时钟信号和中断技术实现定时功能的方法二、实验基本任务1.数字示波器的实用测量示波器自带的周期性方波信号,掌握测量周期、频率、峰峰值、最大值、最小值的方法。

2.对基本时钟模块编程,使ACLK=4096Hz,SMCLK=XT2/4=2MHz,分别通过P2.0(或P5.6)和P1.4(或P5.5)输出,并利用示波器观察相应的时钟信号。

改写语句MOV.B #8Eh,&BCSCTL28Eh=10001110b三、已完成的选做任务3.掌握基本时钟模块及其相关控制寄存器L7_testclock.s43为用汇编语言编写的基本时钟模块测试参考例程的一部分,请在此程序的基础上,编程输出不同频率的时钟ACLK、SMCK、MCLK,用示波器查看,并依据表1改变BCSCTL1和BCSCTL2的值,分析ACLK、MCLK、SMCLK来自哪个时钟、几分频,填写下表,并记录输出的ACLK、MCLK、SMCLK测量值,将结果记录在表1,掌握基本时钟模块的控制。

表1 基本时钟模块控制记录表不能做到编程在引脚P2.2、P5.7、P1.6上分别输出ACLK、MCLK、SMCLK。

因为P2.2、P5.7、P1.6在非基本I/O功能选择下不是输出ACLK、MCLK、SMCLK的引脚。

4.利用时钟信号做中断源实现定时功能将任务2中P5.6输出的4096Hz ACLK时钟信号,作为P1.0的中断申请信号,用导线将P5.6与P1.0相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数,中断子程每被执行4096次表示一秒时间到。

利用该定时功能,将8发光二级管设计成一个秒表,显示秒值,同时每隔10秒蜂鸣器响一声。

5.用C语言编程实现任务2功能。

时钟系统设计实验报告

时钟系统设计实验报告

时钟系统设计实验报告1. 实验目的本实验的主要目的是设计和实现一个时钟系统,实现对时钟时间的显示、调节和闹钟功能的控制。

2. 实验原理时钟系统由微控制器、显示模块、按键模块、计时模块和闹钟模块组成。

其中,微控制器负责控制整个系统的运行,显示模块用于显示当前的时间,按键模块用于调节时钟和闹钟的时间,计时模块用于计时,闹钟模块用于设置和响铃闹钟。

3. 实验器材本实验所需要的器材如下:- 微控制器(例如Arduino Uno)- 4位7段LED显示模块- 按键模块- 电阻、电容等元件- 杜邦线、面包板等实验连接线材4. 实验步骤4.1 硬件连接首先,将显示模块与微控制器连接起来。

根据显示模块的引脚定义,将其与微控制器的IO口相连。

然后,连接按键模块。

按键模块通常有四个引脚,将其与微控制器的IO口相连。

最后,将定时器和闹钟模块与微控制器连接起来,确保能够通过微控制器控制闹钟的设置和响铃。

4.2 软件编程在编程软件中,编写控制时钟系统的代码。

在代码中,需要实现读取按键状态、显示时间、闹钟设置和响铃等功能。

可以使用Arduino开发环境编写代码,并通过串口监视器进行调试。

4.3 测试与调试将程序烧录至微控制器后,通过连接电源,测试时钟系统的各项功能。

可以通过按下按键,调节时间和设置闹钟,并观察显示模块和闹钟模块的反应。

根据实际情况,对代码进行调试,确保时钟系统的各项功能都能正常运行。

5. 实验结果经过测试与调试,时钟系统能够正常显示当前时间,并能通过按键调节时间。

闹钟模块也能够正常设置和响铃,并且在响铃时,能够通过按键停止闹钟。

整个时钟系统运行稳定,能够满足基本的时钟显示和闹钟功能需求。

6. 实验总结通过本次实验,我们设计并实现了一个基本的时钟系统。

通过掌握了硬件的连接和编程技巧,我们能够很好地控制和调节时钟的显示和闹钟的设置。

实验过程中,我们也遇到了不少问题和困难,但通过思考和调试,最终解决了这些问题。

本次实验还可以进一步拓展,例如添加温湿度传感器,实现温湿度显示功能;或者添加无线通信模块,实现时间同步和远程控制等功能。

定时器实验报告

定时器实验报告

定时器实验报告引言定时器是现代电子设备中常见的一种功能模块,它可以提供精确的时间计量和控制。

本实验旨在通过对定时器的使用和调试,深入了解定时器的工作原理和应用。

一、实验目的本次实验的主要目的有三点:1. 了解定时器的基本原理和功能;2. 学会使用定时器进行时间计量和控制;3. 掌握定时器在电子设备中的应用。

二、实验装置和器材1. 单片机开发板;2. 电源;3. 连接线。

三、实验原理定时器是一种基于震荡电路和计数器的电子模块,通过内部的晶振或外接的时钟信号驱动,能够按照设置的时间间隔产生特定的脉冲或控制信号。

四、实验操作步骤1. 将开发板上的定时器模块与电源和单片机连接好;2. 在代码中设置定时器的工作模式和计数器初值;3. 运行程序,观察定时器是否正常工作;4. 尝试调整定时器的工作参数和配置,观察其对输出信号的影响。

五、实验结果与分析在本次实验中,经过不断的尝试和调试,我们成功实现了以下几个功能:1. 使用定时器生成1秒的周期信号,并控制LED灯的闪烁。

通过观察LED灯的亮灭状态,我们可以直观地判断定时器的工作是否正常。

2. 设定定时器的计数器初值为10,并在每次触发计数器溢出时输出一个特定的脉冲信号。

通过示波器测量输出信号的时间间隔,我们可以验证定时器的精度和稳定性。

3. 调整定时器的工作参数,如工作模式、计数器分频倍数等,观察对输出信号的影响。

我们发现不同的参数设置会导致输出信号的频率、占空比等发生变化,进一步验证了定时器的灵活性和可调性。

六、实验总结通过本次实验,我们对定时器的基本原理和使用方法有了更深入的了解。

定时器作为一种常用的电子模块,广泛应用于各种电子设备中,如计时器、时钟、PWM信号发生器等。

掌握定时器的使用技巧,可以为我们在电子设备的设计与开发中提供有力的支持。

实验中我们发现,定时器的性能主要受到两个因素的影响,即晶振或时钟信号的精度和定时器的配置参数。

在实际应用中,我们需要根据具体需求选择合适的硬件和适当的软件设置,以保证定时器的稳定性和精确性。

单片机的时钟与定时器应用技巧详解

单片机的时钟与定时器应用技巧详解

单片机的时钟与定时器应用技巧详解单片机是一种集成了处理器核心、存储器和各种输入输出接口的微型电子器件。

时钟和定时器是单片机中非常重要的功能模块,它们可以帮助单片机根据预定的时间序列执行任务,并实现各种精确的时间控制。

本文将详细介绍单片机的时钟与定时器应用技巧。

一、单片机的时钟模块时钟是单片机中的基本模块,它提供了单片机运行的时间基准。

单片机的时钟模块通常由晶体振荡器(或者其他时钟源)和计数器组成。

1. 晶体振荡器晶体振荡器是单片机中最常用的时钟源,它通过晶体的振荡来提供稳定的时钟信号。

晶体振荡器通常需要外接晶体,晶体的频率决定了时钟信号的频率。

单片机的时钟频率越高,其运算能力越强,但同时功耗也会增加。

2. 计数器时钟信号被输入到计数器中,计数器会根据时钟信号的脉冲数进行计数。

计数器可以分为同步计数器和异步计数器,同步计数器只在时钟信号的上升沿更新计数值,而异步计数器则在时钟信号上下降沿更新计数值。

时钟模块的应用技巧:- 在设计时钟电路时,需要根据单片机的工作要求来选择合适的晶体和计数器。

- 在进行频率计量、计时和延时等操作时,需要根据实际需求设置适当的计数值。

- 需要注意时钟的稳定性和精度,避免频率漂移或者误差积累。

二、单片机的定时器模块定时器是单片机中的另一个重要模块,它可以根据预设的时间间隔来生成定时中断、延时等操作。

1. 定时器的工作原理单片机的定时器通常由一个或多个计数器组成,计数器根据时钟信号进行计数,当计数达到预设值时,会触发相应的中断或者事件。

定时器通常有多种工作模式,如定时模式、脉冲宽度调制模式等。

2. 定时器的应用技巧- 定时中断:定时中断是单片机中最常见的应用之一,通过设置定时器的计数值和中断使能位,可以实现按照预设时间间隔触发中断,并执行相应的中断服务程序。

- 延时操作:定时器可以用于实现延时操作,在单片机需要等待一段时间后再执行某个操作时非常有用。

- PWM输出:定时器可以用于生成占空比可调的脉冲宽度调制(PWM)信号,用于控制电机的速度、调光等应用。

数字时钟实训报告功能

数字时钟实训报告功能

#### 一、引言随着科技的发展,电子产品的普及,数字时钟作为一种实用的电子设备,在人们的日常生活中扮演着越来越重要的角色。

为了提高同学们的实践能力,加深对电子技术的理解,我们进行了数字时钟的实训。

本报告将详细阐述数字时钟的功能及其实现过程。

#### 二、数字时钟的功能数字时钟具有以下主要功能:1. 时间显示:数字时钟能够准确显示当前的时间,包括时、分、秒。

小时采用24小时制,分钟和秒采用60进制。

2. 日期显示:除了显示时间,数字时钟还能够显示日期,包括年、月、日。

3. 校时功能:用户可以通过特定的按键对时钟进行校时,确保时钟显示的时间准确无误。

4. 闹钟功能:数字时钟具备闹钟功能,用户可以设定闹钟时间,当达到设定时间时,时钟会发出提示音。

5. 语音播报:部分数字时钟还具备语音播报功能,能够语音报时,为用户带来便捷。

6. 定时功能:数字时钟可以实现定时功能,如定时开关灯、定时开关空调等。

7. 时钟模式切换:数字时钟可以切换为不同模式,如12小时制、24小时制、AM/PM制等。

8. 低功耗设计:数字时钟采用低功耗设计,节能环保。

#### 三、数字时钟的实现数字时钟的实现主要涉及以下几个部分:1. 硬件电路:包括电源电路、时钟电路、显示电路、按键电路等。

- 电源电路:将220V交流电压转换为5V直流电压,为数字时钟提供稳定的电源。

- 时钟电路:采用555定时器构成多谐振荡器,产生1kHz的秒脉冲信号,驱动时钟电路运行。

- 显示电路:采用LED数码管或LCD显示屏,将时间、日期等信息以数字形式显示。

- 按键电路:包括校时按键、闹钟设定按键、定时按键等,用于控制时钟的功能。

2. 软件编程:利用C语言或汇编语言编写程序,实现时钟的计时、校时、闹钟、定时等功能。

- 计时程序:实现时钟的计时功能,包括秒、分、时的计数和进位。

- 校时程序:实现时钟的校时功能,包括时、分、秒的调整。

- 闹钟程序:实现闹钟的设定、启动和停止功能。

单片机时钟模块的作用

单片机时钟模块的作用

单片机时钟模块的作用单片机时钟模块是单片机中一个非常重要的模块,主要是为单片机提供精确的计时和计数功能。

它可以产生周期性的事件并能够记录时间。

时钟模块通常由晶振、计数器和控制逻辑三部分组成。

下面我们一起来了解一下单片机时钟模块的作用和应用。

1. 实时时间与日期显示单片机时钟模块可以显示实时时间和日期,这是它最常见的应用之一。

我们通常将实时时间、日期等数据通过LCD或数码管等显示出来。

而时钟模块可通过RTC(实时时钟)芯片实现。

在实际应用中,我们一般需要根据时钟模块所产生的时间与日期来控制其他模块的运行。

2. 定时器单片机在很多应用场合需要进行定时操作,例如控制开关、调整电子设备等。

在这些应用中,单片机时钟模块可以充当定时器的角色。

设置好特定的计数时间后,时钟模块会根据预设的时间自动触发其他模块进行相应的操作。

在实际生产和工业控制中,我们常常需要计算和控制运行时间。

单片机时钟模块可以同时作为计时器,记录开关或其他设备的运行时间或故障发生时间。

一旦出现异常,我们可以快速定位故障并进行维修。

4. 存储数据时钟模块还可以用于存储数据。

在数据采集中,我们将数据通过单片机时钟模块记录下来,并存储到EEPROM(可擦写可编程存储器)中。

这样,即使单片机断电重启,数据也不会丢失。

5. 节能单片机时钟模块可以在电源节能方面发挥很大的作用。

如果没有时钟模块,单片机需要一直保持高速运行,这会耗费很多电能。

而有了时钟模块后,单片机可以进入睡眠模式,只有到了预定的定时和计时时刻,才会自动唤醒。

总之,单片机时钟模块在各种应用场合都发挥着重要作用,并且这一模块将会在越来越多的单片机应用中成为基础模块。

定时器的定时实验报告

定时器的定时实验报告

一、实验目的1. 理解定时器的基本原理和工作方式。

2. 掌握定时器定时功能的实现方法。

3. 学习使用定时器中断进行时间控制。

4. 培养动手实践能力和问题解决能力。

二、实验环境1. 硬件:PC机一台,单片机实验系统一套,定时器模块。

2. 软件:Keil Vision 4软件,实验指导书。

三、实验原理定时器是单片机中用于实现时间控制的重要外设。

本实验采用定时器模块,通过编程实现对时间的精确控制。

1. 定时器的基本原理定时器由计数器、预置寄存器和控制逻辑组成。

计数器用于记录定时器的计数次数,预置寄存器用于设置定时器的计数初值,控制逻辑用于控制定时器的启动、停止和中断。

2. 定时器的工作方式定时器主要有以下两种工作方式:定时方式:定时器计数到预置值时,产生定时中断,完成定时任务。

计数方式:定时器对外部事件进行计数,计数到预置值时,产生计数中断。

3. 定时器中断定时器中断是定时器完成定时任务的一种方式。

当定时器计数到预置值时,产生中断请求,CPU响应中断后执行中断服务程序。

四、实验内容1. 定时器初始化:设置定时器的计数初值、工作方式、中断使能等。

2. 定时器启动:启动定时器开始计数。

3. 定时器中断处理:编写中断服务程序,实现定时任务。

五、实验步骤1. 搭建实验电路:根据实验指导书连接电路,包括单片机、定时器模块和外部设备。

2. 编写程序:初始化定时器:设置定时器的计数初值、工作方式、中断使能等。

启动定时器:启动定时器开始计数。

编写中断服务程序:在中断服务程序中实现定时任务。

3. 编译程序:使用Keil Vision 4软件编译程序。

4. 下载程序:将编译后的程序下载到单片机中。

5. 观察实验现象:观察外部设备的变化,验证定时器定时功能的实现。

六、实验结果与分析1. 实验现象:定时器模块按照预设的时间间隔产生中断,执行中断服务程序。

2. 实验分析:定时器定时功能的实现:通过设置定时器的计数初值,可以精确控制定时器的时间间隔。

第四章 时钟控制模块

第四章 时钟控制模块
TCR控制定时器的启动/停止、计数复位。当定时器TC 与匹配寄存器MR0~MR3发生匹配时,将会按照MCR设置 的方法产生中断、停止或复位TC等。

1.4 寄存器描述
标号 TxIR TxTCR TxTC TxPR 名称 中断寄存器 定时器控制寄存 器 定时器计数器 预分频寄存器 描述 可以写IR来清除中断。可读取IR来识别哪个中断被 挂起 TCR用于控制定时器计数器功能。定时器计数器可通 过TCR禁止或复位 32位的TC每经过PR+1个pclk周期加1。TC通过TCR进 行控制 保存预分频计数的最大值PR 32位的PC每经过PR+1个pclk时,TC加1 MCR用于控制在匹配时是否产生中断或复位TC 可通过MCR设定在匹配时复位TC ,停止TC和PC和/或 产生中断 它控制用于用于装载捕获寄存器的捕获输入边沿以 及在发生捕获时是否产生中断 R/W R/W R/W R/W R/W 访问 R/W R/W 复位值 0 0 0 0 0 0 0 0 0 0
0
0 0 0 0
1.5 定时器的操作方法
①设置定时计数器的时钟频率,定时器计 数时钟频率计算公式如下: 计数时钟频率=Fpclk/(PR+1) ② 设置定时器的工作模式。 ③ 若使用定时器的相关中断,则设置VIC中 断使能寄存器,使能中断; ④ 设置TCR,启动定时器定时。
1.5 定时器的操作方法
匹配控制寄存器TxMCR
IR 0 1 功能 中断(MR0) 复位(MR0) 描述 为1时,MR0与TC的匹配将产生中断;为0时,中断禁止。 为1时,MR0与TC的匹配将使TC复位;为0时,复位禁止。 复位值 0 0
2
3 4 5 6 7 8
停止(MR0)
中断(MR1) 复位(MR1) 停止(MR1) 中断(MR2) 复位(MR2) 停止(MR2) 中断(MR3)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本时钟模块和定时功能
姓名:邓陟学号:2009011976 实验班号:13 机器号:A65(A13)
一、实验目的
1.了解MSP430基本时钟模块的工作原理,掌握其控制方法掌握汇编语言中断程序设
计方法
2.了解利用时钟信号和中断技术实现定时功能的方法
二、实验基本任务
1.数字示波器的实用
测量示波器自带的周期性方波信号,掌握测量周期、频率、峰峰值、最大值、最小值的方法。

2.对基本时钟模块编程,使ACLK=4096Hz,SMCLK=XT2/4=2MHz,分别通过P2.0(或
P5.6)和P1.4(或P5.5)输出,并利用示波器观察相应的时钟信号。

改写语句MOV.B #8Eh,&BCSCTL2
8Eh=10001110b
三、已完成的选做任务
3.掌握基本时钟模块及其相关控制寄存器
L7_testclock.s43为用汇编语言编写的基本时钟模块测试参考例程的一部分,请在此
程序的基础上,编程输出不同频率的时钟ACLK、SMCK、MCLK,用示波器查看,并
依据表1改变BCSCTL1和BCSCTL2的值,分析ACLK、MCLK、SMCLK来自哪个时钟、几分频,填写下表,并记录输出的ACLK、MCLK、SMCLK测量值,将结果记录在表
1,掌握基本时钟模块的控制。

表1 基本时钟模块控制记录表
不能做到编程在引脚P2.2、P5.7、P1.6上分别输出ACLK、MCLK、SMCLK。

因为P2.2、P5.7、P1.6在非基本I/O功能选择下不是输出ACLK、MCLK、SMCLK的引脚。

4.利用时钟信号做中断源实现定时功能
将任务2中P5.6输出的4096Hz ACLK时钟信号,作为P1.0的中断申请信号,用导
线将P5.6与P1.0相连即可,在中断子程中设置一个计数变量,计数中断子程被执
行的次数,中断子程每被执行4096次表示一秒时间到。

利用该定时功能,将8发
光二级管设计成一个秒表,显示秒值,同时每隔10秒蜂鸣器响一声。

5.用C语言编程实现任务2功能。

相关文档
最新文档