- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LCD1602电子钟[精]
//lcd1602控制模块,在液晶上显示两行,第一行为Welcome to QC!,第二行为LCD DISPLAY
//从CGROM中取出数据显示
//lcd_e:1-使能有效,0-使能无效
//lcd_rw:1-读操作,0-写操作 lcd_rs:1-输入数据,0-输入指令
module LCD1602
(
clkin, //48mHz
resetin, //时钟,复位信号输入
lcd_data,//lcd数据总线
lcd_e,
lcd_rw,
lcd_rs//lcd控制信号
);
input clkin,resetin;
output [7:0] lcd_data;
output lcd_e,lcd_rw,lcd_rs;
reg [7:0] lcd_data;
reg lcd_e,lcd_rw,lcd_rs;
reg [31:0] count;
reg [7:0] hou,min,sec;
wire clk_div;
parameter set_Func=8b0000_0001,
set_DispSwitch=8b0000_0010,
set_EntryMd=8b0000_0100,
clr_Disp=8b1000_1000,
set_DDAd1=8b0001_0000,
set_DDAd2=8b0010_0000,
Display1=8b0100_0000,
Display2=8b1000_0000,
scan=8b1000_0001,
Over=8b0000_0000;
reg [7:0] lcd_state;
reg [7:0] delay_cnt;
reg [3:0] char_cnt;
reg [7:0] data1 [13:0];
reg [7:0] data2 [13:0];
//分频时钟
defparam Gen_ClkDiv.divdFACTOR=240,Gen_ClkDiv.divdWIDTH=7;//分频出100k的时钟
gen_divd Gen_ClkDiv(.reset(!resetin),.clkin(clkin),.clkout(clk_div));//端口名称关联
//(8h77;8hB5;8hD5;8hE1;8hC5;8hB5;8h77;8hFF;8h7F;8hBF;8hDF;8hE1;8hC7;8hBF;8h7F;8hFF);--天人
initial
begin
data1[0]=8h43;//--Clock by Eric!
data1[1]=8h6C;
data1[2]=8h6F;
data1[3]=8h63;
data1[4]=8h6B;
data1[5]=8h20;
data1[6]=8h62;
data1[7]=8h79;
data1[8]=8h20;
data1[9]=8h45;
data1[10]=8h72;
data1[11]=8h69;
data1[12]=8h63;
data1[13]=8h20;
data2[0]=8h20;//--00:00:00
data2[1]=8h20;
data2[2]=8h20;
data2[3]=8h30;
data2[4]=8h30;
data2[5]=8h3A;
data2[6]=8h30;
data2[7]=8h30;
data2[8]=8h3A;
data2[9]=8h30;
data2[10]=8h30;
data2[11]=8h20;
data2[12]=8h20;
data2[13]=8h20;
count=0;
end
always @ (negedge resetin or posedge clk_div)
begin
if (!resetin)
begin
hou=0;min=0;sec=0;
end
// count=0;
else
begin
data2[3]=hou/10;
data2[4]=hou%10;
data2[6]=min/10;
data2[7]=min%10;
data2[9]=sec/10;
data2[10]=sec%10;
count=count+1;
if(count==99999)
文档评论(0)