
用keil写51单片机程序,这样子写位移程序对吗?
#include<reg52.h>sbitled1=P1^0;sbitled2=P1^1;sbitled3=P1^2;biti;voidmain(){P1=0xBF;i=...
#include <reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
bit i;
void main()
{
P1=0xBF;
i=led3;led3=led2;led2=led1;led1=i;
} 展开
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
bit i;
void main()
{
P1=0xBF;
i=led3;led3=led2;led2=led1;led1=i;
} 展开
4个回答
展开全部
错,没有延时!就算每句都有延时,你的程序也是毫无效果,所有的值都是1!
追问
我就是想把1011_1111移位变成1101_1111;悲剧 写错了。应该是用sbit去定义高三位- - 低级的失误呀~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设...
点击进入详情页
本回答由上海实邦电子科技提供
展开全部
可以,没问题,都是1 ,不过你要做什么?
追问
就是想要把P1的低三位循环移动一下= =我发现哪写错了,我把高3位看成低三位了- - 就是在debug的时候,怎么全是1,让我纠结了很久~~~谢谢你的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好,效率低
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有 指令 — _crol_(P1,1 );
追问
嗯 这个我知道,自己有库函数可以调用,也可以用一般的位移进行逻辑运算实现循环位移,我就想问一下,这样子写为啥不对呀- - 就是把P1的低3位循环移一味
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询