当前位置:首页 » 编程软件 » vga编程

vga编程

发布时间: 2023-02-15 17:27:56

① 显卡寄存器编程原理

目前在个人计算机上广泛使用的是采用阴极射线管(CRT)的光栅扫瞄显示器,我们在屏幕上所看到的颜色是由电子枪发出的电子束打在CRT屏幕背面的萤光层上的点形成的,通过控制点的亮度可以产生不同的颜色。电子束不断地从左到右、从上到下扫瞄整个屏幕,使屏幕显示出图案,电子束以大约每秒70次的速率在屏幕上重画这一图案,这个过程称为显示刷新或屏幕刷新,具体的扫瞄频率依赖于所用的显示适配器(又称为显示卡)。电子束从屏幕的左上角开始向右扫瞄,到达屏幕的右边缘后,电子束被关闭(水平断开),接着它又迅速地返回到屏幕的左边缘(水平回扫)开始进行下一行水平方向的扫瞄,在完成全部的水平方向的扫瞄后,电子束在屏幕的右下角结束,此时电子束被关闭(垂直断开),接着又迅速地返回到屏幕的左上角(垂直回扫),开始下一屏扫瞄。电子束就是这样周而复始地扫瞄整个屏幕。显示器在两种方式下工作:文本方式和图形方式,电脑游戏一般在图形方式下进行。
二.显示器的坐标系统
计算机屏幕上的坐标与我们通常使用的直角坐标系不同,坐标原点(0,0)在屏幕的左上角,向右是水平方向的坐标,向下是垂直方向的坐标,且坐标没有负值。
三.显示卡的结构
显示器上的显示卡负责将图形显示在屏幕上。显示存储器中存放着在屏幕上显示的图像数据,显示卡硬件不停地将显存中的内容显示在屏幕上。显示存储器实际上是安装在显示卡上的一块或几块大规模集成电路,其容量有1M、2M、4M、8M等,在DOS下我们可以访问的内存只有1MB空间(这就是DOS的局限性所在),地址从00000H到FFFFFH,这段内存根据用途又分为不同的块,系统分配给图形缓冲区(显示存储器)的地址在A0000H到BFFFFH之间,大小为128KB,其中,VGA占用了A0000H到AFFFFH段,共64KB,这段地址是内存映射地址,供我们访问显示存储器用。在VGA 13H图形模式下,显示内存使用A0000H到AF9FFH的一段线性内存空间,每个字节表示一个点,对应屏幕上的一个像点,320*200的屏幕分辨率共需要64000个字节,刚好64KB,因为一个字节可以表示的最大整数值为256,所以每个像点就可以表示256种颜色。

② C语言中vga和VGAHI是是什么意思

vga是video graphics array(视频图形阵列适配器)的缩写,是C语言所支持的一种显示器适配器.
VGAHI是vga的一种显示模式,为640*480的高分辨率显示方式.
另外,vga还有640*350的中分辨率显示方式(VGAMED),640*200的低分辨率显示方式(VGALO).

③ 现在电视无VGA接口RT809F怎么写程序

手动设置VGA线序,选择芯片型号,然后读取,最后保存。


编程器的VGA ISP接口通过VGA线和板子正确连接并接好供电,打开软件到主界面,设置VGA线序。


在读取完成以后,点击“保存”按钮,保存文件。填写文件名称时,文件名尽可能详细,包含厂商、板号、屏型号、主芯片型号、存储器型号。

④ 求大神帮我翻译一下这一段FPGA的编程语言~ 关于VGA显示的

entity vga is
Port ( clk : in STD_LOGIC;
clr : in STD_LOGIC;
hsync : out STD_LOGIC;
vsync : out STD_LOGIC;
RGB : out STD_LOGIC_VECTOR (2 downto 0));
end vga;
architecture Be

havioral of vga is
signal h_cnt,v_cnt : integer:=0; //中间变量申明;
signal q : std_logic_vector(2 downto 0) :="000";
signal h,v : std_logic :='0';
begin
process(clk,clr,h_cnt,v_cnt)
begin // 这个进程是对行和场的计数
if clr='1' then
h_cnt<=0; v_cnt<=0;
elsif clk'event and clk='1' then //时钟信号上升沿有效
h_cnt<=h_cnt+1; //行计数
if h_cnt=1039 then
if v_cnt<665 then
h_cnt<=0; v_cnt<=v_cnt+1; //场计数
elsif v_cnt=665 then //一帧结束
h_cnt<=0; v_cnt<=0;
end if;
end if;
end if;
end process;

