[51单片机] 初学者LDE小灯疑问

[复制链接]
1810|8
 楼主| 快鲨1 发表于 2019-1-4 07:12 | 显示全部楼层 |阅读模式
#include<reg52.h>
sbit LED=P0;

void main()
{
        LED=0x06;//
        while(1);
}
LED=0x06;//这里我这样写有什么问题吗,为什么还是有警告而且LED灯也没有熄灭的都是常亮?不会一定要像P0.0=0,P0.1=1,P0.2=1这样做写吧!
cainiao518 发表于 2019-1-4 08:03 | 显示全部楼层
正确的写法

sbit LED1=P0^0;


LED1=1;// 或者LED1=0;

ayb_ice 发表于 2019-1-4 08:34 | 显示全部楼层
因为LED是位变量,0x06会自动转换成位变量,结果还是1(非0都为1),所以结果是正确的,不过建议只使用0或1赋值
tree844 发表于 2019-1-4 09:25 | 显示全部楼层
不用LED,直接 P0 = 0x06; 就行了。sbit是用来定义某一位的,P0不是一位。或者用宏定义,写成 #define LED P0; 。
 楼主| 快鲨1 发表于 2019-1-5 07:09 | 显示全部楼层
ayb_ice 发表于 2019-1-4 08:34
因为LED是位变量,0x06会自动转换成位变量,结果还是1(非0都为1),所以结果是正确的,不过建议只使用0或1 ...

可能您误会我的意思了,我的意思是我现在手上有一个51学习板,板上有8个LED小灯,我现在想要这八个LED小灯以0x06(00000110)的位置亮灭,但是现在没有一个灭的,全是常亮,怎么一回事?麻烦可以帮我解答一下吗。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 快鲨1 发表于 2019-1-5 11:11 | 显示全部楼层
assembling STARTUP.A51...
compiling 显示.c...
显示.c(1): warning C315: unknown #directive 'inclued'
显示.c(6): error C202: 'P0': undefined identifier
Target not created.
Build Time Elapsed:  00:00:01
这是提示我的错误吗?
 楼主| 快鲨1 发表于 2019-1-5 11:22 | 显示全部楼层
不用了,谢谢各位的回答,谢谢!原来是我不会用keil,它明明已经报错了我都没发现
ayb_ice 发表于 2019-1-7 08:33 | 显示全部楼层
快鲨1 发表于 2019-1-5 07:09
可能您误会我的意思了,我的意思是我现在手上有一个51学习板,板上有8个LED小灯,我现在想要这八个LED小 ...

那不能用sbit定义
要用
sfr LED=0x80;
或者
#define LED P0

然后
LED = 0x06;
 楼主| 快鲨1 发表于 2019-1-10 07:24 | 显示全部楼层
ayb_ice 发表于 2019-1-7 08:33
那不能用sbit定义
要用
sfr LED=0x80;

谢谢!我明白了,我会注意的了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部