3 TỔng quan thiết bị ĐƯa tin vàO 2 Bàn phím (Keyboard)



tải về 262.42 Kb.
trang3/3
Chuyển đổi dữ liệu17.08.2016
Kích262.42 Kb.
1   2   3
3.4.2. Thiết bị quang

Ngµy nay ®Üa quang ®­îc sö dông rÊt phæ biÕn, chóng cã mËt ®é ghi th«ng tin cao h¬n ®Üa tõ th«ng th­êng rÊt nhiÒu. Ban ®Çu c¸c ®Üa quang ®­îc chÕ t¹o vµ ph¸t triÓn nh»m ghi c¸c ch­¬ng tr×nh truyÒn h×nh sau ®ã ®­îc sö dông lµm ph­¬ng tiÖn nhí ngoµi cho m¸y tÝnh.

* Nguyªn lý chÕ t¹o (ghi)

Ng­êi ta t¹o ra c¸c ®Üa CD ROM b»ng c¸ch dïng mét tia laser m¹nh ®èt ch¸y c¸c hèc ®­êng kÝnh 1m trªn mét ®Üa chñ, tõ ®Üa chñ nµy t¹o ra khu«n ®Ó t¹o ra c¸c b¶n copy trªn c¸c ®Üa chÊt dÎo. Sau ®ã ng­êi ta phñ lªn mét líp nh«m máng råi mét líp chÊt dÎo trong suèt lªn trªn líp nh«m ®Ó b¶o vÖ.

C¸c hèc bÞ ®èt gäi lµ c¸c pits (tÝ hiÖu 0), phÇn kh«ng bÞ ®èt gäi lµ c¸c lands (tÝn hiÖu 1), chóng cã ®é t­¬ng ph¶n kh¸c nhau do ®ã cã thÓ ph©n biÖt ®­îc pits vµ lands.

* Tæ chøc th«ng tin

Th«ng tin trªn CDROM ®­îc tæ chøc theo mét ®­êng xo¾n èc duy nhÊt. D÷ liÖu ghi tõng nhãm 24 byte, mçi byte ®Çu tiªn ®­îc më réng thµnh 14 bit. Ba bit ®Æc biÖt ®­îc bæ xung vµo gi÷a c¸c nhãm vµ mét byte ®ång bé ®­îc bæ xung ®Ó t¹o thµnh 1 frame. Mét nhãm 98 frame t¹o thµnh 1 block chøa 2 KB d÷ liÖu cña ng­êi sö dông. Mçi CDROM chøa 270.000 block, cho dung l­îng lµ 553 MB.

* C¸ch ®äc th«ng tin

C¸c ®Üa CDROMs ®­îc ®äc b»ng thiÕt bÞ nh­ m¸y ghe nh¹c CD, dïng mét ®Çu dß (detector) ®o n¨ng l­îng ph¶n x¹ tõ bÒ mÆt ®Üa khi chiÕu lªn bÒ mÆt mét tia laser c«ng xuÊt nhá. D÷ liÖu ®­îc ®äc víi vËn tèc tuyÕn tÝnh kh«ng ®æi lµ 57 inches/sec, cho ta tèc ®é ®äc ghi d÷ liÖu lµ 153,60 KB/sec

* ¦u ®iÓm, nh­îc ®iÓm vµ c¸ch kh¾c phôc:

¦u ®iÓm : c«ng nghÖ chÕ t¹o CDROM b»ng c¸ch dËp khu«n do ®ã gi¸ thµnh 1 CDROM rÊt rÎ, ngoµi ra viÖc ®äc dïng tia laser kh«ng cÇn sù tiÕp xóc c¬ khÝ, bÒ mÆt cã sù b¶o vÖ do ®ã cã ®é tin cËy cao, dung l­îng lín nªn ®­îc sö dông réng r·i.

Nh­îc ®iÓm : viÖc dËp khu«n khã ®¹t ®­îc ®é chÝnh x¸c cao vµ ®ång ®Òu do vËy c¸c th«ng tin sè th­êng cã nhiÒu lçi.

