匯編語言入門教程-第九章BIOS和DOS中斷課件_第1頁
匯編語言入門教程-第九章BIOS和DOS中斷課件_第2頁
匯編語言入門教程-第九章BIOS和DOS中斷課件_第3頁
匯編語言入門教程-第九章BIOS和DOS中斷課件_第4頁
匯編語言入門教程-第九章BIOS和DOS中斷課件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.1串行通訊口I/O

在現(xiàn)實生活和工作中,常會有將兩臺計算機實現(xiàn)資源共享和數(shù)據(jù)交換的要求。微機雙機直接通訊的方法有很多種,根據(jù)兩臺微機的距離遠近,可分為近程通訊和遠程通訊,如果兩臺通訊的微機在同一間屋內(nèi)或相距在幾十米到一兩百米內(nèi),稱為近程通訊;如果兩臺微機相距在幾百米到幾千米甚至更遠,則把它們之間的通訊稱為遠程通訊。由于計算機通訊的廣泛應(yīng)用,串行接口已成為個人計算機必備的部件,IBMPC機內(nèi)裝有通訊適配器板,這使得PC機可以和其它配有串行通訊接口的計算機或設(shè)備進行通訊。串行接口每次由CPU得到8位的數(shù)據(jù),然后串行地通過一條線路,每次發(fā)送一位將該數(shù)據(jù)發(fā)送出去。

最常用于個人計算機上的串行接口是標準的RS一232串行接口,它裝于PC機內(nèi)的通訊適配器板上。這個標準串行接口既可用于近程或遠程的數(shù)據(jù)通訊,每個系統(tǒng)中可以有兩個或多個串行控制器連接到不同的外設(shè)上,如IBMPC可連接兩個串行接口(COM1和COM2),但是程序每次只能對一個串口進行存取。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.11第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程兩臺PC機或設(shè)備進行近距離通訊時,可直接將它們連接。當它們進行遠距離通訊時,要使用調(diào)制解調(diào)器(MODEN)連接到電話線上,因為RS一232標準串行接口輸出的是電壓信號,不能直接接到電話線上,調(diào)制解調(diào)器把代表邏輯1和邏輯0的電壓信號轉(zhuǎn)換成能在電話線上傳輸?shù)牟煌l率的信號:電話線另一端的調(diào)制解調(diào)器又把這些不同頻率的信號轉(zhuǎn)換成接口要求的電壓信號。左圖為兩種連接方式的示意圖。

串口的連接方式第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程兩臺P2第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程串口的典型結(jié)構(gòu)許多外部設(shè)備和計算機是按照串行方式來進行通信的。即數(shù)據(jù)是1位1位進行傳輸?shù)?,在傳輸過程中,每1位數(shù)據(jù)都占據(jù)一個固定的時間長度。這種情況下,就要用串行接口把這個外部設(shè)備連接到總線上。當前,可編程的串行接口有許多種。左圖是串行接口部件的典型結(jié)構(gòu),從圖中可以看到,串行接口部件內(nèi)部有4個主要寄存器,即控制寄存器、狀態(tài)寄存器、數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程串口的典型3第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程控制寄存器用來容納CPU送給此接口的各種控制信息,而控制信息決定接口的工作方式。

狀態(tài)寄存器的各位叫狀態(tài)位,每一個狀態(tài)值都可以用來指示傳輸過程中的某一種錯誤或者當前傳輸狀態(tài)。

數(shù)據(jù)輸入寄存器總是和串行輸入/并行輸出移位寄存器配對使用的。在輸入過程中,數(shù)據(jù)1位1位從外部設(shè)備進入接口的移位寄存器,當接收完1個字符以后,數(shù)據(jù)就從移位寄存器送到數(shù)據(jù)輸入寄存器,再等待CPU來取走。

數(shù)據(jù)輸出寄存器和并行輸入/串行輸出移位寄存器配對使用。當CPU往數(shù)據(jù)輸出寄存器中輸出1個數(shù)據(jù)后,數(shù)據(jù)使傳輸?shù)揭莆患拇嫫?,然?位1位地通過輸出線送到外設(shè)。

CPU可以訪問串行接口中的4個主要寄存器。從原則來說,對這4個寄存器可以通過不同的地址來訪問,不過,因為控制寄存器和數(shù)據(jù)輸出寄存器是只寫的,狀態(tài)寄存器和數(shù)據(jù)入寄存器是只讀的,所以,可以用讀信號和寫信號來區(qū)分這兩組寄存器,再用1位地址來區(qū)分2個只讀寄存器或2個只寫寄存器。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程控制寄存器4第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程九針串口線的連接方式9針串行口的針腳功能。

:針腳功能針腳功能

:1載波檢測(DCD)6數(shù)據(jù)準備好(DSR)

:2接受數(shù)據(jù)(RXD)7請求發(fā)送(RTS)

:3發(fā)出數(shù)據(jù)(TXD)8清除發(fā)送(CTS)

:4數(shù)據(jù)終端準備好(DTR)9振鈴指示(RI)

:5信號地線(SG)通訊電纜制作原理:

:串行通訊電纜的制作方法:其串行通訊電纜連接時都遵循下列對接關(guān)系:

:SG←→SG

:TXD←→RXDRXD←→TXD

:RTS←→CTSCTS←→RTS

