51单片机 点阵问题 点阵只闪一下就不亮了

用中断来点亮一个8*8的LED心型P0口为点阵负极,P2口为点阵正极想让点阵长时间显示心形图案,现在只显示一下就灭了***************************... 用中断来点亮一个8*8的LED心型
P0口为点阵负极,P2口为点阵正极
想让点阵长时间显示心形图案,现在只显示一下就灭了
****************************************
# include <reg51.h> // 头文件

unsigned char code image[] = {
0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7 //心形图案代码

};

void main()
{
EA = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
ET0 = 1;
TR0 = 1;
while(1);
}

//中断函数
void InterruptTimer0() interrupt 1
{
static unsigned char i = 0; //动态扫描索引
TH0 = 0xFC;
TL0 = 0x67;
//以下代码完成LED点阵的扫描刷新
P0 = 0xFF;
switch(i)
{
case 0:P2 = 0x01;i++;P0 = image[0];break;
case 1:P2 = 0x02;i++;P0 = image[1];break;
case 2:P2 = 0x04;i++;P0 = image[2];break;
case 3:P2 = 0x08;i++;P0 = image[3];break;
case 4:P2 = 0x10;i++;P0 = image[4];break;
case 5:P2 = 0x20;i++;P0 = image[5];break;
case 6:P2 = 0x40;i++;P0 = image[6];break;
case 7:P2 = 0x80;i++;P0 = image[7];break;
default:break;
}

}
展开
 我来答
德昂当
2015-02-08 · TA获得超过2842个赞
知道大有可为答主
回答量:1074
采纳率:100%
帮助的人:757万
展开全部
i 等于7后,不能 i++ 要让i=0 重新从0扫描,要不然,i 会停在8不变
追问
感谢啊,现在好用了啊,特意加10分悬赏给你.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式