本帖最后由 fengyao 于 2013-3-29 13:22 编辑
使用过8*8点阵的朋友都知道,点阵的引脚排布是不规律的,对于洞洞板上的布线来说是个大问题。最近在制作点阵模块时,由于IO口不紧张,我采用了直接驱动的方法(共阴式点阵,PORTB,PORTD驱动点阵),考虑到引脚排布问题我将PORTB与1-8引脚相连,PORTD与9-16引脚相连,使用一个函数,将一组原本不相邻的IO口进行赋值,如:
void Line(unsigned char i)
{
RB0=(i&0x80)>>7;
RB5=(i&0x40)>>6;
.......(不一一列举,引脚顺序和源程序不一致,只是为了说明意思,此子函数对共阴极进行赋值,相当于原来的PORTB=0xxx,只是将原本共阴极引脚按顺序排放,想要达到和对PORTB直接赋值相同的效果)
}
但程序运行结果和预想有偏差,首先,灯的亮度不一致,每一列亮度都不同,有的亮,有的暗,而且最后的图案完全乱掉。请求大神看看错误出在哪里??(配置位我已经设置过了,关闭了在线调试,低电压编程。换用PORTA口,使用数字模式(配置ADCON1)也不行) |