- 0
- 0
- 约2.56千字
- 约 3页
- 2020-04-14 发布于湖南
- 举报
1.bit和sbit都是C51扩展的变量类型。
bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。
sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
2.bit位标量bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。
3.sfr特殊功能寄存器sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们用以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。
sfr P1 = 0x90; //定义P1 I/O 口,其地址90Hsfr 关键定后面是一个要定义的名字,可任意选取,但要符合标识符的命名规则,名字最好有一定的含义如P1 口可以用P1 为名,这样程序会变的好读好多.等号后面必须是常数,不允许有带运算符的表达式,而且该常数必须在特殊功能寄存器的地址范围之内(80H-FFH),具体可查看附录中的相关表.
sfr 是定义8 位的特殊功能寄存器而sfr16 则是用来定义16 位特殊功能寄存器,
如8052 的T2 定时器,可以定义为:sfr16 T2 = 0xCC; //这里定义8052 定时器2,地址为T2L=CCH,T2H=CDH用sfr16 定义16 位特殊功能寄存器时,等号后面是它的低位地址,高位地址一定要位于物理低位地址之上.注意的是不能用于定时器0 和1 的定义.sbit 可定义可位寻址对象.如访问特殊功能寄存器中的某位.其实这样应用是经常要用的如要访问P1 口中的第2 个引脚P1.1.我们可以照以下的方法去定义:(1) sbit 位变量名=位地址sbit P1_1 = Ox91;这样是把位的绝对地址赋给位变量.同sfr 一样sbit 的位地址必须位于80H-FFH 之间.(2) sbit 位变量名=特殊功能寄存器名^位位置sft P1 = 0x90;sbit P1_1 = P1 ^ 1; //先定义一个特殊功能寄存器名再指定位变量名所在的位置,当可寻址位位于特殊功能寄存器中时可采用这种方法(3) sbit 位变量名=字节地址^位位置sbit P1_1 = 0x90 ^ 1;这种方法其实和2 是一样的,只是把特殊功能寄存器的位址直接用常数表示. 在C51存储器类型中提供有一个bdata 的存储器类型,这个是指可位寻址的数据存储器,位于单片机的可位寻址区中,可以将要求可位录址的数据定义为bdata,如:unsigned char bdata ib; //在可位录址区定义ucsigned char 类型的变量ibint bdata ab[2]; //在可位寻址区定义数组ab[2],这些也称为可寻址位对象sbit ib7=ib^7 //用关键字sbit 定义位变量来独立访问可寻址位对象的其中一位sbit ab12=ab[1]^12;操作符^后面的位位置的最大值取决于指定的基址类型,char0-7,int0-15,long0-31.
sfr 并标准C 语言的关键字,而是Keil 为能直接访问80C51 中的SFR 而提供了一个新的关键词,其用法是:sfrt 变量名=地址值。2)符号P1_0 来表示P1.0 引脚。在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 定义好
您可能关注的文档
- 华夏云谷立项申请.doc
- 华夏儒商俱乐部草案书.doc
- 华威攻略——水晶世家饰品店.docx
- 华尔康净水器招商加盟政策书.doc
- 华师大辅修论文框架模板.doc
- 华德商铺招商汇总分析.doc
- 华成供暖论长沙地暖采暖住宅采暖的选择.doc
- 华数传媒借壳上市方案解读.docx
- 华春肉牛典型材料.doc
- 华民基金大学生就业扶助项目课前作业.doc
- 散文题型03 理解分析词句(题型专练)(全国通用)(解析版)-2026年高考语文二轮复习讲练.docx
- 考前押题10 阅读理解之应用文——关注生活 学以致用(原卷版)(押题训练)2026年高考英语阅读理解突破策略及押题(全国通用).docx
- 清单04 综合性学习之语言表达(仿写邀请转述劝说) 活动策划(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单09 古诗文对比阅读之内容 情感 写法对比 语言 炼字 拓展探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 小说易错02 重点情节理解偏差(选择题)(易错专练)(全国通用)(原卷版)-2026年高考语文二轮复习讲练.docx
- 专题01 声现象(题型专练)(全国通用)(原卷版)2026年中考物理二轮复习讲练.docx
- 清单08 文言文(议论类 书信应用类)阅读之论点把握 文体特点(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单11 记叙文阅读之朗读设计 表达技巧 主旨情感 开放探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 语言清单05 语法填空中的词类(五)无提示词--连词(全国通用)(原卷版)2026年高考英语二轮复习讲练.docx
- 第04讲 想象探索与科学精神(《西游记》《海底两万里》《昆虫记》全国通用(讲义)(解析版)2026年中考语文一轮复习讲练.docx
最近下载
- 2025云南农业大学后勤服务有限公司招聘32人备考题库带答案解析.docx VIP
- 松材线虫课件.pptx VIP
- 2023年洁净车间生产环境控制教材方案模板.pptx VIP
- 【PPT】品管圈(QCC)降低科室一次性耗材浪费率 .pptx
- 2026高中数学复习-专题19 立体几何初步(Ⅱ)(七大题型+模拟精练)(解析版).pdf VIP
- 2025年教师职称-山西-山西教师职称(基础知识、综合素质、小学体育)历年参考题典型考点含答案解析.docx VIP
- isilon Drive Support Package 驱动支持包 1.37 发布说明(英文).pdf VIP
- 企业消防安全知识培训.pptx
- 山东省阳谷县第二中学高中音乐:古老的声音教案.doc VIP
- 常用建筑材料图例整理.doc VIP
原创力文档

文档评论(0)