b、特殊功能寄存器名带位号定义 定义格式为: sbit位变量名=特殊功能寄存器名 位号常数 这里的位号常数为0~7。例如: sbit P0 3=P0A3 sbit P1 4=P14. sbit OV=PSW^2;∥定义PSW的第2 位 sbit ES=IE^4;/定义IE的第4位 2021/29
2021/2/9 17 b、特殊功能寄存器名带位号定义 定义格式为: sbit 位变量名 = 特殊功能寄存器名^ 位号常数 这里的位号常数为0~7。例如: sbit P0_3=P0^3; sbit P1_4=P1^4; sbit OV=PSW^2; //定义PSW的第2 位 sbit ES=IE^4; //定义IE的第4位
c、寄存器地址带位号定义位变量 定义格式为 sbit位变量名=特殊功能寄存器地址∧ 位号常数 这里的位号常数同上,为0~7。例如: shit p06=0x80^6; sbit P1 7=0x907 sbit Ov=0Xd0^2;//定义PSW的第2 位 sbit ES=0xa8^4;//定义IE的第4位 2021/29 18
2021/2/9 18 c、寄存器地址带位号定义位变量 定义格式为: sbit 位变量名 = 特殊功能寄存器地址^ 位号常数 这里的位号常数同上,为0~7。例如: sbit P0_6=0x80^6; sbit P1_7=0x90^7; sbit OV=0xd0^2; //定义PSW的第2 位 sbit ES=0xa8^4; //定义IE的第4位
d、几点说明 1)用sbit定义的位变量,必须能够按位 操作,而不能够对无位操作功能的位定义位 变 里 2)用sbit定义位变量,必须放在函数外 面作为全局位变量,而不能在函数内部定义。 3)用sbt每次只能定义一个位变量。 4)用sbt定义的是一种绝对定位的位变 量(因为名字是与确定位地址对应的),具 有特定的意义,不能随便使用 2021/29
2021/2/9 19 d、几点说明 1)用sbit定义的位变量,必须能够按位 操作,而不能够对无位操作功能的位定义位 变量。 2)用sbit定义位变量,必须放在函数外 面作为全局位变量,而不能在函数内部定义。 3)用sbit每次只能定义一个位变量。 4)用sbit定义的是一种绝对定位的位变 量(因为名字是与确定位地址对应的),具 有特定的意义,不能随便使用
4、bit型位变 ?FH 127 2FH ZED 园A2 常说的位变量指的就 c51的bt型位变量定义m 6044 5843 2eH回回回回2回42 [存储类型]bit 29HE包想41 28H8图阻40 [,位变量 27M回B图图39 26H国BEB图B38 25H园园园四园四园37 b位变量被保存在R2m 园园四图园236 1回c图35 城例如 22H2山回34 21H四回回回回的回33 20国四回回回回回32 1FH 31 bit flag_run=0 寄存器区3 2 寄存器区2 static bit send opH 寄存器区1 引 寄存器区0 OOH 2021/29
2021/2/9 20 4、 bit型位变量的定义 常说的位变量指的就是bit型位变量。 C51的bit型位变量定义的一般格式为: [存储类型] bit 位变量名1[=初值] [,位变量名2[=初值]] [,…] bit位变量被保存在RAM中的位寻址区 域 例如: bit flag_run=0; static bit send_bit;
数据类型转换(p56) 1)自动转换 把赋值号右边的类型转换成左边的类型。 A:实型赋予整型 B:整型赋予实型 C:字符型赋予整型 D:整型赋予字符型 2021/29
2021/2/9 21 数据类型转换(p56) 1)自动转换 把赋值号右边的类型转换成左边的类型。 A: 实型赋予整型 B: 整型赋予实型 C: 字符型赋予整型 D: 整型赋予字符型