process(clk,h_cnt) 此进程对行同步信号进行赋值
begin
if clk'event and clk='1' then
if h_cnt<120 then
h<='1';
else h<='0';
end if;
end if;
end process;

process(clk,v_cnt) 此进程对场同步信号进行赋值
begin
if clk'event and clk='1' then
if v_cnt<6 then
v<='1';
else v<='0';
end if;
end if;
end process;

process(clk,clr,h_cnt,v_cnt)
begin
if clr='1' then
q<="000";
elsif (h_cnt>=184 and h_cnt<984 and v_cnt>=29 and v_cnt<629) then //工作区域
if (h_cnt>=184 and h_cnt<284) then //进行区域颜色赋值
q <= "000";
elsif (h_cnt>=284 and h_cnt<384) then
q <= "001";
elsif (h_cnt>=384 and h_cnt<484) then
q <= "010";
elsif (h_cnt>=484 and h_cnt<584) then
q <= "011";
elsif (h_cnt>=584 and h_cnt<684) then
q <= "100";
elsif (h_cnt>=684 and h_cnt<784) then
q <= "101";
elsif (h_cnt>=784 and h_cnt<884) then
q <= "110";
elsif (h_cnt>=884 and h_cnt<984) then
q <= "111";
else q<="000";
end if;
else q<="000";
end if;
end process;
RGB<=q; hsync<=h; vsync<=v;

end Behavioral;

⑤ 跪求专业大神作答:VGA显示学号控制电路问题(硬件编程问题,具体要求如下)

问题4:

如果它不能正常显示模式=线取掉

改变:驱动程序=检测

initgraph(“&驱动器,及模式,”.. \ \ BGI) ;

注意:\ \ BGI是您的计算机c + +编程软件BGI一般默认路径为.. \ \ BGI

主题:学习putpixel画点。

1。程序分析:。

2源代码。

的#include“stdio.h中”

的#include“graphics.h的”

的main()

{

INT I,J,司机= VGA接口,模式= VGAHI ;

initgraph(&驱动器,及模式,“”);

setbkcolor(黄色);

就(i = 50; I <= 230,我+ = 20)

为(J = 50;<= 230; J + +)

putpixel(I,J,1);

为(J = 50;<= 230,J + = 20)就(i = 50; I <= 230; i + +)

putpixel(I,J,1);

}

主题:画椭圆椭圆

1方案分析:。

2源代码。

的#include“stdio.h中”

#包括“图形。H”

的#include“conio.h的”

的main()

{

整型X = 360,Y = 160,驱动器= VGA接口,模式= VGAHI;

整型数= 20,I;

整数顶部,底部;

initgraph(&驱动器,与模式“,” );

顶级= Y-30;

底= Y -30;

就(i = 0;我<民,我+ +)

{

椭圆(250,250,0,360,顶部,底部);

顶= 5;

底+ = 5;

}

的getch();

}

主题:使用椭圆和矩形绘图。 。

1程序分析:

2源代码。

的#include“stdio.h中”

的#include“graphics.h的”

的#include“conio.h的”

的main()

{

整型驱动程序= VGA接口,模式= VGAHI;

INT I,编号= 15,顶部= 50;

整数左边= 20,右边= 50;

initgraph(&驱动器,及模式,“ “);

就(i = 0;我<民,我+ +)

{

椭圆(250,250,0,360,右,左);

椭圆(250,250,0,360 ,20,顶部);

矩形(20-2 * I ,20-2 * I 10 *(I 2),10 *(I 2));

右+ = 5;

左+ = 5;

上衣+ = 10;

}

的getch();

}

主题:其中一个最美丽的设计。 。

1程序分析:

2源代码。

的#include“graphics.h的”

的#include“math.h中”

#包括“DOS.H”

的#include“conio.h的”

#包括“stdlib.h中”

的#include“stdio.h中”

#包括“stdarg头文件。H”

#定义MAXPTS 15

#定义PI 3.1415926

结构分{

整数的x,y;

};

双AspectRatio = 0.85;

无效LineToDemo(无效)

