C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 15:42:53
C51单片机被定义的值怎么会变了的呢a=0xfe;P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include//包含51单片机寄存器定义的头文件sbita=0xfe;voidmain(){

C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?
#include //包含51单片机寄存器定义的头文件
sbit a=0xfe;
void main()
{
while(1)
{
P1=a; //这个值怎么会等于(00000001)?
P1=0xfe;//这个值怎么会等于(11111110)?
}
}

C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0
因为P1=a,且a是一个位变量,位变量非0即1
P1=0Xfe,就是11111110,没错啊

sbit只能定义一个位,是用来进行位操作的。
所以 sbit a =0xfe; a=0x0000 0001
P1的缺省值是0, 所以 P1=a; P1=0x0000 0001

1楼正确。
a是位变量,初始值为1(只要不为0都是1,所以FE也是1)初始值为1,0xfe二进制不就是11111110 是不是按最后那个0为准,如是最后一位的话那不是只输出一个0?前面7位就不算了,但按 #include sbit a=0xfe; void main() { while(1) { P1=a; //这个值应等于(11111110)才对吧...

全部展开

1楼正确。
a是位变量,初始值为1(只要不为0都是1,所以FE也是1)

收起

一楼是对的。C51是这么规定的

你弄乱了

C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0 c51单片机与c52单片机的区别? 89C51单片机的封装是什么 单片机中80C51的寻址方式 单片机80c51的封装形式有哪几种? C8051和89C51单片机的区别 AT89C2051和89C51单片机的区别 单片机80c51中的一些寄存器比如a寄存器到底算CPU的还是RAM的? 在80C51程序中定义了bit变量 bit falg=0;请问怎么改变flag的值? C51哪几种逻辑符号单片机中使用的 80C51单片机指令中 若(A)=C3H,(R0)=AAH,执行指令ANL A ,R0之后, (A)=82H为什么结果是82H ? 怎们运算的?我初学单片机, 请高手指点指点! 在写C51单片机的程序时,看见有这样一条语句:bit LED_Buffer;说是位标量的定义,什么叫位标量? 在C51中,定义一个数组时,为什麽要用code这个词,而不用data或其它的呢?如uchar code table[]={..}.或者说,在C51中,数组本身的书写格式就是这样的吗? 基于单片机C51的数字式电阻测量仪课设怎么做啊?要求:测量电阻范围:0--200欧姆所用芯片:c51单片机、adc0809能否给出电路图啊? 什么是漏极开路?什么是上拉电阻·电路,下拉呢?漏极开路是89C51单片机的书上说P0的 89C51类单片机的外部上拉电阻问题如STC89C51这样的单片机,P1,P2,P3口内部还有上拉电阻了,为什么在外接一些外部器件的时候外边还要接上上拉电阻呢,比如外接独立式键盘的时候,都接上了上拉电 C51存储器类型与MCS-51单片机物理存储器区域的关系? 单片机牛人请进!8051 ,80C51 ,MCS-51这三者的区别是什么?RT