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

2024-01-26 20:20

本文主要是介绍【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); //延时}
}

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

这篇关于【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647952

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

代码训练营 Day26 | 47.排序II | 51. N-皇后 |

47.排序II 1.跟46题一样只不过加一个树层去重 class Solution(object):def backtracking(self,nums,path,result,used):# recursion stopif len(path) == len(nums):# collect our setresult.append(path[:])return for i in range(

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

VB和51单片机串口通信讲解(只针对VB部分)

标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦            里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口

MCU5.51单片机的最小系统

1.最小系统的组成部分 晶振电路(时钟),复位电路,电源电路(控制电压,保持稳定),下载电路(外加的,用于烧录程序) 烧录: 通过下载电路,把程序下载到单片机中用于运行 2.晶振电路 电路图: 是晶振 是电容 为了防止晶振起振时产生影响,因此加电容 3.复位电路 电路图: 按按钮RSTK1(保持一段时间的高电平)即可实现STC芯片的复位 4.电源电路 电路图:

单片机XTAL引脚引出的晶振分析

51单片机的18,19脚XTAL1,XTAL2用来提供外部振荡源给片内的时钟电路。 XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以使用内部时钟。 当使用内部时钟时,此二引线端用于外接石英晶体和微调电容; 当使用外部时钟时,用于接外部时钟信号,NMOS接XTAL2,CMOS接XTAL1。 原理: XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是

批量生成编号(A~Z+3位流水编号)

/*** 批量生成编号* @param num* @param warehouseId* @return*/public synchronized List<String> generatCodeList(int num,long warehouseId){MesRack rack = this.getCurrentRack(warehouseId);String oldRackCode;Lis