单片机开发,流水灯+蜂鸣器

最默认的全图唤醒LED灯代码 

单片机的LED唤醒,首先最麻烦的就是一个一个打,后面如果自己组织了许多的LED灯的话,这样是会累死的 

#include // 51头文件

/*sbit LED1 = P1^0; // 首先 LED1 这个变量等于 IO插口上的LED灯第一个,一共有八个开口,从0到7 

sbit LED2 = P1^1;

sbit LED3 = P1^2;

sbit LED4 = P1^3;

sbit LED5 = P1^4;

sbit LED6 = P1^5;

sbit LED7 = P1^6;

sbit LED8 = P1^7;

unsigned int i ;

 //定义变量i,这个后面作为255等于进制65535,你可以把他理解成时间 , 这样的话就可以使它隔一段时间在运行了 ,这里其实是调整他的通电性 , 电压会被电阻限制,一般来说是5V, 超出或者超过就不会亮了 

void main ()

{

P1 = 0 ;

i = 65535 ;

while(i--) ; //这里需要一个循环 减掉之后就进行运行下面语句 

P1 = 0xff ;  //二进制,就是全部关掉的意思 , 你可以把十六进制的这个数转为二进制,你就明白了 

i = 65535 ;

while(i--) ; //再次循环,回上面,又重新运行,形成循环 

}

*/  

下面是LED灯IO开口的对应图 


P0_P7 for IO 

改进后 , 变成流水灯 + 加上蜂鸣器 

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar temp ; //LED灯变量

sbit beep = P2^3; //激活蜂鸣器 它在P2里面 

// 注意,蜂鸣器他的驱动硬件不是控制硬件,小心使用,有时候如果给它乱调整电压的变化,可能会让板子坏掉额 

void dealy(uint z)

{

unsigned int x,y ;

for(x=z;x>0;x--)

for(y=144;y>0;y--);

}

void main()

{

temp = 0xfe;

P1 = temp ;

dealy(255);

while(1)

{

temp = _crol_(temp,1);

P1 = temp;

beep = beep;

dealy(255);

}

}  

附上蜂鸣器的原理图 

可以把它当作有EBC开口,通电之后就会出现了 , 我的设备是PNP型三极管构成的 

 PNP 

你可能感兴趣的:(单片机开发,流水灯+蜂鸣器)