:DTR←→DSRDSR←→DTR

:根據(jù)上述對接關(guān)系,就可以非常方便地連接串行通訊電纜。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程九針串口線5第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意事項注意事項:

:·為了保證傳輸?shù)男盘栒_、完整,導(dǎo)線的長度最好不要超過2米;并且宜選用計算機專用電纜。

:·導(dǎo)線必須焊接到所對應(yīng)的位置,焊頭連接必須牢固,并且注意不要短路。

:·對于串行通訊電纜,也可使用9針到25針轉(zhuǎn)換接頭來連接其中的一個或兩個串口。

:·電腦商店也有賣“串口通訊電纜”和“并口通訊電纜”的,購買時要注意弄清楚是微機與微機相連的還是微機與外設(shè)相連的,這兩種線的內(nèi)部接法有點不同,弄錯了會造成通訊失敗。

:·不用于連接電纜的接頭(如1、9接頭等)宜懸空。這一點對于自己改造從電腦商店買來的所謂“串行通訊電纜”和“并行通訊電纜”尤其重要。

:·并口線不可能太長,串口線速率又較慢。因此本法所制電纜只適合于那些放得很近并有空閑串并口的微機。對于隨身攜帶筆記本電腦要與其它計算交換數(shù)據(jù)的用戶,本法最適合。

把串行或并行電纜兩端插到兩臺機器對應(yīng)端口上,還不能立即進行數(shù)據(jù)通訊,還必須有通訊軟件的支持。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意事項注6第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程DOS串行通訊口功能

串行通訊接口為輔助設(shè)備,DOS中斷操作如下。讀取操作:INT21H的功能03H是從捕助設(shè)備(第一個串行口COM1)讀一個字符到寄存器AL。發(fā)送操作:功能04H將DL寄存器中的字符傳送給串行設(shè)備,如果輸出設(shè)備正忙,該功能調(diào)用等待,直到設(shè)備準備好接收字符。

注意:在多數(shù)DOS系統(tǒng)中,串行設(shè)備沒有緩沖和中斷,如果串行通訊口或其它輔助設(shè)備送的數(shù)據(jù)比程序處理數(shù)據(jù)快,字符可能丟失。在PC系統(tǒng)中,第一個串行口COM1被初始化為2400波特(所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。),無奇偶校驗位,1個終止位和8位數(shù)據(jù)。其它機器上的DOS實現(xiàn)可能有不同的初始化。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程DOS串行7第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意:DOS沒有提供讀輔助設(shè)備的狀態(tài)和檢測I/O錯誤(如丟失字符等)的功能,但ROM中BIOSINT14H提供了這些功能。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意:D8第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程BIOS串行通訊口功能

IBMPC的BIOS串行通訊提供如下操作:通過INT14H調(diào)用ROMBIOS串行通訊口例行程序。該例行程序包括將串行口初始化為指定的字節(jié)結(jié)構(gòu)和傳輸速率,檢查控制器的狀態(tài),讀寫字符等功能。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程BIOS串9第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程INT14HAH=0功能把指定的串行通訊口初始化為希望的波特率,奇偶性,字長和終止位的位數(shù)。這些初始化參數(shù)設(shè)置在AL寄存器。其各位的含義如下圖所示。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程INT110第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例

要求0號通訊口的傳輸率為2400波特,字長為8位,1位終止位,無奇偶校驗

串口通訊中的錯誤檢測功能在接口設(shè)計中,常常要考慮對錯誤的檢測問題。當前多數(shù)可編程接口,一般能檢測下列兩類錯誤。一類是傳輸錯誤。因為接口和設(shè)備之間的連線常常受噪聲干擾,從而引起傳線錯誤,所以一般傳輸信息時,接口采用奇/偶校驗位對傳輸錯誤進行檢測。傳輸時,如果用奇校驗,那么使信息中1的數(shù)目(包括校驗位)為奇數(shù)。也就是說,所傳輸?shù)臄?shù)據(jù)中如果1的個數(shù)為奇數(shù)則使校驗位為0,所傳輸?shù)臄?shù)據(jù)中如果1的個數(shù)為偶數(shù)則使校驗位為1,這樣,在傳輸一個數(shù)據(jù)時,1的總數(shù)目總是為奇數(shù)。同樣的道理,如果用偶校驗.那么,信息中1的數(shù)目(包括校驗位)為偶數(shù)。接口在傳輸過程中,對信息校驗之后,如果發(fā)現(xiàn)有錯誤,則對狀態(tài)寄存器中的相應(yīng)位進行設(shè)置。而狀態(tài)杏存器的內(nèi)容可以通過程序進行讀取和檢測。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例要11第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程另一類是復(fù)蓋錯誤。我們知道,當計算機輸入數(shù)據(jù)時,實際上是從接口的輸入緩沖寄存器中取數(shù)。如果計算機還沒有取走數(shù)據(jù),輸入緩沖寄存器由于某種原因又被裝上了新的數(shù)據(jù),那么,就全產(chǎn)生一個復(fù)蓋錯誤。在輸出時,也會有類似的情況。

