首页 > 其他分享 >VGA色块显示#VGA显示数字

VGA色块显示#VGA显示数字

时间:2024-04-19 15:23:37浏览次数:24  
标签:24 显示 色块 VGA pos rgb && block

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

标签:24,显示,色块,VGA,pos,rgb,&&,block
From: https://www.cnblogs.com/halflife/p/18145945

相关文章

  • 3568F-系统启动阶段LOGO显示
      ......
  • [转帖]linux命令top内存显示M兆或者G
     转载自:https://zhuanlan.zhihu.com/p/42665560===============许多Linux命令现在都有使其输出更易于理解的选项。让我们了解一些可以让我们心爱的操作系统更友好的东西。不是每个人都以二进制方式思考,他们不想在大脑中给大数字插入逗号来了解文件的大小。因此,Linux命令......
  • Windows10中多屏显示器型号获取并与Screen对应
    需求:标识某块屏,不参与窗口快速移动@@@codepublicclassMonitor{///<summary>///DeviceID,如:\\.\DISPLAY17///</summary>publicStringDeviceName{get;set;} ///<summary>///名称,如:Def......
  • c# 中 dataGridView控件 显示水平滚动条
    1.最主要的在dataGridView控件属性中的ScrollBars是否设为BothBoth代表水平和垂直方向根据实际需求自动显示滚动条None代表水平和垂直都不显示滚动条Vertical代表只垂直显示滚动条Horizontal代表只水平显示滚动条2.检查表格中每个列的属性,看Frozen应设置为false 如果......
  • FineReport11 报表技巧01- 单元格HTML显示tag颜色标签
    背景FineReport报表制作中,经常需要将某些单元格内容以彩色标签显示,其中根据不同对象内容进行不同展示,效果如下图所示:实现效果为:1、“年龄”列内容根据年龄段不同显示为不同颜色且带边框效果;2、“性别”列性别为“男”显示为蓝色,性别为“女”显示为红色,性别为“未知”显示为灰......
  • 添加行政代码,pyecharts点击省地图,下钻到该省并且显示数据
    1.pyecharts点击省地图,下钻到该省并且显示数据容易出现的问题:1.那就是数据怎么放到图中辣。。摸索挺久的。2.特别注意在放数据到地图中的时候,数值记得转化,卡好久没出数据就是以为没有强制转为数字类型入转为int(xxxx)3.给地图放入数据规范为北京市,天津市,广东省,香港特别行政区......
  • 【小提示】消除Ansible执行rpm命令时显示的警告
    你好。我是AmazonWebServices团队的Sureing。最近,我们的麒麟系统存在openssl漏洞,我把它修好了。于是我使用命令对使用rpm包更新后的openssl进行版本检查当我运行shell模块使用rpm命令时,我收到以下警告:忽略它不会立即导致问题,但它很恶心,因此本文的目的是解决它。[root@host-Am......
  • WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
    实现的效果如果你对此感兴趣,可以接着往下阅读。实现过程绘制矩形比如说我想绘制一个3行4列的表格:privatevoidButton_Click_DrawRect(objectsender,RoutedEventArgse){intRow=3;intCol=4;for(inti=0;i<Row;i++){......
  • 自适应显示图片高度和宽度
    file.previewPath就是图片路径this.getImageSizeFromBlobUrl(file.previewPath).then(size=>{console.log('原图大小:',size.width,'x',size.height);constscreenWidth=window.innerWidth-80;constscre......
  • 【小提示】指定Python版本以消除运行Ansible时显示的警告
    我正在编写Ansible手册来设置Mac。当我运行它时,我收到警告,所以我会调查它并分享我解决的问题。你好。我是AmazonWebServices团队的Sureing。最近,我的Mac键盘无法正常工作,我把它修好了。在此期间,将提供替换设备,但设置为默认设置。您可以手动更改设置,但让我们使用Ansible......