C51 Timer 计数器

发布者:脑力激荡最新更新时间:2018-12-19 来源: eefocus关键字:C51  Timer  计数器 手机看文章 扫描二维码
随时随地手机看文章

Timer0 计数器:

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


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


/*------------------------------------------------

                    定时器初始化子程序

------------------------------------------------*/

void Init_Timer0(void)

{

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

 TH0=0xFF;        //给定初值

 TL0=245;         //从245计数到255 

 EA=1;            //总中断打开

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

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

}

/*------------------------------------------------

                    主程序

------------------------------------------------*/

main()

{

 Init_Timer0();

 while(1);

}


/*------------------------------------------------

                 定时器中断子程序

------------------------------------------------*/

void Timer0_isr(void) interrupt 1 using 1

{

 TH0=0xFF;        //重新给定初值

 TL0=245; 


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


}



Timer1 计数器:

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


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


/*------------------------------------------------

                    定时器初始化子程序

------------------------------------------------*/

void Init_Timer1(void)

{

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

 TH1=0xFF;        //给定初值

 TL1=245;         //从245计数到255 

 EA=1;            //总中断打开

 ET1=1;           //定时器中断打开

 TR1=1;           //定时器开关打开

}

/*------------------------------------------------

                    主程序

------------------------------------------------*/

main()

{

 Init_Timer1();

 while(1);

}


/*------------------------------------------------

                 定时器中断子程序

------------------------------------------------*/

void Timer1_isr(void) interrupt 3 

{

 TH1=0xFF;        //重新给定初值

 TL1=245; 

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

}

关键字:C51  Timer  计数器 引用地址:C51 Timer 计数器

上一篇:C51 单片机 读取93C64
下一篇:C51 ADC0804LCN 应用

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

PIC32MZ tutorial -- Core Timer
  Core Timer is a very popular feature of PIC32 since it is a piece of the MIPS M4K core itself and is common to all MIPS processors. Most RTOS's timer are based on core timer. This timer has a fixed prescaler 1:2, and it is a 32-bit timer, no need to combine with two 16-bit timer like we do with other timers (Tim
[单片机]
C51的基础3《关键字和标识符 》
3 关键字和标识符 3.1 关键字 所谓关键字就是已被Turbo C2.0本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等。 Turbo C2.0有以下关键字: Turbo C2.0扩展的共11个 asm _cs _ds _es _ss cdecl far near huge interrupt pascal 由ANSI标准定义的共32个 auto double int struct break else long switch case enum register typedef ch
[单片机]
Keil C51,内存与指针 反汇编比较
dATa: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idATa:固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。 idATa是用类似C中的指针方式访问的。 汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idATa做指针式的访问效果很好) xdATa: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdATa: 外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。但也有他的
[单片机]
定时/计数器的原理和应用
定时/计数器实质上是一个加1计数器,计数值是存在THX,TLX(X取0或1)这2个8位的寄存器里的.它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 定时/计数器T0和T1的原理图: 除了用于存计数值的寄存器外,还有2个寄存器,一个是工作方式寄存器TMOD,作用是确定T0/T1的工作方式和功能。第二个是控制寄存器TCON,作用是控制T0/T1的启动和停止及设置溢出标志.
[单片机]
定时/<font color='red'>计数器</font>的原理和应用
C51之外部中断
/* 名称:C51之外部中断实验 说明:关于什么是中断这里就不说了。说说计算机中使用中断有什么好处吧。 (1)、实时处理。在计算机控制系统中,环境、参数的突然变化,可能需要 CPU立即做出相应或处理。 (2)、异常处理。计算机系统运行过程中,经常会出现断电、程序出错等问 题,这时就需要CPU对故障源进行处理。(从某种程度上说,第二点和第一点 差不多)。 (3)、提高效率。由于外设和CPU的速度不同,采用中断技术可以大大提高C PU的运行效率。 再来谈谈C51单片机的中断使用。对于C51来说,其中断的内容还是比较简单的,一般而言,C51单片机有5个中断源(2个外部中断、2个定时器中断和一个串口 中断)。对中断
[单片机]
keil c51红外遥控解码程序
本keil c51程序适用uPC1621/uPC1622及兼容的红外遥控器芯片,占用外部中断0和定时器1,以中断方式解码,节省系统资源,以查询方式检测遥控信号是否有效. 解码思路: 红外线经一体化接受头解码放到后送到单片机的外部中断0,单片机设置外部中断下降沿触发,T0和T1为16位定时器,T0在系统启动后定时5ms.T1在外部中断0启动后开始定时,初值为0,每次在INT0中断后先读T1计数值,并重设初值为0,而且判断T1的计数值, 代码 //Fosc=11.0592MHz //statesforandvariablesIRdataprocessing typedefenum{ IR_idle, IR_waitsta
[单片机]
PLC计数器应用简介
PLC计数器应用 基本指令里面找到计数器操作,点击加计数 计数器Q点为输出点,当达到次数时输出;R点为重置点;PV为设定值(次数);CV为当前值,可以不设置。 按下启动按钮I0.1,当按动次数大于等于设定值PV时,Q点输出。 按动I0.2重置计数器,停止输出。
[嵌入式]
PLC<font color='red'>计数器</font>应用简介
一种基于FPGA的新型误码测试仪的设计与实现
  误码仪是评估信道性能的基本测量仪器。本文介绍的误码仪结合FPGA的特点,采用全新的积分式鉴相结构,提出了一种新的误码测试方法,经多次测试验证,方案可行,设计的系统稳定。本文设计的误码仪由两部分组成:发信机和接收机。    1 发信机   发信机的主要功能是产生具有随机特性的伪随机m 序列,通过FPGA 由VHDL 编程实现。伪随机序列产生原理如下:         图1 伪随机序列产生原理图   其中,ak-i是各移位寄存器的状态,Ci对应各寄存器的反馈系数,为1表示参与反馈,为0不参与反馈。反馈函数为:   当级数n 和反馈系数一旦确定,则反馈移位寄存器的输出序列确定了,m序列的一个重要的性质是:任一m序列的循
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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