返回參數(shù)中通訊口狀態(tài)字節(jié)各位置1的含義如下圖所示:在接收和發(fā)送過程,錯誤狀態(tài)位(1,2,3,4位)一旦被置為1,則讀入的接收數(shù)據(jù)已不是有效數(shù)據(jù),所以在串行通訊應(yīng)用程序中,應(yīng)檢測數(shù)據(jù)傳輸是否出錯。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程另一類是復(fù)12第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程狀態(tài)錯誤信息奇偶錯;通信線上(尤其是用電話線傳輸時)的噪音引起某些數(shù)據(jù)位的改變,產(chǎn)生奇偶錯通常檢測出奇偶錯時,要求正在接收的數(shù)據(jù)至少應(yīng)重新發(fā)送一段。超越錯:在上一個字符還未被處理機取走,又有字符要傳送到數(shù)據(jù)寄存器里,則會引起超越錯。如果處理機處理字符的速度小于串行通訊口的波持率,則會產(chǎn)生這種錯誤。幀格式錯:當接收/發(fā)送器未接收到一個字符數(shù)據(jù)的停止位,則會引起幀格式錯。這種錯誤可能是由于通信線上的噪音引起停止位的丟失,或者是由于接收方和發(fā)送方初始化不匹配。間斷;間斷有時候并不能算是一個錯誤,而是為某些特殊的通訊環(huán)境設(shè)置的“空格”狀態(tài)。當間斷位為1時,說明接收的“空格”狀態(tài)超過了一個完整的數(shù)據(jù)字傳輸時間。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程狀態(tài)錯誤信13第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例

從通訊口0讀入字符并把它們顯示出來,如果字符沒有準備好則等待,如果傳送有錯則顯示出錯信息“?”。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例14第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.2顯示器I/O顯示器是計算機系統(tǒng)的基本顯示設(shè)備。顯卡VGA的色彩表現(xiàn)能力、編程方便性和顯示速度等性能都直接影響顯示性能。當前流行的都是高分辨率(分辨率為1024×768、1280×1024等)SuperVGA顯示器。本節(jié)主要介紹VGA及其以上的SuperVGA顯示器原理和基本I/O操作控制方法。顯示器任一時刻都必須工作在某一顯示模式下,顯示模式分為兩大類:文本模式圖形模式文本顯示模式I/O

文本模式:由一屏所能顯示字符的行、列數(shù)及字符屬性確定。

例如,文本模式3:80(列)×25(行)彩色文本顯示模式顯存中保存著當前正顯示的一整屏圖像數(shù)據(jù),VGA在顯存與屏幕之間建立了一種自動映射關(guān)系,只要向顯存寫入顯示數(shù)據(jù),屏幕上將立刻顯示出字符或圖形。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.215實際上顯存又被映射到主機系統(tǒng)的一段內(nèi)存地址空間上,這段內(nèi)存地址空間稱為視頻緩沖區(qū)。彩色文本模式下,視頻緩沖區(qū)首地址為B800:0000H。程序讀寫視頻緩沖區(qū),就等效于讀寫顯存。

屏幕上每個顯示字符都對應(yīng)視頻緩沖區(qū)中的兩個字節(jié)單元:第一個單元存顯示字符的ASCII碼第二個單元存該顯示字符的屬性分辨率越高的顯示模式需占用的視頻緩沖區(qū)存儲空間越大。

1)字符屬性

字符的屬性確定了該字符的顯示方式:顯示字符的顏色、背景顏色及是否閃爍、高亮度。next實際上顯存又被映射到主機系統(tǒng)的一段內(nèi)存地址空間上16對于文本模式3,全屏幕有2000字符,需占用視頻緩沖區(qū)存儲空間4000字節(jié)。返回對于文本模式3,全屏幕有2000字符,需占用17例2:采用文本模式3在全屏幕上顯示閃爍的藍底紅色字符A,其屬性字節(jié)為:94H例1:閃爍的藍底紅色字符屬性字節(jié):94H=(10010100)2VGA編程方法:

(1)直接讀寫視頻存儲器(2)利用BIOS中的視頻中斷調(diào)用功能(INT10H)(3)對VGA的寄存器操作+讀寫視頻緩沖區(qū)其中:

方法(1)速度快,可利用SuperVGA的擴展性能方法(2)方便、簡單,但時間開銷較大方法(3)速度快,操作更低層,要求對硬件熟悉例2:采用文本模式3在全屏幕上顯示閃爍的藍底紅色字符A,182)彩色文本模式的BIOS中斷調(diào)用

BIOS中的顯示中斷調(diào)用INT10H有大部分功能是處理文本顯示。計算機開機或熱啟動時,初始模式是彩色文本模式3(參見下表)。用直接寫視頻緩沖區(qū)的方法完成上述功能:mov ax,0b800hmov es,ax mov di,0 ;視頻緩沖區(qū)偏移地址送dimov cx,2000 ;一屏顯示字符的個數(shù)送cxmov ah,10010100b;顯示屬性:閃爍,藍底紅字mov al,A ;顯示字符Arep stosw;字符A顯示到屏幕上

mov ah,00000111b;清屏mov al,

2)彩色文本模式的BIOS中斷調(diào)用BIOS中19AH功能調(diào)用參數(shù)返回參數(shù)/注釋0設(shè)置顯示方式AL=00:40x25黑白文本方式

AL=01:40x25彩色文本方式

AL=02:80x25黑白文本方式

AL=03:80x25彩色文本方式

AL=04:320x200彩色圖形方式

AL=05:320x200黑白圖形方式

