定时器问题

[复制链接]
2741|6
 楼主| 秋天落叶 发表于 2013-2-27 20:22 | 显示全部楼层 |阅读模式
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

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

void Init_Timer0(void)
{
TMOD |= 0x01;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响             
TH0=0x00;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
Init_Timer0();
while(1);
}

/*------------------------------------------------
                 定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00;           //重新赋值
TL0=0x00;

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

}
问题:我不明白下面这几项的定义是什么意思?每个步骤我不是很明白定时器尽行了怎样的操作。?为什么要进行这样的操作。
TMOD |= 0x01;                       
TH0=0x00;             
TL0=0x00;
EA=1;            
ET0=1;           
TR0=1;   
无冕之王 发表于 2013-2-27 20:50 | 显示全部楼层
可以看编程手册关于寄存器TMOD 的介绍
yybj 发表于 2013-2-27 20:51 | 显示全部楼层
这些是寄存器的设置,你要对照使用的单片机的手册,逐个对比寄存器的说明,看看这样设置是什么意思
sinadz 发表于 2013-2-27 21:05 | 显示全部楼层
TMOD |= 0x01; //定时器0设置为16位  
TH0=0x00;   //初值
TL0=0x00;//初值
EA=1;   //开总中断
ET0=1;   //开定时器0中断
TR0=1//启动定时器0
smilingangel 发表于 2013-2-28 13:48 | 显示全部楼层
可以参照下该单片机的官方提供的源代码的看些的就可以了
shenmu2012 发表于 2013-3-4 18:19 | 显示全部楼层
定时器的问题也不是啥大难题的,先参照单片机官方提供的例程来一步步的修改就OK啦
firstblood 发表于 2013-3-6 19:02 | 显示全部楼层
那是配置先关的定时器的寄存器的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部