彩色环显示

项目名称

彩色环显示

具体要求

先显示圆,半径为100,然后在圆外面有圆环,依次形成彩色环

设计说明

     设计架构 与VGA驱动显示相同,不再多说,先将显示区域左上角像素点同步到以(0,0)坐标为起点,确定圆的半径、及中心坐标(320,240),将圆显示区里面的像素点看成是变量(v_x,v_y)。

  根据公式计算出显示区域(v_x-320)^2+(v_y-240)^2<=半径,就可以进行显示。

                                     

 

代码设计

主要代码设计,需要注意的是对变量进行赋值时,赋值不是常数,必须在assign和always块中进行


//圆的中心点坐标(320,240)
parameter ox=10'd320;
parameter oy=10'd240;

// 计算圆的显示区域,屏幕显示区域同步到以0开始的坐标上                                                                     
reg [10:0] cy;
reg [10:0] cx;
always@(*)
	begin
		cx=cnt1-10'd144;
		cy=cnt2-10'd35;
	end
integer v_x;//有符号寄存器类型
integer v_y;
always@(*)
	begin
		v_x=cx-ox;
		v_y=cy-oy;
	end

always@(*)
if(!rst_n)
	vga_rgb<=0;
else	begin
		if((v_x*v_x+v_y*v_y)<=10000)
			vga_rgb<=white;
		else if((v_x*v_x+v_y*v_y)<=16384)
			vga_rgb<=blue;
		else if((v_x*v_x+v_y*v_y)<=24336)
			vga_rgb<=green;
		else if((v_x*v_x+v_y*v_y)<=33856)
			vga_rgb<=red;
		else if((v_x*v_x+v_y*v_y)<=24336)
			vga_rgb<=yellow;
		else if((v_x*v_x+v_y*v_y)<=57600)
			vga_rgb<=cyan;
		else 
			vga_rgb<=royal;
	end	

 显示结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值