#nclude //51头文件
//《B_无级亮度变化》
#define DY_PORT
#define DY_SPEED
#define DY_PWM
#define DY_MAX
void delay (unsigned int a){ // 0.1ms延时程序(12MHz 10倍于51单片机速度时)
}
void display (unsigned int a){ //显示程序(50ms的PWM宽度)
}
void main (void){ //主程序
}
比如10为一个时间段的话,那么1/10为明,9/10为暗,这样亮度就算是1了。因为机器的时间段非常的短到人们看到的一直是连续的。
另外想到一点,当时序短到一定的程度的时候,那么本来连续的程序,变成为了并行(这话说得不是很严密,要看什么样的程序)。所以,我们能一边上qq,一边看 页。
另外,面向过程符合机器的思维,面向对象符合人的思维。
学嵌入式很有意思的一点就是,你可以理解到程序运行的本质。有一种掌控感,而拥有掌控这项技能的,似乎只有神。。。
我一直想,学计算机应该从底层学起,虽然让让人很提不起兴趣。
言归正传,说道这个程序,有个缺点,就是无法独立控制很多的LED灯。我查了很多的资料。却没有得到很明确的结果。倒是发现了一点国内教材的通病—- 天下文章一大抄。我买的基本教材,竟然大部分一样。更可恨的是,连图也一样。这让我情何以堪。后来我发现图的出处—-单片机的使用说明书。感情这说明书就是最好的教材。其实不光我们技术比国外落后,教材也落后。就像大学里那些只会照着ppt读的老师一样恶心。
看了看单片机的说明书,发现上面有现成的PCA模块。可惜我的这个型 只能同时控制两路。在 上找到有控制16路的,目前还看不懂。
看来流星灯的制作,还是有点小困难的。还得继续研究。
下面是两路的程序
#include
//设置sfr
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CL = 0xE9;
sfr CH = 0xF9;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAP1L = 0xFB;
sfr CCAP1H = 0xFB;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sbit CR = 0xDE;
void PWM_init(void)
{
}
//设置PWM0的参数
void PWM0_set(unsigned char a)
{
}
//设置PWM1的参数
void PWM1_set(unsigned char a)
{
}
void delay (unsigned int a){ // 0.1ms延时程序(12MHz 10倍于51单片机速度时)
}
void main(void)
{
}
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!