51 单片机包含头文件 BIN51.H 直接写二进制数字
51 单片机包含头文件 BIN51.H 直接写二进制
最近学习 51 单片机,写代码的时候感觉用二进制的形式更直观。就是每次都需要宏定义,太麻烦。干脆把所有的8位二进制数字全部用宏定义写出来,放进头文件,下次使用直接包含头文件就行。
软件环境:win10 专业版 + Keil C51
创建 BIN51.H 文件, 使用 GB2312 编码, 文件内容如下:
/*--------------------------------------------------------------------------
BIN51.H使用说明
把 BIN51.H 放入 Keil 的目录, 例: C:\Keil\C51\INC
随后,可以直接在原文件中直接写二进制数字,例如:#include <reg51.h>
#include <bin51.h>
void main(void){P0 = B_1110_0001;while(1);
}--------------------------------------------------------------------------*/#ifndef __BIN51_H__
#define __BIN51_H__#define B_0000_0000 0X00
#define B_0000_0001 0X01
#define B_0000_0010 0X02
#define B_0000_0011 0X03
#define B_0000_0100 0X04
#define B_0000_0101 0X05
#define B_0000_0110 0X06
#define B_0000_0111 0X07
#define B_0000_1000 0X08
#define B_0000_1001 0X09
#define B_0000_1010 0X0A
#define B_0000_1011 0X0B
#define B_0000_1100 0X0C
#define B_0000_1101 0X0D
#define B_0000_1110 0X0E
#define B_0000_1111 0X0F
#define B_0001_0000 0X10
#define B_0001_0001 0X11
#define B_0001_0010 0X12
#define B_0001_0011 0X13
#define B_0001_0100 0X14
#define B_0001_0101 0X15
#define B_0001_0110 0X16
#define B_0001_0111 0X17
#define B_0001_1000 0X18
#define B_0001_1001 0X19
#define B_0001_1010 0X1A
#define B_0001_1011 0X1B
#define B_0001_1100 0X1C
#define B_0001_1101 0X1D
#define B_0001_1110 0X1E
#define B_0001_1111 0X1F
#define B_0010_0000 0X20
#define B_0010_0001 0X21
#define B_0010_0010 0X22
#define B_0010_0011 0X23
#define B_0010_0100 0X24
#define B_0010_0101 0X25
#define B_0010_0110 0X26
#define B_0010_0111 0X27
#define B_0010_1000 0X28
#define B_0010_1001 0X29
#define B_0010_1010 0X2A
#define B_0010_1011 0X2B
#define B_0010_1100 0X2C
#define B_0010_1101 0X2D
#define B_0010_1110 0X2E
#define B_0010_1111 0X2F
#define B_0011_0000 0X30
#define B_0011_0001 0X31
#define B_0011_0010 0X32
#define B_0011_0011 0X33
#define B_0011_0100 0X34
#define B_0011_0101 0X35
#define B_0011_0110 0X36
#define B_0011_0111 0X37
#define B_0011_1000 0X38
#define B_0011_1001 0X39
#define B_0011_1010 0X3A
#define B_0011_1011 0X3B
#define B_0011_1100 0X3C
#define B_0011_1101 0X3D
#define B_0011_1110 0X3E
#define B_0011_1111 0X3F
#define B_0100_0000 0X40
#define B_0100_0001 0X41
#define B_0100_0010 0X42
#define B_0100_0011 0X43
#define B_0100_0100 0X44
#define B_0100_0101 0X45
#define B_0100_0110 0X46
#define B_0100_0111 0X47
#define B_0100_1000 0X48
#define B_0100_1001 0X49
#define B_0100_1010 0X4A
#define B_0100_1011 0X4B
#define B_0100_1100 0X4C
#define B_0100_1101 0X4D
#define B_0100_1110 0X4E
#define B_0100_1111 0X4F
#define B_0101_0000 0X50
#define B_0101_0001 0X51
#define B_0101_0010 0X52
#define B_0101_0011 0X53
#define B_0101_0100 0X54
#define B_0101_0101 0X55
#define B_0101_0110 0X56
#define B_0101_0111 0X57
#define B_0101_1000 0X58
#define B_0101_1001 0X59
#define B_0101_1010 0X5A
#define B_0101_1011 0X5B
#define B_0101_1100 0X5C
#define B_0101_1101 0X5D
#define B_0101_1110 0X5E
#define B_0101_1111 0X5F
#define B_0110_0000 0X60
#define B_0110_0001 0X61
#define B_0110_0010 0X62
#define B_0110_0011 0X63
#define B_0110_0100 0X64
#define B_0110_0101 0X65
#define B_0110_0110 0X66
#define B_0110_0111 0X67
#define B_0110_1000 0X68
#define B_0110_1001 0X69
#define B_0110_1010 0X6A
#define B_0110_1011 0X6B
#define B_0110_1100 0X6C
#define B_0110_1101 0X6D
#define B_0110_1110 0X6E
#define B_0110_1111 0X6F
#define B_0111_0000 0X70
#define B_0111_0001 0X71
#define B_0111_0010 0X72
#define B_0111_0011 0X73
#define B_0111_0100 0X74
#define B_0111_0101 0X75
#define B_0111_0110 0X76
#define B_0111_0111 0X77
#define B_0111_1000 0X78
#define B_0111_1001 0X79
#define B_0111_1010 0X7A
#define B_0111_1011 0X7B
#define B_0111_1100 0X7C
#define B_0111_1101 0X7D
#define B_0111_1110 0X7E
#define B_0111_1111 0X7F
#define B_1000_0000 0X80
#define B_1000_0001 0X81
#define B_1000_0010 0X82
#define B_1000_0011 0X83
#define B_1000_0100 0X84
#define B_1000_0101 0X85
#define B_1000_0110 0X86
#define B_1000_0111 0X87
#define B_1000_1000 0X88
#define B_1000_1001 0X89
#define B_1000_1010 0X8A
#define B_1000_1011 0X8B
#define B_1000_1100 0X8C
#define B_1000_1101 0X8D
#define B_1000_1110 0X8E
#define B_1000_1111 0X8F
#define B_1001_0000 0X90
#define B_1001_0001 0X91
#define B_1001_0010 0X92
#define B_1001_0011 0X93
#define B_1001_0100 0X94
#define B_1001_0101 0X95
#define B_1001_0110 0X96
#define B_1001_0111 0X97
#define B_1001_1000 0X98
#define B_1001_1001 0X99
#define B_1001_1010 0X9A
#define B_1001_1011 0X9B
#define B_1001_1100 0X9C
#define B_1001_1101 0X9D
#define B_1001_1110 0X9E
#define B_1001_1111 0X9F
#define B_1010_0000 0XA0
#define B_1010_0001 0XA1
#define B_1010_0010 0XA2
#define B_1010_0011 0XA3
#define B_1010_0100 0XA4
#define B_1010_0101 0XA5
#define B_1010_0110 0XA6
#define B_1010_0111 0XA7
#define B_1010_1000 0XA8
#define B_1010_1001 0XA9
#define B_1010_1010 0XAA
#define B_1010_1011 0XAB
#define B_1010_1100 0XAC
#define B_1010_1101 0XAD
#define B_1010_1110 0XAE
#define B_1010_1111 0XAF
#define B_1011_0000 0XB0
#define B_1011_0001 0XB1
#define B_1011_0010 0XB2
#define B_1011_0011 0XB3
#define B_1011_0100 0XB4
#define B_1011_0101 0XB5
#define B_1011_0110 0XB6
#define B_1011_0111 0XB7
#define B_1011_1000 0XB8
#define B_1011_1001 0XB9
#define B_1011_1010 0XBA
#define B_1011_1011 0XBB
#define B_1011_1100 0XBC
#define B_1011_1101 0XBD
#define B_1011_1110 0XBE
#define B_1011_1111 0XBF
#define B_1100_0000 0XC0
#define B_1100_0001 0XC1
#define B_1100_0010 0XC2
#define B_1100_0011 0XC3
#define B_1100_0100 0XC4
#define B_1100_0101 0XC5
#define B_1100_0110 0XC6
#define B_1100_0111 0XC7
#define B_1100_1000 0XC8
#define B_1100_1001 0XC9
#define B_1100_1010 0XCA
#define B_1100_1011 0XCB
#define B_1100_1100 0XCC
#define B_1100_1101 0XCD
#define B_1100_1110 0XCE
#define B_1100_1111 0XCF
#define B_1101_0000 0XD0
#define B_1101_0001 0XD1
#define B_1101_0010 0XD2
#define B_1101_0011 0XD3
#define B_1101_0100 0XD4
#define B_1101_0101 0XD5
#define B_1101_0110 0XD6
#define B_1101_0111 0XD7
#define B_1101_1000 0XD8
#define B_1101_1001 0XD9
#define B_1101_1010 0XDA
#define B_1101_1011 0XDB
#define B_1101_1100 0XDC
#define B_1101_1101 0XDD
#define B_1101_1110 0XDE
#define B_1101_1111 0XDF
#define B_1110_0000 0XE0
#define B_1110_0001 0XE1
#define B_1110_0010 0XE2
#define B_1110_0011 0XE3
#define B_1110_0100 0XE4
#define B_1110_0101 0XE5
#define B_1110_0110 0XE6
#define B_1110_0111 0XE7
#define B_1110_1000 0XE8
#define B_1110_1001 0XE9
#define B_1110_1010 0XEA
#define B_1110_1011 0XEB
#define B_1110_1100 0XEC
#define B_1110_1101 0XED
#define B_1110_1110 0XEE
#define B_1110_1111 0XEF
#define B_1111_0000 0XF0
#define B_1111_0001 0XF1
#define B_1111_0010 0XF2
#define B_1111_0011 0XF3
#define B_1111_0100 0XF4
#define B_1111_0101 0XF5
#define B_1111_0110 0XF6
#define B_1111_0111 0XF7
#define B_1111_1000 0XF8
#define B_1111_1001 0XF9
#define B_1111_1010 0XFA
#define B_1111_1011 0XFB
#define B_1111_1100 0XFC
#define B_1111_1101 0XFD
#define B_1111_1110 0XFE
#define B_1111_1111 0XFF #endif
以上就是 BIN51.H 头文件的全部内容.
找到 Keil 的安装目录,例如: D:\Program Files (x86)\Keil ,将 BIN51.H 复制到
D:\Program Files (x86)\Keil\C51\INC 目录中.
测试代码如下:
#include <reg51.h>
#include <bin51.h>
void main(void)
{
P1 = B_1111_0000;
while(1);
}
根据我的开发版上的接线,显示的效果应该是 LED18 ~ LED15 亮灯,其余灭.
如果在你的开发板子 LED 显示效果不一样,可以调整杜邦线的线序,或者把P1 = B_1111_0000; 改成 P1 = B_0000_1111; 再测试.
相关文章:
51 单片机包含头文件 BIN51.H 直接写二进制数字
51 单片机包含头文件 BIN51.H 直接写二进制 最近学习 51 单片机,写代码的时候感觉用二进制的形式更直观。就是每次都需要宏定义,太麻烦。干脆把所有的8位二进制数字全部用宏定义写出来,放进头文件,下次使用直接包含头文件就行。 …...

