作业帮 > 综合 > 作业

请位高手帮我写个89C51单片机控制流水灯C语言源程序.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 06:14:15
请位高手帮我写个89C51单片机控制流水灯C语言源程序.
8个灯泡依次堆加滚动.第8个灯泡滚到第8个位置,第7个滚到第7个位置,依此类推,第1个灯泡滚到第一个位置.
P2.P2.7接8个灯泡,第一个灯泡先从P2.0移到P2.7,到了P2.7之后,保持亮着,接着第二个灯泡从P2.0移到P2.6,也保持亮着,接着第三个灯光从P2.0移到P2.5.也保持亮着状态,依此类推.最后就是全亮了,再循环下去.我用二进制表示下.1为亮.
最终状态如下:
10000000,11000000,11100000,11110000,11111000,11111100,11111110,11111111.
帮我调下程序,如下:
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
void delay(int x)
{
int y;
while(x--) for(y=0;y
用P2=0xFF&(0x01+2*i)用for循环,之后是P2=0xFF&(0x81+2*i)用for循环,之后类推P2=P2=0xFF&(0xC1+2*i),P2=0xFF&(0xE1+2*i),P2=0xFF&(0xF1+2*i),P2=0xFF&(0xF9+2*i),P2=0xFF&(0xFD+2*i),P2=0xFF;每次循环都比前一次少一次循环就可以了.
再问: 我觉得这个循环应该还有更简单的吧。如:用个试子代替,这个太麻烦了。能帮我写个完整的程序不?谢谢。。。
再答: //把整个程序放在while(1)中就行了,上边写的有点错误,下边的这个程序应该好使的 for(i=0;i