51定时器初始化步骤

发布者:机械梦想家最新更新时间:2018-07-30 来源: eefocus关键字:51定时器  初始化步骤 手机看文章 扫描二维码
随时随地手机看文章

定时器初始化需要六步:

void TimerInit()

{

TMOD = 0X01;

TH0 = (65536 - X) /256;//(65536-X)为定时器初值,如定时10ms,则X=1000

TL0 = (65536 - X)%256;

EA =  1;

ET0 = 1;

TR0 = 1;

}

中断函数:

void Timer0 interrupt 1

{

TH0 = (65536-X)/256;

TL0 = (65536-X)%256;

num++;

if(num>100)

num = 1;

}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Step1: 设置系统CLK


Setp2: 设置timer工作模式
TMOD = 0x20;


Step3: 设置timer clk源
CKCON = 0x80;


step4: 设置定时值
TL1 = 0x0F;
TH1 = 0x0F;


step5: 启动timer
TCON = 0x40;
(TR1 = 1)


step6: timer中断允许
IE = 0x80
(ET1 = 1)


step7: 全部中断使能
EA = 1;


step8: 编写中断函数
void Timer1_ISR (void) interrupt 3
{
   static int counter = 0;


   if((counter++) == LED_TOGGLE_RATE)
   {
      LED = ~LED;                      // Toggle the LED
      counter = 0;
   }
}


关键字:51定时器  初始化步骤 引用地址:51定时器初始化步骤

上一篇:51单片机实现LED流水灯(数组方式和位运算方式)
下一篇:基于51单片机的LCD1602液晶驱动实现

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

eCAN总线模块的初始化步骤
  在CAN模块正常操作及初始化之前,必须使能模块的时钟。可以通过寄存器PCLKCR的14位使能/屏蔽CAN模块的时钟。在不使用CAN模块时,通过该位屏蔽CAN的时钟可以降低功耗。该位不能控制CAN模块的低功耗模式,同其他外设一样,复位后CAN模块的时钟被屏蔽。模块时钟的配置一般在处理器初始化中完成,eCAN模块的初始化步骤如下。 (1)使能CAN模块的时钟。 (2)设置CANTX和CANRX作为CAN通信引脚:    ◇写CANTIOC.3:0=0x08;    ◇写CANRIOC.3:0=Ox08。 (3)复位后,OCR(CANMC.12)位和CCE(CANES.4)位置1,允许用户配置位时间配置寄存器(
[嵌入式]
实验五 定时器(80C51单片机汇编语言编程)
P1.0、P1.1接两个发光管,INT0接一启动按键,启动后两个发光管一亮一灭,亮灭时间为1s,再按按键停止发光管。 实验箱晶振:6M ORG 0000H AJMP MAIN ORG 0003H AJMP INT0 ORG 000BH AJMP T0 ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB EX0 SETB ET0 SETB IT0 CLR TR0 CLR P1.0 CLR P1.1 MOV R7,#0AH SJM
[单片机]
C51 定时器/计数器
//外部连接:P1.0 与 T1计数器输入端P3.5 连接。 #include reg52.h sbit out=P1^0; void main() { //T0定时器,工作方式2。其中断函数使 out 脚 输出脉冲 //T1 计数器,工作方式1. 其中断函数使 P2 输出脉冲 TMOD=0x52; //中断允许 ET0=1; ET1=1; EA=1; //设置 T0 时间常数,定时200us, TH0=56; TL0=56; //设置 T1 时间常数,计数2500 TH1=(65536-2500)/256 ; TL1=(65536-2500)%256; //启动 TR0=1; TR1=1;
[单片机]
51单片机硬件定时器设定的初值问题
网上查了很多解释关于51单片机硬件定时设定的文章,发现说的不是特别透彻,可能大家觉得一些类似基本感念的问题就不用澄清了,所以对于我这样的入门小白理解起来有些障碍,这里我把自己的理解解释的细致多一些,希望能给同道中人一些帮助。 说到定时前需要澄清几个概念:震荡周期,状态周期,机器周期,指令周期。(学习什么知识概念必须掌握清楚,否则就“糊”了!) 震荡周期:(来自百度百科)在单片机系统中,定时器需要借助单片机内部提供的脉冲进行定时,此时,定时的依据是CPU提供的周期性振荡,振荡一次所需的时间称为振荡周期。单片机系统也可以通过外部晶体振荡器(也被称为晶振)提供振荡进行工作。 对于震荡周期的理解:计算机系统中通常需要同时处理多
[单片机]
51单片机定时器定时模式
写点专业的知识吧,也是初学,大家共同学习。好,废话少说,进入主题 初学51单片机的人都接触到定时器这个东西,关于定时器也有很多资料,包括内部结构,如何执行。但是说到模式,我想刚学的时候听他们讲的那堆乱七八糟的模式都很费解,什么模式0,模式1,十六位,八位。我到现在也没有明白。但是我在编程时,对这东西有一个初步的理解。 首先是定时器为啥要先装初值,这东西打个比方,古代定时用的是沙漏,沙漏是先在桶中装上沙子,在钻一个眼,沙子都溜走时,为一个周期。如果要定时,装的就是最后的那个时间,加入我定10毫秒,则是10、9、8、7、6 ,直到0,启动中断。而还有一种方法就在木桶中滴水,木桶的容积是一定的,水滴满以后就是一个周期。加入那个木桶可以装
[单片机]
51单片机与汇编之定时器中断闪烁LED
话不多说,先上程序 ORG 0000h AJMP START ORG 000BH AJMP TIME0 START: MOV 66H,#0 MOV TMOD,#00000001B MOV TH0,#0BBH MOV TL0,#0CCH SETB EA SETB ET0 SETB TR0 AJMP $ TIME0: PUSH ACC PUSH PSW MOV TH0,#0BBH MOV TL0,#0CCH INC 66H MOV A,66H CJNE A,#30,TIME00 CPL P1.0 MOV 66H,#0 TIME00: POP PSW POP ACC RETI END 这段程序的达成的目标是:用定时器产生一个中断,中断内
[单片机]
51 单片机的定时器中断寄存器
中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理中断程序(中断函数)。 此篇主要整理定时器中断笔记。采用定时器中断会涉及中断寄存器,定时器/计数器相关寄存器(TCON,TMOD),中断函数等知识点。 其中,中断寄存器,定时器/计数器相关寄存器本身或者相关位用来做初始化,中断函数的内容主要是体现发生中断后所需要的操作(在中断函数内写代码)。 1.中断允许寄存器IE 图1.中断寄存器IE 中断寄存器用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H~AFH,该寄存器运行位寻址
[单片机]
<font color='red'>51</font> 单片机的<font color='red'>定时器</font>中断寄存器
51单片机学习笔记(三)_定时器和计数器
注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲 2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1) TMOD:定时器/计数器模式控制寄存器 详见百度百科TMOD 每经过一个机器周期、寄存器+1 TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。 TR:定时器运行控制位。置1开始计时、清零停止计时。 C/T:该位为0时用作计时器、该位为1时用作计数器。 溢出时时间-开始计时时间=预设定时时间 一个机器周期共有12个振荡脉冲周期 若设定时为0.02s,则: 12*(65535-X)/11059200=0.02s 定时器作 加1 次数:X=471
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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