(二)51单片机基础——LED
2023-02-18 15:50:05 时间
本节介绍的是有关LED灯的控制,也就是控制那8个小灯的熄灭与点亮,在这之前,先来补一下有关电路的一些知识点吧,LED模块原理图如下所示。
首先,VCC是电源正极,RP9和RP10是限流电阻(就是下面那两个小东西)电阻是1000欧姆,(102,代表的是10*10^2=1000),所以想要让D1这个LED亮,就需要给相应的接口一个低电平(注意,要将电位信息转换成16进制数),相应代码如下所示:
#include <REGX52.H>
void main(){
P2 = 0xFE;//1111 1110
}
运行结果如下所示:
其次,想要让LED灯闪烁,我们就需要一个新的概念,就是延时函数,不过这个函数在烧录软件里可以自动生成,下面先来介绍一下如何生成演算函数吧!
先选择系统频率,这个要看自己的单片机型号,还需要把8051指令集改成STC-Y1,再复制代码就行了。但是使用延时函数的时候,还需要添加一个头文件才能正常运行。接下来就来看一下LED灯闪烁的代码吧!(后期有高级一点的写法,先用这个来理解一些原理)
#include <INTRINS.H>//就是这个哦
具体每个16进制数我就不一一列开来讲了,相信各位可以理解的。
#include <STC89C5xRC.H>
#include <INTRINS.H>
void Delay1ms(unsigned int xms) //@11.0592MHz
{ //我稍微修改了一下延时函数,可以便于延时不同的时间
unsigned char i, j;
while(xms)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay1ms(200);
P2 = 0xFD;
Delay1ms(200);
P2 = 0xFB;
Delay1ms(200);
P2 = 0xF7;
Delay1ms(200);
P2 = 0xEF;
Delay1ms(200);
P2 = 0xDF;
Delay1ms(200);
P2 = 0xBF;
Delay1ms(200);
P2 = 0x7F;
Delay1ms(200);
}
}
运行结果如下所示:
https://live.csdn.net/v/embed/208094
VID_20220513_213444
好了,关于LED灯的知识先介绍这么多。
相关文章
- 通过工厂函数、构造函数创建对象
- 强化学习技巧四:模型训练速度过慢、GPU利用率较低,CPU利用率很低问题总结与分析。
- 初识: 对象的属性特征
- numpy数组拼接方法介绍(concatenate)---一次性完成多个数组的拼接
- 禁止添加属性、封闭对象、冻结对象的 API
- VSCode 自定义字体、连字效果
- UltraEdit for Mac(高级文本编辑器)v21.00.0.36中文版
- 突破内存墙能带来什么?看火山引擎智能推荐服务节支增效实战
- “三能”赋能绿色数据中心 泛在算力夯实智能社会基石
- 【一】最新多智能体强化学习方法【总结】
- 【二】最新多智能体强化学习文章如何查阅{顶会:AAAI、 ICML }
- 【三】多智能体强化学习(MARL)近年研究概览 {Analysis of emergent behaviors(行为分析)_、Learning communication(通信学习)}
- 零信任安全:金融数字化棋至中局的“胜负手”
- 【四】多智能体强化学习(MARL)近年研究概览 {Learning cooperation(协作学习)、Agents modeling agents(智能体建模)}
- word论文常用格式设定技巧【公式对齐、制表符公式编号等】
- 当科技遇上脱口秀,怎么“出圈”都不意外
- 数据中心“换心”:新一代供电系统打造“三高”基准标杆
- 补发一篇tensorflow下MADDPG环境搭建配置
- 金融绿色数据中心:以全生命周期管理应对节能减碳之“重”
- gym中的discrete类、box类和multidiscrete类简介和使用