单片机——LED

news2025/7/16 11:30:52

0. 单片机编程的一般步骤

  1. 目标分析:点亮开发板上的LED灯

  2. 电路原理图分析:相关器件的工作原理

  3. 数据手册分析:IO端口控制

  4. 代码编写、编译

  5. 下载与调试

1. LED简介

Led:即发光二极管,具有单向导通性,一般工作电流控制在3mA~20mA,电流越大亮度越强,但一般会串联一个“限流电阻”来避免发光二极管电流太大导致烧毁,“导通电压”约为1.7V。

  • 直插式发光二极管:长脚为阴极,短脚为阳极
  • 贴片式二极管:有彩色标记一端为阴极
  • 在这里插入图片描述

2. 电路原理图分析

A7开发板:

在这里插入图片描述
在这里插入图片描述

  1. 根据A7电路原理图,LED的端口可以自由连接到单片机的IO口,因此D1-D8此处可以连接到单片机的P20-P27口。

  2. 图中所有LED的阳极管脚接电源ACC,因此若要让LED发光,即让对应的阴极管脚为低电平,高电平则熄灭。

  3. 通过控制单片机上连接LED的管脚高低电平,来实现对应LEDn的亮和灭

EM3_V3开发板:


在这里插入图片描述

LED原理图分析

  1. 根据EM3_V3电路原理图,LED的端口连接到74573芯片的Q0-Q7端口

  2. 图中所有LED的阴极管脚接地,因此若要让LED发光,即让对应的阳极管脚为高电平,低电平则熄灭。

  3. 通过控制74573芯片上Q0-Q7高低电平,来实现对应LEDn的亮和灭

74573芯片分析

74573芯片是一个锁存器,就是由输入引脚Dn来控制输出引脚Ox,OE和LE影响Dx控制Qx的结果

在这里插入图片描述

  • OE为L、LE为L时,工作在所存模式,此时Qx的输出被锁存,即进入前无论是高或低,状态都维持不变,这就是锁存器的作用

  • OE为L、LE为H时,工作在跟随模式,此时Qx的输出随Dx的输入而变化

  • OE为H时,Qx相当于断路。

根据电路图,OE直接接地,LE接VCC或P10取决于跳线帽,因此我们可以通过跳线帽将LE接到VCC,此时LE就是高电平,74573芯片处于跟随模式,就可以实现通过Dx高低电平来实现LED是否亮

3. 代码编写

点亮LED

#include <reg51.h>


/*点亮8颗LED*/
void main(void)
{
	P0 = 0xff;	//p0端口的8个引脚都输出高电平
}

/*点亮4颗LED*/
void main(void)
{
	P0 = 0x0F;	//p0端口的4个引脚都输出高电平
	P0 = 0xF0;	//p0端口的4个引脚都输出高电平
}

/*点亮间隔LED*/
void main(void)
{
	P0 = 0xAA;	//p0端口的8个引脚二进制10101010
}

/*熄灭8颗LED*/
void main(void)
{
	P0 = 0x0;	//p0端口的8个引脚都输出低电平
}

LED闪烁

void delay()
{
	int i = 0, j = 100;
	while(i--)
	{
		while(j--)
		{}
	}
}

/*LED闪烁*/
void main(void)
{
    while(1)
    {
	    P0 = 0xff;	//p0端口的8个引脚都输出高电平
	    delay();
	    P0 = 0x0;	//p0端口的8个引脚都输出低电平
	    delay();    
    }
}

流水灯/跑马灯

void delay()
{
	int i = 0, j = 100;
	while(i--)
	{
		while(j--)
		{}
	}
}

void main(void)
{
	unsigned char d = 0x1;
	while (1)
	{
		for(int i=0; i<8; i++)
		{
            /*流水灯*/
			P0 = d << i;	
			delay();
        
            /*跑马灯*/
            P0 &= (~d)<<i;
			delay();
		}
	}
}

<8; i++)
{
/流水灯/
P0 = d << i;
delay();

        /*跑马灯*/
        P0 &= (~d)<<i;
		delay();
	}
}

}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

验证码、通知短信API常见使用问题

如今短信应用于我们生活工作的方方面面&#xff0c;注册或者登录一个应用可以用短信验证码快速登录&#xff0c;支付可以使用短信验证码&#xff1b;商家搞促销活动可以发送通知短信给客户&#xff0c;会员到期了商家可以发送告警短信给会员用户…可见验证码短信API和通知短信A…

JavaFX爱好者看过来,这款工具值得拥有

前言 各位CSDN的博友们&#xff0c;随着各地政策的放开&#xff0c;大伙现在是在水深火热当中呢&#xff1f;还是天选打工人-安然无羊。在这里&#xff0c;希望阳了的朋友&#xff0c;赶紧恢复健康&#xff0c;早日康复。希望没有阳的朋友们&#xff0c;继续坚持&#xff0c;万…

聊聊设计模式-解释器模式?

简介 解释器模式属于行为型模式。它是指给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子。是一种按照规定的语法进行解析的模式 编译器可以将源码编译解释为机器码&#xff0c;让CPU能进行识别并…

C++调用matlab引擎画三维图

VS2012设置 项目–项目属性–配置属性–VC目录–包含目录 D:\MATLAB\R2016a\extern\include 项目–项目属性–配置属性–VC目录–库目录 D:\MATLAB\R2016a\extern\lib\win64\microsoft 添加依赖项有两种方法&#xff1a; 方法一&#xff1a;项目中设置 项目–项目属性–配置属…

一、线程相关概念

文章目录相关概念程序(program)进程线程单线程与多线程并发与并行相关概念 程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c…

基于注解方式Spring Security忽略拦截

