发布网友 发布时间:2022-04-23 21:14
共3个回答
热心网友 时间:2023-10-09 21:06
首先,sbit led= P2,这个写法是错误的,虽然编译时不报错,但编译后执行程序时却是错误的。
sbit 是定义一个引脚的,注意,只是定义一个引脚,而 P2是一个并行口,有8个引脚,是不能sbit 来定义,可以用 sfr 定义。
#define 并不是定义引脚的,也不是定义并行口,只是一个宏替换,就是程序中的led 换成P2后再编译。
所以,sbit 和 #define根本就不是一回事,更谈不上什么替换了。
两者毫无关系。
热心网友 时间:2023-10-09 21:06
sbit 只能定义一个位,P2是八个位,所以不能这么写,把sbit 改为sfr
热心网友 时间:2023-10-09 21:06
sfr led= P2;
追问也就是说#define严格来说是不对的对吗? 但这里用define也能显示,并且没有报错啊
求解谢谢!!!