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…...
rust-bert 多语言翻译实战:支持 100+ 语言的智能翻译系统
rust-bert 多语言翻译实战:支持 100 语言的智能翻译系统 【免费下载链接】rust-bert Rust native ready-to-use NLP pipelines and transformer-based models (BERT, DistilBERT, GPT2,...) 项目地址: https://gitcode.com/gh_mirrors/ru/rust-bert rust-ber…...
利用快马AI快速原型化一个Python Socket聊天室应用
最近在学习计算机网络相关的知识,发现Socket编程是个很有意思的实践方向。正好在InsCode(快马)平台上尝试用AI快速原型化了一个Python Socket聊天室应用,整个过程比想象中顺利很多,分享下我的实现思路和体验。 项目背景与需求分析 这个聊天…...
WinDiskWriter:突破限制的macOS Windows启动盘制作工具
WinDiskWriter:突破限制的macOS Windows启动盘制作工具 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legacy …...
如何高效使用开源工具EnergyStarX提升Windows 11电池续航:完整实战指南
如何高效使用开源工具EnergyStarX提升Windows 11电池续航:完整实战指南 【免费下载链接】EnergyStarX 🔋 Improve your Windows 11 devices battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar. 项目地址: https://gitcode.com/…...
深入浅出MIPI D-PHY:对比HS高速模式与LP低功耗模式,揭秘手机摄像头省电又流畅的底层原理
解密MIPI D-PHY:手机摄像头如何实现高速与低功耗的完美平衡 当你用手机拍摄4K视频时,是否想过为什么画面如此流畅,而电量消耗却相对可控?这背后隐藏着一项关键技术——MIPI D-PHY物理层协议。作为现代移动设备图像传输的核心通道&…...
别再只盯着芯片手册了!用CC6902SO搭建电流检测电路,这些实测数据和避坑经验更重要
别再只盯着芯片手册了!用CC6902SO搭建电流检测电路,这些实测数据和避坑经验更重要 第一次用CC6902SO搭建电流检测电路时,我完全按照芯片手册推荐的电路设计,结果发现实际输出和理论值差了将近15%。这让我意识到,真正影…...
实战应用:基于快马平台开发排序算法性能对比分析工具
今天想和大家分享一个特别实用的工具开发经历——用InsCode(快马)平台快速搭建了一个排序算法性能对比分析工具。这个项目不仅帮我巩固了算法知识,还意外发现了很多实际应用中的细节问题,特别适合用来理解不同排序算法的实战表现。 1. 为什么需要这个工…...
Qwen-Image-2512-Pixel-Art-LoRA 模型原理浅析:理解LoRA在图像生成中的作用
Qwen-Image-2512-Pixel-Art-LoRA 模型原理浅析:理解LoRA在图像生成中的作用 最近在玩AI画图的朋友,可能都遇到过这样的烦恼:想让一个通用的大模型画出特定风格,比如复古的像素风,结果要么画得不像,要么就得…...
Qwen3-ASR-1.7B惊艳效果:自动识别中英文技术文档朗读中的公式/代码块
Qwen3-ASR-1.7B惊艳效果:自动识别中英文技术文档朗读中的公式/代码块 你有没有遇到过这样的场景?听一场技术分享的录音,讲师在讲解代码逻辑时,你一边听一边手忙脚乱地记录,生怕漏掉一个括号或一个变量名。或者&#x…...
Pixel Epic动态卷轴效果展示:从空白屏幕到完整研报的实时生成录屏
Pixel Epic动态卷轴效果展示:从空白屏幕到完整研报的实时生成录屏 1. 引言:当科研遇上像素冒险 在传统的研究报告撰写过程中,我们常常面对冰冷的界面和机械化的交互体验。Pixel Epic彻底改变了这一现状,将严肃的学术研究变成了一…...
