关于8*8LED点阵 算法的问题

wenxian8 2012-01-06 02:29:45
今天 使用keil 编写8*8LED点阵, 想实现 一个亮点 从左到右,然后接着从上到下, 从右到左,最后再从下到上,刚好绕走一圈, 请问 各位高手,是否也写过这种算法 ?

为什么 我 的算法 无法实现:最后再从下到上

#include<reg52.h>
//P0口与J12 连接 P2与J19绿色连接
//在内部DPa-DPh段 与J19绿色连接
//RE1-RE8 GR1-GR8 控制该行显示哪个点
//P2 控制行 P0高电平 选择行
//P0控制该行里显示哪个点 P0低电平 点亮

unsigned char code table0[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //P0
unsigned char code table2[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //P2

void Delay()
{
unsigned char j;
unsigned int i;
for(i=300; i>0; i--)
for(j=110; j>0; j--);
}


void main()
{
unsigned char i=0, j=0;
while(1)
{

//从左到右

j=0;
P2=table2[j];

while(i<8)
{
P0=table0[i];
Delay();
i++;
}

//从上到下

i=7;
j=1;
P0=table0[i];
while(j<8)
{
P2=table2[j];
Delay();
j++;
}


//从右到左

i=6;
j=7;
P2=table2[j];
while(i>=0)
{
P0=table0[i];
Delay();
i--;
}


//从下到上

i=0;
j=7;
P0=table0[i];
while(j>=0)
{
P2=table2[j];
Delay();
j--;
}


哪位高手指点下, 为什么在开发板上无法看到效果:从下到上 , 但是可以看到效果: 从左到右,然后接着从上到下, 从右到左,
}

谢谢了。

}
...全文
353 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
skylkj 2012-01-06
  • 打赏
  • 举报
回复
i是unsigned的,所以从右到左的那个while循环永远不会退出
wenxian8 2012-01-06
  • 打赏
  • 举报
回复


呵呵, 刚刚就解决了,原来调试一下,就发现问题了。

27,368

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