1、uintintK5/移动速度控制变量。col,disrow;/列移动计数变量。行扫描计数变量。word,zishu;/字形码计数变量。codeHZ;BUFF5;/64列时应将数值设为11voidtwo_out();/显示数据输出函数loadoneline_L(void);/取字码数据函数/voidloadoneline_R(void);sendoneline_L(void);/生成显示数据函数sendoneline_R(void);/*关于595第13脚的问题:原附图中13脚是接GND的,是电路板的原始设计,调试过程中将IC引脚与电路板隔离后经244引出做为OE引脚,其作用仅为配合延时适度的调
2、整屏显亮度,若13脚接GND,则为全亮度显示,与其他控制并无干涉。*/sbitOE=P10;/显示开关(595第13脚)。ST=P11;/锁存控制(595第11脚)。此处原错标为12脚,特此更正!/*/delay(uintp)i,j;for(i=0;ip;i+)for(j=0;j5;j+);左移显示数据生成模块:(功能相当于有返回值的函数)two_onebyteL(ucharh1,ucharh2)temp,tempcol;/输出变量;列移动位数变量。if(col8)tempcol=col;elsetempcol=col-8;temp=(h1(8-tempcol);/左移显示temp=255-t
3、emp;returntemp;/将显示数据返回显示输出函数。/*右移显示数据生成模块:*/*uchartwo_onebyteR(uchartemp=(h1tempcol)|(h2/右移显示*/*左移待显示数据调取函数*/loadoneline_L(void)s;/此处不要用uchar定义sfor(s=0;s=0+inc;s-)/左移显示:单屏s=1+,4屏s=7+,8屏s=15+;SBUF=two_onebyteL(BUFFs,BUFFs+1);while(!TI);TI=0;右移显示数据输出函数sendoneline_R(void)for(s=0+inc;2+inc;s+)/右移显示SBUF
4、=two_onebyteR(BUFFs,BUFFs+1);主函数:main(void)col=0;word=0,zishu=0;/列移动计数变量、汉字码位数变量每字32个码while(1)while(col16)uchari;K;i+)for(disrow=0;disrow16;disrow+)/if(zishu=512)zishu=0;/改变移动方向word=word+32;if(word=128)word=0;/重新从第一个字开始显示无限重复主函数结束数组的字模取码方式为阳码、顺向、逐行。HZ=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
5、0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x08,0x7F,0xFC,0x00,0x00,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00,0x00,/*吉,0*/0x21,0x04,0x10,0x88,0x10,0x50,0xFD,0xFE,0x04,0x20,0x08,0x20,0x11,0xFC,0x38,0x20,0x54,0x20,0x94,0x20,0
6、x13,0xFE,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,/*祥,1*/0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x7E,0xFE,0x42,0x22,0x42,0x22,0x42,0x22,0x42,0x22,0x42,0x24,0x42,0x14,0x42,0x08,0x42,0x14,0x7E,0x23,0x42,0x42,0x42,0x80,0x00,/*如,2*/0x01,0x00,0x3F,0xFC,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x1F,0x
7、F0,0x12,0x10,0x11,0x10,0x1F,0xF0,0x00,0x00,0x29,0x08,0x28,0x84,0x68,0x14,0x07,0xF0,0x00,0x00,/*意,3*/;此程序是实际演示应用程序,是在我的UV2窗口中粘贴过来的,如有应用,反向操作即可。其实程序前的接口设置已经叙述的很详细了,即使没有图纸也能应用。由于本程序只是用来演示左右移动的效果,一般应用时应该只是一个方向,(如欲左移显示时需将相关右移的部分变绿,或加以控制,否则,就乱套了)所以,只要对程序进行删减,可以很方便的用于实际控制,本程序只用于16*16点阵的控制,当扩展为屏组控制时,程序的修改应非难事,参照上篇文章,应能知道该加入的语句。弄了许久,总算把这段视频放在这里了,又是注册,又是上传视频的,还莫名其妙的被屏蔽了好几次,又由于没有设置为“公开”还一度找不到文件地址,最终还是借助了“一键i贴吧”才找到了地址转了过来,这段视频在我的QQ空间里好久,拍的并不好,本来演示的很好不知为何拍成视频后闪烁的很厉害,慢慢琢磨吧。编辑说明:本文写作已经很长时间了,经常有朋友就一些问题进行交流,最近更有朋友指出了一些内容上的疏失,就此我重新找出了这块试验板,重新核查了线路,重新演示了程序,发现确实有遗漏之处,就此对文章进行了编辑,同时,对网友bebackin1988对此文的认真梳理,表示感谢。