C语言流水灯程序用左移符号怎么写

八盏灯先亮一盏再亮两盏依次到八盏灯全亮然后循环... 八盏灯 先亮一盏再亮两盏依次到八盏灯全亮 然后循环 展开
 我来答
是经费和
2013-03-24 · TA获得超过1648个赞
知道小有建树答主
回答量:1584
采纳率:0%
帮助的人:737万
展开全部
用 1111 1111B 表示八盏灯,1表示灭,0表示亮,左移第一次是 1111 1110B, 左移第二次是1111 1100B, 左移第三次是 1111 1000B, ... 左称第八次是 0000 0000B, 然后再赋成 1111 1111B,重新开始左移。
lingwepq
2018-12-07
知道答主
回答量:20
采纳率:0%
帮助的人:8717
展开全部
楼上的程序有问题,不能用P2端口作为左移变量,应该用一个中间变量转换一下,程序改为
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms)
{
uchar t;
while(ms--)
for (t=0;t<120;t++);
}
void main()
{
uchar temp;
temp= 0xfe;
while (1)
{
temp =_crol_(temp,1); //左移一位!!!
P2=temp;
delay(200);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wgq930
2013-03-24 · TA获得超过2262个赞
知道大有可为答主
回答量:4926
采纳率:51%
帮助的人:1940万
展开全部
//==============================
//8个LED 闪烁
//P2驱动8个LED闪烁
//-------------------------------------
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

//--------------------------------
void DelayMS(uint ms)
{
uchar t;
while(ms--) for (t=0;t<120;t++);
}
//----------------------------------
void main()
{
P2= 0xfe;
while (1)
{

P2 =_crol_(P2,1); 左移一位!!!
DelayMS(200);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
znstj
2017-06-21 · TA获得超过685个赞
知道小有建树答主
回答量:589
采纳率:66%
帮助的人:324万
展开全部
左移部分程序
unsigned char a=1;
while(1)
{
if(a == 0xFF) a=0; //上次全亮,本次全灭
else a = a | a << 1;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
47okey
2013-03-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2400万
展开全部
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void main()
{

while(1)
{
uchar j;
delay(500);
temp=0xff;
P1=temp;
for(j=0;j<8;j++)
{
temp=temp<<1;
delay(500);
P1=temp;
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式