2010-4-18是某个人的生日,给她一个她收不到的生日礼物——用DE2显示“生日快乐”。你还好吗?!
一共有几个模块:VGA控制核,“生日快乐”数据,控制汉字的位置,还有汉字上下滚动。
写VGA的控制核,只要是把VGA的时序弄清楚就可以了,也不是很复杂。我是看了一篇叫《【原创】基于Verilog的VGA显示控制(有源码)》的文章就弄清楚了,百度一下,能找到。要注意一点的是,写VGA控制核要针对具体的显示屏,具体的消隐时间,写具体的行场有效时间。可以看一下这个网站:http://www.tinyvga.com/vga-timing
位置控制。我用四个键来控制字显示的位置,分别是X方向的加和减,Y方向的加和减。系统复位后汉字在最左上角显示,按一下X加的键,字向右移动一个像素点的位置,减则向左移一下;同理按Y加则向下移动一行,减则向上移动一行。如果是按一下移一格,要移到左下角那要不是你的手按坏就是按键被按坏,所以我就写成长按连续快速加一或者减一。
汉字点阵的生成。到网上下一个叫PCtoLCD2002完美版的软件,很简单,看看就知道怎么用。生成“生日快乐”的点阵数据。然后用parameter声明成verilong常量。如我写的:
parameter word_00=128'h00000000_00000000_00000000_00000000,
word_01=128'h00000000_00000000_00000000_00000000,
word_02=128'h00030000_00000000_00000000_00000000,
word_03=128'h00038000_00000000_0200C000_00003000,
word_04=128'h00038000_00000000_03006000_00003C00,
word_05=128'h00038000_00001800_03806000_0000F800,
word_06=128'h00038000_0000FC00_01006000_000FC000,
word_07=128'h00030000_00FFFE00_01006000_00F80000,
word_08=128'h00C10000_00C00C00_01006000_00C00000,
word_09=128'h00E10000_00400C00_01006200_00C30000,
word_0a=128'h00E10000_00400C00_01007F80_00C18000,
word_0b=128'h00C13E00_00400C00_0187E380_00818000,
word_0c=128'h00C3FC00_00400C00_01604300_00818700,
word_0d=128'h01FF8000_00400C00_11204300_0081FFC0,
word_0e=128'h01610000_00478C00_1100C200_018FE000,
word_0f=128'h03010000_007F8C00_3100C200_03FD8000,
word_10=128'h02010000_00400C00_3100C3F8_03C18000,
word_11=128'h04010000_00400C00_3100FFFC_03018000,
word_12=128'h0C017C00_00400C00_717FC000_00018000,
word_13=128'h080FF800_00400C00_2101A000_00018000,
word_14=128'h007F0000_00400C00_0101B000_01819E00,
word_15=128'h00010000_00C00C00_01011000_01818780,
word_16=128'h00010000_00C1CC00_03030800_038183C0,
word_17=128'h00010000_00FFFC00_03060C00_030180E0,
word_18=128'h00010000_00C01C00_03060700_07018060,
word_19=128'h000107E0_00400C00_030C0380_06018020,
word_1a=128'h0007FFF8_00000C00_031803E0_040F8000,
word_1b=128'h0FFF8000_00000800_032001FC_00070000,
word_1c=128'h3F800000_00000000_034000E0_00030000,
word_1d=128'h00000000_00000000_03000000_00030000,
word_1e=128'h00000000_00000000_00000000_00000000,
word_1f=128'h00000000_00000000_00000000_00000000;
第一篇博客,文字表述很不好,记录一下。还有很多事情要做!fighting!
文章评论(0条评论)
登录后参与讨论