打印

定时器问题

[复制链接]
2160|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

使用特权

评论回复
5
smilingangel| | 2013-2-28 13:48 | 只看该作者
可以参照下该单片机的官方提供的源代码的看些的就可以了

使用特权

评论回复
6
shenmu2012| | 2013-3-4 18:19 | 只看该作者
定时器的问题也不是啥大难题的,先参照单片机官方提供的例程来一步步的修改就OK啦

使用特权

评论回复
7
firstblood| | 2013-3-6 19:02 | 只看该作者
那是配置先关的定时器的寄存器的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