定时器2-计数示例

发布者:RadiantEyes最新更新时间:2017-01-15 来源: eefocus关键字:定时器2  计数示例 手机看文章 扫描二维码
随时随地手机看文章

>_<:定时/计数器0使用16位定时模式,计数初值为0,计数到65536溢出,中断程序中LED取反,LED以65536*2个时钟周期为周期闪烁。


>_<:连接方式:将任意一个LED的引脚和P1.2相连


>_<:实验现象:LED以65536*2个时钟周期为周期闪烁。


 1 /*-----------------------------------------------

 2 名称:定时器0

 3 论坛:www.doflye.net

 4 编写:shifang

 5 内容:通过定时让LED灯闪烁

 6 ------------------------------------------------*/

 7 #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

 8 

 9 sbit LED=P1^2;    //定义LED端口

10 

11 /*------------------------------------------------

12 定时器初始化子程序

13 ------------------------------------------------*/

14 void Init_Timer0(void)

15 {

16     TMOD |= 0x01;      //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响             

17     TH0=0x00;          //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出

18     TL0=0x00;

19     EA=1;            //总中断打开

20     ET0=1;           //定时器中断打开

21     TR0=1;           //定时器开关打开

22 }

23 /*------------------------------------------------

24 主程序

25 ------------------------------------------------*/

26 main()

27 {

28     Init_Timer0();

29     while(1);

30 }

31 /*------------------------------------------------

32 定时器中断子程序

33 ------------------------------------------------*/

34 void Timer0_isr(void) interrupt 1 using 1

35 {

36     TH0=0x00;          //重新赋值

37     TL0=0x00;

38         

39     LED=~LED;        //指示灯反相,可以看到闪烁    

40 }



关键字:定时器2  计数示例 引用地址:定时器2-计数示例

上一篇:TFT2.4彩屏1 [文字显示 画矩形]
下一篇:定时器3-计时示例

推荐阅读最新更新时间:2024-03-16 15:30

