新人求助“动态扫描”8*8LED矩阵

2019-07-20 22:16发布

新人遇到一个问题,自己测试很久没有实现,前来求助。
状况:就是8*8LED矩阵的动态扫描,P0.0-P0.7控制位选,P1.0-P1.7为段码(这么说应该没毛病吧),位选和段码都是低电平0实现LED导通。
问题:想要实现全部灯亮,但是其中两个灯要实现闪烁,假定是第一个灯和最后一个灯。
我的做法是:
P0 |= 0xFF; P1 |= 0xFF;      //全灭
while(1)
{
P0 |= (0x01);P1 |= (0x01);     //第一排第一列的灯灭
delay_ms(1);
P0 |= (0x80);P1 |= (0x80);     //第八排第八列的灯灭
delay_ms(1);
P0 |= 0xFF; P1 |= 0xFF;      //全灭
delay_ms(10);
P0 &= ~(0xFF); P1 &= ~(0xFF);    //全亮
delay_ms(10);
}
可是输出的结果不行,延时两个10ms就会全部灯都看出闪烁,延时5ms灯就是全亮,有大神帮我看看该怎么写才能实现吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
awsawzj
1楼-- · 2019-07-20 22:39
动态扫描就是利用人眼视觉残留来保持灯亮,只要高于30hz你看不出灯灭的
Qishenle
2楼-- · 2019-07-21 04:26
 精彩回答 2  元偷偷看……
warship
3楼-- · 2019-07-21 07:50
Qishenle 发表于 2019-7-15 20:43
这个我明白,我这边可以实现显示字符,但是我想做的图案有灯要闪烁,其他灯一直亮

这个和显示字符是一样的。
你把要亮的灯当成只有相应点显示的字符,
然后显示字符“字符全空”、延时100ms、“字符(某一个或几个灯亮)”、延时100ms
反复这样就可以了。
awsawzj
4楼-- · 2019-07-21 08:38
Qishenle 发表于 2019-7-15 20:43
这个我明白,我这边可以实现显示字符,但是我想做的图案有灯要闪烁,其他灯一直亮

按你现在的延时,怎么都看不出灭的,另外全亮,全灭要包含你这两个灯吗
Qishenle
5楼-- · 2019-07-21 11:03
 精彩回答 2  元偷偷看……
Qishenle
6楼-- · 2019-07-21 15:28
warship 发表于 2019-7-15 21:15
这个和显示字符是一样的。
你把要亮的灯当成只有相应点显示的字符,
然后显示字符“字符全空”、延时10 ...

我没写出来,延时100ms,亮的灯就全闪了

一周热门 更多>