蓝桥杯驱动程序带注释--Timer定时器配置

蓝桥杯驱动程序带注释--Timer定时器配置

定时器实验报告

定时器实验报告 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

电子信息工程学系实验报告课程名称:单片机原理及接口应用 实验项目名称:51定时器实验 实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。 MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP)

2 、51单片机的相关寄存器设置 方式控制寄存器TMOD: D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATE C/T M1M0 TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: M1M0功能说明 0 0 1 10 1 1 方式0,为13位的定时/计数器 方式1,为16位的定时/计数器 方式2,为常数自动重装入的8位定时/计数器 方式3,T0分为两个8位定时/计数器, T1在该方式时停止 3、51单片机定时器的工作过程(逻辑)方式一方式1:当M1M0=01时,定时器工作于方式1。

实验3-2timer定时器(中断方式)

实验三-2 timer定时器(中断方式) 【实验目的】 1、学习LPC1768处理器timer定时器(中断方式)的功能原理; 2、掌握定时器功能设置及使用方法。 【实验要求】 1、了解LPC1768处理器timer定时器(中断方式)的功能原理。 【实验原理】 一、LPC系列处理器定时器的原理 参见课本P106中有关定时器的章节,重点要掌握定时器工作原理、定时器寄存器设置和定时器中断的工作方法等。 二、实验板上的定时器 1.LPC1700嵌入式处理器具有4个32位可编程定时/计数器,除了外设基址之外操作完全相同。 2. 定时/计数器对外设时钟(PCLK)周期或外部时钟进行计数,可选择产生中断或根据匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。 3. 中断方式使用定时器: 在这种方式下定时器与处理器可以并行工作,等计数完成定时器通过中断通知处理器转而执行中断服务程序。这样的使用方式可以提高系统的效率。 程序首先要初始化使用的定时器,init_timer()函数执行内容包括设置定时器的匹配寄存器MRn和匹配控制寄存器MCRn,还有安装定时器中断服务函数等。该函数有两个参数:timer_num为初始化定时器序号,TimerInterval为Fpclk周期数也即定时器中断间隔时间。 三、程序说明 1.SystemInit(): 系统初始化,包括系统时钟设置等。 2. init_timer ( uint8_t timer_num, uint32_t TimerInterval ): 根据不同定时器编号设置定时器相关寄存器以及安装中断服务程序。 3. enable_timer( uint8_t timer_num ): 定时器使能,本实验中使用定时器0,因此参数timer_num设置为0。 4. TIMER0_IRQHandler (void):

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

05_STM32F4通用定时器详细讲解

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

单片机定时器实验报告