Kh¾c phôc : ®Çu ®äc trong æ ®Üa th­êng cã mét g­¬ng chÝnh x¸c, ®­îc ®iÒu khiÓn bëi mét c¬ cÊu servo nh»m b¸m s¸t bÒ mÆt ®Üa, bï trõ cho c¸c lçi s¶n xuÊt. Thø hai sö dông lo¹i m· söa sai tèt h¬n khi ghi th«ng tin.

3.4.3. Phương pháp tác động

Chóng ta cã thÓ sö dông mét sè ng¾t ®Ó lËp tr×nh trùc tiÕp víi c¶ ®Üa cøng vµ ®Üa mÒm.

BIOS : Ng¾t 13 h cho c¶ ®Üa cøng vµ ®Üa mÒm

Ng¾t 41h chØ tíi b¶ng th«ng sè cña ®Üa cøng 1

Ng¾t 46h chØ tíi b¶ng th«ng sè cña ®Üa cøng 2

DOS : Ng¾t 25h ®äc trùc tiÕp tõ ®Üa cøng

Ng¾t 26h ghi trùc tiÕp vµo ®Üa cøng.

LËp tr×nh ng¾t trong PASCAL

ViÖc gäi ng¾t trong PASCAL còng ®­îc thùc hiÖn theo mÉu trªn.Song ph¶i theo mét sè quy ®Þnh sau:


  • C¸c lÖnh ®­îc sö dông lµ c¸c lÖnh cña PASCAL. LÖnh g¸n t­¬ng ®­¬ng víi lÖnh MOV trong ASSEMBLY

  • NÕu sö dông hÖ ®Õm thËp lôc ph©n,th× ph¶i cµi ®Æt dÊu ‘$’ ®øng tr­íc mçi sè ®ã.

  • Muèn t¸c ®éng trùc tiÕp tíi c¸c thanh ghi cña bé vi xö lý ,ta ph¶i sö dông biÕn cã kiÓu lµ REGISTERS. kiÓu nµy ®­îc quy ®Þnh trong UNIT DOS nh­ sau:

+ KiÓu REGISTERS ®­îc khai b¸o trong UNIT DOS:

TYPE


REGISTERS=RECORD

CASE integer OF

0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:word);

1:(AL,AH,BL,BH,CL,CH,DL,DH:Byte);

END;

+ C¸c thanh ghi cña bé vi xö lý ®­îc quy ®Þnh b»ng c¸c tªn biÕn. Muèn truy nhËp ®Õn c¸c biÕn nµy, ta ph¶i quy ®Þnh vÒ kiÓu b¶n ghi. VÝ dô : R lµ biÕn kiÓu REGISTERS



=>R.AH:=$01; hoÆc with R do AH:=$01;

- Muèn gäi ng¾t trong PASCAL, cã thÓ sö dông thñ tôc:

INTR(,);

VÝ dô : R lµ biÕn kiÓu REGISTERS => INTR($ 10,R);

- Riªng víi sè hiÖu ng¾t 21h ta cã thÓ sö dông thñ tôc

MSDOS();

VÝ dô: INTR($21,R); <=>MSDOS(R);

Mét sè ng¾t th«ng dông



Ng¾t 21h: Ng¾t chøc n¨ng cña DOS

Hµm 01h: Vµo mét kÝ tù tõ bµn phÝm vµ hiÓn thÞ ra mµn h×nh



M« t¶

VÝ dô minh ho¹

Vµo: AH=01h

Ra: AL=M· ASCII cña kÝ tù nhËp vµo



MOV AH,01H

INT 21H


MOV ktu,AL

Hµm 02h: In mét ký tù ra mµn h×nh v¨n b¶n

Vµo AH=02h

DL= m· ASCII cña kÝ tù nhËp vµo

Ra Kh«ng


MOV AH,02H ;In ra mµn h×nh

MOV DL,’A’ ; ch÷ ’A’

INT 21H


Hµm 08h: Vµo mét kÝ tù tõ bµn phÝm,kh«ng hiÓn thÞ kÝ tù ra mµn h×nh

Vµo AH=01h

Ra AL= m· ASCII cña kÝ tù nhËp vµo



MOV AH,08H

INT 21H