AL=06:640x200黑白圖形方式

AL=07:80x25黑白文本方式

AL=0D:320x200彩色圖形方式(EGA)

AL=0E:640x200彩色圖形方式(EGA)

AL=0F:640x350黑白圖形方式(EGA)

AL=10:640x350彩色圖形方式(EGA)

AL=11:640x480黑白圖形方式(VGA)

AL=12:640x480彩色圖形方式(VGA)

AL=13:320x200,256色圖形方式(VGA)10H中斷功能調(diào)用-1AH功能調(diào)用參數(shù)返回參數(shù)/注釋0設(shè)置顯示方式AL=00201置光標類型(CH)0―3=光標開始行

(CL)0―3=光標結(jié)束行2置光標位置BH=頁號

DH=行

DL=列3讀光標位置BH=頁號CH=光標開始行

CL=光標結(jié)束行

DH=行

DL=列4置顯示頁AL=顯示頁號5屏幕初始化或上卷6屏幕初始化或上卷AL=上卷行數(shù)

AL=0全屏幕為空白

BH=卷入行屬性

CH=左上角行號

CL=左上角列號

DH=右下角行號

DL=右下角列號7屏幕初始化或下卷AL=下卷行數(shù)

AL=0全屏幕為空白

BH=卷入行屬性

CH=左上角行號

CL=左上角列號

DH=右下角行號

DL=右下角列號10H中斷功能調(diào)用-21置光標類型(CH)0―3=光標開始行

(CL218讀光標位置的屬性和字符BH=顯示頁AH=屬性

AL=字符9在光標位置顯示字符及其屬性BH=顯示頁

AL=字符

BL=屬性

CX=字符重復(fù)次數(shù)A在光標位置只顯示字符BH=顯示頁

AL=字符

CX=字符重復(fù)次數(shù)E顯示字符(光標前移)AL=字符

BL=前景色光標跟隨字符移動13顯示字符串ES:BP=串地址

CX=串長度

DH,DL=起始行列

BH=頁號

AL=0,BL=屬性

串:Char,char,……,char

AL=1,BL=屬性

串:Char,char,……,char

AL=2

串:Char,attr,……,char,attr

AL=3

串:Char,attr,……,char,attr

光標返回起始位置

光標跟隨移動

光標返回起始位置

光標跟隨串移動10H中斷功能調(diào)用-38讀光標位置的屬性和字符BH=顯示頁AH=屬22圖形顯示模式I/O本節(jié)討論有關(guān)顯示器圖形顯示模式的基本概念、基本原理、圖形顯示技術(shù)及其程序設(shè)計方法。

1)圖形顯示模式圖形模式:利用顯示屏上的像素點來構(gòu)成圖形或圖像。主機——>顯卡——>顯示器——>數(shù)字信號

模擬信號

模擬信號

為減少顯存需求量,VGA采用了一種間接色彩模式(假彩色):

R(6位)G(6位)B(6位)012666666666顏色索引值顯存中只存各顏色在色彩查找表中的顏色索引值,由顏色索引值在色彩查找表中確定像素點的顏色,使顯存空間大大減少。

色彩查找表(18位RGB值)圖形顯示模式I/O本節(jié)討論有關(guān)顯示器圖形顯示模23隨著技術(shù)發(fā)展,現(xiàn)在VGA又采用了直接用RGB三基色亮度值確定像素點顏色的直接色彩模式:

(1)高彩色模式:用15位或16位定義一個像素點顏色的模式。每個基色亮度值占5位或6位:有32級或64級亮度值,可表示32K或64K種顏色。(2)真彩色模式:用24位定義一個像素點顏色的模式。每個基色亮度值用8位表示:有256級亮度值,可表示16M種顏色。

真彩色模式已達到顯示器色彩表現(xiàn)能力的極限。一種圖形模式一般表示為:水平像素點數(shù)垂直像素點數(shù)色彩模式每種顯示模式都有一定的顯存空間需求量,計算公式為:顯存空間需求量=水平像素點數(shù)垂直像素點數(shù)每個像素值占用的二進制位數(shù)隨著技術(shù)發(fā)展,現(xiàn)在VGA又采用了直接用RGB24顯存所映射的視頻緩沖區(qū)地址空間為

A000H:0000H~A000H:FFFFH

VGA采用了位面技術(shù)和顯存分頁機制來解決上述問題:

例如,標準VGA的顯示模式12H表示為:64048016C640×480×4(Bit)=153KB

視頻緩沖區(qū)空間僅僅為64KB,而12H模式(分辨率低)的顯存需求空間就已遠超過64KB,這就產(chǎn)生了地址空間的矛盾。(1)彩色位面法(只用于VGA的16色模式)VGA將多段大小為64KB的顯存同時映射到一個64KB的視頻地址空間,每段64KB的顯存區(qū)稱為一個位面,每一個位面用來提供一個二進制像素點顏色值的一位,所以顯示屏上的像素點的顏色由幾個位面的值共同確定。如何通過小小的視頻緩沖區(qū)地址空間訪問到整個顯存呢?顯存所映射的視頻緩沖區(qū)地址空間為VGA采用了位25彩色位面法

10101101

011011001

10011010