XXXX大学信息工程与自动化学院学生实验报告 (2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。

在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

23.Step7如何将定时器(Timer)的剩余时间转为浮点数

【S7-300】Step7如何将定时器(Timer)的剩余时间转为浮点数 在Step7中定时器(Timer)的输出参数BI、BCD,是其剩余时间的两种数据格式。BI以整数Int格式显示,BCD以BCD格式显示。如何将BI、BCD转为秒为单位的浮点数(Real),下面提供了思路和例程。 1 定时器(Timer)的参数说明 定时器(Timer)在编程中大量使用,有时会用到其剩余时间,例如用剩余时间进行其他运算和编程,或者在其它厂家的触摸屏上显示。这时,需将定时器的剩余时间转为浮点数(Real),以秒为单位。 下面是调用定时器的程序截图,预设定时时间为1分钟为例。

首先,分析定时器的各参数含义,按鼠标左键点击定时器框图后按F1键会看到step7帮助信息,如下图。 由此可见输出参数BI、BCD是定时器剩余时间的两种数据格式。BI以整数Int 格式显示,BCD以BCD格式显示。注意,此处BCD格式即是S5Time格式,其数据结构和时基如下:

明显看出,参数BI转为秒为单位的浮点数,必须利用参数BCD的时基。参数BCD转为秒为单位的浮点数,需调用库函数FC33(S5TI_TIM)。 2 剩余时间参数BI,转为秒为单位的浮点数(Real) 思路:参数BI -> 整数INT -> 双整数DI -> 浮点数Real -> 取参数BCD的时基-> 根据不同时基,转为秒为单位的浮点数Real。编程如下:

3 剩余时间参数BCD,转为秒为单位的浮点数(Real) 思路:参数BCD -> 时间S5Time -> 库函数FC33(S5TI_TIM) -> 时间Time -> 双整数DI -> 浮点数Real -> 除以1000.0,转为秒为单位的浮点数Real。编程如下: 4 结果显示 本例程中,定时器的预设定时时间为1分钟,启动定时器,截图如下。 可见,截图时定时器剩余时间为30s500ms,参数BI和BCD转为秒为单位的浮点数,均为30.5秒。

单片机实验报告——定时器

实验四定时器实验 自动化121班1202100236 张礼 一.实验目的 掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。 二.实验仪器 单片机开发板一套,计算机一台。 三.实验任务 编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。 开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。而U2的锁存使能端LE由P2.1控制,所

以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。 汇编语言程序流程如图4-2: 四.实验步骤: 1.数码管的0~9的字型码表如下: 2.参考图4-2所给的程序流程图编写实验程序。(注:以下程序为两位60秒计数程序) #include sbit wei=P2^0; sbit duan=P2^1; char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

嵌入式系统流水灯,按键,定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。 由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度:

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。 初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

定时器Timer实时修改时间间隔(周期)

1.定时器Timer当时间间隔(周期)变化时,实时去修改 我项目中主要是实现在某个时间段上午8:00-12:00,下午 2:00(pm_start)-19:00(pm_end),每隔3分钟(pm_time)(可以手动设置)自动上传当前的位置(google的定位) // 执行定时任务 privateboolean bool= true;// true表示服务器与本地数据相同,false表示服务器与本地数据不相同 privatevoid start_schedule_pm() { final Timer timer = new Timer(); timerTask = new TimerTask() { @Override publicvoid run() { //当不相同时取消timer重新new一个timer if (!bool) { if (timer != null) { Log.e("%%%%", bool + ""); timerTask.cancel(); timer.cancel(); start_schedule_pm(); bool = true;

return; } } if ((getCurrentTime() - 12) >= Double.valueOf(pm_end)) { timerTask.cancel(); timer.cancel(); //我的是在android service里跑的程序,所以关闭了service stopSelf(); return; } if (!AppUtils.checkNet(getApplicationContext())) { Log.d("data", "网络未连接"); return; } Log.d("data", "新任务开始");

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

MSP430单片机定时器实验报告

实验四定时器实验 实验目的: MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。实验内容: 定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能: 1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。 2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序 3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。 4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。 5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。 程序代码: 程序1: #include void main() {WDTCTL = WDTPW + WDTHOLD; //关看门狗 P1DIR |= BIT3; //设置P1.0口方向为输出。 TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1, //CCR0捕获/比较功能中断为允许。 TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767 TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL, //使时钟源选择为SMCLK辅助时钟。 //进入低功耗模式LPM0和开总中断 _BIS_SR(LPM0_bits +GIE); } //定时器A 中断服务程序区 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) {

定时器T的用法

第九讲定时器T2的用法 定时器 声明,定时器T2只有52以上的芯片才有,51没有的。

捕捉模式 在捕捉模式时,两种操作模式由T2CON中的EXEN2位选择。如果EXEN2=0,Timer2作为一个16位向上定时或计数器,当溢出时将T2CON中的TF2置1。这个标志位可以产生一个中断。如果EXEN2=1,Timer2起同样的作用,但是,外部输入端T2EX上的下降延也可以使TH2和TL2中的值捕捉到RCAP2H和RCAP2L中,另外,T2EX上的下降延可以将EXF2置1,像TF2一样,也可以产生一个中断。捕捉模式详见图5。 自动重载模式

Timer2在指定为16为自动重载模式时可以编程为加计数或减计数,此功能由T2MOD 中的DCEN位决定。DCEN=0,计数器向上计数,默认置为0,DCEN=1时,Timer2的加或减由T2EX的值决定。 图6显示Timer2在DCEN=0时自动向上计数。在这个模式时,T2CON的EXEN2为可以选择两种操作。EXEN2=0,Timer2向上计数到0FFFFH时将TF2为置1,溢出可以把RCAP2H和RCAP2L 中的16为值重新加载到定时寄存器中。捕捉模式时RCAP2H和RCAP2L中的值由软件预先设定。EXEN2=1,既可以由溢出重载也可以由T2EX引脚的下降延触发重载。TF2和EXF2都可以产生中断。设置DCEN为可以时Timer2向上或向下计数,如图6所示,此模式下,T2EX 脚控制计数方向。T2EX如果为1,Timer2向上计数。计数器到0FFFFH时溢出并将TF2置1。溢出可以使RCAP2H和RCAP2L中的16为值重新加载到定时寄存器中。T2EX如果为0,Timer2向下计数,当TH2和TL2中的值和RCAP2H和RCAP2L相等时向下溢出。溢出使TF2置1并 将0FFFFH重新加载到计时寄存器中。

单片机定时器实验报告doc

单片机定时器实验报告 篇一:单片机实验报告——定时器 实验四定时器实验 自动化121班 36 张礼 一.实验目的 掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。 二.实验仪器 单片机开发板一套,计算机一台。 三.实验任务 编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。 开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。两片锁存器的输出使能端OE都恒接地,使得锁存器

的内部数据保持器输出端与锁存器的输出端保持接通。而U2的锁存使能端LE由P2.1控制,所 以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。 汇编语言程序流程如图4-2: 四.实验步骤: 1.数码管的0~9的字型码表如下: 2.参考图4-2所给的程序流程图编写实验程序。(注:以下程序为两位60秒计数程序) #include sbit wei=P2^0; sbit duan=P2^1; char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x 7f,0x6f}; int i,j,k,num,shi,ge; void delay(int a) { for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0; duan=1;P1=table[shi];duan=0; wei=1; delay(5); P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }

STM32之TIMER定时器之间不同点

STM32之TIMER定时器之间不同点 STM32F1 系类有1~14 一共14 个定时器;具体型号不一样会有所不同。它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM 等)。使用定时器预分频器和RCC 时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。高级控制定时器(TIM1 和TIM8)和通用定时器(TIMx)是完全独立的, 它们不共享任何资源。它们可以同步操作。TIM6 和TIME7 是基本定时器,他 们通常作为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟。实际上,它们在芯片内部直接连接到DAC 并通过触发输出直接驱动 DAC。这2 个定时器是互相独立的,不共享任何资源。TIM2 到TIM14 为通用定时器,TIM2 到TIM5;TIM9 和TIM12;TIM10,TIM11,TIM13,TIM14,分为 了三组,他们功能上有一些不同,相对高级定时器,只是功能上有一些阉割,他 们都是相互独立的,但是总时钟都是由RCC 控制着。具体的不同点看下面的 结构体。图一为TIM1 和TIM8 高级定时器图二为TIM2 到TIM5 图三为TIM6 和TIM7 图四为TIM9 和TIM12 图五为TIM10/11/13/14 从这五幅图可以看出,每组定时有自己的用途,他们还可以根据需要通过TRGO 信号进行定时定级联。但是不推存大家这样做,如果你设计的系统误差没有严格要求话还是可以尝试的。具体的定时器配置和说明将在以后日志中详细说明,他们的配置几乎是一 样的。tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

