c51单片机问题:我的MCU型号是STC 89C54RD+; 我发现要是一次点亮8位LED的话,若是先sbit LED=P1;
接上面:然后对变量LED赋0;这个时候,只是对应P1^0脚的LED会亮,并不是8位全亮,但是修改一下,直接在程序里面对P1=0;则会正确;我想问下这是为什么啊???#in...
接上面:
然后对变量LED赋0;这个时候,只是对应P1^0脚的LED 会亮,并不是8位全亮,
但是修改一下,直接在程序里面对P1=0;则会正确;
我想问下这是为什么啊???
#include<reg52.h>
sbit LED=P1;
void main (void)
{
LED=0;
while (1) ;
}//样就达不到效果,只是LED 的P1^0脚会亮
#include<reg52.h>
void main (void)
{
P1=0;
while (1) ;
}//这样就会是正确的了。为什么呢 展开
然后对变量LED赋0;这个时候,只是对应P1^0脚的LED 会亮,并不是8位全亮,
但是修改一下,直接在程序里面对P1=0;则会正确;
我想问下这是为什么啊???
#include<reg52.h>
sbit LED=P1;
void main (void)
{
LED=0;
while (1) ;
}//样就达不到效果,只是LED 的P1^0脚会亮
#include<reg52.h>
void main (void)
{
P1=0;
while (1) ;
}//这样就会是正确的了。为什么呢 展开
3个回答
展开全部
sbit 是位定义,sbit LED=P1^0;所以你得定义8个,还得挨个儿置位或清零才行。而P1=0;是相当于直接将P1端口全部管脚置0。
追问
谢谢你啊 ,真心的谢谢,,但是只能选一个满意回答,,不好意思啊,,谢谢!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成:
#include<reg52.h>
#define LED P1
void main (void)
{
LED=0;
while (1) ;
sbit:创建一个特殊位(一位),不是一字节
#include<reg52.h>
#define LED P1
void main (void)
{
LED=0;
while (1) ;
sbit:创建一个特殊位(一位),不是一字节
追问
谢谢你啊 ,真心的谢谢,,但是只能选一个满意回答,,不好意思啊,,谢谢!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询