VGA驱动色块显示

了解了VGA的显示原理和ADV7123控制后,再去实现色块显示就容易了。

  1. 像素坐标

跟显示色条不同,要在屏幕上不同的地方显示色块,需要用像素坐标来定位色块。其实,就是分别用行扫描的计数值和场扫描的计数值来表示坐标的x,y值。

  1. VGA显示数字

比如,用屏幕显示计分的数字

本质,是把屏幕分区,然后某些区域输出某些颜色。

贪吃蛇游戏种的食物,蛇头都是一个16*16像素的block,蛇身是若干block组成。

显示的数字,为了计算方便,也用同样的block为基本单位,模拟数码管的分段。

每段2个block宽,8个block长。

以显示数字0为例。

代码:

case (bcd_data[3:0])    //个位数        4'd0:begin    //显示0            if(pos_x[9:4] >= 26 && pos_x[9:4] < 34 && pos_y[9:4] >= 8 && pos_y[9:4] < 10)                vga_rgb = 24'h80ffff;//第0段输出蓝色            else if(pos_x[9:4] >= 26 && pos_x[9:4] < 34 && pos_y[9:4] >= 20 && pos_y[9:4] < 22)                vga_rgb = 24'h80ffff;//第3段输出蓝色            else if(pos_x[9:4] >= 26 && pos_x[9:4] < 28 && pos_y[9:4] >= 8 && pos_y[9:4] < 16)                vga_rgb = 24'h80ffff;//第5段输出蓝色            else if(pos_x[9:4] >= 32 && pos_x[9:4] < 34 && pos_y[9:4] >= 8 && pos_y[9:4] < 16)                vga_rgb = 24'h80ffff;//第1段输出蓝色            else if(pos_x[9:4] >= 26 && pos_x[9:4] < 28 && pos_y[9:4] >= 14 && pos_y[9:4] < 22)                vga_rgb = 24'h80ffff;//第4段输出蓝色            else if(pos_x[9:4] >= 32 && pos_x[9:4] < 34 && pos_y[9:4] >= 14 && pos_y[9:4] < 22)                vga_rgb = 24'h80ffff;//第2段输出蓝色            else                 vga_rgb = 24'h000000;//否则输出黑色        end

这里x,y坐标只取[9:4],是因为每个block都是16*16像素,所以x,y坐标的[3:0]都是0,相当于每个block的左上角的坐标就是这个block的坐标。

参考文献

https://mp.weixin.qq.com/s/WiVS1qC_9hBaoQh0R_wzkQ

VGA色块显示#VGA显示数字的更多相关文章

  1. 学习excel的使用技巧四显示正常的数字

    记得之前在excel中输入一些数字比如输入手机号 就会变成1.E几类似这种 那么怎样显示正常的数字呢 先选中要操作的输入框 1  找到 数字 这个功能的地方 2 设置为 数值  并且小数点为0 3  ...

  2. Java中怎么把科学计数法显示出全部数字

    如果想去除科学计数法显示可以用如下方法处理: /** * 把科学计数法显示出全部数字 * @param d */ public static String object2Str(Object d) { ...

  3. vs 调试 IE显示“无法显示该网页

    在用VS2010调试网站的时候,突然页面不能正常显示了,IE显示“无法显示该网页”.症状一: IE地址栏里面显示的端口号和桌面任务栏右下角“ASP.NET Development Server”的端口 ...

  4. os如何处理键盘的所有按键,显示or不显示,显示是如何显示

    [0]README 0.1) source code and text decription are from orange's implemention of a os , and for comp ...

  5. PL/SQL中文显示都显示成“?”的问题

    PL/SQL中文显示都显示成“?”的问题  首先我在sqlplus里面查询到的中文是正常的,然后再oracle里面的注册表里面看得nls_lang是SIMPLIFIED CHINESE_CHINA.Z ...

  6. Linux显示一行显示列总计

    Linux显示一行显示列总计 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -t total used free shared buffers ca ...

  7. Linux显示只显示目录文件

    Linux显示只显示目录文件 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -l -d */ drwxr-xr-x 2 root root 4096 1 ...

  8. Notepad++同一窗口显示左右显示两份文档

    Notepad++同一窗口显示左右显示两份文档   直接打开一份文档,test1.txt 再打开第二份文档,test2.txt,会显示成这样: 两份文档是以标签的形式展示的,有时需要同时查看两份文档, ...

  9. Highmaps网页图表教程之绘图区显示标签显示数据标签定位

    Highmaps网页图表教程之绘图区显示标签显示数据标签定位 Highmaps数据标签定位 由于数据标签是和节点一一对应,所以数据标签是依据节点位置进行定位的.本节详细讲解如何对数据标签进行定位. H ...

  10. vue :class 可以接收 字符串 数组 和 对象 对象里面的key值 根据true或false 显示不显示

    vue :class 可以接收 字符串 数组 和 对象 对象里面的key值 根据true或false 显示不显示 https://cn.vuejs.org/v2/guide/class-and-sty ...

随机推荐

  1. Jmeter教程-前言

    前言 为什么要撰写这样一个教程呢? 深入学习Jmeter 温故而知新,通过编写教程,我将更深入地学习JMeter.尽管我已经使用JMeter很长时间,但还有许多元件我并不十分了解.为了创作一个详尽且实 ...

  2. 鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)

    一.RelativeContainer 1.概述 ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局. 在RelativeContainer中, ...

  3. .NET分布式Orleans - 6 - 事件溯源

    基本概念 事件溯源(Event Sourcing)是一种设计模式,它记录并存储了应用程序状态变化的所有事件. 其核心思想是将系统中的每次状态变化都视为一个事件,并将这些事件以时间顺序的方式持久化存储. ...

  4. jQuery获得或设置内容和属性、添加属性 append和after的区别

    来自w3school 在线教程 jQuery获得或设置内容和属性 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设 ...

  5. Android弹出UI界面---Toast

    1.默认展示 1 // 第一个参数:当前的上下文环境.可用getApplicationContext()或this 2 // 第二个参数:要显示的字符串.也可是R.string中字符串ID 3 // ...

  6. #树形dp#洛谷 3687 [ZJOI2017]仙人掌

    题目 给定一个简单无向连通图,问有多少种加边方案使得这个图变成简单仙人掌. 分析 首先找到一棵生成树,考虑其它非树边所对应的树的路径上的边最多只能用一次, 这可以用树上差分做,如果一个点到其父节点的边 ...

  7. 强!推荐一款API 接口自动化测试平台!

    在项目开发,迭代交付过程中开发人员,测试人员需要针对系统微服务API做调试,回归测试,性能测试.自动化测试,一个好的平台本质上需要解决API测试的5大基本问题. 1.支持不同的项目,角色,技术人员多人 ...

  8. 华为Push用户增长服务:精准触达,加速增长

    速戳了解华为Push用户增长服务:通过精细化运营,助力开发者高效实现用户增长,提升用户活跃度和粘性! 合作咨询请点此链接 了解更多详情>> 访问华为开发者联盟官网 获取开发指导文档 华为移 ...

  9. 如何跑各种check

    如何进行 Fastcheck? 首先,导入环境变量: export CODE_BASE=/data/openGauss-server export BINARYLIBS=/data/openGauss ...

  10. 域名之A记录,CNAME,NS联系和区别

    域名解析中常常涉及:A记录,CNAME,NS 1. A记录 又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器.说明:指向的目标主机地址类型只能使用IP地址; ...