标题:
请问单片机源程序里sbit LED1是赋值还是什么?
[打印本页]
作者:
zkpig123
时间:
2017-7-7 17:45
标题:
请问单片机源程序里sbit LED1是赋值还是什么?
#include <reg52.h>
sbit LED1 = P1 ^ 0;
void main ()
{
LED1 = 0;
}
这段代码
sbit LED1=P1^0 这里是对LED1进行复制,这里^是异或吗, 为什么能获得P1.0的地址呢?
另外,后面LED1=0这里不是又改变了LED1的值了吗?为什么能改变P1.0引脚的电平?
sbit LED1=P1^0到底是什么 宏?
VC里对IO寄存器操作不是要用汇编outp(端口地址)吗?这里为什么能直接用"LED1=0"来赋值啊?
请教了!
作者:
wulin
时间:
2017-7-7 22:19
sbit LED1 = P1 ^ 0; 这不是赋值语句, 由于有修饰关键字sbit,^在这里不是运算符异或。意思是声明P1特殊寄存器地址的第一位的自定义名称,在程序中操作LED1就是操作P1.0。
作者:
HC6800-ES-V2.0
时间:
2017-7-8 08:59
sbit:可寻址位。用于定义51单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位,它有三种使用方法
第一:sbit 位变量名=位地址
第二:sbit 位变量名=特殊功能寄存器名^位的位置
第三:sbit 位变量名=字节地址^位的位置
作者:
望断云山
时间:
2017-7-8 20:42
意思就是以后操作 led1就等效于操作 p1.0
作者:
望断云山
时间:
2017-7-8 20:42
意思就是以后在程序中操作LED1就是操作P1.0
作者:
fmboy
时间:
2017-7-8 23:42
定义LED1对应的端口是P1.0
作者:
zkpig123
时间:
2017-7-9 12:04
好吧 找找头文件看有定义不
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1