C 知道
帮我看看,有啥问题。错误显示说在=附近。我都是英文输入。自己真的看不出
收起
可以先进行管口定义
#include "reg52.h" sbit LED1 = P2^0; void delay() { int i=2996; for(i;i>0;i--); } void main() { while(1) { LED1=1; delay(); LED1=0; delay(); } }
嗯知道了,但是为什么不可以直接用哪个引脚编号
sbit在单片机中的意思是定义特殊功能寄存器的位变量,bit和sbit都是C51扩展的变量类型,在C语言里如果直接写P1.0,C编译器是不能够识别的,而且P1.0也不是一个合格的C语言变量名,所以必须要给它起另外一个名字.
举例:在51单片机中,不能直接使用P0^0=xxx操作,因为P0^0是地址值,即指针,P0指针地址值0x80,P0^0指针地址0x81,P0^0=xxx是修改指针地址,即0x81=xxx,明显是错误的,我们想修改指针指向管脚值,必须使用位定义关键字sbit P00 = P0^0;然后P00=xxx,操作P00管脚值,即操作0x81指针指向的管脚P00的值。
非常感谢您的耐心解答,听懂了(膜拜大哥)
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!