sbit在c语言中的作用,sbit是什么意思

2023-11-14

sbit

词语概况:

定义特殊功能寄存器的位变量。

bit和sbit都是C51扩展的变量类型。

典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。

f7e746d642f3c20f6baf68cd37c89e8f.png

用法

在C语言里,如果直接写P1.0,C编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字,这里起的名为P1_0,可是P1_0是不是就是P1.0呢?你这么认为,C编译器可不这么认为,所以必须给它们建立联系,这里使用了Keil C的关键字sbit来定义,sbit的用法有三种:

第一种方法:sbit 位变量名=地址值

第二种方法:sbit 位变量名=SFR名称^变量位地址值

第三种方法:sbit 位变量名=SFR地址值^变量位地址值

如定义PSW中的OV可以用以下三种方法:

sbit OV=0xd2 (1)说明:0xd2是OV的位地址值

sbit OV=PSW^2 (2)说明:其中PSW必须先用sfr定义好

sbit OV=0xD0^2 (3)说明:0xD0就是PSW的地址值

因此这里用sbit P1_0=P1^0;就是定义用符号P1_0来表示P1.0引脚,如果你愿意也可以起P10一类的名字,只要下面程序中也随之更改就行了。

名词区别

bit和sbit都是C51扩展的变量类型。

sbit 要在最外面定义,就是说必须定义成外部变量.sbit定义的是SFR(特殊功能寄存器)的bit

sbit更像是类型定义,不像是变量定义。

sbit: 只是说明性说明

bit 可以在外部或内部定义。

bit和int char之类的差不多,只不过char=8位, bit="1位而已"。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。

bit是编译器在的可寻址区分配的一个位变量,是不定的,不是绝对地址目标。

所有可位寻址的位都可由sbit指定,这包括可位寻址区和SFR中的位。

sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbit xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。

sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sbit在c语言中的作用,sbit是什么意思 的相关文章

  • 记一次win 10 下wsl2 机制 的docker 镜像文件转移过程

    解决了 解决使用win10 docker 后C盘存储过大的问题 的问题 我使用的win10 在开启了wsl2之后 使用docker desktop用 use the WSL2 based engine 选项 使用起来如丝般畅滑 但是 随着各
  • AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)

    前段时间我分享了StableDiffusion的非常完整的教程 AI绘画 Stable Diffusion 终极宝典 从入门到精通 尽管如此 还有读者反馈说 尽管已经成功安装 但生成的图片与我展示的结果相去甚远 真实感和质感之间的差距到底在
  • C++中的类型推导

    本文参考Effective Morden C C 98只有一种类型推导规则 函数模板 而C 11改变了其中的一些规则 并添加了另外两种类型推导 他们是auto和decltype C 14又有了进一步的扩充 一 首先来看函数模板中的类型推导
  • Unity学习:资源存储加载之——文件夹、路径格式及其方法等

    1 Assets文件夹 Assets文件夹是unity项目中放置游戏资源的主文件夹 根目录文件夹 1 路径格式 assetsPath Assets xx xx xxx 2 编辑器下使用的加载方法 Resources LoadAssetAtP
  • 算法通关18关

    18关的前几篇文章看过之后 对回溯的模板问题基本解题思路就知道了 就是固定的for循环问题 外层for循环控制横向 递归控制纵向 还要考虑撤销操作和元素是否能被重复利用问题 重复利用的情景较少 只用注意撤销就行 1 复原IP地址 题目 经典
  • 01背包一维数组

    public class testWeightBagProblem1 public static void main String args Solution solution new testWeightBagProblem1 new S
  • Unity3D如何开发最简单的VR游戏 vrPlus(神之眼)

    VR是一种可创建和体验虚拟世界 Virtual World 的计算机系统 是一种可以创建和体验虚拟世界的计算机仿真系统 它利用计算机生成一种模拟环境 是一种多源信息融合的交互式三维动态视景和实体行为的系统仿真使用户沉浸到该环境中 作为一个u
  • Git(5)已有项目连接远端git仓库

    文章目录 初始化git 连接远程仓库 拉下仓库代码 添加代码到本地仓库 删除idea配置的git本地缓存 提交代码 推上去 初始化git git init 连接远程仓库 git remote add origin 你的仓库地址 拉下仓库代码
  • qqkey获取原理_【逆向】QQkey盗号木马原理分析

    一 简介 QQkey是一段字符串 通过这段字符串在没有QQ登录密码的前提下你依然能够在浏览器中对别人QQ空间 邮箱等应用进行随意访问和操作 现在市面上已经有很多使用易语言编写的盗号木马 专门盗取别人的QQkey 通过QQkey改绑关联了该邮
  • Robot Framework 自动化测试详解

    一 Robot Framework 简介 1 界面自动化测试工具 界面自动化测试 即UI自动化测试 比较常见的工具有 QTP AutoIt Selenium等 像QTP经历了很多版本 最新的版本好像叫UFT了 对初学者来说 录制回放是相当容
  • 搭建免费IP代理池

    声明 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 由于本人水平有限 如有理解或者描述不准确的地方 还望各位大佬指教 搭建代理池思路 思路来源 崔庆才大佬的爬虫书 代理从何而来 用
  • 网络安全面试必问

    项目经历 因为大家写的都是渗透相关 所以编故事也要编的圆润些 题材可以去freebuf看 https search freebuf com search search E6 8C 96 E6 B4 9E article 这里主要记录如何挖洞
  • 三类保留地址(私有地址)【个人笔记,仅供参考】

    A类 10 X X X是私有地址 私有地址就是在互联网上不使用 而被用在局域网络中的地址 127 X X X是保留地址 用做循环测试用的 B类 172 16 0 0 172 31 255 255是私有地址 169 254 X X是保留地址
  • 在Anaconda下安装并使用Pytorch,pillow,numpy等库及Python版本的匹配

    我在Anaconda下创建的新环境为 python 3 7 0 pytorch 1 8 0 pillow 9 5 0 numpy 1 21 5 能够正常运行 如果我这个版本够用的话可以按照这个版本进行安装 具体步骤如下 1 在Anacond
  • PROFINET从站设备描述文件

    目录 一 GSDML文件名格式 二 设备标识信息 三 设备支持的通讯周期时间 四 设备支持的槽位和数据模块 相信熟悉工业现场的工程师们 对于PROFIBUS和PROFINET这两个工业协议都不陌生 过去在使用PROFIBUS现场总线时 从站
  • matlab 专家pid,专家PID

    3 专家控制器 专家控制器的模型是整个仿真模型中的重点 其实质就是把专家规则用Matlab现有计算元件实现出来 当前一般的做法就是利用 IF THEN 语句来表述一条一条的专家规则 28 把单回路控制中的部分规则做成的专家控制器如下所示 图
  • 什么是Elastic Stack

    什么是Elastic Stack Elastic Stack是由ELK演化而来 ELK是三种软件的简称 分别是Elasticsearch logstash kibana组成 在发展的过程中 又有新成员Beats的加入 形成了Elastic
  • Hadoop运行模式 之 本地运行模式

    Hadoop的运行模式包括 本地模式 伪分布式模式以及完全分布式模式 Hadoop官网地址 https hadoop apache org 本次使用的Hadoop的版本是2 7 2 官网文档 https hadoop apache org
  • ssh-keygen 常用命令与参数

    ssh keygen 常用命令与参数 生成密钥 默认生成 2048 位 RSA 密钥 ssh keygen 生成 4096 位 RSA 密钥 ssh keygen t rsa b 4096 生成 521 位 ECDSA 密钥 ssh key

