当前位置: 首页 > news >正文

【51单片机】点亮一个LED灯(看开发板原理图十分重要)

🎊专栏【51单片机】

🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

🎆音乐分享【The Right Path】

🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰

目录

🍔基础内容

🏳️‍🌈sbit:特殊功能位声明

🏳️‍🌈注意

🎆方法一 

🍔现象&&代码

🎊点亮一个

🎈现象

🎈代码

🎊点亮两个

🎈现象

🎈代码

🎊点亮三个 

 🎈现象

🎈代码

🎆方法二 

🍔现象&&代码

🎊点亮一个

🎈现象

🎈代码

🎊点亮两个

🎈现象

🎈代码 

 🏳️‍🌈总结(非常重要)


🍔基础内容

🏳️‍🌈sbit:特殊功能位声明

sbit 变量名=地址值;在给某个引脚取名的时候经常会用到。如上面对LED管脚的定义sbit led=P2^0。

 如下图,就可以声明为

P2^0        P2^1        P2^2        P2^3等

🏳️‍🌈注意

⭐声明引脚必须要按照电路原理图上面给的引脚来声明,比如P0^1就是错的

🎆方法一 

使用sbit

🍔现象&&代码

🎊点亮一个

🎈现象

🎈代码

#include <REGX52.H>sbit led=P2^0;	   //将单片机的P2.0端口定义为led(当然也可以定义其他端口)void main()      
{while(1)   {led=0;		//低电平}		
}

可以看到LED模块是共阳极的,所以引脚(P2^0)要为0(低电平) 

🎊点亮两个

🎈现象

🎈代码

#include <REGX52.H>sbit led1=P2^0;	   //将单片机的P2.0端口定义为led(当然也可以定义其他端口)
sbit led2=P2^1;
void main()      
{while(1)   {led1=0;		//低电平led2=0;}		
}

🎊点亮三个 

 🎈现象

🎈代码

#include <REGX52.H>sbit led1=P2^0;	   //将单片机的P2.0端口定义为led(当然也可以定义其他端口)
sbit led2=P2^1;
sbit led3=P2^2;
void main()      
{while(1)   {led1=0;		//低电平led2=0;led3=0;}		
}

可以发现,声明不同的引脚,可以点亮不同的灯

🎆方法二 

使用二进制

🍔现象&&代码

🎊点亮一个

🎈现象

🎈代码

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

0xEF对应二进制1111 1110,最低位为0,所以P2.0 的输出被设置为低电平,其他位的输出都是高电平

🎊点亮两个

🎈现象

 

🎈代码 

#include <REGX52.H>void main()      
{while(1)   {P2=0xFE;	//1111 1110P2=0xFD;	//1111 1101}		
}

 🏳️‍🌈总结(非常重要)

上面介绍了两种方式点亮LED灯,下面来说说一些注意事项

1.要看原理图,因为原理图上面的LED是P2的,所以如果写为P3=0xFE,就不能亮

2.sbit和使用二进制其实有一定的关联

比如P2=0xFE,对应二进制1111 1110,就是P2.0,和sbit led=P2^0是一样的

 

 🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰

http://www.lryc.cn/news/66317.html

相关文章:

  • 数据可视化工具 - ECharts以及柱状图的编写
  • 【AI绘画】——Midjourney关键词格式解析(常用参数分享)
  • 操作符知识点大全(简洁,全面,含使用场景,演示,代码)
  • 华工研究生语音课
  • KingbaseES 原生XML系列二 -- XML数据操作函数
  • 【Flink】DataStream API使用之源算子(Source)
  • 树莓派硬件介绍及配件选择
  • O2OA (翱途) 平台 V8.0 发布新增数据台账能力
  • 数控解锁怎么解 数控系统解锁解密
  • 3.0 响应式系统的设计与实现
  • Rust 快速入门60分① 看完这篇就能写代码了
  • 【5.JS基础-JavaScript的DOM操作】
  • 【大数据之Hadoop】二十九、HDFS存储优化
  • SuperMap GIS基础产品组件GIS FAQ集锦(2)
  • C语言printf()函数中整型格式说明符详解
  • 阿里云服务器地域和可用区怎么选择合适?
  • Java序列化引发的血案
  • 为Linux系统添加一块新硬盘,并扩展根目录容量
  • 树莓派Opencv调用摄像头(Raspberry Pi 11)
  • 国产ChatGPT命名图鉴
  • 操作系统——进程管理
  • 第四十一章 Unity 输入框 (Input Field) UI
  • 10.集合
  • 强化学习p3-策略学习
  • 初学Verilog语言基础笔记整理(实例点灯代码分析)持续更新~
  • 关于 std::condition_variable
  • 可拓展哈希
  • Java 版 spring cloud 工程系统管理 +二次开发 工程项目管理系统源码
  • 通过伴随矩阵怎么求逆矩阵
  • 巡检机器人之仪表识别系统