stm8 uart2 串口接收中断协议解码+定时器中断
协议解码的时候,如果上位机发送数据不完整或者有错误,通过定时器中断将之接收的不完整数据清楚。定时的时间长短可有定时器觉得,ms为单位。 //初始化位毫秒单位 void Timer_Init() { TIM1_PSCRH = (unsigned char) ( ( (F_CPU / 1000) - 1) 8); /* 16M系统时钟经预分频f=fck/(PSCR+1) */ TIM1_PSCRL = (unsigned char) ( (F_CPU / 1000) - 1); /* PSCR=0x3E7F,f=16M/(0x3E7F+1)=1000Hz,每个计数周期1ms */ TIM1_ARRH = 0;
[单片机]
2. avr定时器/计数器0 --TC0 --快速PWM输出
PWM:脉冲宽度调制,图中T为脉冲周期,t为高电平时间,t与T的比值t/T称为占空比,脉宽调制指的是调整t的大小,即改变脉冲的占空比 ,占空比值越大,输出的电压越高。改变占空比就改变输出的电压,常用于实现D/A,调节电压或电流,改变电动机的转速等。 快速PWM模式:它的计数方式是TCNT0由0开始计数到255式,计数加1返回到0,然后继续加1计数,相对于相位PWM修正模式(由0计数到255,再从255计数到0),只有一个斜坡,因此PWM输出频率高。在快速PWM模式下,计数器的最大值决定了PWM的频率,而比较寄存器OCR0决定了占空比的大小。T/C0是8位计数器, 输出PWM的频率=系统时钟频率/(分频系数*255) 。 P
[单片机]
stm32定时器外部时钟3使用外部时钟源模式2进行定时的步骤
stm32中的通用定时器的计数时钟有三种,内部时钟、外部时钟源、内部触发输入这三种,其中内部时钟是大家都比较常用的,也是在应用中比较多的,我们现在主要来讲一下外部时钟源的模式2外部时钟模式2:外部触发输入。 编程步骤: 配置TIM3_ETR引脚为输入引脚PD2,硬件上需要将脉冲连接到该引脚,我这里是使用6.78MHz的晶振 配置定时器3:包括使能定时器3对应的时钟引脚,配置定时器3的周期、预分频参数 因为我们使用了定时器3中断,所以需要给定时器设置优先级,在timerx_nvic_init()中的关于TIM3部分操作 将SMCR中的ETF、ETPS、ETP和ECE进行配置 执行完了以上步骤之后还需要操作triggle中断
[单片机]
STM8S105 TIM1 TIM2 定时器的定时时间初始化
很多刚接触STM8单片机的入门者不知到如何使用TIM1和TIM2的定时器作为定时功能。 下面介绍如下: TIM1的初始化1us: 系统时钟是16M。 void set_TIM1_nus(u16 nus) { /*1u的记数周期*/ /*TIM1_TimeBaseInit(0x0F,TIM1_COUNTERMODE_UP,nus,TIM1_RCR_RESET_VALUE);*/ /* Set the Autoreload value */ TIM1- ARRH = (u8)(nus 8); TIM1- ARRL = (u8)(nus); /* Set the Prescaler value */ TIM1- PSCRH = (u
[单片机]
单片机学习之十五:定时器应用2(模式2
一、试验现象 在P0.0输出一个周期是500us的方波信号,方波的周期由定时器T0确定。 二、试验目的 掌握内部定时/计数器作定时功能(模式2)的应用 三、试验任务分析 上一个试验我们采用了T0工作于模式1的应用,因为定时时间较长,所以T0应该选择16位的工作方式。但是在这个试验里面,定时时间很短,只有500/2=250us,所以我们可以让T0工作于方式2,即8位计数器(注:8位计数器的最长定时时间是:2^8=256us)。计数初值的计算方法和以前一样,即: 定时器工作于模式2的时候,它还有一个特性-可自动再装入定时常数。我们在上一个试验的时候发现,
[单片机]
单片机学习之十五:<font color='red'>定时器</font>应用<font color='red'>2</font>(模式<font color='red'>2</font>)
51单片机定时器0工作在模式2
51单片机定时器0工作在模式2,INT0(P3.2)引脚控制定时/计数器定时计数,定时/计数器0溢出中断,使P2.0引脚相连的LED灯闪烁。定时/计数器0溢出中断为250μs,与P2_0引脚相连的LED灯每2s亮灭一次。源程序如下: //51hei单片机网原创作品,版权所有. #include "reg_c51.h" #define reload_value 0x06 //计数值为250,若时钟频率为12MHz,相当于250μs unsigned char hex ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,
[单片机]
STC89C52单片机定时器2详细整理
51单片机是我自学的第一款单片机,那时正好是过春节,想起那个寒假,外面下着大雪,有时还会传来一两声爆竹的炸响,而我一个人在房间里摆弄单片机开发板,反复调试程序的时光,真是难忘! 我自认为这款单片机所有的资源中最不好搞清楚的就是定时器2,尤其是对于那些以前从来没有玩过单片机的新手。定时器2是新增资源,也是51单片机定时器里面功能最强大的一个定时器。所以掌握好定时器2还是非常有必要的。以下是在我完全搞明白它的原理和用法的基础上整理的一篇小文章。读起来,好像Datasheet一样!请原谅,希望没有辜负你的点击! 定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位可将其设置为定时器或是计数器;通过设
[单片机]
关于stm8定时器2的中断
定时器2定时器溢出中断开启 TIM2_ITConfig( TIM2_IT_UPDATE, ENABLE); 中断函数入口在stm8s_it.c文件中,函数名INTERRUPT_HANDLER( TIM2_UPD_OVR_BRK_IRQHeadler, 13) 进入该中断函数第一件事情就是要清除溢出状态位 TIM2_ClearFlag( TIM2_FLAG_UPDATE); 否则会不断的进入该中断函数
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved