单片机C编程 关键字: sfr 、sbit。

直接上图 上例子来理解
以P2口为例(可在附加中找到相关引脚的原理图),假设只有一个89C52的芯片,芯片上的各个引脚未定义

sbit K0 = P2^0;按位操作,将P2^0赋给独立按键K0。这样独立按键K0就代表了P2^0口,更具有现实意义。
sbit K1 = P2^1;
sbit K2 = P2^2;
sbit K3 = P2^3;
sbit K4 = P2^4;
sbit K5 = P2^5;
sbit K6 = P2^6;
sbit K7 = P2^7;

(注意附加图片中的 TCON寄存器写着 可位寻址)
sbit TCON^0 = 1;外部中断0下降沿触发
等价于
IT0 = 1;(如果不可以按位寻址 则不可以这样置1)
等价于
TCON = 0x01;(假设除IT0以外其他位都没用到的话)

总结来说,sbit方便程序员对寄存器中的某位进行操作,而且sbit大部分是用在寄存器中。


上图中
sfr P0 = 0x80;由原理图可知,P0口有八位,sfr可对这8位操作。
sbit IT0 = 0x88; 只对TCON8位寄存中的IT0这一位进行操作。
意义 将硬件 映射到 内存地址上去。

附加:

详解单片机中的关键字:sfr sbit相关推荐

  1. java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题

    先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...

  2. 【嵌入式基础小知识】详解单片机中的程序和变量是如何分布的以及一些注意事项

    "我固然不是了不起的跑步者,而是处于极为平凡的--毋宁说是凡庸的--水准.然而这个问题根本不重要.我超越了昨天的自己,哪怕只是那么一丁点儿,才更为重要.在长跑中,如果说有什么必须战胜的对手, ...

  3. python之33个关键字详解_Python 中的关键字 with 详解

    在 Python 2.5 中,with关键字被加入.它将常用的 try ... except ... finally ...模式很方便的被复用.看一个最经典的例子: with open('file.t ...

  4. 详解C中volatile关键字

    volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编译器可能优化读取和存储 ...

  5. python关键字详解_Python 中的关键字with详解

    在 Python 2.5 中,with关键字被加入.它将常用的 try ... except ... finally ...模式很方便的被复用.看一个最经典的例子: with open('file.t ...

  6. 详解Java中static关键字和final关键字的功能

    摘要:static关键字和final关键字是Java语言的核心,深入理解他们的功能非常重要. 本文分享自华为云社区<Java: static关键字与final关键字>,原文作者:唐里 . ...

  7. 【转】 详解C中volatile关键字

    转自: http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能 ...

  8. 详解java中的final关键字

    概述 final 简介 final关键字可用于多个场景,且在不同场景具有不同的作用.首先,final是一个非访问修饰符,仅适用于变量,方法或类.下面是使用final的不同场景: 上面这张图可以概括成: ...

  9. java static 函数_详解java中的static关键字

    Java中的static关键字可以用于修饰变量.方法.代码块和类,还可以与import关键字联合使用,使用的方式不同赋予了static关键字不同的作用,且在开发中使用广泛,这里做一下深入了解. 静态资 ...

  10. pythonnamedtuple定义类型_详解Python中namedtuple的使用

    namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...

最新文章

  1. ZwQueryVirtualMemory暴力枚举进程模块
  2. svn命令在linux下的使用
  3. ImportError: Could not find ‘cudart64_100.dll报错
  4. java并行计算Fork和Join的使用
  5. HTML页面跳转的5种方法
  6. kdj指标主要看哪个值_kdj指标中三者的关系是什么?
  7. 网络图片嗅探工具driftnet
  8. 创业和工作的心态问题
  9. Python实现统一社会信用代码合法性校验
  10. 用物理学分析马歇尔的价格均衡论
  11. java new jsonparser_java – JSONParser无法解析为某种类型
  12. HTML 通过GIF实现loading动画(非进度条版)。
  13. Html5 canvas创意特效合集
  14. servicenow CSA考试 可用学习资料
  15. 能在学生用计算机的面上画的图画,学生作品之一《学生电脑绘画》(图文)
  16. R语言-Timo-统计结果输出至本地
  17. Codeup 1009-1012 python
  18. 设计美学 第一章 设计美学的基本问题
  19. 简易电子琴演奏器_北邮大二上数电实验报告
  20. 安装Skype for business on Linux

热门文章

  1. 【前端框架】Element UI Dialog 组件中执行 DOM 操作异常问题的分析与处理
  2. 什么是PaaS? 平台即服务的解释
  3. 京东评价系统海量数据存储设计
  4. 鹅厂同学:7 月开始不再进行薪酬调整?
  5. 【HC-SR501人体红外传感器】
  6. 从程序员到项目经理(29):怎样写文档
  7. ps排版html,排版教程,超详细适合初学者的排版教程(二)
  8. JAVA:JDBC数据库编程
  9. Error staring Tomcat Cannot connect to VM错误解决办法
  10. MySql安装 Staring the server出错