差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
lcd显示控制 [2016/05/25 14:30]
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所示,对应的管脚如下。
  
行 15: 行 15:
 ^ FPGA  |N3 |P2 |N2 |M1 |K1 |3.3V |J1 |GND ​  | ^ FPGA  |N3 |P2 |N2 |M1 |K1 |3.3V |J1 |GND ​  |
  
-{{ :​fpga_5110lcd_con.png |}} +{{ :​fpga_5110lcd_con.png |液晶屏硬件连接}} 
-图2、液晶屏硬件连接 +<WRAP centeralign>​**小脚丫FPGA开发板和5110液晶屏的连接** </​WRAP>​
 ====工作原理==== ====工作原理====
   - 使用计数器做分频处理,得到周期为1秒的脉冲信号sec_clk;   - 使用计数器做分频处理,得到周期为1秒的脉冲信号sec_clk;
行 28: 行 27:
 ====代码设计==== ====代码设计====
 为了实现所需要的功能,我们将整个设计划分不同的模块,如图3所示。 为了实现所需要的功能,我们将整个设计划分不同的模块,如图3所示。
-{{ :​fpga_5110lcd_blk.png |}} +{{ :​fpga_5110lcd_blk.png |数字时钟程序设计框架}} 
-图3、数字时钟程序设计框架+<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 |数字时钟状态控制设计}} 
-图4、数字时钟状态控制设计 +<WRAP centeralign>​**状态控制**</​WRAP>​ 
-{{ :​fpga_5110lcd_sta_code.png |}}+ 
 +{{ :​fpga_5110lcd_sta_code.png |数字时钟控制代码}} 
 +<WRAP centeralign>​**控制代码**</​WRAP>​ 
 4.2 clock_cnt模块 4.2 clock_cnt模块
 Clock_cnt模块主要实现时钟逻辑模块: Clock_cnt模块主要实现时钟逻辑模块:
 1)当处于normal模式时,每来一个sec_clk秒钟个位加1,个位满10清零同时十位加1,当秒钟满60清零同时分钟个位加1,依次进行...直到23:​59:​59的下一刻全部清零。 1)当处于normal模式时,每来一个sec_clk秒钟个位加1,个位满10清零同时十位加1,当秒钟满60清零同时分钟个位加1,依次进行...直到23:​59:​59的下一刻全部清零。
 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?​300 |}} +{{ :​fpga_5110lcd_pic.jpeg?​800 |系统运行状态}} 
-图5、系统运行+<WRAP centeralign>​**系统实际运行**</​WRAP>​
  
 视频地址: 视频地址:
- 
 http://​v.youku.com/​v_show/​id_XMTM5MDE4OTE2MA==.html?​from=s1.8-1-1.2 http://​v.youku.com/​v_show/​id_XMTM5MDE4OTE2MA==.html?​from=s1.8-1-1.2
  
 ====资源报告==== ====资源报告====
-资源 数量 比例 说明 +^资源 |数量 |比例 ​| 
-LUTs 718 56%  +^LUTs |718 |56% | 
-寄存器 179 11%  +^寄存器 |179 |11% | 
-存储器 0 0%  +^存储器 |0 |0%  | 
-IO管脚 12 +^IO管脚 |12     |    | 
-时钟频率 25MHz+^时钟频率 |25MHz  ​| ​   |
  
 ====知识点==== ====知识点====
-  - 时钟计数分频+  - 时钟计数,分频
   - 按键消抖处理   - 按键消抖处理
   - 串行/​并行转换   - 串行/​并行转换
行 64: 行 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液晶屏的显示|