单片机定时器实验报告

定时器实验报告 ㈠实验目的 1.掌握单片机内部计数器的使用和编程方法; 2.掌握中断处理程序的编程方法。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 4.电源一台 5.示波器一台 ㈢实验内容及要求 1.在使用12MHz晶振的条件下,由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的L1~L8。(用连线连接J2、J3)。 要求:编写程序模拟一循环彩灯。彩灯变化花样为:①L1、L2、 (8) 次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。 2.编写一个救护车警笛声程序,要求:高低两种音调交替出现,交替周期1~ 1.5S。

㈣ 实验框图 循环彩灯代码 ORG 0000H LJMP MAIN 开 始 置T1的工作方式 置初始常数 开中断 等 待 主程序框图 N Y 中断返回 恢复现场 是否到0.5秒 查 表 显示 调整表格指针 置定时常数 INT _T1入口 保护现场 INT _T1中断程序框图

ORG 000BH ;T0的中断入口地址 MAIN: MOV SP,#60H MOV TMOD,#01H ;设置T1工作于方式一MOV 20H,#0AH ;装入中断次数 MOV TL0,#0B0H ;装入计数值低8位 MOV TH0,#3CH ;装入计数值高8位SETB TR1 ;启动定时器T1 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $ ;等待中断 CAIDENG: PUSH PSW PUSH ACC ;保护现场 MOV TL0,#0B0H ;装入计数值低8位 MOV TH0,#3CH ;装入计数值高8位JUDGE: DJNZ 20H,RETUNT ;0.5秒未到,返回MOV 20H,#0AH ;重置中断次数 HUAY ANG1: ;花样一 MOV R0,#08H ;设置花样一循环次数MOV P1,#00H MOV A,#01H LOOP:MOV P1,A LCALL DELAY LCALL DELAY LCALL DELAY RL A DJNZ R0,LOOP NEXT1: MOV TL0,#0B0H ;装入计数值低8位 MOV TH0,#3CH ;装入计数值高8位JUDGE1: DJNZ 20H,NEXT1 ;0.5秒未到,返回MOV 20H,0AH

