1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 51单片机——LED发光二极管 蜂鸣器C语言入门编程

51单片机——LED发光二极管 蜂鸣器C语言入门编程

时间:2018-04-12 21:29:14

相关推荐

51单片机——LED发光二极管 蜂鸣器C语言入门编程

目录

LED发光二极管:

1.点亮第一个LED:P2_0亮

2.LED闪烁:P2_0以1S为周期闪烁

3.LED流水灯实验:LED依次点亮(<<,>>是移位指令;_cror_,_crol_是循环移位指令)

蜂鸣器:

1.蜂鸣器:蜂鸣器响一下然后关闭

最近在哔站学完了51单片机,准备复习的时候却发现找不到比较适合自己的一些资料,所以就想自己总结一个适合已入门学者基于51单片机的资料。

接下来将参考江科大的代码风格根据普中51单片机开发攻略在A2开发板编写程序。

LED发光二极管:

长脚为正,短脚为负。由原理图可以知道,LED的正极都接了VCC,我们需要控制的引脚就约等于LED的负极,只需给低电平,LED两端有电压差就会点亮。(低电平点亮)

1.点亮第一个LED:P2_0亮

#include <REGX52.H>void main(){while(1){P2_0=0;}}

2.LED闪烁:P2_0以1S为周期闪烁

#include <REGX52.H>void delay10us(unsigned int xus)//当xus=1时,延时10us{while(xus--);}void main(){while(1){P2_0=0; //亮delay10us(50000);//500msP2_0=1;//灭delay10us(50000);//500ms}}

3.LED流水灯实验:LED依次点亮(<<,>>是移位指令;_cror_,_crol_是循环移位指令)

#include <REGX52.H>//移位LED流水灯void delay10us(unsigned int xus)//当xus=1时,延时10us{while(xus--);}void main(){unsigned char i;while(1){for(i=0;i<8;i++){P2=~(0x01<<i);delay10us(50000);//500ms} }}

#include <REGX52.H>#include "intrins.h"//循环移位LED流水灯void delay10us(unsigned int xus)//当xus=1时,延时10us{while(xus--);}void main(){unsigned char i;P2=0xfe;delay10us(50000);//500mswhile(1){for(i=0;i<7;i++){P2=_crol_(P2,1);//需加intrins头文件delay10us(50000);//500ms}for(i=0;i<7;i++){P2=_cror_(P2,1);delay10us(50000);}}}

蜂鸣器:

蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。无源蜂鸣器内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,能发出不同频率的声音。本开发板带的是无源蜂鸣器:依靠步进电机的ULND模块驱动蜂鸣器。P2_5输出高电平,BEEP则输出低电平;P2_5输出低电平,BEEP输出高电平。

1.蜂鸣器:蜂鸣器响一下然后关闭

延时函数

#include "intrins.h"void delay10us(unsigned int xus)//当xus=1时,延时10us{while(xus--);}void delay(unsigned int xms)//@11.0592MHz 当xms=1时,延时1ms{unsigned char i, j;while(xms--){_nop_();i = 2;j = 199;do{while (--j);} while (--i);}}

主函数

#include <REGX52.H>#include "DELAY.h"void main(){unsigned char i=2000;while(1){while(i--){P2_5=~P2_5;delay10us(100);//改变时间频率,可以改变蜂鸣器的音色}P2_5=0;i=0;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。