zhenghe.c

来自「六足机器人程序」· C语言 代码 · 共 190 行

C
190
字号
/*-----------------------------------------------
  名称:定时器1
  日期:2009.5
  修改:无
  内容:通过定时让LED灯闪烁
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit PWM=P1^0;    //定义LED端口
sbit PWM1=P1^1;
sbit PWM2=P1^2;


/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Init_Timer1(void)
{
 TMOD |= 0x10;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 
 TH1=0xFF;      //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
 TL1=0xA3;
 EA=1;            //总中断打开
 ET1=1;           //定时器中断打开
 TR1=1;           //定时器开关打开
}

void delay(unsigned int j)
{

while(--j);}



int a,m,n,o;
int flag;



void main()

{
Init_Timer1();
PWM=0;
PWM1=0;
PWM2=0;

PWM=0;
PWM1=0;
PWM2=0;


a=0;
while(1)
{


if(m==100&&n==100&&o==100)
{
m=0;
n=0;
o=0;
}




if(m<100)
{
 if(a<5)
{
PWM1=1;
PWM=1;



}

else if (a>5&&a<25)
{
PWM=0;
PWM1=1;
}
else if (a>25&&a<200)
{
PWM=0;
PWM1=0;
}
else if (a==200)
   {
a=0;
m++;
  }
}

else if (m==100)
{


if (n<100)

{
if(a<5)
{
PWM=1;
PWM2=1;
}
else if (a>5&&a<25)
{
PWM=1;
PWM2=0;
}
else if (a>25&&a<200)
{
PWM=0;
PWM2=0;
}
else if (a==200)
   {
a=0;
n++;
  }
}

else if (n==100)
{
if (o<100)
{

if(a<5)
{
PWM1=1;
PWM2=1;
}
else if (a>5&&a<25)
{
PWM1=0;
PWM2=1;
}
else if (a>25&&a<200)
{
PWM1=0;
PWM2=0;
}
else if (a==200)
   {
a=0;
o++;
  }

else if (o==100)

{
a=0;
m=0;
n=0;
o=0;

}



}





}



}







}
}



/*------------------------------------------------
                 定时器中断子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3 using 1
{
 TH1=0xFF;		 //中赂持

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?