【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。

阅读: 评论:0

【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。

【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。

学习目标:

        言归正传,一切都回归本源,从51再来一次,首先就是最简单的点灯大师。

        这么些年从51 到  32  再到  arduino  再到  ESP  等等,都是从点灯大师开始的。

于是介绍如下:

  1. 闪灯
  2. 流水灯(从左往右)
  3. 流水灯(从右往左)
  4. 蜂鸣器

        LED灯的原理:LED是发光二极管,它是一种半导体器件。当电子从N型半导体向P型半导体注入时,它们会与空穴结合并释放出能量,这些能量以光的形式发射出来。LED灯的引脚通常有两个,一个是正极(长脚),一个是负极(短脚)。在电路中,LED灯的正极连接到电源的正极,负极连接到电源的负极,这样电流就可以流过LED灯,使其发光。

        流水灯原理:流水灯是一种LED灯的应用,它的原理是通过控制多个LED灯的亮灭顺序,使得它们像水流一样流动。流水灯电路中通常使用一个计数器芯片和多个LED灯,计数器芯片可以控制LED灯的亮灭顺序,从而实现流水灯的效果。

        蜂鸣器原理:蜂鸣器是一种声音发生器,它的原理是通过交替地给蜂鸣器施加正负电压,使得蜂鸣器内部的振荡器产生声音。蜂鸣器通常有两个引脚,一个是正极,一个是负极。在电路中,蜂鸣器的正极连接到电源的正极,负极连接到电源的负极,同时通过控制电压的正负来控制蜂鸣器的声音。


学习内容:闪灯

        让led1达到闪烁的效果:

         代码如下:

#include <reg51.h>sbit LED=P2^0; void delay(unsigned int i) //延时函数
{while(i--);
}void main()
{while(1){LED=0; //LED亮delay(10000); //延时LED=1; //LED灭delay(10000); //延时}
}

        


学习内容:流水灯(从左往右)、流水灯(从右往左)

        流水灯(从左往右):

第一种方法:

#include <reg51.h>sbit LED1=P1^0; //定义P1.0口为LED1控制口
sbit LED2=P1^1; //定义P1.1口为LED2控制口
sbit LED3=P1^2; //定义P1.2口为LED3控制口
sbit LED4=P1^3; //定义P1.3口为LED4控制口void delay(unsigned int i) //延时函数
{while(i--);
}void main()
{while(1){LED1=0; //第一个LED亮delay(10000); //延时LED1=1; //第一个LED灭LED2=0; //第二个LED亮delay(10000); //延时LED2=1; //第二个LED灭LED3=0; //第三个LED亮delay(10000); //延时LED3=1; //第三个LED灭LED4=0; //第四个LED亮delay(10000); //延时LED4=1; //第四个LED灭}
}

第二种方法:(从左往右  也   包含   从右往左   推荐使用这个方法)


#include "reg52.h"typedef unsigned int u16;	
typedef unsigned char u8;#define LED_PORT  P2	void delay_10us(u16 ten_us)
{while(ten_us--);	
}void main()
{	u8 i=0;LED_PORT=~0x01;delay_10us(50000);while(1){//方法1:使用移位+循环实现流水灯
//		for(i=0;i<8;i++)
//		{
//			LED_PORT=~(0x01<<i);	//将1右移i位,然后取反将结果赋值到LED_PORT
//			delay_10us(50000);
//		}//方法2:使用循环+_crol_或_cror_函数实现流水灯for(i=0;i<7;i++)	 //将led左移一位{									  LED_PORT=_crol_(LED_PORT,1);delay_10us(50000); 	}for(i=0;i<7;i++)	//将led右移一位{LED_PORT=_cror_(LED_PORT,1);delay_10us(50000);	}	}		
}

学习产出:蜂鸣器

        蜂鸣器是   P2^5引脚

代码如下:

#include <reg51.h>sbit Buzzer=P2^5; 
void delay(unsigned int i) //延时函数
{while(i--);
}void main()
{while(1){Buzzer=1; //蜂鸣器响delay(10000); //延时Buzzer=0; //蜂鸣器停止响delay(10000); //延时}
}

逆风的方向,更适合飞翔。

本文发布于:2024-01-30 02:39:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655356918648.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:流水   蜂鸣器   单片机   往右   往左
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23