无聊有写了俩个小程序,一个是以前写了好多次的流水灯,写来回忆回忆,复习复习,一个是一直想写没空写的pwm下的渐暗led灯。特此一记,以证明我还活着。
一:流水灯:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
void delay( int i);
void main()
{
temp=0xfe;
while(1)
{
P1=temp;
temp=_crol_(temp,1);
delay(1000);
}
}
//延时ims函数
void delay( int i)
{
int x,y;
for(x=29;x>0;x--)
for(y=i;y>0;y--) ;
}
二:渐暗led灯
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
static i=0; //检测时间
#define pwm_max 99
#define pwm_min 0//把周期划分为100份
sbit d=P2^3;
static pwm=0;
void init()
{
EA=1;
ET0=1;
TR0=1;
TMOD=0x01;
TH0=65351/256;
TL0=65351%256;//200us
}
void main()
{
init();
while(1);
}
void t0 ()interrupt 1
{
TH0=65351/256;
TL0=65351%256;//200us
if(i>=pwm_max)
{
i=0;
pwm++;
if(pwm>=pwm_max)
{
pwm=0;
}
}
if(i>=pwm)
{
P1=0x00 ;
}
else
{
P1=0xff ;
}
i++;
}