文章目录1.Spring Security忽略拦截配置2.基于配置文件注入2.1.添加配置2.2.修改Spring Security配置类2.3. 测试3.基于注解的方式过滤接口3.1.添加注解3.2.获取所有使用了IgnoreWebSecurity注解的接口访问路径3.3.测试1.Spring Security忽略拦截配置 关于Spring Securite的使…

SDL学习

学习笔记&#xff1a;整合安全开发生命周期SDL的Devops工具链建设 分享思路&#xff1a;《SDL安全开发生命周期介绍》 1、什么是SDL&#xff1f; 2、为什么需要SDL&#xff1f; 3、DevSecOps实践&#xff08;SDLDevOps&#xff09; 【整合安全开发生命周期SDL的DevOps工具链建…

408 考研《操作系统》第三章第一节:内存

文章目录教程1. 内存的基础知识1.1什么是内存&#xff1f;有何作用&#xff1f;补充知识&#xff1a;几个常用的数量单位2. 进程的运行原理2.1 指令的工作原理2.2 逻辑地址vs物理地址2.3 从写程序到程序运行2.4 装入模块装入内存2.5 装入的三种方式2.5.1 ——绝对装入2.5.2 ——…

VR的内容荒漠,字节救不了

文|智能相对论 作者|Kinki 去年以来&#xff0c;“元宇宙”概念大火&#xff0c;掀起了新一轮的产业布局和科技博弈&#xff0c;脸书Facebook更直接改名Meta&#xff0c;展示其看好元宇宙未来的决心&#xff0c;国内大厂如腾讯、字节、阿里等&#xff0c;也在游戏、社交、硬件…

Macos安装和卸载第三方软件的正确方法

Mac第三方软件通常指的是非MacApp Store渠道下载安装的应用程序。在Mac电脑中有很多Mac系统内置的软件&#xff0c;但有些用户也喜欢安装一些第三方的软件来提高工作效率&#xff0c;那么我们如何正确的安装和卸载第三方软件呢&#xff1f;教程都在下面哦~ mac第三方软件安装方…

Fabric.js 使用图片遮盖画布(前景图)

本文简介 点赞 关注 收藏 学会了 在 《Fabric.js 使用纯色遮挡画布》 中讲到使用纯色的方式遮盖画布。如果你的常见需要使用图片来遮盖的话&#xff0c;fabric.js 也提供了相应的属性来配置。 相比起使用纯色遮盖画布&#xff0c;使用图片会更复杂。 因为图片本身是有尺寸…

【科研工具】一款好用的科研插件-easyScholar

0.概述1.安装2.功能显示SCI分区&#xff1a;定位优质的文献【看分区排名靠前的1-2区】选中英文按下t翻译&#xff0c;按下y隐藏翻译点击文献网址的图标跳转sci-hub下载0.概述 easyScholar是一款很好用的科研插件&#xff0c;可以显示会议期刊登记&#xff0c;支持轻量翻译&…

SAP OData 服务关于本地文件作为附件上传的一些错误消息

错误消息&#xff1a; {"error": {"code": "005056A509B11EE3AEB5819C07C69E2F","message": {"lang": "en","value": "The server is refusing to process the request because the entity has a…

单机模拟主从复制(一主三从)

引言 操作系统环境&#xff1a;Ubuntu 20.04 Redis版本&#xff1a;6.2.8 准备工作 官网下载 当前最新版本是7.0&#xff0c;我这里用的是6.0&#xff0c;下载 redis-6.2.8.tar.gz&#xff0c;拷贝到自己的虚拟机或者云服务器。 tar -zxvf redis-6.2.8.tar.gz 解压 cd redi…

【HAL库】STM32CubeMX开发----STM32F407----SPI实验

前言 本次实验以 STM32F407VET6 芯片为MCU&#xff0c;使用 25MHz 外部时钟源。 SPI 通信引脚 与 MCU引脚 对应关系如下&#xff1a; SPI接口GPIO端口CS(片选)PA4SCLK(时钟)PA5MISO(数据输入)PA6MOSI(数据输出)PA7 一、使用STM32CubeMX ---- 新建SPI实验工程 步骤1&#xff…

crypto-music is frequency(INS‘hAck CTF 2018)

比较有趣的一题&#xff0c;记录下来。 Music is frequency Passionated by the sound of a nursery rhyme, we decided to build a new way to send private messages. Find a way to decrypt our rsa private key to get your reward. Because we are pretty bad musicians, …

postgres 源码解析46 可见性映射表VM

简介 Postgres 为实现多版本并发控制技术&#xff0c;当事务删除或者更新元组时&#xff0c;并非从物理上进行删除&#xff0c;而是将其进行逻辑删除[具体实现通过设置元组头信息xmax/infomask等标志位信息],随着业务的累增&#xff0c;表会越来越膨胀&#xff0c;对于执行计划…

【QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber】

【QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber】【1】UI设计界面【QScrollBar | QSlider 函数学习】【2】setMinimum | setMaximum【3】setSingleStep【4】setPageStep【5】setValue【6】setSliderPosition【7】setTracking【8】setOrientation【9】setInverted…

C++ :类和对象:文件操作

前言&#xff1a; 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束&#xff0c;数据都会被释放。通过文件可以 将数据持久化&#xff0c;C 中对文件操作需要包含头文件 <fstream>。 文件类型分为两种&#xff1a; 1&#xff1a;文本文件&#xff1a;文件…

历时9个月重构iNeuOS工业互联网操作系统,打造工业领域的“Office”

目 录 1. 概述... 1 2. 整体介绍... 2 3. 主要功能简介... 5 1. 概述 历时9个月的时间&#xff0c;对iNeuOS工业互联网操作系统进行全面重构&#xff0c;发布内部测试版本。重构的主要目的&#xff1a;工程化的框架优化&#xff0c;更好的聚焦工业领…