01100110位面(64k)0101品紅0110棕色1位面2位面3位面A000:0HA000:0HA000:0HA000:0H屏幕顯存彩色位面法10101101011026(2)壓縮像素法(主要用于256色的顯示模式)

每個像素值用8位表示,取值0-255,可以表示256種顏色。每個像素值占用一個字節(jié),并且按字節(jié)連續(xù)存放,所以視頻緩沖區(qū)中的一個字節(jié)對應(yīng)顯示屏上的一個像素點。

例:VGA13H模式(320×200×256色)的直接寫像點子程序。入口參數(shù):AX=行坐標,BX=列坐標,CH=顏色值(像素值)vga_color256procnearmovdx,0a000h moves,dx movdx,320muldx addax,bx movdi,axmoves:[di],ch ret vga_color256endpnext(2)壓縮像素法(主要用于256色的顯示模式)27顯存分頁

10101101

0110110011001101001100110頁(64k)1頁2頁A000:0H顯存0頁1頁2頁壓縮像素法返回顯存分頁1010110101101282)BIOS圖形功能調(diào)用

在BIOS的INT10H中斷調(diào)用中的圖形顯示功能,使用簡單方便,當分辨率較高時也不用考慮換頁操作,具體功能如表所示。打印機I/O

打印機接口是一個并行接口,一次可以從處理器接收8位數(shù)據(jù)。IBMPC系列機使用的打印機接口符合CENTRONICS接口標準,凡是符合這種接口標準的外部設(shè)備,都可以連接到打印接口上。

5.6.1打印中斷調(diào)用

通過調(diào)用DOS

INT21H或BIOS

INT17H可以實現(xiàn)對打印機的操作。下表是有關(guān)打印機I/O的中斷操作。2)BIOS圖形功能調(diào)用在BIOS的INT129打印字符:MOVAH,0MOVAL,AMOVDX,0INT17H打印字符:MOVAH,030匯編語言入門教程-第九章BIOS和DOS中斷課件31第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.1串行通訊口I/O

在現(xiàn)實生活和工作中,常會有將兩臺計算機實現(xiàn)資源共享和數(shù)據(jù)交換的要求。微機雙機直接通訊的方法有很多種,根據(jù)兩臺微機的距離遠近,可分為近程通訊和遠程通訊,如果兩臺通訊的微機在同一間屋內(nèi)或相距在幾十米到一兩百米內(nèi),稱為近程通訊;如果兩臺微機相距在幾百米到幾千米甚至更遠,則把它們之間的通訊稱為遠程通訊。由于計算機通訊的廣泛應(yīng)用,串行接口已成為個人計算機必備的部件,IBMPC機內(nèi)裝有通訊適配器板,這使得PC機可以和其它配有串行通訊接口的計算機或設(shè)備進行通訊。串行接口每次由CPU得到8位的數(shù)據(jù),然后串行地通過一條線路,每次發(fā)送一位將該數(shù)據(jù)發(fā)送出去。

最常用于個人計算機上的串行接口是標準的RS一232串行接口,它裝于PC機內(nèi)的通訊適配器板上。這個標準串行接口既可用于近程或遠程的數(shù)據(jù)通訊,每個系統(tǒng)中可以有兩個或多個串行控制器連接到不同的外設(shè)上,如IBMPC可連接兩個串行接口(COM1和COM2),但是程序每次只能對一個串口進行存取。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.132第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程兩臺PC機或設(shè)備進行近距離通訊時,可直接將它們連接。當它們進行遠距離通訊時,要使用調(diào)制解調(diào)器(MODEN)連接到電話線上,因為RS一232標準串行接口輸出的是電壓信號,不能直接接到電話線上,調(diào)制解調(diào)器把代表邏輯1和邏輯0的電壓信號轉(zhuǎn)換成能在電話線上傳輸?shù)牟煌l率的信號:電話線另一端的調(diào)制解調(diào)器又把這些不同頻率的信號轉(zhuǎn)換成接口要求的電壓信號。左圖為兩種連接方式的示意圖。

串口的連接方式第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程兩臺P33第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程串口的典型結(jié)構(gòu)許多外部設(shè)備和計算機是按照串行方式來進行通信的。即數(shù)據(jù)是1位1位進行傳輸?shù)模趥鬏斶^程中,每1位數(shù)據(jù)都占據(jù)一個固定的時間長度。這種情況下,就要用串行接口把這個外部設(shè)備連接到總線上。當前,可編程的串行接口有許多種。左圖是串行接口部件的典型結(jié)構(gòu),從圖中可以看到,串行接口部件內(nèi)部有4個主要寄存器,即控制寄存器、狀態(tài)寄存器、數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程串口的典型34第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程控制寄存器用來容納CPU送給此接口的各種控制信息,而控制信息決定接口的工作方式。

狀態(tài)寄存器的各位叫狀態(tài)位,每一個狀態(tài)值都可以用來指示傳輸過程中的某一種錯誤或者當前傳輸狀態(tài)。

數(shù)據(jù)輸入寄存器總是和串行輸入/并行輸出移位寄存器配對使用的。在輸入過程中,數(shù)據(jù)1位1位從外部設(shè)備進入接口的移位寄存器,當接收完1個字符以后,數(shù)據(jù)就從移位寄存器送到數(shù)據(jù)輸入寄存器,再等待CPU來取走。