php环境搭建步骤(与资源配套使用版)
1.将phpEnv.zip下载到D盘下 2.解压到当前文件夹 3.找到Apache24下的bin目录,执行cmd操作,回车。 4.在cmd中执行代码 Httpd -k install -n “Apache24” 4.使用winR键打开运行,输入services.msc ,回车,进入服务 …...
java 集合处理:
// 1 数组转map public static void main(String[] args) {String backendIdStr"[\"backend-mvj05upv7yc\",\"backend-mvj055qvric\",\"backend-mvj04hlutx4\"]";String[] backendIdList JsonUtil.asObject(backendIdStr, String[].c…...
算法训练第五十二天
718. 最长重复子数组 - 力扣(LeetCode) class Solution { public:int findLength(vector<int>& nums1, vector<int>& nums2) {vector<vector<int>> dp(nums1.size() 1,vector<int>(nums2.size() 1,0));int res…...

LeetCode——回溯篇(三)
刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 46. 全排列 47. 全排列 II 332. 重新安排行程 51. N 皇后 37. 解数独 46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任…...

Python爬取京东商品评论
寻找数据真实接口 打开京东商品网址查看商品评价。我们点击评论翻页,发现网址未发生变化,说明该网页是动态网页。 API名称:item_review-获得JD商品评论 公共参数 获取API测试key&secret 名称类型必须描述keyString是调用keyÿ…...

ROS机器人编程---------(一)安装ROS
安装ROS 打开终端按顺序执行下面命令 默认安装在/opt/ros路径下 打开一个终端输入roscore 测试是否安装成功 启动ROS Master roscore启动小海龟仿真器 rosrun turtlesim turtlesim_node启动海龟控制结点 rosrun turtlesim turtlesim_teleop_key使用键盘方向键控…...

Maven入门教程(一):安装Maven环境
视频教程:Maven保姆级教程 Maven入门教程(一):安装Maven环境 Maven入门教程(二):idea/Eclipse使用Maven Maven入门教程(三):Maven语法 Maven入门教程(四):Nexus私服 Maven入门教程(五):自定义脚手架 Maven项…...
CSS中可继承与不可继承属性
可继承 1. 字体属性: font、font-style、font-variant、font-weight、font-size、line-height等属性是字体样式的属性,都可以被子元素继承。 2. 文本属性: color、text-indent、text-align、text-decoration、text-transform、letter-spa…...

Vscode画流程图
1.下载插件 Draw.id Integration 2.桌面新建文件,后缀名改为XXX.drawio 在vscode打开此文件 ,就可以进行绘制流程图啦...

【K8S系列】深入解析k8s网络插件—Cilium
序言 做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点 在现代容器化应用程序的世界中…...

OpenCV(十六):高斯图像金字塔
目录 1.高斯图像金字塔原理 2.高斯图像金字塔实现 1.高斯图像金字塔原理 高斯图像金字塔是一种用于多尺度图像表示和处理的重要技术。它通过对图像进行多次高斯模糊和下采样操作来生成不同分辨率的图像层级,每个层级都是原始图像的模糊和降采样版本。 以下是高斯…...

Nginx配置及优化3
Nginx配置及优化3 一、网页状态页二、nginx第三方模块2.1、echo模块 三、变量3.1、内置变量3.1.1、常用的内置变量3.1.2、举个例子 3.2、自定义变量 四、自定义访问日志优化4.1、自定义访问日志的格式4.2、自定义json格式日志 五、nginx压缩功能六、HTTPS功能6.1、nginx的HTTPS…...

网络直播源码UDP协议搭建:为平台注入一份力量
网络直播源码中的UDP协议的定义: UDP协议又名用户数据报协议,是一种轻量级、无连接的协议。在网络直播源码平台中,UDP协议有着高速传输与实时性的能力,尤其是在网络直播源码实时性要求较高的场景,UDP协议的应用有着重要…...
Ubuntu/linux系统环境变量配置详解
一 环境变量配置文件解释 /etc/profile 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变…...
kafka配置SASL/PLAIN 安全认证
1 zookeeper配置启动 1.1 zookeeper添加SASL支持 为zookeeper添加SASL支持,在配置文件zoo.cfg添加 authProvider.1org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthSchemesasl jaasLoginRenew36000001.2 zk_server_jaas.conf文件…...

pdf加密如何解除?这样解除加密很简单
pdf加密如何解除?有时,我们可能会收到一些加密的PDF文件,它们不允许我们对其进行编辑或打印。这时,我们需要使用PDF解密工具,以便能够轻松地解除PDF加密并对其进行编辑。那么接下来就给大家介绍一下pdf加密解除的方法。…...

Ubuntu18.04使用Systemback制作系统镜像并还原
系列文章目录 文章目录 系列文章目录前言一、下载Systemback工具二、制作系统镜像到U盘三、安装制作系统 前言 在Ubuntu系统中开发项目时,有时会希望将项目移植到另外一台计算机(如工控机等)上进行部署,通常会在新计算机中安装Ub…...
OpenCV(十五):拷贝图像
在OpenCV中,拷贝图像数据时有两种方式:深拷贝(Deep Copy)和浅拷贝(Shallow Copy)。这两种拷贝方式的主要区别在于是否创建新的图像副本。 浅拷贝(Shallow Copy)是指将图像对象的指针…...
原神世界中的顺序表:派蒙的趣味数据结构讲解
派蒙,那个总是带着疑问眼神的小家伙,是原神世界中的小精灵。他总是充满好奇心,无论是对新的冒险者,还是对各种奇妙的现象。而他的另一个身份,则是原神世界中的数据结构大师。 一天,派蒙遇到了旅行者小森&a…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...