mcgs定时器操作函数设置

定时器号:系统定时器的序号1—127,MCGS系统内嵌127个系统定时器。 系统定时器以秒为定时单位。 !TimerClearOutput(定时器号) 函数意义: 断开定时器的数据输出连接 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号。 实例:!TimerClearOutput(1),断开1号定时器的数据输出连接 !TimerRun(定时器号) 函数意义:启动定时器开始工作 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号 实例:!TimerRun(1),启动1号定时器工作。 !TimerStop(定时器号) 函数意义:停止定时器工作 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号 实例:!TimerStop(1 ),停止1号定时器工作。 !TimerSkip(定时器号,步长值) 函数意义:在计时器当前时间数上加/减指定值 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号;步长值 实例:!TimerSkip(1,3),1号定时器当前值+3 !TimerReset(定时器号,数值) 函数意义:设置定时器的当前值,由第二个参数设定,第二个参数可以是MCGS变量返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号;数值 实例:!TimerReset(1,12),设置1号定时器的值为12 !TimerValue(定时器号,0) 函数意义:取定时器的当前值

返回值:将定时器的值以数值型的方式输出(数值格式) 参数:定时器号 实例:Data3=!TimerValue(1,0),取定时器1的值给Data3 !TimerStr(定时器号,转换类型) 函数意义:以时间类字符串的形式返回当前定时器的值 返回值:字符型变量,将定时器的值以字符型的方式输出(时间格式) 参数:定时器号 转换类型值:开关型 = 0:取定时器的值以“00:00”形式输出; = 1:取定时器的值以“00:00:00”形式输出; = 2:取定时器的值以“0 00:00:00”形式输出; = 3:取定时器的值以“0 00:00:00.000”形式输出; 实例:Time=!TimerStr(1,1),取定时器的值以“00:00:00”形式输出给Time !TimerState(定时器号) 函数意义:取定时器的工作状态 返回值:数值型变量,0 - 定时器停止,1 - 定时器运行 参数:定时器号 实例:data1=!TimerState(1),取定时器1的工作状态给data1 !TimerSetLimit(定时器号,上限值,参数3) 函数意义:设置定时器的最大值,即设置定时器的上限 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号;上限值;参数3,1 - 表示运行到60后停止;0 - 表示运行到60后重新循环运行 实例:!TimerSetLimit(1,60,1),设置1号定时器的上限为60,运行到60后停止。 !TimerSetOutput(定时器号,数值型变量) 函数意义:设置定时器的值输出连接的数值型变量 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号;数值型变量,定时器的值输出连接的数值型变量 实例:!TimerSetOutput(1,Data0),将1号定时器的数据连接到Data0 !TimerWaitFor(定时器号,数值)

