做了个脉宽调制的封装子函数。。
LC自己觉得还算挺好用的。。。
就是有些粗糙。。。
延时函数方面很不方便。。
#include<STC12C5A60S2.H>
#define lc_led P1
/*******************************************************
100us延时子函数
*******************************************************/
void delay_100us(unsigned int i)
{
unsigned int j;
while(--i!=0)
{
for(j=0;j<60;j++);
}
}
/********************************************************
脉宽调制子函数
输入P1口状态,以及输出高电平时间所占比例(即亮度,0~100的
正整数)
********************************************************/
void bright(unsigned char lc_light,unsigned int lc_bright)
{
while(lc_bright--!=0)
{
lc_led=lc_light;
delay_100us(1);
}
lc_bright=100-lc_bright;
while(lc_bright--!=0)
{
lc_led=0xff;
delay_100us(1);
}
}
void main(void)//P7所接的led由亮到暗,最终熄灭
{
unsigned int a,b;
a=100;
do
{
for(b=0;b<100;b++)
{
bright(0x7f,a);
}
a=a-5;
}
while(a!=0);
for(b=0;b<1000;b++)
{
bright(0x7f,a);
}
}
传统。。。
截图。。。
希望高手能改进一下。。。
最好可以做的精巧一点,这个实在是太糙了。。
计时太不准。。