单片机流水灯c语言程序。灯按从左到右2468然后1357依次循环亮。速求啊!

如题所述

#include "REG52.H"
// 显示花样流水灯编码
const unsigned char Expetr_ROM[] = { 0xFD, 0xF7, 0xDF, 0x7F, 0xFE, 0xFB, 0xEF, 0xBF
} ;
// 延时1ms
void Delay_1ms(unsigned int Cnt)
{
unsigned int x, y;
for(x = Cnt; x > 0; x--)
for(y = 120; y > 0; y--);
}
int main(void)
{
unsigned char i;
while(1)
{
for(i = 0; i < 8; i++)
{
P1 = Expetr_ROM[i];
Delay_1ms(500);
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-30
#include<reg51.h>
#define uchar unsigned char
uchar ledtab[]={0x02,0x08,0x20,0x80,0x01,0x40,0x10,0x40}
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
uchar i;
while(1)
{
P0=ledtab[i];
delay(100);
i++;
i%=8;
}
}
第2个回答  2013-10-30
上边的程序你也用不了,因为你没说你的硬件接口是怎么分布的。P0作为输出要加上拉电阻,很显然上边的程序是错误的。
第3个回答  2021-10-29
咋让1357依次循环的亮?