21ic问答首页 - 点亮流水灯只能用延时函数吗?
点亮流水灯只能用延时函数吗?
LM料穆2021-09-14
本人用delay函数可以成功完成流水灯,但是用for却失败了,问了C语言老师,他也不清楚,请问该如何修改呢?谢谢。/*成功*/。
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay();
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);
delay();
P1=temp;
}
}
void delay()
{
uint x,y;
for(x=1000;x>0;x--)
for(y=200;y>0;y--);
}
/*失败*/
#include<reg52.h>
#include <intrins.h>
sbit p1_1=P1^0;
#define uchar unsigned char//宏定义
#define uint2 unsigned int
uchar temp;//字符型,要8位的,uchar是8位的
unsigned int a;
void delay(uint2);
void main()
{
temp=0xfe;
p1_1=temp;
while(1)
{
temp=_crol_(temp,1);
uint2 x,y;
a=50000;
p1_1=temp;
while(a--);
for(x=130;x>0;x--)
for(y=452;y>0;y--);
a=50000;
p1_1=temp;
while(a--);
for(x=130;x>0;x--)
for(y=452;y>0;y--);
}
}
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay();
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);
delay();
P1=temp;
}
}
void delay()
{
uint x,y;
for(x=1000;x>0;x--)
for(y=200;y>0;y--);
}
/*失败*/
#include<reg52.h>
#include <intrins.h>
sbit p1_1=P1^0;
#define uchar unsigned char//宏定义
#define uint2 unsigned int
uchar temp;//字符型,要8位的,uchar是8位的
unsigned int a;
void delay(uint2);
void main()
{
temp=0xfe;
p1_1=temp;
while(1)
{
temp=_crol_(temp,1);
uint2 x,y;
a=50000;
p1_1=temp;
while(a--);
for(x=130;x>0;x--)
for(y=452;y>0;y--);
a=50000;
p1_1=temp;
while(a--);
for(x=130;x>0;x--)
for(y=452;y>0;y--);
}
}
赞0
如今楼主回过头来看到p1_1和temp的数据定义估计就懂了
评论
2023-01-30
赞0
评论
2022-12-28
赞0
评论
2022-01-28
赞0
程序很少
评论
2022-01-08
赞0
评论
2021-12-03
赞0
评论
2021-12-03
赞0
评论
2021-12-02
赞0
评论
2021-11-27
赞0
评论
2021-09-29
您需要登录后才可以回复 登录 | 注册