|
1金钱
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit pwm=P2^0;
sbit k1=P3^1;
sbit k2=P3^0;
bit dir;
u16 count,timer,value;
void tim0_init()
{
TMOD=0x01;
TH0=0XFF;
TL0=0XFF;
EA=1;
ET0=1;
TR0=1;
}
void delay(u16 i)
{
while(i--);
}
void main()
{
tim0_init();
while(1)
{
if(k1==0)
{
delay(100);
if(k1==0)
{
dir=1;
}
while(!k1);
}
if(k2==0)
{
delay(100);
if(k2==0)
{
dir=0;
}
while(!k2);
}
if(count>100)
{
count=0;
if(dir==0)
{
value--;
}
if(dir==1)
{
value++;
}
}
if(timer>1000)
{
timer=0;
}
if(value==1000)
{
pwm=1;
}
if(value==0)
{
pwm=0;
}
if(timer<value)
{
pwm=1;
}
else
{
pwm=0;
}
}
}
void tim0() interrupt 1
{
TH0=0XFF;
TL0=0XFF;
count++;
timer++;
}
我知道答案
本帖寻求最佳答案回答被采纳后将获得系统奖励 10 金钱 , 目前已有 1人回答
|
|