8*8LED点阵显示的实验——显示I♡SDNU
教育学部电教本1601柳珏玺 201612030101
一、单片机的使用:
使用大板单片机的LED点阵模块,连接好单片机,且用keil进行编程,用普中科技程序进行程序的烧录。
程序烧录完成后,即可看到大板上出现I♡SDNU的点阵字样。
在实际操作中,我们要先对源程序进行理解和修改,参照大板实验的“LED点阵显示汉字”进行修改,而且修改之前要先弄懂大板的电路图连接。
二、程序修改及调试
1、字符显示部分
这里要注意的是TAB是列选,所以我们在设计点阵字码的时候要按列进行编码,LED点阵由左至右依次为1-8列,每一列由上到下为高位到低位,所以一定要弄清楚这个顺序!!!
2、时间停留函数和发送一个字节函数
3、主函数——实现显示字符和消隐
这里要注意两点,一个是我们使用的6*8的二维数组,所以在j的变量上要相应的改成6,第二个是一定要注意消隐,他可不是废话,如果不消隐的话,会出现重影(这个到后面我会展示)。
三、完成实验
四、反思与总结
1.调试过程(使用了哪些调试工具,如何使用的):
使用keil进行调试,通过撰写程序—rebuild—形成.Hex文件—使用普中进行烧录—完成实验
2.出现的错误及解决方法:(错误提升的信息或截图):
①没有弄跳线帽。
一开始没有改变离电路板最近的跳线帽,于是就出现了这样的情况!
然后Delay函数降到200,出现这样的情况!!
于是就很崩溃,因为本身code没有问题,所以可能是硬件出了问题,于是突发奇想拔一拔跳线帽,就可正常显示了!
②矩阵转置。
根据上课的课件,在分析“大”字的显示时,是共阳极且按行选从右至左依次为高位到低位,于是惯性思维做了行选进行二进制转十六进制,于是就出现了倒置的情况!
仔细分析刚刚delay200时,才发现是列选信号,于是进行列选二进制转十六进制,先试了一个“I”字符,显示成功,于是放心大胆的编写剩余的字符。
③消隐问题。
一开始不明白消隐到底是干什么的,所以好奇心驱使删除消隐那一行,然后板子上的显示就会出现重影,这个是把led点阵置低电平,从而解除消隐的现象。
3.编程经验的积累与心得体会:
①列选的编程。
不要拘泥于惯性思维,要按照板子共阴极且列选,所以亮的点置1,不亮的点置0。而且要根据板子的实际情况看看数据高位到低位的顺序。
②要有质疑的精神
因为程序中每一句话都不会是废话,所以要弄清楚消隐的意思,而且牵一发而动全身,比如将4*8的二维数组改成6*8的二维数组时,后面的j变量相应的要变为6。