數(shù)據(jù)輸出寄存器和并行輸入/串行輸出移位寄存器配對使用。當CPU往數(shù)據(jù)輸出寄存器中輸出1個數(shù)據(jù)后,數(shù)據(jù)使傳輸?shù)揭莆患拇嫫鳎缓?位1位地通過輸出線送到外設(shè)。

CPU可以訪問串行接口中的4個主要寄存器。從原則來說,對這4個寄存器可以通過不同的地址來訪問,不過,因為控制寄存器和數(shù)據(jù)輸出寄存器是只寫的,狀態(tài)寄存器和數(shù)據(jù)入寄存器是只讀的,所以,可以用讀信號和寫信號來區(qū)分這兩組寄存器,再用1位地址來區(qū)分2個只讀寄存器或2個只寫寄存器。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程控制寄存器35第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程九針串口線的連接方式9針串行口的針腳功能。

:針腳功能針腳功能

:1載波檢測(DCD)6數(shù)據(jù)準備好(DSR)

:2接受數(shù)據(jù)(RXD)7請求發(fā)送(RTS)

:3發(fā)出數(shù)據(jù)(TXD)8清除發(fā)送(CTS)

:4數(shù)據(jù)終端準備好(DTR)9振鈴指示(RI)

:5信號地線(SG)通訊電纜制作原理:

:串行通訊電纜的制作方法:其串行通訊電纜連接時都遵循下列對接關(guān)系:

:SG←→SG

:TXD←→RXDRXD←→TXD

:RTS←→CTSCTS←→RTS

:DTR←→DSRDSR←→DTR

:根據(jù)上述對接關(guān)系,就可以非常方便地連接串行通訊電纜。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程九針串口線36第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意事項注意事項:

:·為了保證傳輸?shù)男盘栒_、完整,導(dǎo)線的長度最好不要超過2米;并且宜選用計算機專用電纜。

:·導(dǎo)線必須焊接到所對應(yīng)的位置,焊頭連接必須牢固,并且注意不要短路。

:·對于串行通訊電纜,也可使用9針到25針轉(zhuǎn)換接頭來連接其中的一個或兩個串口。

:·電腦商店也有賣“串口通訊電纜”和“并口通訊電纜”的,購買時要注意弄清楚是微機與微機相連的還是微機與外設(shè)相連的,這兩種線的內(nèi)部接法有點不同,弄錯了會造成通訊失敗。

:·不用于連接電纜的接頭(如1、9接頭等)宜懸空。這一點對于自己改造從電腦商店買來的所謂“串行通訊電纜”和“并行通訊電纜”尤其重要。

:·并口線不可能太長,串口線速率又較慢。因此本法所制電纜只適合于那些放得很近并有空閑串并口的微機。對于隨身攜帶筆記本電腦要與其它計算交換數(shù)據(jù)的用戶,本法最適合。

把串行或并行電纜兩端插到兩臺機器對應(yīng)端口上,還不能立即進行數(shù)據(jù)通訊,還必須有通訊軟件的支持。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意事項注37第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程DOS串行通訊口功能

串行通訊接口為輔助設(shè)備,DOS中斷操作如下。讀取操作:INT21H的功能03H是從捕助設(shè)備(第一個串行口COM1)讀一個字符到寄存器AL。發(fā)送操作:功能04H將DL寄存器中的字符傳送給串行設(shè)備,如果輸出設(shè)備正忙,該功能調(diào)用等待,直到設(shè)備準備好接收字符。

注意:在多數(shù)DOS系統(tǒng)中,串行設(shè)備沒有緩沖和中斷,如果串行通訊口或其它輔助設(shè)備送的數(shù)據(jù)比程序處理數(shù)據(jù)快,字符可能丟失。在PC系統(tǒng)中,第一個串行口COM1被初始化為2400波特(所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。),無奇偶校驗位,1個終止位和8位數(shù)據(jù)。其它機器上的DOS實現(xiàn)可能有不同的初始化。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程DOS串行38第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意:DOS沒有提供讀輔助設(shè)備的狀態(tài)和檢測I/O錯誤(如丟失字符等)的功能,但ROM中BIOSINT14H提供了這些功能。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程注意:D39第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程BIOS串行通訊口功能

IBMPC的BIOS串行通訊提供如下操作:通過INT14H調(diào)用ROMBIOS串行通訊口例行程序。該例行程序包括將串行口初始化為指定的字節(jié)結(jié)構(gòu)和傳輸速率,檢查控制器的狀態(tài),讀寫字符等功能。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程BIOS串40第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程INT14HAH=0功能把指定的串行通訊口初始化為希望的波特率,奇偶性,字長和終止位的位數(shù)。這些初始化參數(shù)設(shè)置在AL寄存器。其各位的含義如下圖所示。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程INT141第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例

要求0號通訊口的傳輸率為2400波特,字長為8位,1位終止位,無奇偶校驗

