初学定时器 写了个程序 运行不是想要的!
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
sbit Led0=P1^0;
sbit Led1=P1^1;
sbit Led2=P1^2;
//定时器0初始化
void Init_Timer0()
{
TMOD |=0x01;//选择模式一
TH0=0x00;//定时器高八位
TL0=0x00;//定时器底八位
EA=1;//总的中断开关
ET0=1;//定时器中断开关
TR0=1;//定时器开关
}
//定时器1中断初始化
void Init_Timer1()
{
TMOD |=0x10;
TH1=0x77;
TL1=0x00;
EA=1;
ET1=1;
TR1=1;
}
//定时器2中断初始化
void Init_Timer2()
{
TMOD |=0x01;//个人感觉这里很有可能有问题
TH2=0x00;
TH2=0x00;
EA=1;
ET2=1;
TR2=1;
}
main()
{
Init_Timer0();
Init_Timer1();
Init_Timer2();
while(1);
}
//定时器0的中断子程序
void Timer0_int(void) interrupt 1 using 0 //interrupt n(n=0-32) using r(0-3)
{
TH0=0x00;
TL0=0x00;
Led0=~Led0;
}
//定时器1的中断子程序
void Timer1_int(void) interrupt 3 using 1
{
TH1=0x77;
TL1=0x00;
Led1=~Led1;
}
//定时器2的中断子程序
void Timer2_int(void) interrupt 5 using 2
{
TH2=0x00;
TL2=0x00;
Led2=~Led2;
}
这个程序的目的是 用定时器控制led 让3只led 闪烁 不晓得 哪里出了问题 关于using的用法也不是特别懂!
sbit Led0=P1^0;
sbit Led1=P1^1;
sbit Led2=P1^2;
//定时器0初始化
void Init_Timer0()
{
TMOD |=0x01;//选择模式一
TH0=0x00;//定时器高八位
TL0=0x00;//定时器底八位
EA=1;//总的中断开关
ET0=1;//定时器中断开关
TR0=1;//定时器开关
}
//定时器1中断初始化
void Init_Timer1()
{
TMOD |=0x10;
TH1=0x77;
TL1=0x00;
EA=1;
ET1=1;
TR1=1;
}
//定时器2中断初始化
void Init_Timer2()
{
TMOD |=0x01;//个人感觉这里很有可能有问题
TH2=0x00;
TH2=0x00;
EA=1;
ET2=1;
TR2=1;
}
main()
{
Init_Timer0();
Init_Timer1();
Init_Timer2();
while(1);
}
//定时器0的中断子程序
void Timer0_int(void) interrupt 1 using 0 //interrupt n(n=0-32) using r(0-3)
{
TH0=0x00;
TL0=0x00;
Led0=~Led0;
}
//定时器1的中断子程序
void Timer1_int(void) interrupt 3 using 1
{
TH1=0x77;
TL1=0x00;
Led1=~Led1;
}
//定时器2的中断子程序
void Timer2_int(void) interrupt 5 using 2
{
TH2=0x00;
TL2=0x00;
Led2=~Led2;
}
这个程序的目的是 用定时器控制led 让3只led 闪烁 不晓得 哪里出了问题 关于using的用法也不是特别懂!
TR2?
学习
是定时器2的初始化错了
好好看说明书吧
木有 TH2 TL2
using后是指定中断服务程序要使用的寄存器组号