微机接口-8253定时器实验报告

浙江工业大学计算机学院实验报告 实验名称8253定时器实验 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 计数器方式2实验:将8253芯片的计数器0的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB平台上的LED 灯观察OUT0电平变化(当输入第N倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态)。 计数器方式3实验:将计数器0、计数器1的工作方式分别设置为方式3,计数初值设为1000,并同时用TPC-USB平台上的LED灯观察OUT1电平变化(频率1Hz)。 1.2 实验要求 (1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程 图,写出对应代码; (2)要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序 关系、各种模式的编程及应用,能熟练地对其进行编程; (3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接 好实验电路; (4)计数器方式2实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开 关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变 低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯 都处于亮状态; (5)计数器方式3实验:连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB 平台上的LED灯能周期性地亮灭,频率为1Hz。

二、实验原理与硬件连线 2.1 实验原理 1、8253定时/计数器芯片的内部结构: D7-D0 112 20 1 002 图1 8253内部结构图 (1)数据总线缓冲器: 三态双向8位寄存器,与系统数据总线相连,可寄存以下3种数据: ? CPU 向8253/8254写入的工作方式命令字; ? CPU 向计数寄存器写入的计数初值; ? 从计数器读出的当前计数值。 (2)读/写控制逻辑: 接收CPU 发来的读、写、片选和地址信号,选择相应的寄存器,进行读写操作。 (3)控制字寄存器: 接收CPU 发来的控制字(只写)。 控制字的功能:

定时器实验报告

定时器实验报告 自动化1003 徐磊 201003120325 1.实验目的 1、掌握定时器的工作原理。 2、学习单片机定时器的应用设计和调试。 2.实验原理 系统8051中有三个16 位定时器/计数器:定时器0、定时器1 和定时器2。每一个包含两个8 位寄存器,THx和TLx(这里,x=0、1 或2)。所有这些操作既可配置为定时器或事件记数器。定时器功能,TLx 寄存器每12 个时钟周期或1个周期加1,通过软件来选择。因此可认为为计数器时钟周期。每记12个时钟周期,计数速率达1/12 的晶振频率。 计数器功能,下降沿时寄存器加1,根据外部输入引脚T0、T1 或T2。在这些功能中,每个时钟周期对外部输入信号(T0 引脚和T1 引脚)进行采样,每12个时钟周期对T2 引脚采样。当采样信号出现一个高电平接着一个低电平,计数加1。当检测到跳变时新计数值出现在寄存器中。对定时器0 和定时器1 来说,需要用两个时钟周期来识别下降沿跳变,最大的计数速率为1/2 的晶振频率;对于定时器2,需要用24个时钟周期来识别下降沿跳变,最大计数速率为1/24的晶振频率。外部输入信号没有严格的周期限制,但是要确保在电平改变前至少有一次采样,对定时器0 和定时器1来说信号应该至少保持一个时钟,定时器2 需要12 个时钟周期。 对定时器0 和定时器2 来说,除了标准8051 定时器的功能之外,添加了一些新的特征。 3.实验系统的原理图如下: 4.示例程序如下: ;做实验前请将对应“Digital LED Power”位置的红色拨码开关打到ON 的位置 ORG 0000H SJMP MAIN ORG 0030H ;将数码管所要显示的数据保存在30H~35H之中

定时器实验实验报告

定时器实验实验报告 一、实验目的 1、了解定时器的工作原理和四种工作方式的使用方法 2、学习定时器的相关应用(产生信号、计数等) 二、实验原理 1、定时器的结构和原理 上图是定时器T0、T1的结构,振荡器经过12分频后作为定时器的时钟脉冲,T 为外部计数脉冲输入端,通过开关K1选择。反相器,或门,与门共同构成启/停控制信号。TH和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON 2、定时器的工作方式 方式0:13位定时/计数器 方式1:16位定时/计数器

方式2:8位重复定时/计数器 方式3:8位定时/计数器,仅T0 三、实验内容 1、通过查询定时器状态,在P1.0产生近似10kHz的方波

2、利用计数器测量信号发生器产生的不同频率的方波周期,并在寄存器中显示结果。 四、电原理图 本实验无需接线 五、实验流程图 六、实验代码 1、 ORG 0000H LJMP MAIN ORG 0100H MAIN: SETB P1.0 ;给P1.0一个初始状态 MOV TMOD,#01H ;T0工作于定时方式1 MOV TH0,#0FFH MOV TL0,#0D2H SETB TR0 BACK: JBC TF0,BACK1 ;定时时间到,跳转 SJMP BACK ;定时时间未到,继续查询 BACK1: MOV TH0,#0FFH MOV TL0,#0D2H ;重新设置定时器 CPL P1.0 ;反转P1.0 SJMP BACK END 2、 RUTL EQU 70H RUTH EQU 71H CONT EQU 72H ORG 0000H LJMP MAIN ORG 0100H MAIN:

555集成定时器的应用试验报告

电工电子实验报告 555 集成定时器的应用 一、实验目的 1. 熟悉555 定时器电路的工作原理。 2. 熟悉555 时基电路逻辑功能的测试方法。掌握用555 定时器电路构成单稳态触 发器,多谐振荡器,施密特触发器的方法和原理。 3. 了解定时器555 的实际应用。(做一个闪烁指示灯门铃) 二、实验仪器与器材 1 、数字逻辑实验箱1 台 2 、万用表1 只 3 、双踪示波器1 台 4 、元器件:NE555、放光二极管、电阻、电容、扬声器、导线若干 三、预习要求 1 .对照功能表熟悉555 定时器各管脚及其功能。 2 阅读本实验的实验原理以及教材中有关单稳态触发器、多谐振荡器、施密特振荡器的容。 3 .根据原理图和给出的电路参数,画好单稳态触发器、多谐振荡器、施密特振荡器的电路图,估算实验结果。 4 .了解55 5 定时器的一般应用电路。 四、实验原理 555 定时器是模拟—数字混合式集成电路,利用它可以方便地构成脉冲产生、整形电路和定时、延时电路。具有功能强,使用灵活、方便等优点,在数字设备、工业控制、家用电器、电子玩具等许多领域都得到了广泛的应用。 集成定时器的产品主要有双极型和CMOS 型两类,按集成电路部定时器的个数又可分为单定时器和双定时器;双极型单定时器电路的型号为555 ,双定时器电路的型号为556 ,其电源电压的围为5~18V ;CMOS 单定时器电路的型号为7555 ,双定时器电路的型号为7556 ,其电源电压的围为2~18V 。CMOS 型定时器的最大负载电流要比双极型的小,它们的功能和外引脚排列完全相同。 (一)、555 定时器的电路结构及其功能 图4- 1为555 定时器的部逻辑电路和外引脚图,从结构上看,555 电路由2 个比较器、1 个基本RS 触发器、1 个反相缓冲器、1 个集电极开路的放电晶体管和3 个5k Ω电阻组成分压器组成。

相关文档
最新文档