让上一次的灯光等于要移动的灯光的数组就可以实现移动。比如lcd[i+1]=lcd[i] |
链接:https://pan.baidu.com/s/1HKoHDJSc9sxFTQvllo825g 提取码:1234 |
黄youhui 发表于 2021-2-22 08:31 说错了,Y轴不变X变 |
1P1P 发表于 2021-2-21 10:45 你定义一个二维数组记录每一个每一个灯的状态,根据灯的改变数组,然后再读出数组给595赋值,这是最简单有效的方法。可能延时会比较大。 复杂点的方法就是,你左右移动也就是Y轴不变LED在X轴移动,这时候你Y轴的595可以变,然后计算你的X轴的595要移动几个单位。 |
1、程序中定义函数变量应该在第一行。2、你的点阵没有消隐。(用数码管消隐的方法)3、个人觉得学习点阵只是为了了解一下其工作原理,了解595的用法。4、如果你想实现左移右移有许多其它好用的外设(例如OLED)5、个人建议不要学51太长时间,学会定时器、中断、串口通信、就行了,至于外设主要的是它的思想,程序上问题是自己的问题需要积累,个人建议买本C primier Plus,学着查着,慢慢就会了。之后就直接上手ARM内核的芯片(个人推荐STM32),你会对单片机有全新的理解。 |
xianfajushi 发表于 2021-2-21 11:16 按你说的已经尝试过了,但还是不对出现了错误,还请大神给予帮助!!! |
程序位置不对引起的,上一半与下一半对调试看 |
黄youhui 发表于 2021-2-20 13:55 行是两个74HC595级联,列是4个74HC595级联,点阵是16x32的,行是阳极列是阴极,自己对程序还不是很理解无法写出左右移动程序,望请大神给予帮助!!! |
这东西要看硬件才知道怎么改软件 |