新人遇到一个问题,自己测试很久没有实现,前来求助。
状况:就是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灯就是全亮,有大神帮我看看该怎么写才能实现吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个和显示字符是一样的。
你把要亮的灯当成只有相应点显示的字符,
然后显示字符“字符全空”、延时100ms、“字符(某一个或几个灯亮)”、延时100ms
反复这样就可以了。
按你现在的延时,怎么都看不出灭的,另外全亮,全灭要包含你这两个灯吗
我没写出来,延时100ms,亮的灯就全闪了
一周热门 更多>