随机推荐

  • sql注入基础原理(超详细)

    一 Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中 再在后台 Sql 服务器上解析执行进行的攻击 它目前黑客对数据库进行攻击的最常用手段之一 二 Web 程序三层架构 三层架构 3 tier a
  • qt信号槽之创建和连接自定义的槽

    在第一版的Qt设计器中 你可以创建你自定义的槽的信号并使他们连接起来 但是你不能直接实现你的槽 你不得不子集于该窗体 并在这个子集中对你自定义的槽编码 子集的方法依然有用 在某些情况下仍起作用 Make sense 但是现在你可以在Qt设计
  • R语言入门

    安装 R语言开源 安装很简单 此处带过 界面 R语言的使用简介 赋值命令 赋值符号为 lt 或 但是建议使用 lt x lt 10 赋值10给变量x R语言的数据类型 R是一种基于对象 object 的语言 在R中看到的一切事物都是对象 对
  • JAVA遇见HTML—JSP篇(六.JSP指令与动作元素)

    include指令 语法 代码示例 新建date jsp文件
  • TensorFlow2.0.0开发环境安装

    TensorFlow 框架支持多种常见的操作系统 如 Windows 10 Ubuntu 18 04 Mac OS 等等 同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU完成计算的 CPU 版本 我们以最为常见的 Wi
  • c语言练习49:有多少⼩于当前数字的数字

    有多少 于当前数字的数字 给你 个数组 nums 对于其中每个元素 nums i 请你统计数组中 它 的所有数字的数 换 之 对于每个 nums i 你必须计算出有效的 j 的数量 其中 j 满 j i 且nums j lt nums i
  • 【网络层】网络基础 -- IP协议

    引入 IP 协议头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 分片与组装 如何分片与组装 引入 我们前面学习了传输层的相关知识 难道真的就是直接传送吗 当然不是 那TCP究竟做了什么 IP又扮演什么角色
  • Unity3d 制作一个简单的NPC对话系统

    制作一个简单的NPC对话系统 文章目录 制作一个简单的NPC对话系统 前言 效果展示 进入对话区域 开始对话 Inspector面板可调选项 准备工作 NPC UI 代码 完整代码 详细逻辑 开启对话 显示对话 头顶标识 头顶标识 后话 前
  • 算法 - 堆排序(C#)

    csharp view plain copy print
  • 33.121. 买卖股票的最时机

    思路 第一个确定是buyVal 第二个三种情况 大于等于buyVal 就把这个设置为saleVal 小于buyVal buyVal 改变为这个 继续遍历 错误思路 我的想法是 先把买的时机确定了 再确定卖的时机 分类讨论 实际操作过程中 有
  • LayUi做登录注册

    LayUi登录注册页面附代码 登录页面 注册页面 附加CSS JS代码 JS代码 CSS代码 登录页面 下面展示登录页面 代码如下
  • STM32外设系列—BH1750

    文章目录 一 BH1750简介 二 BH1750原理图 三 BH1750数据手册 3 1 指令集 3 2 IIC通信读 写 四 BH1750程序设计 4 1 IIC程序 4 2 BH1750初始化程序 4 3 读取BH1750测量结果 4
  • 免费代码开发辅助AI工具CodeWhisperer、CodeGeeX、Codeium

    vscode应用市场可以直接搜索安装 vscode安装后左侧状态栏图标 注意 三款使用都需要翻墙注册 使用基本也是翻墙网络下使用 CodeGeeX国产 支持代码解释 聊天框 Codeium也支持代码解释 聊天框 按Tab是接受ai代码工具推
  • C# winForm 图片预览

    ImageZoomMainForm cs using System using System Collections Generic using System ComponentModel using System Data using S
  • BUUCTF MISC刷题笔记(二)

    BUUOJ Misc WUSTCTF2020 spaceclub 派大星的烦恼 SCTF2019 电单车 hashcat UTCTF2020 zero CTF2019 otaku 湖南省赛2019 Findme 1 png 2 png 3
  • Win11+VS2019配置YOLOX

    基本环境 操作系统 Windows 编译软件 Visual Studio 2019 Python版本 3 8 编译流程 1 使用如下指令下载YOLOX源码 git clone recursive https github com Megvi
  • Sentinel数据处理-基于snap软件

    目录 1 sentinel卫星数据介绍 1 1 sentinel1 1 2 sentinel2 1 3 sentinel3 2 sentinel卫星数据预处理 2 1 snap软件下载 2 2 sentinel2 数据下载 3 sentin
  • Android快捷键之代码自动对齐

    一 背景 你是否有在为代码格式比较乱而烦心呢 二 解决办法 Android studio使用 Ctrl Alt L 注 快捷键可以格式化代码 也可以理解为让代码自动对齐 也可以使用一些插件处理代码格式问题 注意 这快捷键在没有其他应用的快捷
  • Vue3中ref,toRef,toRefs的区别与用法

    ref vs toRef 如果利用ref函数将某个对象中的属性变成响应式数据 对其进行修改是不会影响原始数据的 利用toRef进行上方操作 对数据的修改是响应式的 toRef vs toRefs toRef 创建一个ref对象 其value
  • sbit在c语言中的作用,sbit是什么意思

    sbit 词语概况 定义特殊功能寄存器的位变量 bit和sbit都是C51扩展的变量类型 典型应用是 sbit P0 0 P0 0 即定义P0 0为P0口的第1位 以便进行位操作 用法 在C语言里 如果直接写P1 0 C编译器并不能识别 而