求高手解答一个单片机的数组问题 50

我的一个关于点阵显示的小项目。我编程操作六个级联的74LS595(可锁存的移位寄存器,串行输入,并行输出),我用一个子函数WriteByte(uchardat)连续用六次... 我的一个关于点阵显示的小项目。
我编程操作六个级联的74LS595(可锁存的移位寄存器,串行输入,并行输出),我用一个子函数WriteByte(uchar dat)连续用六次来一个个的给595写入串行数据,但是:
WriteByte(Number[ i ]);
WriteByte(Number[ i ]);
WriteByte(Number[ i ]);
WriteByte(Number[ i ]);
WriteByte(Number[ i ]);
WriteByte(Number[ i ]);
这样,只有一闪而过,然后就不正常显示了,而且其中一块595开始发热。
但是我只要将其中一个 WriteByte(Number[ i ]); 中的Number[ i ],中的 i 改为一个常数(1或2或3……),显示就正常了(**Number[ ]是我定义的一个uchar型数组)。

另外我还发现,把Number[ i ]改为Number[ i / 2 ]也能正常显示,但是改成Number[ i / 1 ]却不行。
敢问各位高手,这是怎么回事?
能解释解释么?或者给出解决方案?
展开
 我来答
无言的凝视
2013-04-02
知道答主
回答量:1
采纳率:0%
帮助的人:1516
展开全部
这样,只有一闪而过,然后就不正常显示了,而且其中一块595开始发热。

这说明其它的595都不输出,而只有发热的那片一直输出,才会过热
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式