#include"reg51.h"
typedef unsigned int u16;
sbit PMW=P1^0;
u16 m=20;
u16 c=1;
unsigned Time_InitialTH(u16 n)
{
u16 x,y;
x=n*1000/12;
y=(65536-x)/256;
return y;
}
unsigned Time_InitialTL(u16 n)
{
u16 x,y;
x=n*1000/12;
y=(65536-x)%256;
return y;
}
void Time1_Init()
{
TMOD|=0x10;
TH1=Time_InitialTH(100-m);
TL1=Time_InitialTL(100-m);
ET1=1;
EA=1;
TR1=1;
}
void Time1() interrupt 3
{
PMW=0;
}
void Time0_Init()
{
TMOD|=0x01;
TH0=Time_InitialTH(100);
TL0=Time_InitialTL(100);
ET0=1;
EA=1;
TR0=1;
}
void Time0() interrupt 1
{
TH0=Time_InitialTH(100);
TL0=Time_InitialTL(100);
Time1_Init();
PMW=1;
if(c==1)
{
m++;
if(m>=90) {c=0;}
}
if(c==0)
{
m--;
if(m<=20) {c=1;}
}
}
void main()
{
Time0_Init();
while(1);
}
波形圖片附上,占空比不對,而且周期性的一條高電平是怎么回是???
|