微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 初学定时器 写了个程序 运行不是想要的!

初学定时器 写了个程序 运行不是想要的!

时间: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的用法也不是特别懂!

TR2?

学习

是定时器2的初始化错了
好好看说明书吧

木有 TH2  TL2

using后是指定中断服务程序要使用的寄存器组号

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top