先说灯之类的吧,简单。
首先点阵:(以最简单的8X8为例)
个人感觉点阵需要注意的地方有:
1、点阵的驱动程序。
我觉得点阵的驱动程序分为行扫描和列扫描两种,比如行扫描就是两层for循环,第一层选择一行,然后第二层送数据,返回第一层再选下一行,然后第二层再送数据,直至扫描完整个屏幕。列扫描同理。
2、滚动效果的实现。
我觉得滚动分两种:(仅个人愚见,新手
)
第一种:
如果显示的内容整个点阵足以显示,那么就不用 另外写数据处理函数,直接用 intrins.h 里面的 _cror_() 函数或者 _crol_() 函数对数据进行循环处理就可以了.不用 << 和 >> 是因为后面着两个的左右移无法循环,会丢失数据。
第二种:
自然就是指显示的数据在一张屏幕上显示不了,从而导致需要滚动显示。
此时就要另外写一个数据处理函数,原理很简单,比如StreamData[80]这个数组里面存着数据,那么只需将数据中的每一个数据往前(或者往后)移一位就可以了,最后将StreamData[0]移至StreamData[79]的位置就大功告成了。
注:以上两种的扫描还是只扫描一个屏幕(当然最大就只能扫描一个屏幕嘛),每当扫描完一个屏幕,接着进行数据处理就行了。
(看看亚丝娜,激发下动力
)