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…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
