|
#include "reg52.h"
unsigned char count; //0.5ms次數(shù)標(biāo)識
sbit pwm =P1^0; //PWM信號輸入
sbit jia =P3^3; //??????角度增加?IO??
sbit jan =P3^2; //???????角度減少?IO??
unsigned char jd; //?????
void delay(unsigned char i)//???
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void Time0_Init() //??????????
{
TMOD = 0x01; //?????0????????1
IE = 0x82;
TH0 = 0xfe;
TL0 = 0x33; //11.0592MZ????0.5ms
TR0=1; //????????
}
void Time0_Int() interrupt 1 //?ж????
{
TH0 = 0xfe; //??????
TL0 = 0x33;
if(count< jd) //?ж?0.5ms???????С??????
pwm=1; //??С???PWM???????
else
pwm=0; //?????????????
count=(count+1); //0.5ms??????1
count=count%40; //???????????40 ???????????20ms
}
void keyscan() //按鍵掃描
{
if(jia==0) //???????????????
{
delay(10); //?????????????
if(jia==0) //??????
{
jd++; //???????1
count=0; //???????? ??20ms?????????
if(jd==6)
jd=5; //?????180???????
while(jia==0); //??????????
}
}
if(jan==0) //????С?????????
{
delay(10);
if(jan==0)
{
jd--; //???????1
count=0;
if(jd==0)
jd=1; //?????0???????
while(jan==0);
}
}
}
void main()
{
jd=1;
count=0;
Time0_Init();
while(1)
{
keyscan(); //???????
}
}
|
|