差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
文本lcd模块的控制 [2020/07/09 11:14] zili |
文本lcd模块的控制 [2020/07/09 13:13] (当前版本) zili |
||
---|---|---|---|
行 13: | 行 13: | ||
* RS:寄存器选择,0表示命令字节,1表示数据字节。 | * RS:寄存器选择,0表示命令字节,1表示数据字节。 | ||
\\ | \\ | ||
- | 大多数LCD模块都基于HD44780芯片或兼容的。查看[[https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller|Wikipedia]]以获取更多信息。 | + | 大多数LCD模块都基于HD44780芯片或是兼容的。查阅[[https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller|Wikipedia]]以获取更多信息。 |
+ | \\ | ||
\\ | \\ | ||
####7位设计 | ####7位设计 | ||
- | 让我们从FPGA板驱动LCD模块。\\ | + | 让我们用FPGA板驱动LCD模块。\\ |
这是我们设计的框图: | 这是我们设计的框图: | ||
{{ ::lcdmodule.gif |}} | {{ ::lcdmodule.gif |}} | ||
行 44: | 行 46: | ||
</code> | </code> | ||
- | 我们从不读取LCD模块,因此R / W线接地。\\ | + | 我们从不读取LCD模块,所以R / W线是接地的。\\ |
\\ | \\ | ||
最后一个麻烦是“ E”信号需要长时间激活,即220ns。从FPGA的角度来看,这很长,因为我使用的是25MHz时钟(周期为40ns)。因此,“ E”至少需要驱动5.5个时钟。在这里,我们使用一个计数器对时钟进行计数,将其驱动7个时钟。\\ | 最后一个麻烦是“ E”信号需要长时间激活,即220ns。从FPGA的角度来看,这很长,因为我使用的是25MHz时钟(周期为40ns)。因此,“ E”至少需要驱动5.5个时钟。在这里,我们使用一个计数器对时钟进行计数,将其驱动7个时钟。\\ | ||
行 65: | 行 67: | ||
HDL设计在[[https://www.fpga4fun.com/files/LCDmodule.zip|这里]]。\\ | HDL设计在[[https://www.fpga4fun.com/files/LCDmodule.zip|这里]]。\\ | ||
- | ####该软件 | ||
\\ | \\ | ||
- | 我们初始化LCD并发送一些要显示的数据。 | + | ####软件方面 |
+ | 我们对LCD进行初始化并发送一些要显示的数据。 | ||
{{ ::lcd_hello.jpg |}} | {{ ::lcd_hello.jpg |}} | ||
\\ | \\ | ||
- | 这是初始化LCD模块并显示“ hello”的C代码。 | + | 以下是初始化LCD模块并显示“ hello”的C代码。 |
<code verilog> | <code verilog> |