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 计数器
推荐阅读最新更新时间: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的启动和停止及设置溢出标志.
[单片机]
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重置计数器,停止输出。
[嵌入式]
一种基于FPGA的新型误码测试仪的设计与实现
误码仪是评估信道性能的基本测量仪器。本文介绍的误码仪结合FPGA的特点,采用全新的积分式鉴相结构,提出了一种新的误码测试方法,经多次测试验证,方案可行,设计的系统稳定。本文设计的误码仪由两部分组成:发信机和接收机。 1 发信机 发信机的主要功能是产生具有随机特性的伪随机m 序列,通过FPGA 由VHDL 编程实现。伪随机序列产生原理如下: 图1 伪随机序列产生原理图 其中,ak-i是各移位寄存器的状态,Ci对应各寄存器的反馈系数,为1表示参与反馈,为0不参与反馈。反馈函数为: 当级数n 和反馈系数一旦确定,则反馈移位寄存器的输出序列确定了,m序列的一个重要的性质是:任一m序列的循
[应用]