最近无聊做了一个小案列,很简单的一个广告点阵屏幕,用的是寄存器加点阵屏幕,来减少外界走线,可以说是vga,hdmi,tft,系列的无敌简化版。还是挺有趣的代码也比较简单。效果还是不错,给女朋友做做让她乐呵乐呵。

代码部分:

module TOP(
input               sysclk      ,
input               rst_n       ,
output wire         CLK         ,
output wire         LE          ,
output wire         DI           );wire [63:0] DATA;DATA_ctrl  DATA_ctrl(
. sysclk   (sysclk),
. rst_n    (rst_n ),
. DATA     (DATA  ));DZP   DZP_1(    //CLK 3.125MHZ
.sysclk      (sysclk ),
.rst_n       (rst_n  ),
.DATA        ( DATA  ), //显示用的数据
.CLK         (CLK    ), //点阵屏  时钟
.LE          (LE     ), //点阵屏  锁存端口
.DI          (DI     )  //点阵屏  数据输入端口);endmodulemodule DZP(
input               sysclk      , //CLK 125MHZ
input               rst_n       ,
input  [63:0]       DATA        , //显示用的数据
output reg          CLK         , //点阵屏  时钟
output reg          LE          , //点阵屏  锁存端口
output reg          DI            //点阵屏  数据输入端口);
reg [15:0] DATA_TEMP;
reg [7:0] R_data,C_data;
parameter DELAY = 1000;
reg [31:0] cnt_delay;
reg [3:0] cnt;//记录周期  分频计数器   循环0-15
reg [7:0] cnt_bit;//记录发送的Bit数
always@(posedge sysclk or negedge rst_n)if(!rst_n)cnt_delay <= 0;else if(cnt_delay>=DELAY-1)cnt_delay <= 0;elsecnt_delay <= cnt_delay + 1;always@(posedge sysclk or negedge rst_n)if(!rst_n)R_data <= 0;else case(C_data)8'b0111_1111:R_data <= DATA[63:56];8'b1011_1111:R_data <= DATA[55:48];8'b1101_1111:R_data <= DATA[47:40];8'b1110_1111:R_data <= DATA[39:32];8'b1111_0111:R_data <= DATA[31:24];8'b1111_1011:R_data <= DATA[23:16];8'b1111_1101:R_data <= DATA[15:8];8'b1111_1110:R_data <= DATA[7:0];default:R_data <= R_data;endcasealways@(posedge sysclk or negedge rst_n)if(!rst_n)C_data <= 8'b0111_1111;else if(cnt_bit>=16&&cnt>=15)//拆分成不同的列进行显示C_data <= {C_data[0],C_data[7:1]};else C_data <=C_data;always@(posedge sysclk or negedge rst_n)if(!rst_n)DATA_TEMP <= 16'd0;else DATA_TEMP <= {C_data,R_data};always@(posedge sysclk or negedge rst_n)//时序逻辑if(!rst_n)cnt<= 0;elsecnt <= cnt + 1;   //4'b1111 + 1   =   4'b0000;always@(posedge sysclk or negedge rst_n)if(!rst_n)CLK <= 0;else if(cnt<=7)CLK <= 0;elseCLK <= 1;always@(posedge sysclk or negedge rst_n)if(!rst_n)cnt_bit<= 0;else if(cnt_bit>=16&&cnt>=15)cnt_bit <= 0;else if(cnt==1)cnt_bit <= cnt_bit + 1;elsecnt_bit <= cnt_bit;always@(posedge sysclk or negedge rst_n)if(!rst_n)DI <= 0;else if(cnt==2)DI <= DATA_TEMP[16-cnt_bit];elseDI <= DI;always@(posedge sysclk or negedge rst_n)if(!rst_n)LE <= 0;else if(cnt_bit>=16&&cnt>=12)LE <= 1;elseLE <= 0;endmodulemodule DATA_ctrl(
input  sysclk,
input rst_n,
output wire [63:0] DATA);reg [287:0] DATA_TEMP;
parameter DELAY = 5000000;//控制移动速度的
reg [31:0] cnt;
always@(posedge sysclk or negedge rst_n)if(!rst_n)cnt <= 0;else if(cnt>=DELAY-1)cnt <= 0;elsecnt <= cnt + 1;always@(posedge sysclk or negedge rst_n)if(!rst_n)DATA_TEMP <= 192'h0000447C7C4400000C1E3E7C7C3E1E0C003C404040403C00;//可以自行修改else if(cnt>=DELAY-1)DATA_TEMP <= {DATA_TEMP[183:0],DATA_TEMP[191:184]};elseDATA_TEMP <= DATA_TEMP;assign DATA = DATA_TEMP[191:128];endmodule

字模软件的使用:

使用PCtoLCD2002,简单方便好用内存小

下面是B站野火的教学视频,第75个详细讲解了字模软件的使用

75-第三十讲-VGA显示器字符显示(一)_哔哩哔哩_bilibili75-第三十讲-VGA显示器字符显示(一)是【野火】FPGA系列教学视频,真正的手把手教学,“波形图”教学法,现场画波形图写代码,硬件基于野火FPGA EP4CE10征途系列开发板,已完结的第75集视频,该合集共计236集,视频收藏或关注UP主,及时了解更多相关视频内容。https://b23.tv/ksa6NZP

