打印
[51单片机]

初学者LDE小灯疑问

[复制链接]
1601|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#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; 。

使用特权

评论回复
5
快鲨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)的位置亮灭,但是现在没有一个灭的,全是常亮,怎么一回事?麻烦可以帮我解答一下吗。

使用特权

评论回复
6
快鲨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
这是提示我的错误吗?

使用特权

评论回复
7
快鲨1|  楼主 | 2019-1-5 11:22 | 只看该作者
不用了,谢谢各位的回答,谢谢!原来是我不会用keil,它明明已经报错了我都没发现

使用特权

评论回复
8
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;

使用特权

评论回复
9
快鲨1|  楼主 | 2019-1-10 07:24 | 只看该作者
ayb_ice 发表于 2019-1-7 08:33
那不能用sbit定义
要用
sfr LED=0x80;

谢谢!我明白了,我会注意的了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

45

帖子

0

粉丝