當前位置:首頁 » 編程軟體 » 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