广告点阵屏和熟悉字模软件的使用相关推荐

  1. 电磁场与电磁波实验一 熟悉Matlab软件在电磁场领域的应用

    前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看.(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:matlab电磁场 获取完整无水印报告 一 ...

  2. 百度SEO站长统计后台广告推送引流软件

    简介: 网站统计广告推送引流软件是一款非常专业的网站引流软件,能够帮助用户伪造站长统计的搜索关键词,支持自定义刷词次数.多线程支持自定义线程数,能够自动导出网站,成功的网址统计代码直接保存,方便下次导 ...

  3. 青少年编程scratch一级-熟悉编程软件(答案及详解+线上题库答题)

    线上题库答题+自动评卷 https://blog.csdn.net/zhengzyx2040/article/details/118388826 scratch一级-熟悉编程软件试题 [熟悉编程软件] ...

  4. C语言字模文件的使用,PCtoLCD2002(字模软件) 最新版 附使用指南

    原标题:PCtoLCD2002(字模软件) 最新版 附使用指南 PCtoLCD2002是专业的取字模软件,采用C语言和汇编语言两种格式,支持逐行.逐列.行列.列行四种取模方式,可以选择字体.大小.文字 ...

  5. 【图形处理】字模软件与汉字取模(GB2312、GBK,BIG5)(草稿)

    由于需要在LCD显示屏上绘制汉字,找了N多的字模软件. 现将个人对汉字取模的实现过程及软件使用写出来,不足之处,望留言指正. 导论 文章将按照汉字编码.图像取模. 一.汉字编码 1234 GB2312 ...

  6. 利用MATLAB编写单位冲激函数,熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形.doc...

    熟悉MATLAB软件的相关函数的使用方法各种信号的时域波形 实验目的: 熟悉MATLAB软件的相关函数的使用方法.各种信号的时域波形. 实验内容: 1.用MATLAB软件绘制各类典型信号的时域波形并且 ...

  7. STM32F4_LCD/OLED在线取字模软件

      在进行(单片机)嵌入式开发的时候,我们为了调试方便,通常会使用 OLED / LCD / 串口助手 等去帮助我们调试程序,常常会使用到 LCD 或 OLED 点阵字模,下面是搜集到的几个在线取字模 ...

  8. 51单片机点阵和取字模软件的使用方法(显示心形图案)

    点阵 首先来介绍一下8*8 点阵共由 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置 1 电平,某一列置 0 电平,则相应的二极管就亮: 如要将第一个点点亮,则 ...

  9. 51单片机8*8点阵屏、取模软件的使用

    取模软件网盘提取 链接:https://pan.baidu.com/s/1YYQo_tZNCXlo9uWVbtsNdg 提取码:jfbr 74HC595芯片原理图: 两片595芯片级联驱动点阵屏只需要 ...

最新文章

  1. haproxy LVS nginx的比较
  2. 大数据概述 ——林子雨老师第一课
  3. AGC034 F - RNG and XOR
  4. Java面试题集(二)list与Map相关知识(1.2)
  5. 电信申请固定ip_各个代理ip之间的关系
  6. Java 虚拟机部分面试题
  7. 动态路由协议的分类、动静态路由优缺点、RIP简介、组播单播广播详解(附图)
  8. 用一把吃鸡的时间,免费上云搭建网站应用
  9. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
  10. matlab细胞数组类型建立及操作
  11. BT 与 Magnet 的下载方式及原理
  12. 辽宁专科php教材用什么,辽宁新高考改革方案的具体内容是什么?
  13. 永久禁止ctfmon.exe和conime.exe进程启动
  14. Windows下生成SSH密钥
  15. tomcat的夏时令问题(时区问题)
  16. android金钱符号变形,使用¥(一个中文字宽)还是¥(半个中文字宽)?
  17. 基于Go语言Gin+Xorm的OA办公系统
  18. KETTLE8.2在linux(rehl)6.6中安装部署并配置公共数据库链接
  19. Cannot find JRE ‘1.8‘. You can specify JRE to run maven goals in Settings | Mav
  20. 什么是性能测试?性能测试目的?性能测试的主要分类以及性能测试的常用指标?

热门文章

  1. 2008年互联网盘点:熙熙攘攘的六大事件
  2. 开发人员谈测试:做好软件测试才能提升应用质量
  3. 卷积神经网络最全面的发展简史
  4. java毕业生设计校园疫情信息管理系统计算机源码+系统+mysql+调试部署+lw
  5. Gerrit工作流程及使用手册
  6. 详细图解二叉树四种遍历(前序中序后序层次遍历)
  7. 小达同学软件测试第一讲
  8. 计算机页面打不开非常卡,win7系统笔记本反应慢卡打不开网页怎么办
  9. 资本寒冬中获1.5亿融资,这家初创企业做对了什么?
  10. 现代计算机图形学入门-闫令琪 17课基本材质