【速成51单片机】2.点亮LED

新建工程

新建工程的方法与stm32相同,但注意选芯片是需要先点击如图按键

这里我们选择AT89C52

我们一般不需要自带的启动文件,所以这个弹窗直接点"否"

好,剩下的步骤与stm32就相同了

编写代码

51单片机通常也使用C语言进行编程,和stm32相同方式创建一个点c文件,然后写好mian函数,如图

然后编译试一下,看看有没有错误。

下面添加头文件,可以使用右键然后点如图所示选项,插入

c 复制代码
#include <REGX52.H>

或者按书上写的直接写

c 复制代码
#include <reg51.h>

也是可以一定程度上兼容的,不过,如果使用AT89C52或者STC89C52的话,#include <REGX52.H>更加合适,里面的寄存器也更加全面。

51单片机比stm32操控引脚更加直接,51单片机可以直接操控寄存器控制引脚电平。

如下代码可以直接将P2口所有引脚置高电平

c 复制代码
P2 = 0xFF;//1111 1111

而下面代码,则是将P2.0口置低电平,其余P2口置高电平。

c 复制代码
P2 = 0xFE;//1111 1110

如果想要直接操控某个精确的引脚而不是全部8个引脚,那么就直接给对应位置1或者0;注意链接符号是下划线而不是点。如下

c 复制代码
P2_1 = 0;//P2.1置低电平

另外,由于reg51.h中没有定义具体的引脚,只定义了P0,P1,P2,P3

所以如果用reg51.h想要操作具体的某个引脚那需要类似额外进行如下的定义

c 复制代码
sbit P1_3 = P1^3;
sbit P2_5 = P2^5;

其中^符号在C51中代表的不是异或,而是一种特殊写法:

" ^ "前面是寄存器的名字," ^ "的后面是可寻址的具体位置,只能填0到7.

未完待续...

相关推荐
枯萎穿心攻击22 分钟前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
DKPT1 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
竹照煜_ysn1 小时前
蓝桥杯51单片机设计
单片机·嵌入式硬件·51单片机
Eiceblue2 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
Electron-er2 小时前
汽车LIN总线通讯:从物理层到协议栈的深度解析
单片机·汽车电子·lin总线·lin总线通讯
m0_555762902 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab
努力的小雨2 小时前
点我!1分钱获取你的专属表白网页,浪漫由大模型代运营
经验分享·ai智能
巴伦是只猫3 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
Do vis8243 小时前
STM32第十六天蓝牙模块
stm32·单片机·嵌入式硬件
学不动CV了3 小时前
ARM单片机启动流程(二)(详细解析)
c语言·arm开发·stm32·单片机·51单片机