LED灯做二进制加计数
对于这个二进制加数我还是没有搞懂是什么情况?只能看到效果,就是不停的递进的灯向前。大概懂得就是后面两个灯是不停的脉冲输出,前面六个灯不断的递进,当第一个灯递进到第一位的时候就停止,但是灯是不灭的,接着再从第三个灯开始向前递进,当到了前面第二个的时候就停止并一直亮着,就这样不停的递进,直到前面的六个灯都停止了并且都亮着的话进行第二轮,我不清楚到底原理是什么,所以这个程序的后就没有多大的修改:
//头文件:
#include "reg51.h"
//函数声明:
void delay(unsigned int tmp);//延时子函数
//主函数,C语言的入口函数:
void main(void)
{
P2=0;
while(1){ //无限循环
P2--; //P1口连接输出计数,因LED灯是共阳接法,所以是减,实际看到的LED灯是加
delay(100); //调用延时子函数,改变参数大小,调整变化速度
}
}
//延时子函数
void delay(unsigned int tmp)//双重循环减,如改用INT型,将会达到更长的延时时间
{
unsigned int j;
while(tmp--){
j=255;
while(j--);
}
}