标题:
求助帖,单片机怎么实现左移后右移?
[打印本页]
作者:
杨庆汉
时间:
2020-4-12 10:59
标题:
求助帖,单片机怎么实现左移后右移?
我的想法是,led依次左到右,然后最右灯又从又走到左。我的主程序是这样的,但测试的时候,只是在第一二个灯来回,这是什么问题?
void main()
{
u8 i=0;
led=0xfe;
delay(50000);
while(1)
{
for(i=0;i<7;i++);
{
led=_crol_(led,1);
delay(50000);
}
for(i=7;i>0;i--);
{
led=_cror_(led,1);
delay(50000);
}
}
}
作者:
火神浪客行
时间:
2020-4-13 10:49
不知道你的问题在哪,我用你的也不行,但把自己的改成你的样式依然可以。。。#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
uint temp1;
uchar i;
void delay(int a);
void main()
{
P2=0xfe;
temp1=0x7f;
while(1)
{
for(i=0;i<8;i++)
{
//P2=temp;
P2=_crol_(P2,1);
delay(50);
}
for(i=0;i<8;i++)
{
//P2=temp1;
P2=_cror_(P2,1);
delay(50);
//P2=temp;
}
}
}
void delay(int a)
{
uint x,y;
for(x=a;x>0;x--)
for(y=100;y>0;y--);
}
作者:
湖南
时间:
2020-4-14 21:28
用左移和右移的函数就行 很简单的
作者:
cphnkj188
时间:
2020-4-15 08:20
把 led=0xfe 放到while循环里面试试
作者:
xianfajushi
时间:
2020-4-15 08:54
可参应有尽有
https://blog.csdn.net/xianfajush ... g~default~default-2
作者:
圆就是圈圈
时间:
2020-4-15 10:14
把你for循环函数后面的分号去掉
作者:
load1
时间:
2020-4-15 10:32
有专门的函数实现的
作者:
wulin
时间:
2020-4-15 10:56
for(i=0;i<7;i++);多了分号
作者:
wqy12345
时间:
2020-4-15 13:24
看一下我的这个#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay(uint z); main() { uchar aa; uint i=0; while(1) { aa=0xfe;最右小灯亮 P0=aa; delay(100); while(1) { aa=crol(aa,1);左移一位 P0=aa; delay(1000); i++; if(i>=7) { for(;i>0;) { aa=cror(aa,1);右移一位 P0=aa; delay(1000); i–; } break; } } } } void delay(uint z) { uint x,y; for(x=z;x>0;x–) for(y=110;y>0;y–); }
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1