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

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

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

#include <reg52.h> // 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 <reg52.h>

#include <intrins.h>

#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 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容