{

结构viewporttype副总裁; 结构PTS点[MAXPTS];

INT I,J,H,W,X中心值,ycenter;

整数半径,角度,步骤;

双拉德;

printf(“请MOVETO / lineTo的示范“);

getviewsettings(&VP);

H = VP。底部 - vp.top;

W = vp.right - vp.left;

X中心值= W / 2; / *判断圆* /

ycenter = H / 2的中心; 半径=(H - 30)/(AspectRatio * 2);

步= 360 / MAXPTS; / *判断#增量* /

角= 0; / *开始在零摄氏度* /

就(i = 0; I <MAXPTS; + I){/ *判断圆拦截* /

拉德=(双)角* PI / 180.0; / *转换角度为弧度* /

点[I] X = X中心值+(int)的(COS(拉德)*半径);

点[I] Y = ycenter - (int)的(罪(拉德)*半径* AspectRatio .. );

角度+ =步骤; / *移动到下一个增量* /

圆(X中心值,ycenter,半径); / *绘制边界圆* /

为( I = 0我“MAXPTS; + I){/ *绘制线到圆* /

为(J =;<MAXPTS; + + J){/ *对于每个剩余的相交* /

MOVETO(点由[i]×,点[I] Y ..); / *移动到的线* /

lineTo的开始(..点[J]×,点[J] Y) ; / *绘制的线* /

}}}

的main()

{诠释驱动程序,模式;

驱动程序= CGA;模式= CGAC0;

initgraph(与司机,及模式,“”);

的setColor(3);

setbkcolor(绿色);

LineToDemo();}

主题:?绘画,画派与圆轮。 。

1程序分析:

2源代码。

/ *循环* /

的#include“graphics.h的”

的main()

{诠释驱动程序,模式,I;

持股量J = 1,K = 1;

驱动程序= VGA;模式= VGAHI;

initgraph(&驱动器,及模式,“”);

setbkcolor(黄色);

就(i = 0;我<= 25; i + +)

{

的setColor(8);

圆(310,250,K);

K = K + J;

当J = J +0.3;

}

}

主题:绘画,学习用线画一条直线。

1程序分析:

2源代码:..

的#include“graphics.h的”

的main()

{诠释驱动程序,模式,I;

持股量X0,Y0,Y1,X1;

持股量J = 12,K;

驱动程序= VGA;模式= VGAHI;

initgraph(&驱动器,及模式,“”);

setbkcolor(绿色);

X0 = 263; Y0 = 263; Y1 = 275; X1 = 275;

就(i = 0; I <= 18; i + +)

{

的setColor(5);

线( X0,Y0,X0,Y1);

X0 = X0-5;

Y0 = Y0-5;

X 1 = X 5;

Y1 = Y1 5; 当J = J +10;

}

X0 = 263; Y1 = 275; Y0 = 263;

就(i = 0; I {

的setColor(5);

线(X0,Y0,X0,Y1);

X0 = X0 +5;

Y0 = Y0 +5; Y1 = Y1-5;

}

}

主题:素描,绘画学校,一个长方形广场。

1方案解析:100-999用于闭环控制数和各比特数分解,十,百。

2的源代码:

的#include“graphics.h的”

的main()

{诠释X0,Y0,Y1,X1,驱动程序,模式,I; 驱动程序= VGA;模式= VGAHI;

initgraph(&驱动器,及模式,“”);

setbkcolor(黄色);

X0 = 263; Y0 = 263; Y1 = 275; X1 = 275;

就(i = 0; I <= 18; i + +)

{

的setColor(1);

矩形(X0,Y0,X1 ,Y1);

X0 = X0-5;

Y0 = Y0-5;

X1 = X1 +5;

Y1 = Y1 +5;

} settextstyle(DEFAULT_FONT,HORIZ_DIR,2);

outtextxy(150,40,“好美啊!”);

线(130,60,480,60);

的setColor( 2);

圆(269269137);

}

主题:素描,全面的例子。 。

1程序分析:

2源代码。

#定义PAI 3.1415926

#定义了B 0.809

的#include“graphics.h的”

的#include“math.h中”

的main()

{

INT I,J,K,X0,Y0,X,Y,驱动程序,方式;

浮起;

驱动程序= CGA;模式= CGAC0;

initgraph(&驱动器,&模式,“”);

的setColor(3);

setbkcolor(绿色);

X0 = 150; Y0 = 100;

圈(X0,Y0,10) ;

圈(X0,Y0,20);

圈(X0,Y0,50);

就(i = 0; I <16; i + +)

{

一=(2 * PAI/16)* I;

X = CEIL(X0 +48 * COS(a)条);

为y = CEIL(Y0 +48 *罪(一) * B);

的setColor(2);线(X0,Y0,X,Y);}

的setColor(3);圈(X0,Y0,60);

/ *使0时间正常大小字母* /

settextstyle(DEFAULT_FONT,HORIZ_DIR,0);

outtextxy(10,170,“按一键”);

的getch();

setfillstyle(HATCH_FILL ,黄色);

FLOODFILL(202,100,白色);

的getch();

为(K = 0,K <= 500,K +)

{的setColor(3);

就(i = 0; I <= 16; i + +)

{

一=(2 * PAI/16)* I +(2 * PAI / 180)* K;

X = CEIL(X0 +48 * COS(a)条);

为y = CEIL(Y0 +48 + SIN(A)* B);

的setColor( 2);线(X0,Y0,X,Y);

}

为(J = 1;<= 50; J + +)

{

为a =( 2 * PAI/16)* I +(2 * PAI/180)* k-1个;

X = CEIL(X0 48 * COS(一));

为y = CEIL(Y0 48 * SIN(A)* B);

线(X0,Y0,X,Y);

}

}

restorecrtmode();

} 主题:素描,全面的例子。 。

1程序分析:

2源代码。

的#include“graphics.h的”

#定义左0

#定义TOP 0

#定义右639

#定义BOTTOM 479

#define语句400

#定义MAXCOLOR 15

的main()

{

整数驱动程序,模式,错误;

整数X1,Y1;

整数X2,Y2;

整数DX1,DY1,DX2,DY2,I = 1;

诠释计数= 0;

整型色= 0;

驱动程序= VGA;

模式= VGAHI ;

initgraph(&驱动器,及模式,“”);

X 1 = X = Y1 = Y2 = 10;

DX1 = DY1 = 2;

DX2 = DY2 = 3 ;



{

线(X1,Y1,X2,Y2)(的kbhit()!);

X1 + = DX1; Y1 + = DY1;

X2 + = DX2; Y2 + DY2;

如果(X1 = RIGHT)

DX1 = - DX1;

如果(Y1 =底部)

DY1 =-DY1;

如果(X2 = RIGHT)

DX2 =-DX2;

如果(Y2 = BOTTOM)

DY2 =-DY2;

如果(+ +计数>线)

{

的setColor(彩色);

颜色=(颜色> = MAXCOLOR )0:? + +的颜色;

}

}

closegraph();
}

⑥ 怎么用根VGA的线刷显示屏

需要VGA编程器
将编程器连到要刷机的显示器VGA口,加电开机,然后操作编程器刷写程序即可。

⑦ VGA彩条信号显示控制器的实验原理是什么

VGA时序信号是图象显示的关键,行场扫描时序的产生,是利用逻辑编程的方法实现的,即用VHDL编写分频器,计时器模块,来获得T1、T2、T3、T4 时序。当输出数字、彩条信号和棋盘格图象时,由外部12M有源晶振提供时钟输入,其中行频HS:12MHZ ÷13÷29=31830Hz、场频VS:31830Hz÷480×0.93=61.67Hz、T1=1/31830Hz×4/29=25.96us、 T2=1/31830Hz×5/29=6.04us、T3为两个行周期(T1+T2),T4为480个行周期。

图象信号包括数字、彩条、棋盘格,和ROM中定制的图形等。数字信号和彩条信号的产生是按行场方向将屏幕各进行8等分,相当于一个8×8的点阵,在对应位置显示相应颜色即可获得所需图像信号;棋盘格信号是将横彩条和竖彩条相异或获得。ROM中定制的较为复杂的彩色图像,需采用像素点输出,即将图像各像素点的信息存储于ROM中,再以一定的频率输出。FPGA器件ROM的定制有两种方法:第一种方法是利用FPGA器件的嵌入式存储器定制LPM_ROM, 用.MIF文件或.HEX文件对其进行初始化,这种方法获得的ROM最大寻址空间为2 12,可以存储一幅分辨率为64×64的图像信息;第二种方法是在FPGA逻辑资源的限度内用VHDL语言定制一个ROM,采用CASE语句对其进行初始化,这种方法获得的ROM在存储深度较大时,编译时对时间的开销较大。ROM初始化完成后,在25MHz的时钟频率下输出存储的图像信息。其图象颜色种类的多少取决于存储空间的大小。
ROM定制的图象信息是利用FPGA嵌入的存储器定制LPM_ROM,可以用于存储一幅64×64分辨率的图像信息,数据线宽为3位,地址线12根,采用组合寻址方式,即行地址HSADDRESS占低6位,场地址VSADDRESS占高6位;若要显示更为复杂的图象信息,只需扩展存储器及寻址的数据线宽度,为了保证行地址信号输出与行扫描信号输出同步,场地址信号输出与场扫描信号输出同步,在VHDL编程时,可用25MHz时钟作为进程的启动信号。输出信号的时序波形如图6所示。各种图象信号的输出是由数据选择器通过VHDL编程实现的。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:748
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:718
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:878
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:911
python股票数据获取 发布:2025-10-20 07:39:44 浏览:875