MOV ktu,AL

Hµm 09h: In mét chuçi kÝ tù ra mµn h×nh

Vµo AH=09h

DS:DX=Con trá ®Õn chuçi kÕt thóc b»ng ‘$’

Ra Kh«ng


MOV AH,09H

LEA DX,chuçi

INT 21H


Hµm 4Ch: KÕt thóc ch­¬ng tr×nh .EXE

Vµo : AH=4Ch

Ra : Kh«ng



MOV AH,4CH

INT 21H


Hµm 2Ah: X¸c ®Þnh ngµy th¸ng

Vµo : AH=2Ah

Ra : AL=ngµy trong tuÇn(0-6)

CX=n¨m(1980-2099)

DH=th¸ng(1-12)

DL=ngµy(1-31)


R.AH:=$2A

INTR($21,R)

Ngay-tuan:=R.AL;

Nam:=R.CX;

Thang:=R.DH;

Ngay:=R.DL;



Hµm 2Bh: §Æt ngµy th¸ng (§Æt l¹i ngµy hÖ thèng)

Vµo : AH= 2Bh

CX=n¨m(1980-2099)

DH=th¸ng(1-12)

DL= ngµy(1-31)

Ra : AL=0 nÕu ngµy hîp lÖ;

AL=FFh nÕu ngµy kh«ng hîp lÖ



R.AH:=$2B;

Nam:=R.CX;

Thang:=R.DH;

Ngay:=R.DL;

INTR($21,R);

IF R>AL=0 then write(‘OK!’);

Else write(‘Not OK!’);


Hµm 2Ch: X¸c ®Þnh thêi gian hÖ thèng

Vµo: AH=2Ch

Ra : CH=giê(0-23)

CL=phót(0-59)

DH=gi©y(0-59)

DL=phÇn tr¨m gi©y(0-99)


R.AH:=$2C;

NTR($21,R);

Gio:=R.CH;

Phut:=R.CL;

Giay:=R.DH;

Phan_tram:=R.DL




Hµm 2Dh: §Æt thêi gian (§Æt l¹i thêi gian hÖ thèng)

Vµo: AH=2Dh

CH=giê(0-23)

CL=phót(0-59)

DH=gi©y(0-59)

DL=phÇn tr¨m gi©y(0-99)

Ra : AL=0 nÕu thêi gian hîp lÖ

AL=FFh nÕu thêi gian kh«ng hîp lÖ


R.AH:=$2D;

R.CH:=gio;

R.CL:=phut;

R.DH:=giay;

R.DL:=phan_tram;

INTR($21,R);

If R.AL=0 then write(‘OK!’)

Else write(‘Not OK!’);



Hµm 30h: X¸c ®Þnh sè phiªn b¶n cña DOS

Vµo : AH=30h

Ra : BX=0000h

CX=0000h

AL=sè tr­íc dÊu phÈy

AH=sè sau dÊu phÈy


R.AH:=30H

INTR($21,R);

Ver1:=R.AL;

Ver2:=R.AH;

Write(‘MS_DOS Version ‘,ver1,’,’,ver2)


Hµm 36h: X¸c ®Þnh dung l­îng cßn trèng trªn ®Üa

Vµo :AH=36h

DL=æ ®Üa(0_mÆc ®Þnh;1_A;1_B;...)

Ra : BX=Sè liªn cung ch­a dïng

CX=Sè byte/cung

DX=Sè liªn cung / ®Üa

AX=FFFFh nÕu æ ®Üa kh«ng hîp lÖ=sè cung/liªn cung(hîp lÖ)



R.AH:=36H;

R.DL:=1;


INTR($21,R);

Free_cyl:=R.BX;

Bps:=R.CX; {byte per sector}

Cpd:=R.DX; {cylinder per dick}

If AX=$FFFF then write(‘No Dick’)

Else spc:=R.AX; {sector per cylinder);



Ng¾t 10h: Ng¾t mµn h×nh

Hµm 00h: Chän chÕ ®é hiÓn thÞ cho mµn h×nh



Vµo: AH=0h

AL=chÕ ®é

03h:Text 80*25*16

12h:Grapt 640*480*16

