- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习笔记-fpga设计电子时钟12864显示
fpga设计电子时钟(12864显示)
设计心得:
1,进行分块设计,类似调用函数,脉冲使能
2,充分了解fpga的并行特性(c程序的串行特性,不能并行处理,线性:只有完成了当前任务,才能进行下一个任务)
设计问题:
1,似乎读有问题,在char_LR=1时,写的数据为汉字
(程序中时间没有更改,主要为了调试看波形)
实际板子验证时,将LCD_clk模块中的分频调为50到100kHz左右
整体架构
功能模块
液晶初始化时序
parameter Idle =8b0000_0001,
Basic_com =8b0000_0010, //basic instruction:0x30
Disp_set =8b0000_0100, //set show curse bling
DDRAM_clear =8b0000_1000, //colunm address X
Wait_clear =8b0001_0000,
Point_set =8b0010_0000,
Show_on =8b0100_0000,
Stop =8b1000_0000;
写字符的时序
由于字符属于半宽字形,且DDRAM形式下,每行只有8个地址,而字符可以写16个,因此用下面三个来表示写的地址:
input [1:0] Y, //row 0-3
input [2:0] X, //clunm 0-7
input LR, //0/1
因此当LR=0时,直接写地址,然后写一个字符编码即可
LR=1时,先写地址,读出高位数据,然后写入两个字节(读出的数据,要写的数据)
parameter Idle =8b0000_0001,
DDRAM =8b0000_0010, //drawing mode
W_addr =8b0000_0100, //row address Y
Dummy =8b0000_1000, // not really reading
R_data =8b0001_0000, //reading high byte data
W0_data =8b0010_0000,
W1_data =8b0100_0000,
Stop =8b1000_0000;
# t1: 0 t2: 2305, T: 10,n_init: 38
# t1: 2305 t2: 2665, T: 10,n_char: 6
# t1: 2665 t2: 3265, T: 10,n_char: 10
完成了上述工作,就可以设计一个简单的电子时钟,其要求如下:
在屏幕上显示时间 00:00:00
要动态走
(主要就是控制脉冲信号的产生)
设计思路:
1,按下复位键,系统复位,时间变为00:00:00
2,每一秒中时分秒数据更改
3,一秒钟时间到,产生8个字符写的脉冲,LCD更新数据显示
00:00:01
00:01:59
1代码
/*
sign.v
//creat the control sign
clock h:m:s
*/
module sign(
//module LED(
input lcd_clk, //100kHz
input sys_rst,
output reg lcd_char_en,
output reg lcd_init_en,
output reg [7:0]char_data,
output reg [2:0]char_X,
output reg [1:0]char_Y,
output reg char_LR
);
parameter T_w_char = 5,
T_lcd_init = 40;
reg [47:0] time_out;
/* 1s */
reg [16:0] cnt_s;
reg [5:0] cnt0_clk;
reg [3:0] cnt1_clk;
reg [2:0] cnt_char;
reg [5:0] sec,min;
reg [4:0] hour;
reg flag_s,flag_init;
always @ (posedge lcd_clk or negedge sys_rst) begin //100kHz
if(!sys_rst)
begin
cnt_s =0;
cnt0_clk=0;
cnt1_clk=0;
cnt_char=0;
sec =
您可能关注的文档
- 奇怪的叹息声[奥拉星幻影冰宫历险]冰宫前殿文档.doc
- 奇妙的变化.ppt
- 奉化市锦屏街道中老年人开展气排球的可行性研究.doc
- 奋斗的青春最壮美_.ppt
- 奔驰毒气未出现.docx
- 奔驰造施工方案.doc
- 奔驰c级甲醛零记录.docx
- 奥林逸城管理方案细则.doc
- 奥运村A-Ⅰ施工组织确定版.doc
- 女人帮_.ppt
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)