Xilinx FPGA入门连载80:LCD字符显示驱动之字符取模

2020-02-04 10:43发布

Xilinx FPGA入门连载80LCD字符显示驱动之字符取模特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1jGjAhEm 1.jpg 1 字符取模要显示字符,首先需要获得字模数据,我们使用字模软件PCtoLCD2002。该字模软件用1bit代表一个像素点,即它只能表示2种颜 {MOD}的图像,当然不是仅仅局限于黑和白了,用户可以根据需要来决定这1bit数据(01)代表的 {MOD}彩。下面说明我们的设计中需要的字符是如何取模的,启动取模软件PCtoLCD2002,点击菜单栏的“模式”,选择“字符模式”。再点击菜单栏的“选项”(或点击如图所示的齿轮图标),在弹出的对话框中设置如图所示(行后缀为英文的“;”)。此外,在主界面中,我们设置字符宽度为64*64(实际上如果我们是给字符取模,它默认为32*64),在主界面下方的字模输入框中输入了大写字母A,接着点击它右侧的“生成字模”按钮(图中没有示意),则在输出栏中出现了一大串32bit一行,并且行后缀为“;”的字符,copy他们,后面马上就会用上。 2.jpg         32*64点阵的字符“A”取模后的数据如下。实际上这些数据如果我们用二进制的01一位位的将他们排列开来,则我们可以看到1可以排列出一个字母“A”出来。正是根据这个原理,我们后面会每行32位的将他们送往液晶屏显示,一共有64行这样的显示。A(0) 00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;0000C000;0003C000;0003C000;0007E000;0007E000;0007E000;0006E000;000CF000;000CF000;000CF000;000CF000;00187800;00187800;00187800;00187800;00303C00;00303C00;00303C00;00303C00;00701C00;00601E00;00601E00;00601E00;00E00E00;00C00F00;00C00F00;00FFFF00;01FFFF00;01800F80;01800780;01800780;03800780;030007C0;030003C0;030003C0;070003C0;060003E0;060001E0;060001E0;0E0001E0;0E0001F0;1F0001F8;7FC00FFE;7FC00FFE;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;/*"A",0*/        基于前面取到的字模数据,我们假定从屏幕的(00)坐标到(3163)坐标区域(对应就是32*64的点阵)内显示字符。那么当坐标计数器刷新到(00)坐标点的时候我们就要相应判断第一行数据的bit31的值,然后决定送哪种 {MOD}彩(0代表一种 {MOD}彩,1代表另一种 {MOD}彩)。当坐标计数器刷新到(10)坐标点的时候我们就要相应判断第一行数据bit30的值……直到刷新到(310)时判断第一行数据的bit0的值,由此完成了首行字模数据的译码。往后的译码都和首行类似,64行字模数据寻址完毕后,大写字母“A”便出现在我们的屏幕上。当然了,为了显示得美观,我们特意将这个32*64的大写字母“A”放到了320*240LCD的正中央。那么它的坐标就不是(00)到(3163)的区域了。而是(144104)到(175,135)这个区域。我们这个实例最终要显示的效果如图7.86所示。在(144104)到(175,135)这个区域内,字符“A”以蓝(16’h001f)字红(16’hf800)底显示,LCD的其他显示区域则为黑 {MOD}(16’h0000)。 3.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。