13h: Grapt 320*200*256

Ra : Kh«ng



R.AH:=0h;

R.AL:=mode;

INTR($10,R);


Hµm 02h: DÞch chuyÓn Con trá

Vµo: AH=02h

BH=trang sè

DH=hµng

DL=cét


Ra : Kh«ng

R.AH:=02h;

R.BH:=trang;

R.DH:=hang;

R.DL:=cot;

INTR($10,R)


Hµm 06h: Cuèn mµn h×nh hay cöa sæ lªn mét sè dßng x¸c ®Þnh

Vµo: AH=06h

AL=sè dßng cuèn(=0;toµn bé)

BH=thuéc tÝnh cña dßng trèng

CH,DL=dßng,cét gãc trªn tr¸i

DL,DL=dßng,cét gãc d­íi ph¶i

Ra: Kh«ng



R.AH:=06h;

R.AL:=so_dong;

R.BH:=thuoc_tinh;

R.CH:=dong1;R.CL=cot1;

R.DH:=dong2;R.DL=cot2;

INTR($10,R);



Hµm 07h: Cuèn mµn h×nh hay cöa sæ xuèng mét dßng x¸c ®Þnh

Vµo : AH=07h

AL=sè dßng cuèn(=0;toµn bé)

BH=thu«c tÝnh c¸c dßng trèng

CH,CL=dong,cét gãc d­íi ph¶i

Ra : Kh«ng


R.AH:=07h;

R.AL:=so_dong;

R.BH:=thuoc_tinh;

R.CH:=dong1;R.CL=cot1;

R.DH:=dong2;R.DL=cot2;

INTR($10,R);



Hµm 09h: HiÓn thÞ kÝ tù víi thuéc tÝnh t¹i vÞ trÝ Con trá

Vµo: AH=09h

AL=m· ASCII cña kÝ tù

BH=trang sè

BL=thuéc tÝnh(text); mµu(graph)

CX=sè lÇn viÕt kÝ tù

Ra :Kh«ng



R.AH:=09h;

R.AL:=kitu;

R.BH:=0; {trang so 0}

R.BL:=mau;

R.CX=solan;

INTR($10,R);



Ng¾t 16h: Ng¾t bµn phÝm

Hµm 00h: §äc kÝ tù tõ bµn phÝm



Vµo : AH=00h

Ra :AH=m· quÐt cña phÝm

AL=m· ASCII cña kÝ tù


R.AH:=00h;

INTR($16,R);

R.AH:=ma_scan;

R.AL:=ma_ascii;



Hµm 02h: LÊy c¸c cê bµn phÝm

Vµo : AH=02h

Ra : AL=c¸c cê

Bit 7: insert; bit 6:capslock; bit 5:numlock; bit 4:scrollock


R.AH:=00h;

INTR($16,R);

R.AH:=ma_scan;

R.AL:=ma_ascii;



Ng¾t 33h: Ng¾t con chuét

Hµm 00h: Khëi t¹o chuét



Vµo : AX=00h

Ra : AX=FFFFh kh«ng nhËn chuét



R.AX:=00h;

INTR($33,R);

if R.AX=FFFFh then

WRITE('Khong khoi tao duoc chuot!');



Hµm 01h: HiÖn trá chuét

Vµo : AX=01h

Ra : Kh«ng



R.AX:=01h;

INTR($33,R);



Hµm 02h: Èn trá chuét

Vµo : AX=02h

Ra : Kh«ng



R.AX:=02h;

INTR($33,R);



Hµm 03h: Tr¹ng th¸i nhÊn chuét

Vµo : AX=03h

Ra : CX,DX=to¹ ®é ¶o cña chuét.

BX=tr¹ng th¸i nót chuét nhÊn

bit 0: Nót tr¸i

bit 1: Nót ph¶i

bit 2: Nót gi÷a



R.AX:=03h;

INTR($33,R);

X=R.CX shl 3+1;

Y=R.DX shl 3+1;

if (R.BX and 1)=1 then

WRITE('Phim trai chuot!!!');





NV&GD Trang 3 - Bộ môn KTMT
1   2   3


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương