sbit P06 = P0^6; sbit P07 = P0^7; // = 1000 0111 那么,我可以用 P00 = 0; 来直接对这个针脚对应的RAM地址进行修改,控制高低电平 也可以用 P0 = 0xFF; //0xFF=1111 1111 来对P0对应的指针地址开始修改,往后依次顺延 比如,0xFF在这里面是8位二进制数,那我就从这个地址开始,往后修改8bit 这...
1SFR列表中只有地址可以被8整除的功能可能按按位操,其他的地址只能按字节操作.我的理解是sfr P0=0x80,sfr P1=0x90能被8整除所以能:sbit a=p1^0sbit b=p1^1sbit c=p1^2sbit d=p1^3而sfr sp=0x81不能被8整除所以 不能 用像下面那样定意sbit e=sp^0sbit f=sp^1sbit g=sp^2sbit h=sp^3#defi...
3.sfr特殊功能寄存器 sfr也是一种扩充数据类型,点用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们用以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。 sfr P1 = 0x90; //...
sfr P0 =0x80; sfr P1 = 0x90; (C语言,这样就定义了51系列MCU中0x80地址,在编程时可以用P0符号代替地址0x80,具有定义硬件特性,一般在SFR的定义在头文件reg51.h或reg52.h或者stc8g.h内。 经过定义之后,编程的时候可以直接使用p0=0xff p1=0xff来实现控制端口IO。 === 在C51里,利用sbit可访问RAM中可寻...
1、reg52.h头文件,它定义了单片机的一些端口物理地址。#ifndef __REG52_H__#define __REG52_H__/* BYTE Registers */sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 ...
对于特殊功能寄存器(应在使用前由sfr关键字定义,如sfr P0=0x80)可以用 sbit P0_4= P0^4 (...
sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH...
sbit LED=P0^0; LED=11和2一个意思么? 0X80H不是地址么,而2中的是直接赋值相当于给的数据是10000000么?什么区分是地址和数据传输[1],针对P0口例如 SFR P0=0X11;//00010001,是不是相当于P0.0=1;.P0.3=0;P0.4=1;P0.5=0;……P0.7=0;这个意思是否正确?P0^0=1;.P0^3=0;P0^4=1;P0^5...
1和2一个意思么?0X80H不是地址么,而2中的是直接赋值相当于给的数据是10000000么?什么区分是地址和数据传输,针对P0口;例如SFR P0=0X11;//00010001,是不是相当于P0.0=1;.P0.3=0;P0.4=1;P0.5=0;...P0.7=0;这个意思是否正确?P0^0=1;.P0^3=0;P0^4=1;P0^5=0;...P0^7=0;和上面的是不...
sbit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。 STC该系列单片机的特殊功能寄存器布局如下: 看过图1这幺多特殊功能寄存器之后可能会产生一些困扰,我们用sfr P0 = 0乘以80表示P0,用sfr SP = 0乘以81...