串口通訊中的錯誤檢測功能在接口設(shè)計中,常常要考慮對錯誤的檢測問題。當前多數(shù)可編程接口,一般能檢測下列兩類錯誤。一類是傳輸錯誤。因為接口和設(shè)備之間的連線常常受噪聲干擾,從而引起傳線錯誤,所以一般傳輸信息時,接口采用奇/偶校驗位對傳輸錯誤進行檢測。傳輸時,如果用奇校驗,那么使信息中1的數(shù)目(包括校驗位)為奇數(shù)。也就是說,所傳輸?shù)臄?shù)據(jù)中如果1的個數(shù)為奇數(shù)則使校驗位為0,所傳輸?shù)臄?shù)據(jù)中如果1的個數(shù)為偶數(shù)則使校驗位為1,這樣,在傳輸一個數(shù)據(jù)時,1的總數(shù)目總是為奇數(shù)。同樣的道理,如果用偶校驗.那么,信息中1的數(shù)目(包括校驗位)為偶數(shù)。接口在傳輸過程中,對信息校驗之后,如果發(fā)現(xiàn)有錯誤,則對狀態(tài)寄存器中的相應(yīng)位進行設(shè)置。而狀態(tài)杏存器的內(nèi)容可以通過程序進行讀取和檢測。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例要42第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程另一類是復(fù)蓋錯誤。我們知道,當計算機輸入數(shù)據(jù)時,實際上是從接口的輸入緩沖寄存器中取數(shù)。如果計算機還沒有取走數(shù)據(jù),輸入緩沖寄存器由于某種原因又被裝上了新的數(shù)據(jù),那么,就全產(chǎn)生一個復(fù)蓋錯誤。在輸出時,也會有類似的情況。

返回參數(shù)中通訊口狀態(tài)字節(jié)各位置1的含義如下圖所示:在接收和發(fā)送過程,錯誤狀態(tài)位(1,2,3,4位)一旦被置為1,則讀入的接收數(shù)據(jù)已不是有效數(shù)據(jù),所以在串行通訊應(yīng)用程序中,應(yīng)檢測數(shù)據(jù)傳輸是否出錯。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程另一類是復(fù)43第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程狀態(tài)錯誤信息奇偶錯;通信線上(尤其是用電話線傳輸時)的噪音引起某些數(shù)據(jù)位的改變,產(chǎn)生奇偶錯通常檢測出奇偶錯時,要求正在接收的數(shù)據(jù)至少應(yīng)重新發(fā)送一段。超越錯:在上一個字符還未被處理機取走,又有字符要傳送到數(shù)據(jù)寄存器里,則會引起超越錯。如果處理機處理字符的速度小于串行通訊口的波持率,則會產(chǎn)生這種錯誤。幀格式錯:當接收/發(fā)送器未接收到一個字符數(shù)據(jù)的停止位,則會引起幀格式錯。這種錯誤可能是由于通信線上的噪音引起停止位的丟失,或者是由于接收方和發(fā)送方初始化不匹配。間斷;間斷有時候并不能算是一個錯誤,而是為某些特殊的通訊環(huán)境設(shè)置的“空格”狀態(tài)。當間斷位為1時,說明接收的“空格”狀態(tài)超過了一個完整的數(shù)據(jù)字傳輸時間。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程狀態(tài)錯誤信44第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例

從通訊口0讀入字符并把它們顯示出來,如果字符沒有準備好則等待,如果傳送有錯則顯示出錯信息“?”。第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程例45第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.2顯示器I/O顯示器是計算機系統(tǒng)的基本顯示設(shè)備。顯卡VGA的色彩表現(xiàn)能力、編程方便性和顯示速度等性能都直接影響顯示性能。當前流行的都是高分辨率(分辨率為1024×768、1280×1024等)SuperVGA顯示器。本節(jié)主要介紹VGA及其以上的SuperVGA顯示器原理和基本I/O操作控制方法。顯示器任一時刻都必須工作在某一顯示模式下,顯示模式分為兩大類:文本模式圖形模式文本顯示模式I/O

文本模式:由一屏所能顯示字符的行、列數(shù)及字符屬性確定。

例如,文本模式3:80(列)×25(行)彩色文本顯示模式顯存中保存著當前正顯示的一整屏圖像數(shù)據(jù),VGA在顯存與屏幕之間建立了一種自動映射關(guān)系,只要向顯存寫入顯示數(shù)據(jù),屏幕上將立刻顯示出字符或圖形。

第一章基礎(chǔ)知識第九章彩色圖形適配器及其編程9.246實際上顯存又被映射到主機系統(tǒng)的一段內(nèi)存地址空間上,這段內(nèi)存地址空間稱為視頻緩沖區(qū)。彩色文本模式下,視頻緩沖區(qū)首地址為B800:0000H。程序讀寫視頻緩沖區(qū),就等效于讀寫顯存。

屏幕上每個顯示字符都對應(yīng)視頻緩沖區(qū)中的兩個字節(jié)單元:第一個單元存顯示字符的ASCII碼第二個單元存該顯示字符的屬性分辨率越高的顯示模式需占用的視頻緩沖區(qū)存儲空間越大。

1)字符屬性

字符的屬性確定了該字符的顯示方式:顯示字符的顏色、背景顏色及是否閃爍、高亮度。next實際上顯存又被映射到主機系統(tǒng)的一段內(nèi)存地址空間上47對于文本模式3,全屏幕有2000字符,需占用視頻緩沖區(qū)存儲空間4000字節(jié)。返回對于文本模式3,全屏幕有2000字符,需占用48例2:采用文本模式3在全屏幕上顯示閃爍的藍底紅色字符A,其屬性字節(jié)為:94H例1:閃爍的藍底紅色字符屬性字節(jié):94H=(10010100)2VGA編程方法:

(1)直接讀寫視頻存儲器(2)利用BIOS中的視頻中斷調(diào)用功能(INT10H)(3)對VGA的寄存器操作+讀寫視頻緩沖區(qū)其中:

方法(1)速度快,可利用SuperVGA的擴展性能方法(2)方便、簡單,但時間開銷較大方法(3)速度快,操作更低層,要求對硬件熟悉例2:采用文本模式3在全屏幕上顯示閃爍的藍底紅色字符A,492)彩色文本模式的BIOS中斷調(diào)用

BIOS中的顯示中斷調(diào)用INT10H有大部分功能是處理文本顯示。計算機開機或熱啟動時,初始模式是彩色文本模式3(參見下表)。用直接寫視頻緩沖區(qū)的方法完成上述功能:mov ax,0b800hmov es,ax mov di,0 ;視頻緩沖區(qū)偏移地址送dimov cx,2000 ;一屏顯示字符的個數(shù)送cxmov ah,10010100b;顯示屬性:閃爍,藍底紅字mov al,A ;顯示字符Arep stosw;字符A顯示到屏幕上

mov ah,00000111b;清屏mov al,

2)彩色文本模式的BIOS中斷調(diào)用BIOS中50AH功能調(diào)用參數(shù)返回參數(shù)/注釋0設(shè)置顯示方式AL=00:40x25黑白文本方式

AL=01:40x25彩色文本方式

AL=02:80x25黑白文本方式

AL=03:80x25彩色文本方式

AL=04:320x200彩色圖形方式

AL=05:320x200黑白圖形方式

AL=06:640x200黑白圖形方式

AL=07:80x25黑白文本方式

AL=0D:320x200彩色圖形方式(EGA)

AL=0E:640x200彩色圖形方式(EGA)

AL=0F:640x350黑白圖形方式(EGA)

AL=10:640x350彩色圖形方式(EGA)

AL=11:640x480黑白圖形方式(VGA)

AL=12:640x480彩色圖形方式(VGA)

AL=13:320x200,256色圖形方式(VGA)10H中斷功能調(diào)用-1AH功能調(diào)用參數(shù)返回參數(shù)/注釋0設(shè)置顯示方式AL=00511置光標類型(CH)0―3=光標開始行

(CL)0―3=光標結(jié)束行2置光標位置BH=頁號

DH=行

DL=列3讀光標位置BH=頁號CH=光標開始行

CL=光標結(jié)束行

DH=行

DL=列4置顯示頁AL=顯示頁號5屏幕初始化或上卷6屏幕初始化或上卷AL=上卷行數(shù)

AL=0全屏幕為空白

BH=卷入行屬性

CH=左上角行號

CL=左上角列號

DH=右下角行號

DL=右下角列號7屏幕初始化或下卷AL=下卷行數(shù)

AL=0全屏幕為空白

BH=卷入行屬性

CH=左上角行號

CL=左上角列號

DH=右下角行號

DL=右下角列號10H中斷功能調(diào)用-21置光標類型(CH)0―3=光標開始行

(CL528讀光標位置的屬性和字符BH=顯示頁AH=屬性

AL=字符9在光標位置顯示字符及其屬性BH=顯示頁

AL=字符

BL=屬性

CX=字符重復(fù)次數(shù)A在光標位置只顯示字符BH=顯示頁

AL=字符

CX=字符重復(fù)次數(shù)E顯示字符(光標前移)AL=字符

BL=前景色光標跟隨字符移動13顯示字符串ES:BP=串地址

CX=串長度

DH,DL=起始行列

BH=頁號

AL=0,BL=屬性

串:Char,char,……,char

AL=1,BL=屬性

串:Char,char,……,char

AL=2

串:Char,attr,……,char,attr

AL=3

串:Char,attr,……,char,attr

光標返回起始位置

光標跟隨移動

光標返回起始位置

光標跟隨串移動10H中斷功能調(diào)用-38讀光標位置的屬性和字符BH=顯示頁AH=屬53圖形顯示模式I/O本節(jié)討論有關(guān)顯示器圖形顯示模式的基本概念、基本原理、圖形顯示技術(shù)及其程序設(shè)計方法。

1)圖形顯示模式圖形模式:利用顯示屏上的像素點來構(gòu)成圖形或圖像。主機——>顯卡——>顯示器——>數(shù)字信號

模擬信號

模擬信號

為減少顯存需求量,VGA采用了一種間接色彩模式(假彩色):

R(6位)G(6位)B(6位)012666666666顏色索引值顯存中只存各顏色在色彩查找表中的顏色索引值,由顏色索引值在色彩查找表中確定像素點的顏色,使顯存空間大大減少。

色彩查找表(18位RGB值)圖形顯示模式I/O本節(jié)討論有關(guān)顯示器圖形顯示模54隨著技術(shù)發(fā)展,現(xiàn)在VGA又采用了直接用RGB三基色亮度值確定像素點顏色的直接色彩模式:

(1)高彩色模式:用15位或16位定義一個像素點顏色的模式。每個基色亮度值占5位或6位:有32級或64級亮度值,可表示32K或64K種顏色。(2)真彩色模式:用24位定義一個像素點顏色的模式。每個基色亮度值用8位表示:有256級亮度值,可表示16M種顏色。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論