差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
lcd显示控制 [2016/05/25 14:38] admin [资源报告] |
lcd显示控制 [2016/05/31 09:38] (当前版本) admin |
||
---|---|---|---|
行 9: | 行 9: | ||
本设计用到两个按键K1和K2,硬件设计如图1所示,两个按键分别连接到FPGA的A2和B7引脚。 | 本设计用到两个按键K1和K2,硬件设计如图1所示,两个按键分别连接到FPGA的A2和B7引脚。 | ||
{{ :fpga_5110lcd_key.png |按键硬件设计}} | {{ :fpga_5110lcd_key.png |按键硬件设计}} | ||
+ | <WRAP centeralign>**小脚丫FPGA开发板的控制按键**</WRAP> | ||
设计中需要驱动Nokia5110液晶屏作为显示,液晶屏与小脚丫FPGA开发板之间的连接关系如图2所示,对应的管脚如下。 | 设计中需要驱动Nokia5110液晶屏作为显示,液晶屏与小脚丫FPGA开发板之间的连接关系如图2所示,对应的管脚如下。 | ||
行 16: | 行 16: | ||
{{ :fpga_5110lcd_con.png |液晶屏硬件连接}} | {{ :fpga_5110lcd_con.png |液晶屏硬件连接}} | ||
+ | <WRAP centeralign>**小脚丫FPGA开发板和5110液晶屏的连接** </WRAP> | ||
====工作原理==== | ====工作原理==== | ||
- 使用计数器做分频处理,得到周期为1秒的脉冲信号sec_clk; | - 使用计数器做分频处理,得到周期为1秒的脉冲信号sec_clk; | ||
行 28: | 行 28: | ||
为了实现所需要的功能,我们将整个设计划分不同的模块,如图3所示。 | 为了实现所需要的功能,我们将整个设计划分不同的模块,如图3所示。 | ||
{{ :fpga_5110lcd_blk.png |数字时钟程序设计框架}} | {{ :fpga_5110lcd_blk.png |数字时钟程序设计框架}} | ||
+ | <WRAP centeralign>**数字时钟程序框架**</WRAP> | ||
4.1 clock_ctl模块 | 4.1 clock_ctl模块 | ||
Clock_ctl模块主要实现数字时钟的模式控制,本设计共有4种模式(normal、hour_set、minute_set、second_set)当K1按键按下(set_en为高电平)时依次跳转,如图4所示。 | Clock_ctl模块主要实现数字时钟的模式控制,本设计共有4种模式(normal、hour_set、minute_set、second_set)当K1按键按下(set_en为高电平)时依次跳转,如图4所示。 | ||
{{ :fpga_5110lcd_flow.png |数字时钟状态控制设计}} | {{ :fpga_5110lcd_flow.png |数字时钟状态控制设计}} | ||
+ | <WRAP centeralign>**状态控制**</WRAP> | ||
{{ :fpga_5110lcd_sta_code.png |数字时钟控制代码}} | {{ :fpga_5110lcd_sta_code.png |数字时钟控制代码}} | ||
+ | <WRAP centeralign>**控制代码**</WRAP> | ||
4.2 clock_cnt模块 | 4.2 clock_cnt模块 | ||
行 40: | 行 43: | ||
2)当处于second_set模式时,每次K2按键按下(up_en为高电平)时,秒钟个位加1,个位满10清零同时十位加1,当秒钟满60清零,分钟和时钟保持不变,如下: | 2)当处于second_set模式时,每次K2按键按下(up_en为高电平)时,秒钟个位加1,个位满10清零同时十位加1,当秒钟满60清零,分钟和时钟保持不变,如下: | ||
{{ :fpga_5110lcd_clk.png |数字时钟计数模块}} | {{ :fpga_5110lcd_clk.png |数字时钟计数模块}} | ||
+ | <WRAP centeralign>**计数模块**</WRAP> | ||
5、系统运行 | 5、系统运行 | ||
{{ :fpga_5110lcd_pic.jpeg?800 |系统运行状态}} | {{ :fpga_5110lcd_pic.jpeg?800 |系统运行状态}} | ||
+ | <WRAP centeralign>**系统实际运行**</WRAP> | ||
视频地址: | 视频地址: | ||
行 56: | 行 61: | ||
====知识点==== | ====知识点==== | ||
- | - 时钟计数分频 | + | - 时钟计数,分频 |
- 按键消抖处理 | - 按键消抖处理 | ||
- 串行/并行转换 | - 串行/并行转换 | ||
行 62: | 行 67: | ||
====参考文档==== | ====参考文档==== | ||
- | Lattice MachXO2数据手册Nokia5110液晶屏资料 | + | * Lattice MachXO2数据手册 |
+ | * Nokia5110液晶屏资料 | ||
====相关文件==== | ====相关文件==== | ||
- | 文件名称 功能 | + | ^文件名称 | 功能| |
- | Digital_clock 顶层模块,将所有功能模块接口连接起来 | + | ^Digital_clock.v |顶层模块,将所有功能模块接口连接起来| |
- | Clock_div 实现分频,产生按键、显示和秒时钟 | + | ^Clock_div.v |实现分频,产生按键、显示和秒时钟| |
- | key_board 实现按键消抖 | + | ^key_board.v |实现按键消抖| |
- | clock_ctl 实现数字时钟的模式控制 | + | ^clock_ctl.v |实现数字时钟的模式控制| |
- | clock_cnt 时钟逻辑,产生时分秒的数值 | + | ^clock_cnt.v |时钟逻辑,产生时分秒的数值| |
- | LCD_nokia5110 驱动Nokia5110液晶屏的显示 | + | ^LCD_nokia5110.v |驱动Nokia5110液晶屏的显示| |