只是想写个流水灯,看来看去不知道为什么不出来。
#include<reg52.h>
#define LED P2
void delay(char i);
void main()
{
char i;
while(1)
{
LED = 0xfe;
delay(100);
for(i=0;i<8;i++)
{
LED = (LED << 1) | 0x01;
delay(100);
}
}
}
void delay(char i)
{
char j;
for(;i>0;i--)
for(j=0;j<250;j++);
}
确实是进了死循环,但改过来以后又有问题了,用位左移的话就是第一个灯闪,时间是流一次用的时间,但用数组或头文件里面的函数可以
想知道为什么用位左移不行~~~~很郁闷啊~~
#include<reg52.h>
#define LED P2
void delay(int x);
unsigned char code design[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void main()
{
int i;
while(1)
{
//LED = 0xfe;
for(i=0;i<8;i++)
{
delay(100);
//LED = (LED << 1) | 1;
LED = design[i];
}
}
}
void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<250;j++);
}
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
2、51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。