51单片机流水灯程序
#include<reg51.h>voiddelay(intz){inti,j;for(i=z;i>0;i--)for(j=148;j>0;j--);}voidmain(...
#include <reg51.h>
void delay(int z)
{
int i,j;
for(i=z;i>0;i--)
for(j=148;j>0;j--);
}
void main()
{
char a=0xfe;
while(1)
{
P0=a;
delay(200);
a=a<<1;
a=a|0x01;
if(a==0xff)
a=0xfe;
}
}不知道为什么这个程序只流水一遍,随后P0全部置1了,keil4不是可以自动循环吗?去掉while(1)只有P00对应的LED亮,费解…求大神解答~~ 展开
void delay(int z)
{
int i,j;
for(i=z;i>0;i--)
for(j=148;j>0;j--);
}
void main()
{
char a=0xfe;
while(1)
{
P0=a;
delay(200);
a=a<<1;
a=a|0x01;
if(a==0xff)
a=0xfe;
}
}不知道为什么这个程序只流水一遍,随后P0全部置1了,keil4不是可以自动循环吗?去掉while(1)只有P00对应的LED亮,费解…求大神解答~~ 展开
2个回答
2014-08-10
展开全部
程序错误
#include <reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
void delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar a=0xfe;
while(1)
{
P0=0xfe;
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);
delay(150) ;
}
if(a==0xff)
a=0xfe;
}
#include <reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
void delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar a=0xfe;
while(1)
{
P0=0xfe;
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);
delay(150) ;
}
if(a==0xff)
a=0xfe;
}
更多追问追答
追问
_crol_这个函数是循环左移吧…当P0=0x7f继续左移后P0变为0xfe……
我程序哪错了啊?麻烦指出来让我明白一下好吗?我也很费解看不出哪错了…
追答
_crol_这个函数的确是循环左移。
当你去掉while(1)时,程序只运行一次,所以肯定就只会流动一次。while(1)是在不掉电的情况下,一直循环while(1)函数里面的程序。
你程序错误出现在主程序:
a=a|0x01;
if(a==0xff)
这两个式子。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用liusen0825的回答:
程序错误
#include <reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
void delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar a=0xfe;
while(1)
{
P0=0xfe;
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);
delay(150) ;
}
if(a==0xff)
a=0xfe;
}
程序错误
#include <reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
void delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar a=0xfe;
while(1)
{
P0=0xfe;
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);
delay(150) ;
}
if(a==0xff)
a=0xfe;
}
展开全部
答案错误,题主不要采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询