找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1712|回复: 0
收起左侧

基于FPGA的日式钟程序设计

[复制链接]
ID:584238 发表于 2019-7-15 10:09 | 显示全部楼层 |阅读模式
在LED1602显示时间 00:00:00
可以显示温度。
0.png
  1. module lcd(clk,rs,miao0,miao1,fen2,fen3,shi4,shi5, wendu,rw, en,dat,rst_n);  
  2. input clk;  
  3. input rst_n;
  4. input [3:0]miao0,miao1,fen2,fen3,shi4,shi5;
  5. input [15:0] wendu;
  6. output [7:0] dat;
  7. output  rs,rw,en;
  8. reg e;
  9. reg [7:0] dat;
  10. reg rs;   
  11. reg  [15:0] counter;
  12. reg [4:0] next;
  13. reg clkr;
  14. reg [1:0] cnt;
  15. parameter  set0=4'h0;
  16. parameter  set1=4'h1;
  17. parameter  set2=4'h2;
  18. parameter  set3=4'h3;
  19. parameter  set4=4'h4;
  20. parameter  dat0=4'h5;
  21. parameter  dat1=4'h6;
  22. parameter  dat2=4'h7;
  23. parameter  dat3=4'h8;
  24. parameter  dat4=4'h9;
  25. parameter  dat5=4'hA;
  26. parameter  dat6=4'hB;
  27. parameter  dat7=4'hC;

  28. parameter  set5=5'hD;

  29. parameter  dat8=4'hE;
  30. parameter  dat9=4'hF;
  31. parameter  dat10=5'h10;
  32. parameter  dat11=5'h11;
  33. parameter  dat12=5'h12;

  34. parameter  nul=5'h13;
  35. always @(posedge clk )      
  36. begin
  37.   counter=counter+1;
  38.   if(counter==16'h000f)  
  39.   clkr=~clkr;
  40. end


  41. always @(posedge clkr)


  42. begin

  43.   case(next)
  44.     set0:   begin  rs<=0; dat<=8'h38; next<=set1; end //设置为显示2行,数据线8位 5x7点阵
  45.     set1:   begin  rs<=0; dat<=8'h0c; next<=set2; end //显示功能开,无光标
  46.     set2:   begin  rs<=0; dat<=8'h6; next<=set3; end //光标右移,显示屏不动
  47.     set3:   begin  rs<=0; dat<=8'h1; next<=set4; end //清屏
  48.          set4:   begin  rs<=0; dat<=8'h80; next<=dat0; end
  49.     dat0:   begin  rs<=1; dat<=shi5+8'h30; next<=dat1; end
  50.     dat1:   begin  rs<=1; dat<=shi4+8'h30; next<=dat2; end
  51.     dat2:   begin  rs<=1; dat<=":"; next<=dat3; end
  52.     dat3:   begin  rs<=1; dat<=fen3+8'h30; next<=dat4; end
  53.     dat4:   begin  rs<=1; dat<=fen2+8'h30; next<=dat5; end
  54.     dat5:   begin  rs<=1; dat<=":"; next<=dat6; end
  55.     dat6:   begin  rs<=1; dat<=miao1+8'h30; next<=dat7; end
  56.     dat7:   begin  rs<=1; dat<=miao0+8'h30; next<=set5; end
  57.     set5:   begin  rs<=0; dat<=8'hc0; next<=dat8; end
  58.          dat8:   begin  rs<=1;if (wendu[15]==0) begin dat<="+"; next<=dat9; end
  59.                                                                 else begin dat<="-"; next<=dat9; end
  60.                                 end
  61.     dat9:   begin  rs<=1;if (wendu[15]==0) begin dat<=((wendu[15:5]/8)%100)/10+8'h30; next<=dat10; end
  62.                                                 else begin dat<=(((~wendu[14:5]+1)/8)%100)/10+8'h30; next<=dat10; end
  63.                                 end
  64.     dat10:  begin  rs<=1;if (wendu[15]==0) begin dat<=((wendu[15:5]/8)%100)%10+8'h30; next<=dat11; end
  65.                                                                 else begin dat<=(((~wendu[14:5]+1)/8)%100)%10+8'h30; next<=dat11; end
  66.                                 end
  67.     dat11:   begin  rs<=1; dat<=8'hdf; next<=dat12; end //显示° 8'hdf
  68.          dat12:   begin  rs<=1; dat<="C"; next<=nul; end
  69.          //dat13:   begin  rs<=1; dat<=" "; next<=nul; end
  70.          nul: begin dat<=" ";next<=set4;end
  71.    default:   next<=set0;
  72.     endcase
  73. end



  74. assign en=clkr|e;
  75. assign rw=0; //只写入
  76. endmodule  
复制代码

全部资料51hei下载地址:
日时钟.7z (4.96 MB, 下载次数: 15)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表