首页 > 其他分享 >51单片机点亮led灯

51单片机点亮led灯

时间:2024-06-10 21:32:19浏览次数:17  
标签:P1 led 点亮 51 开发板 单片机 电路 赋值

目录

原理

开发板电路分布

功能实现

全部点亮

点亮特定的灯

整体位点灯

尾声



原理

想要实现一个功能,首先要从原理开始。

每一块51单片机上都有个32个I/O口,这些I/O口可以通过程序进行对外部电路的输出,也可以通过外部电路对单片机内部进行输入。其中高电平为1,低电平为0。

这32个口又按照地址分成了4个区域,分别为P0,P1,P2,P3四个可以按位寻址的区域(就是可以分别给每一个二进制位赋值)。

点亮led灯,需要给led灯一个导通的电压,一般都是低电平导通,所有在只需要在想要点亮的灯连接的I/O口赋值为1就好。

开发板电路分布

不同开发板的电路分布可能会存在不同,可以去找自己购买开发板的店铺要电路分布图。(不同板子只是电路连接不一样,但是功能大同小异)

下图是我的开发板的电路分布,我的板子上的8个led灯分别连接的是P1接口的8个I/O口。

功能实现

全部点亮

直接给P1接口赋值为0,代表给8个接口赋值为0000 0000,这样就是八个led灯都被导通点亮

#include <REGX52.H> //首先进行预处理(这一行必须有,除非你直接对地址进行操作)
void main()
{
	P1=0;
while(1);//提供一个死循环,让程序一直在执行
}

点亮特定的灯

可以通过按位赋值,从而点亮特定的led灯

#include <REGX52.H> //首先进行预处理(这一行必须有,除非你直接对地址进行操作)
void main()
{
	P1_0=0;
	P1_7=0;
while(1);//提供一个死循环,让程序一直在执行
}

整体位点灯

可以通过整体赋值的方式点亮特定的led灯,这里赋值为0xf1,就是 1111 0001,其中0就是亮,1就是灭。

#include <REGX52.H> //首先进行预处理(这一行必须有,除非你直接对地址进行操作)
void main()
{
	P1=0xf1;
while(1);//提供一个死循环,让程序一直在执行
}

尾声

可以说任何一个人学习单片机的第一个项目都是点灯,从最简单的项目开始,慢慢进行越来越复杂的项目。

标签:P1,led,点亮,51,开发板,单片机,电路,赋值
From: https://blog.csdn.net/2301_78871475/article/details/139581953

相关文章

  • 避免 OOMKilled:在 Kubernetes 环境中优化 Java 进程的内存配置
    避免OOMKilled:在Kubernetes环境中优化Java进程的内存配置DevOps云学堂译 奇妙的Linux世界 2024-06-1009:53 重庆 听全文公众号关注 「奇妙的Linux世界」设为「星标」,每天带你玩转Linux! 管理KubernetesPod中运行的Java进程的内存使用情况比人们想象......
  • 51单片机语音识别STC89C52与LD3320语音模块源码分享
    51单片机STC89C52与LD3320语音模块通信源码:/************************************************************************************/#include"config.h"#include<stdio.h>#include<stdlib.h>/***************************************************......
  • 【栈】2751. 机器人碰撞
    本文涉及知识点栈LeetCode2751.机器人碰撞现有n个机器人,编号从1开始,每个机器人包含在路线上的位置、健康度和移动方向。给你下标从0开始的两个整数数组positions、healths和一个字符串directions(directions[i]为‘L’表示向左或‘R’表示向右)。posit......
  • STM32单片机开发入门(四) 示波器的介绍及使用方法
    文章目录一.概要二.探头补偿校准三.电压测量四.波形的测量与分析五.串口通讯波形测量解析六.触发捕捉瞬时信号七.小结一.概要示波器主要用于观察电信号的波形变化。在显示屏上,工程师可以直接看到电信号的全过程,从而进行定性和定量的分析。这种仪器通常用于显示电压......
  • 基于51单片机水塔水位控制系统
    基于51单片机水塔水位控制(仿真+程序)功能介绍具体功能:1.用滑动变阻器模拟水位,ADC0809将模拟信号转换为数字信号;2.LCD1602显示当前水位和水位阈值;3.当水位超过设定阈值,蜂鸣器+LED声光报警,并且电机转动(模拟排水);4.三个按键可以设定水位阈值;​演示视频:基于51单片机水塔......
  • 基于51单片机车速测量控制
    基于51单片机车速测量控制(仿真+程序)功能介绍具体功能:1.通过L298驱动直流电机模拟转动;2.LCD1602显示转动状态和速度;3.按键可以控制启动/停止、加/减速、正/反转;​演示视频:基于51单片机车速测量控制 添加图片注释,不超过140字(可选)程序#include<REG52.H>......
  • ATcoder ABC 351 补题记录(A~F)
    A按照顺序直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglong#definepbpush_back#defineememplace_back#defineF(i,x,y)for(inti=x;i<=y;i++)#defineG(i,x,y)for(inti=x;i>=y;i--)#defineW(G,i,x)for(auto&i:G[x......
  • 51单片机八个灯连续闪烁实例展示
    声明:该内容皆为原创,仅供业内人士相互学习交流经验,任何未经授权复制、转载、传播或使用本网站(或应用程序)内容的行为,将受到法律的制裁。如因侵权行为给本网站(或应用程序)或任何第三方造成损失的,侵权人应当承担相应的法律责任)原理图实现:Proteus8Professional执行代码实现:μVis......
  • 【leetcode 1510 石子游戏】【记忆化搜索】
    存在和对于一切的语言importjava.util.Arrays;classSolution{publicbooleanwinnerSquareGame(intn){dp=newBoolean[n+1];dp2=newBoolean[n+1];Arrays.fill(dp,null);Arrays.fill(dp2,null);dp[0]=fa......
  • 设备树下的 LED 驱动实验
    设备树下的LED驱动实验本章实验重点内容如下:①、在imx6ull-alientek-emmc.dts文件中创建相应的设备节点。②、编写驱动程序(在第四十二章实验基础上完成),获取设备树中的相关属性值。③、使用获取到的有关属性值来初始化LED所使用的GPIO。设备树文件添加设备节点:在根......