21
  Nguyn Đình Luyn Bài ging K  thut Vi X Khoa K  thut & Công ngh - Đại Hc Quy Nhơ n 125 CH¦¥NG VI Bé ®Þnh thêi 8253/54 6.1. Bé ®Þnh thêi 8253 * Giíi thiÖu Trong m¸y tÝnh PC ng − êi ta sö dông mét ®ång hå ®Ó ®ång bé ho¹t ®éng cña tÊt c¶ c¸c chip ngo¹i vi nè i tíi CPU. TÇn sè ®ång hå cao nhÊt ®− îc dïng cho bé vi xö lý 80x86. Mét sè thiÕt bÞ ngo¹i vi lµm viÖc víi tÇn sè thÊp h¬n. Bé ®Þnh thêi lËp tr×nh ®− îc PIT 8253/54 (Programable Interval Timer) dïng ®Ó gi¶m tÇn sè ®ång hå theo ®óng yªu cÇu cña c¸c øng dông. Vi m¹ch lËp tr×nh 8253A lµ mét m¹ch ®Õm ® − îc lËp tr×nh (programmable interval timer/counter). Nã thùc hiÖn chøc n¨ng chÝnh trong m¸y tÝnh IBM-PC lµ m¹ch ®iÒu khiÓn thêi gian, ph¸t tÝn hiÖu ®ång hå, kiÓm so¸t one-shot, ®Õm sù kiÖn, ph¸t tÇn sè vµ ®iÒu khiÓn motor. * Tæ chøc s¬ ®å khèi vµ bè trÝ ch©n cña 8253A M¹ch 8253 gåm cã ba bé ®Õm 16 bits cã thÓ lËp tr×nh vµ ho¹t ®éng ®éc lËp víi nhau. Chóng cã thÓ ho¹t ®éng ë Mode ®Õm nhÞ ph©n hoÆc BCD. Cã thÓ chia cÊu tróc cña 8253 lµm 3 phÇn: - Lèi vµo gåm bé ®Öm d÷ liÖu vµo (Data Bus Buffer), m¹ch ®iÒu khiÓn logic ®äc/ghi (Read/Write Logic) vµ thanh ghi tõ ®iÒu khiÓn (Control Word D0-D7 Data RD W  A0  A1 CS count 0 count 1 count 2 BUS d÷ li u vµ ®iÒu khiÓn n i b Bé ®Öm BUS d÷ liÖu  §äc ghi logic Thanh ghi tõ ®/k CLK0 Gate0 Out0 CLK1 Gate1 Out1 CLK2 Gate2 Out2 H×nh 7.1 S¬ ®å chøc n¨ng m¹ch ®Þnh thêi lËp tr×nh ho¸ 8253A

61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6-

Embed Size (px)

Citation preview

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 1/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

125

CH¦¥NG VI

Bé ®Þnh thêi 8253/54

6.1. Bé ®Þnh thêi 8253

* Giíi thiÖuTrong m¸y tÝnh PC ng− êi ta sö dông mét ®ång hå ®Ó ®ång bé ho¹t ®éng

cña tÊt c¶ c¸c chip ngo¹i vi nèi tíi CPU. TÇn sè ®ång hå cao nhÊt ®− îc dïng

cho bé vi xö lý 80x86. Mét sè thiÕt bÞ ngo¹i vi lµm viÖc víi tÇn sè thÊp h¬n. Bé

®Þnh thêi lËp tr×nh ®− îc PIT 8253/54 (Programable Interval Timer) dïng ®Ó

gi¶m tÇn sè ®ång hå theo ®óng yªu cÇu cña c¸c øng dông.

Vi m¹ch lËp tr×nh 8253A lµ mét m¹ch ®Õm ®− îc lËp tr×nh (programmable

interval timer/counter). Nã thùc hiÖn chøc n¨ng chÝnh trong m¸y tÝnh IBM-PC

lµ m¹ch ®iÒu khiÓn thêi gian, ph¸t tÝn hiÖu ®ång hå, kiÓm so¸t one-shot, ®Õm sù 

kiÖn, ph¸t tÇn sè vµ ®iÒu khiÓn motor.

* Tæ chøc s¬ ®å khèi vµ bè trÝ ch©n cña 8253A

M¹ch 8253 gåm cã ba bé ®Õm 16 bits cã thÓ lËp tr×nh vµ ho¹t ®éng ®éc lËp

víi nhau. Chóng cã thÓ ho¹t ®éng ë Mode ®Õm nhÞ ph©n hoÆc BCD.

Cã thÓ chia cÊu tróc cña 8253 lµm 3 phÇn:

- Lèi vµo gåm bé ®Öm d÷ liÖu vµo (Data Bus Buffer), m¹ch ®iÒu khiÓn

logic ®äc/ghi (Read/Write Logic) vµ thanh ghi tõ ®iÒu khiÓn (Control Word

D0-D7

Data

RD

WA0A1CS

count

0

count

1

count

2

BUS d÷ liÖu vµ ®iÒu khiÓn néi bé

Bé ®ÖmBUS d÷ 

liÖu

 §äc ghilogic

Thanh ghitõ ®/k

CLK0Gate0Out0

CLK1Gate1

Out1

CLK2Gate2Out2

H×nh 7.1 S¬ ®å chøc n¨ng m¹ch ®Þnh thêi lËp tr×nh ho¸ 8253A

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 2/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

126

Register).

- Bus néi bé dïng ®Ó chuyÓn sè liÖu vµ c¸c tÝn hiÖu ®iÒu khiÓn gi÷a ®Çu vµo

vµ ®Çu ra.

- §Çu ra gåm cã ba bé ®Õm 16 Bits lµm viÖc trong chÕ ®é ®Õm ng− îc.

•  Khèi Bé ®Öm BUS d÷ liÖu - Data Bus Buffer: Gåm c¸c ®Çu ra D0-D7 lµ c¸c

cæng ba tr¹ng th¸i, cã hai chiÒu ®− îc dïng ®Ó nèi 8253 víi Bus hÖ thèng

cña m¸y tÝnh. Sè liÖu sÏ ®− îc ph¸t hoÆc nhËn nhê c¸c lÖnh INPUT hoÆc

OUTPUT cña BVXL. Bé ®Öm d÷ liÖu cã 3 chøc n¨ng c¬ b¶n sau:

- LËp c¸c Mode lµm viÖc cho 8253.

- N¹p sè liÖu cho c¸c bé ®Õm.

- §äc gi¸ trÞ cña c¸c bé ®Õm.

•  Khèi däc ghi Logic: Gåm cã M¹ch kiÓm so¸t logic ®äc/ ghi nhËn ®iÒu

khiÓn tõ Bus hÖ thèng vµ ph¸t tÝn hiÖu ®iÒu khiÓn cho c¸c khèi chøc n¨ng

cña 8253. M¹ch ®− îc chän hoÆc cÊm bëi tÝn hiÖu CS.•  Thanh ghi tõ ®iÒu khiÓn - Control Word Register

Thanh ghi tõ ®iÒu khiÓn ®− îc chän khi A0, A1 cã gi¸ trÞ logic 1 1, sè liÖu

®− îc ghi tõ Data Bus Buffer vµo thanh ghi ®ã lµ c¸c chÕ ®é lµm viÖc cho c¸c

con ®Õm lµ ®Õm nhÞ ph©n, ®Õm BCD vµ n¹p gi¸ trÞ ®Çu cho mçi con ®Õm.

Control Word Register chØ cã thÓ ghi sè liÖu ®− îc vµo chø kh«ng thÓ ®äc

sè liÖu trªn nã.

•  Ba bé ®Õm Counter #0, Counter #1, Counter#2

Ba bé ®Õm nh−  ®· m« t¶ ë trªn, mçi

bé ®Õm lµ 16 Bits cã thÓ ®Æt ®− îc, lµm

viÖc ë chÕ ®é ®Õm lïi, theo m· nhÞ ph©n

hoÆc BCD ®Çu vµo vµ ®Çu ra cã thÓ lËp

tr×nh qua Control Word Register. ViÖc ®äc

néi dung cña c¸c con ®Õm cã thÓ ®− îc

thùc hiÖn nhê lÖnh ®äc.

* Bè trÝ ch©n cña 8253/54

A0, A1, CS  

Bé ®Þnh thêi 8253/54 cã 3 bé ®Õm.C¸c bé ®Õm lµm viÖc ®éc lËp vµ ®− îc lËp tr×nh riªng ®Ó cã thÓ thùc hiÖn chia

tÇn sè vµo cho gi¸ trÞ n»m trong kho¶ng tõ 1 - 65536. Mçi bé ®Õm ®− îc g¸n

mét ®Þa chØ cæng. Thanh ghi ®iÒu khiÓn dïng chung cho c¶ 3 bé ®Õm cã ®Þa chØ

cæng riªng. Nh−  vËy, bé ®Þnh thêi 8253/54 cã tæng céng 4 cæng. C¸c cæng ®− îc

®Þa chØ ho¸ b»ng c¸c ch©n A0, A1 vµ CS , nh−  giíi thiÖu ë b¶ng 6.1. Mçi bé

CS A1 A0 Cæng

0 0 0 Bé ®Õm 0

0 0 1 Bé ®Õm 1

0 1 0 Bé ®Õm 2

0 1 1 Thanh ghi ®iÒu khiÓn

1 x x Kh«ng chän 8253/54

 

B¶ng 6.1. §Þnh ®Þa chØ cæng cña8253/54

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 3/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

127

®Õm cã 3 ch©n lµ CLK (clock),

GATE vµ OUT (h×nh 6.2).

RD (ch©n 22) lµ tÝn hiÖu cã

møc tÝch cùc thÊp dïng ®Ó b¸o

cho 8253 biÕt r»ng BVXL ®ang

®äc sè liÖu tõ 8253.

WR (ch©n 23) lµ tÝn hiÖu cã

møc tÝch cùc thÊp dïng ®Ó b¸o

cho 8253 biÕt r»ng BVXL ®ang

thùc hiÖn ghi sè liÖu vµo c¸c

thanh gi cña 8253.

CLK

CLK lµ tÇn sè ®ång hå vµo.

§èi víi 8253, tÇn sè nµy cã gi¸ trÞtrong kho¶ng 0-2 MHz. Víi tÇn sè 

trªn 2 MHz cÇn sö dông chip

8254. 8254 cã thÓ lµm viÖc ®− îc

víi tÇn sè ®Õn 8 MHz, cßn 8254-2

- 10 MHz.

OUT

MÆc dï tÇn sè vµo lµ xung

vu«ng víi hÖ sè ®Çy xung 33%, nh− ng cã thÓ lËp tr×nh ®Ó chän d¹ng xung ra ë ch©n OUT sau khi thùc hiÖn chia tÇn sè. Trong sè c¸c tuú chän d¹ng xung cã:

xung vu«ng, xung ®¬n vµ xung vu«ng víi c¸c hÖ sè ®Çy xung kh¸c nhau, tuy

nhiªn kh«ng cã d¹ng h×nh sin hoÆc r¨ng c− a.

GATE

Ch©n Gate ®− îc sö dông ®Ó më hoÆc kho¸ bé ®Õm. §Æt ch©n GATE lªn

møc cao (5 V) cho phÐp më bé ®Õm, tr¸i l¹i ®− a vÒ thÊp (0V) sÏ kho¸ bé ®Õm.

Trong mét sè chÕ ®é, cÇn ®Æt vµo ch©n GATE s− ên xung lªn (tõ 0 lªn 1) ®Ó më 

bé ®Õm.D0-D7

D0-D7 cña 8253/54 lµ bus d÷ liÖu hai chiÒu ®− îc nèi tíi D0-D7 cña bus d÷ 

liÖu hÖ thèng. Bus nµy cho phÐp CPU truy nhËp c¸c thanh ghi cña 8253/54 ë c¶

hai thao t¸c ®äc vµ ghi. Ch©n RD vµ WR (c¶ hai ®Òu tÝch cùc thÊp) ®− îc nèi

tíi c¸c tÝn hiÖu ®iÒu khiÓn IOR vµ IOW cña bus hÖ thèng.

1 242 233 224 215 206 19

7 188 179 1610 1511 1412 13

82

53

VccWR

RD

CSA1A0

CLK2OUT2GATE2CLK1GATE1OUT1

D7D6D5D4D3D2

D1D0CLK0OUT0

GATE 0GND

D7-D0

WR

RD

A0A1

CS

8253

CLK0GATE0OUT0

CLK1GATE1OUT1

CLK2GATE2OUT2

H×nh 7.2. S¬ ®å chøc n¨ng vµ bè trÝ ch©nchip 8253

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 4/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

128

* Khëi t¹o 8253/54

Ba bé ®Õm cña 8253/54 ®Òu ®− îc lËp tr×nh riªng rÏ. §Ó lËp tr×nh cho tõng

bé ®Õm, tr− íc hÕt byte ®iÒu khiÓn cÇn ®− îc ghi vµo thanh ghi ®iÒu khiÓn víi

mét trong nh÷ng néi dung lµ th«ng b¸o d¹ng xung ra cÇn thiÕt cho 8253/54.

Ngoµi ra, gi¸ trÞ dïng ®Ó chia (sè chia) xung ®Çu vµo ph¶i ®− îc ghi vµo bé ®Õm

cña 8253/54. Sè chia nµy cã thÓ lín, vÝ dô FFFF (16 bit), cßn bus d÷ liÖu cña

bé ®Þnh thêi 8253/54 chØ cã 8 bit, dÜ nhiªn sè chia mçi lÇn chØ göi ®− îc mét

byte. 8253/54 ph¶i ®− îc khëi t¹o tr− íc khi sö dông.

* Tõ ®iÒu khiÓn

H×nh 6.3 giíi thiÖu tõ ®iÒu khiÓn 1 byte cña 8253/54. Byte nµy ®− îc göi tíi

thanh ghi ®iÒu khiÓn, vµ gåm c¸c bit nh−  sau:

D0 cho phÐp chän sè chia lµ nhÞ ph©n (0000-FFFFH) hay BCD (0000-

9999H). Sè chia nhá nhÊt cho c¶ hai tuú chän lµ 0001. Sè chia lín nhÊt lµ 216 

(nhÞ ph©n) vµ 104 (BCD). §Ó cã ®− îc sè ®Õm lín nhÊt (65.536 víi sè thËp ph©n

vµ 10000 víi BCD), bé ®Õm cÇn ®− îc n¹p gi¸ trÞ 0.

D1, D2 vµ D3: chän chÕ ®é. Cã 6 chÕ ®é x¸c ®Þnh d¹ng tÝn hiÖu ra.

Mode 0 Ng¾t khi ®Õm hÕt

Mode 1 T¹o 1 xung

Mode 2 Bé t¹o hÖ sè ®Çy xungMode 3 Bé t¹o xung vu«ng

Mode 4 Xung ®− îc kÝch ph¸t b»ng phÇn mÒm

Mode 5 Xung ®− îc kÝch ph¸t b»ng phÇn cøng

H×nh 7.3. Tõ ®iÒu khiÓn 8253/54

D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

0 0 chèt bé ®Õm0 1 chØ ®äc/t¶i LSB1 0 chØ ®äc/t¶i MSB1 1 ®äc/t¶i

LSB tr − íc,

0 0 chän bé ®Õm 00 1 chän bé ®Õm 11 0 chän bé ®Õm 21 1 kh«ng hîp lÖ

0 0 0 Mode 00 0 1 Mode 1x 1 0 Mode 2x 1 1 Mode 31 0 0 Mode 41 0 1 Mode 5

0 Bé ®Õm nhÞ ph©n (16 bit)1 BCD (4 decades)

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 5/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

129

VÝ dô 6.1

Ch©n CS cña 8253/54 ®− îc kÝch ho¹t bëi ®Þa chØ nhÞ ph©n A7-A2

=100101.

a) T×m ®Þa chØ cæng g¸n cho 8253/54.

b) X¸c ®Þnh cÊu h×nh øng víi 8253/54 nÕu thanh ghi ®iÒu khiÓn ®− îc lËptr×nh nh−  sau:

MOV AL,00110110

OUT 97H,AL

Gi¶i:

a) Tõ b¶ng 6.1 chóng ta cã:

CS A1A0 Cæng §Þa chØ cæng (hex)

1001 01 00 Bé ®Õm 0 94

1001 01 01 Bé ®Õm 1 95

1001 01 10 Bé ®Õm 2 961001 01 11 Thanh ghi ®iÒu khiÓn 97

b) So s¸nh tõ ®iÒu khiÓn 00 11 011 0 víi b¶ng 5.1, cã thÓ x¸c ®Þnh ®ã lµ

bé ®Õm 0 v× CS cã gi¸ trÞ lµ 00. RL b»ng 11 x¸c ®Þnh r»ng ®äc/ghi byte

LSB tr− íc vµ MSB sau. Chän chÕ ®é lµ 011 nªn ®©y lµ chÕ ®é 3 (xung

vu«ng) vµ cuèi cïng lµ chän d¹ng ®Õm nhÞ ph©n v× bit D0 = 0.

D4 vµ D5 lµ cho RL0 vµ RL1. Bus d÷ liÖu cña 8253/54 lµ 8 bit (1 byte),

nh− ng sè chia cña tÇn sè vµo cã thÓ lín (FFFFH). V× thÕ, RL0 vµ RL1 ®− îc sö 

dông ®Ó chØ kÝch th− íc cña sè chia. RL0 vµ RL1 cã 3 tuú chän: (1) chØ ®äc/viÕtbyte träng sè cao (MSB), (2) chØ ®äc/viÕt byte träng sè thÊp, (3) ®äc/viÕt LSB

tr− íc vµ MSB sau.

Nh−  vËy, víi c¸c tuú chän cña RL0 vµ RL1, lËp tr×nh viªn kh«ng thÓ ghi

gi¸ trÞ cña sè chia vµo bé ®Þnh thêi 8253/54 song l¹i cã thÓ ®äc néi dung cña bé

®Õm vµo bÊt cø lóc nµo. TÊt c¶ c¸c bé ®Õm ®Òu lµ ®Õm lïi vµ thanh ghi ®Õm lµ

gi¶m, nªn néi dung c¸c thanh ghi ®Õm cã thÓ ®äc ë bÊt cø lóc nµo.

D6 vµ D7 ®− îc sö dông ®Ó chän trong 3 bé ®Õm, bé ®Õm 0, bé ®Õm 1 hay

bé ®Õm 2 ®− îc khëi t¹o b»ng byte ®iÒu khiÓn.

VÝ dô 6.2Sö dông c¸c ®Þa chØ cæng ë vÝ dô 6.1 ®Ó lËp tr×nh:

a) Bé ®Õm 0 víi sè ®Õm nhÞ ph©n, chÕ ®é 3 (t¹o xung vu«ng) vµ chia

CLK0 cho 4282 (BCD).

b) Bé ®Õm 2 víi sè ®Õm nhÞ ph©n, chÕ ®é 3 (t¹o xung vu«ng) vµ chia

CLK2 cho C26AH.

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 6/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

130

c) T×m tÇn sè t¹i OUT0 vµ OUT2 tr− êng hîp (a) vµ (b) nÕu CLK0=1,2

MHz vµ CLK2=1,8 MHz.

Gi¶i:

a) §Ó lËp tr×nh bé ®Õm 0 chÕ ®é 3, chóng ta cã tõ ®iÒu khiÓn lµ 0011011,

v× thÕ:

MOV AL,37H ;bé ®Õm 0, chÕ ®é 3, BCD

OUT 97H,AL ;göi tíi thanh ghi ®iÒu khiÓn

MOV AX,4282H ;n¹p sè chia (BCD)

OUT 94H,AL ;göi byte thÊp

MOV AL,AH ;®Õn bé ®Õm 0

OUT 94H,AL ;vµ sau ®ã göi byte cao ®Õn bé ®Õm 0

b) B»ng c¸ch t− ¬ng tù:

MOV AL,B6H ;bé ®Õm 2, chÕ ®é 3, nhÞ ph©n (hex)

OUT 97H,AL ;göi tíi thanh ghi ®iÒu khiÓnMOV AX,C26AH ;n¹p sè chia

OUT 96H,AL ;göi byte thÊp

MOV AL,AH ;®Õn bé ®Õm 2

OUT 96H,AL ;vµ sau ®ã göi byte cao ®Õn bé ®Õm 2

c) TÇn sè ra cña OUT0 lµ 1,2 MHz : 4282, ®− îc 280 Hz. Chó ý r»ng

ch− ¬ng tr×nh ë phÇn A sö dông lÖnh MOV AX, 4282H do c¸c sè BCD vµ

Hexa cïng biÓu diÔn mét sè nh−  nhau cho ®Õn 9999. Víi OUT2, CLK2 lµ

1,8 MHz chia cho 49770 (do C26AH=49770 D). V× thÕ, ë OUT2 cã xung

vu«ng víi tÇn sè lµ 36 Hz.§Ó lËp tr×nh bé ®Õm cña 8253/54 nh»m x¸c ®Þnh sè chia tÇn sè vµo CLK,

cÇn ph¶i göi sè chia tíi thanh ghi cña bé ®Õm ®ã. Nãi c¸ch kh¸c, mÆc dÇu c¶ 3

bé ®Õm ®Òu dïng chung mét thanh ghi, song c¸c thanh ghi l− u sè chia ®Òu

riªng cho tõng bé ®Õm - nh−  giíi thiÖu ë vÝ dô 6.3.

VÝ dô 6.3

Sö dông c¸c ®Þa chØ cæng ë vÝ dô 6.1, lËp tr×nh cho bé ®Õm 1 chia CLK1

cho 10.000 t¹o ra xung vu«ng chÕ ®é 3. H·y sö dông tuú chän BCD ë 

byte ®iÒu khiÓn.

Gi¶i:

MOV AL,77H ;bé ®Õm 1, chÕ ®é 3, BCD

OUT 97H,AL ;göi ®Õn thanh ghi ®iÒu khiÓn

SUB AL,AL ;AL=0 n¹p sè chia lµ 10000

OUT 95H,AL ;göi byte thÊp

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 7/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

131

OUT 95H,AL ;vµ sau ®ã göi byte cao ®Õn bé ®Õm 1

NÕu sö dông tuú chän thËp ph©n (D0=1) vµ lËp tr×nh cho bé ®Õm víi sè 

chia lµ 9999, th× dÜ nhiªn tÇn sè vµo ®− îc chia cho gi¸ trÞ ®ã. Tuy nhiªn, nÕu sè 

chia lµ 10.000 th× cÇn chuyÓn 0 vµo c¶ 2 byte thÊp vµ cao, nh− giíi thiÖu ë vÝ dô

5.3.

NÕu sö dông tuú chän nhÞ ph©n (D0=0), chóng ta cã thÓ lËp tr×nh cho sè 

chia ®Õn 65.536. §Ó t¹o ®− îc sè chia lµ 65536, ph¶i n¹p 0 vµo byte thÊp vµ byte

cao cña sè chia. 

6.2. Nèi ghÐp v μ lËp tr×nh cho 8253/54

M¸y tÝnh IBM PC sö dông chip 74LS138 ®Ó m· ho¸ ®Þa chØ ch©n CS cña

8253 nh−  giíi thiÖu ë h×nh 6.4. C¸c ®Þa chØ cæng ®− îc chän nh−  b¶ng 6.2, trong

®ã gi¶ thiÕt x lµ 0. Ch− ¬ng 4 ®· tr×nh bµy chi tiÕt viÖc chän lùa c¸c cæng.

B¶ng 6.2. X¸c ®Þnh ®Þa chØ cæng cña 8253/54 ë m¸y tÝnh PC 

§Þa chØ nhÞ ph©n (Binary)

CS A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

§Þa chØ

Hex Chøc n¨ng

1 0 0 0 1 0 x x x 0 0 40 Bé ®Õm 0

1 0 0 0 1 0 x x x 0 1 41 Bé ®Õm 1

1 0 0 0 1 0 x x x 1 0 42 Bé ®Õm 2

1 0 0 0 1 0 x x x 1 1 43 Thanh ghi ®iÒu khiÓn

H×nh 7.4. Chän cæng 8253 ë m¸y tÝnh PC/XT 

A0A1

ABCY2G2B

G2A

A5A6A7A8A9

AEN 

LS138

CS

A0A1

8253

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 8/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

132

 

C¶ ba ®ång hå cña 8253 lµ CLK0, CLK1 vµ CLK2 ®Òu ®− îc nèi tíi mét tÇn

sè kh«ng ®æi lµ 1,1931817 MHz. TÇn sè nµy cã nguån gèc tõ ch©n PCLK cña

chip 8284. Nh−  tr×nh bµy ë ch− ¬ng 1, PCLK cã tÇn sè lµ 2,3863633 MHz. TÇn

sè nµy cÇn ®− îc chia ®«i v× tÇn sè vµo cùc ®¹i cho phÐp CLK cña 8253 lµ 2MHz. Do ®ã ng− êi ta sö dông m¹ch chia ®«i lµ D 74LS175. TÝn hiÖu ra cña

m¹ch D ®− îc ®− a tíi c¸c ch©n CLK cña 8253 (xem h×nh 7.5). GATE0 vµ

GATE1 ®− îc nèi tíi møc cao (5 V) cho phÐp më bé ®Õm 0 vµ bé ®Õm 1 t− ¬ng

øng, vµ nh−  vËy hai bé ®Õm nµy ®− îc më liªn tôc. GATE2 cña bé ®Õm 2 cã thÓ

cho phÐp më hoÆc cÊm nhê ®− êng PB0 cæng B cña 8253. Nh−  vËy, tÇn sè vµo ë 

mçi bé ®Þnh thêi lµ ®− îc biÕt, viÖc lËp tr×nh vµ øng dông tõng bé ®Õm ®· ®− îc

lµm râ.

* Sö dông bé ®Õm 0

CLK0 cña bé ®Õm 0 cã tÇn sè 1,193 MHz vµ GATE0 lu«n ®− îc ®Æt ë møccao, OUT0 cña bé ®Õm 0 ®− îc nèi ®Õn IRQ0 (ng¾t cã møc − u tiªn cao nhÊt)

cña bé ®iÒu khiÓn ng¾t 8259 ®Ó cung cÊp ngµy th¸ng n¨m (vµ dÜ nhiªn cïng c¸c

dÞch vô kh¸c). C©u hái tiÕp theo lµ: IRQ0 ®− îc kÝch ho¹t víi tÇn sè lµ bao

nhiªu? IRQ0 ®− îc kÝch ho¹t 18,2 lÇn trong mét gi©y, hay nãi c¸ch kh¸c - víi

tÇn sè ë ®Çu ra OUT0 lµ 18,2 Hz. TÇn sè CLK0 lµ 1,193 MHz cßn tÇn sè ra lµ

+5v

+5v

1.19 M Hz

(Chia 2)74LS175

RESET

OUT0

OUT1

OUT2

+5

D÷ liÖura loa

 Më PB0loa 8255 Port 61

+5v

74LS38

CLK0

GATE0

8253 

CLK1 GATE1

CLK2

GATE2

DCIKPr CLR

74LS74

18.2 Hz®Õn IRQ0cña 8259

DREQ

cña DMA8237

®Õn cassette

®Õn PC5cña 8255

®Õn m¹ch §K loa

H×nh 6.5. GhÐp nèi chip 8253

2.383MHzPCLK cña 8284

DACKBRD

D Q

CI QPB1 cña 8255Port 61

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 9/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

133

18,2 Hz, nh−  vËy bé ®Õm cÇn ®− îc lËp tr×nh ®Ó ®− îc sè chia b»ng 65.536. Sãng

cã d¹ng xung vu«ng (8253 ë chÕ ®é 3). Ng− êi ta sö dông s− ên d− ¬ng cña xung

vu«ng ®Ó kÝch ph¸t IR0 nh»m tr¸nh nhÇm lÉn víi tr− êng hîp ng¾t nhiÒu lÇn.

Xem h×nh 6.3 vµ víi nh÷ng th«ng tin nªu trªn, cã thÓ tÝnh ®− îc tõ ®iÒu khiÓn

nh−  sau:

D0=0 cho tr− êng hîp sè chia lµ nhÞ ph©n hoÆc hexa. Bé ®Õm thùc hiÖn ®Õm

lïi sau mçi xung vµo cho ®Õn khi ®¹t ®Õn 0 råi sau ®ã gi¸ trÞ ban ®Çu l¹i ®− îc

n¹p l¹i. Do ®ã ®Ó chia tÇn sè vµo cho 65536, gi¸ trÞ 0 ®− îc n¹p cho c¶ byte thÊp

vµ byte cao.

D3D2D1=011, ®©y lµ chÕ ®é 3 cho ra xung vu«ng víi tÇn sè lµ 18,2 Hz.

D4D5=11 ®äc/ghi LSB tr− íc, MSB sau.

D7D6=00 chän bé ®Õm 0.

Nh− 

vËy tõ ®iÒu khiÓn sÏ cã gi¸ trÞ:D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 1 0 1 1 0 = 36H

Ch− ¬ng tr×nh cña bé ®Õm 0 nh−  sau:

MOV AL,36H ;tõ ®iÒu khiÓn

OUT 43H,AL ;®Õn thanh ghi ®iÒu khiÓn cña 8253

MOV AL,00 ;LSB vµ MSB cña bé chia

OUT 40H,AL ;LSB tíi bé ®Õm 0

OUT 40H,AL ;MSB tíi bé ®Õm 0

Nªn l− u ý lµ IR0 kh«ng chØ cung cÊp ngµy th¸ng n¨m. IR0 cã thÓ hç trî BIOS ®Ó kiÓm tra tr¹ng th¸i t¾t më cña ®éng c¬ æ ®Üa mÒm, hoÆc gióp ng− êi

dïng viÕt c¸c ch− ¬ng tr×nh øng dông. Víi tÇn sè 18,2 Hz (hay cø mçi 54,94

ms), BIOS sÏ kÝch ho¹t ng¾t nµy b»ng c¸ch nh¶y tíi INT 1CH cña b¶ng vector

ng¾t. Ng− êi dïng còng cã thÓ ®Þnh nghÜa CS:IP cña ch− ¬ng tr×nh ®Ó trá tíi INT 

1CH. NÕu ng− êi dïng kh«ng sö dông ng¾t nµy, quyÒn ®iÒu khiÓn sÏ tù ®éng tr¶

vÒ BIOS.

* Sö dông bé ®Õm 1

ë bé ®Õm 1, CLK1 ®− îc nèi ®Õn tÇn sè 1,193 MHz cßn GATE ®− îc nèi

trùc tiÕp ®Õn nguån 5 V. §Çu ra OUT1 t¹o ra xung tuÇn hoµn cÇn cho lµm t− ¬i

bé nhí DRAM. Qu¸ tr×nh lµm t− ¬i tõng « nhí ®− îc thùc hiÖn tèi thiÓu 15 μs.

ë m¸y tÝnh IBM PC/XT nhiÖm vô lµm t− ¬i DRAM lµ do DMA 8237 ®¶m

nhiÖm. Chip nµy sö dông bé ®Õm 1 cña 8253 ®Þnh kú th«ng b¸o cho DMA vÒ

thêi gian lµm t− ¬i. §Ó thùc hiÖn nhiÖm vô nµy, OUT1 cung cÊp cho DMA xung

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 10/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

134

réng kho¶ng 15 μs (hay tÇn sè 66,278 Hz). NghÜa lµ, bé ®Õm 1 ph¶i chia tÇn sè 

1,19318 MHz cho 18 (1,19318 MHz : 18 = 66,278 Hz). C©u hái ®Æt ra lµ t¹i sao

xung réng 15 μs? V× ph¶i lµm t− ¬i 128 hµng cña c¸c DRAM 64Kbit vµ 256

Kbit vµ nÕu cø 15 μs ®− îc lµm t− ¬i mét lÇn th× chu kú lµm t− ¬i sÏ lµ 15 μs x

128 = 1,92 ms (®©y lµ thêi gian lµm t− ¬i chÊp nhËn ®− îc v× yªu cÇu kh«ng v− îtqu¸ 2 ms). C¨n cø vµo h×nh 6.3, byte ®iÒu khiÓn sÏ nh−  sau:

D0=0 ®èi víi gi¸ trÞ nhÞ ph©n.

D3D2D1=010, d¹ng xung ra ë chÕ ®é 2. ë chÕ ®é nµy, OUT1 ë møc cao

trong thêi gian 18 xung vµ xuèng møc thÊp trong 1 xung. Qu¸ tr×nh nµy cø thÕ 

®− îc lÆp l¹i .

D5D4=01 chØ cÇn LSB v× byte nµy nhá h¬n FF. CLK1 ®− îc chia cho 18; do

®ã, 18 ghi vµo LSB lµ ®ñ, kh«ng cÇn sö dông MSB.

D7D6=01 chän bé ®Õm 1.

Tãm l¹i tõ ®iÒu khiÓn sÏ nh−  sau:

D7 ...D0

01010100 = 54H

Ch− ¬ng tr×nh bé ®Õm 1 cña 8253 trong BIOS IBM (víi mét sè thay ®æi cho

dÔ hiÓu) nh−  sau:

MOV AL,54H ;tõ ®iÒu khiÓn

OUT 43H,AL ;®Õn thanh ghi ®iÒu khiÓn

MOV AL,18 ;sè chia 18 (hÖ thËp ph©n)

OUT 41H,AL ;®Õn bé ®Õm 1* Sö dông bé ®Õm 2

§Çu ra cña bé ®Õm 2 ®− îc nèi ®Õn 2 thiÕt bÞ kh¸c nhau: loa vµ ch©n PC5

cña 8255. Trong c¸c m¸y IBM PC/XT tr− íc ®©y, ch©n nµy cßn ®− îc nèi tíi

cassette. Tuy nhiªn tuú chän nµy ®· tõ l©u kh«ng cßn ®− îc sö dông. Còng cÇn

l− u ý lµ bé ®Õm 2 trong IBM PC ®− îc dïng ®Ó ph¸t nh¹c, do vËy nh÷ng ai quan

t©m cã thÓ t×m hiÓu tiÕp ë phÇn sau.

* Sö dông bé ®Þnh thêi 2 ®Ó t¹o ©m thanh ë loa

Trong m¸y tÝnh IBM PC, CLK2 ®− îc nèi víi tÇn sè 1,19318 MHz vµ

GATE2 ®− îc lËp tr×nh qua PB0 cña cæng 61H (cæng B). BIOS dïng bé ®Þnh

thêi 2 ®Ó t¹o tiÕng bÝp, tuy nhiªn b¹n cã thÓ thay ®æi ®Ó cã thÓ ch¬i c¸c nèt

nh¹c - nh−  tr×nh bµy ë phÇn tiÕp theo. TiÕng bÝp cã tÇn sè 896 Hz cña chÕ ®é 3

(xung vu«ng). Chia tÇn sè vµo 1,19318 MHz cho 896 Hz ta ®− îc 1331 (0533

hex) lµ gi¸ trÞ ®− îc n¹p vµo bé ®Õm 2. Nh−  vËy, ta cã tõ ®iÒu khiÓn nh−  sau:

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 11/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

135

D7D6D5D4D3D2D1D0 

1 0 1 1 0 1 1 0 = B6H ®èi víi tuú chän nhÞ ph©n, chÕ ®é 3 (xung vu«ng),

LSB tr− íc, MSB sau, bé ®Õm 2.

Ch− ¬ng tr×nh sÏ nh−  sau:

MOV AL,0B6H ;tõ ®iÒu khiÓn

OUT 43H,AL

MOV AL,33H ;byte thÊp

OUT 42H,AL

MOV AL,05 ;byte cao

OUT 42H,AL

hoÆc ch− ¬ng tr×nh cña BIOS IBM:

TIMER EQU

.... ..........

MOV AL,10110110B ;®Æt TIM 2, LSB, MSB, nhÞ ph©nOUT TIMER+3,AL ;ghi vµo thanh ghi chÕ ®é

MOV AX,533H ;sè chia øng víi 896 Hz

OUT TIMER+2,AL ;ghi TIMER 2 CNT - LSB

MOV AL,AH

OUT TIMER+2,AL ;ghi TIMER 2 CNT - MSB

BËt loa dïng PB0 vµ PB1 cæng 61H

ëtÊt c¶ c¸c m¸y tÝnh IBM PC vµ t

− 

¬ng thÝch, tõ 8088 cho ®Õn IntelPentium, qu¸ tr×nh bËt loa lµ nh−  nhau. Nh−  ®· thÊy trªn h×nh 6.5, GATE2 ph¶i

®− îc nèi lªn møc cao ®Ó cung cÊp CLK ®Õn bé ®Õm 2. Chøc n¨ng nµy ® − îc

thùc hiÖn nhê PB0 cña cæng 61H. §Çu ra OUT2 cña bé ®Õm 2 ®− îc nèi vµo

m¹ch AND cïng víi PB1 cña cæng 61H, sau ®ã ®− a vµo m¹ch ®iÒu khiÓn loa.

Do ®ã, khi PB1 cña cæng 61H ë møc cao, nã cho phÐp ®− a OUT2 ra loa. Sau

®©y lµ ®o¹n ch− ¬ng tr×nh bËt loa kªu bÝp (ch− ¬ng tr×nh trong BIOS).

IN AL,61H ;nhËn c¸c thiÕt lËp cña cæng B

MOV AH,AL ;chuyÓn sang AH ®Ó cÊtOR AL,00000011B ;thiÕt lËp PB0=1 vµ PB1=1

OUT 61H,AL ;bËt loa kªu.

{kªu bao l©u do ®o¹n nµy x¸c ®Þnh}

MOV AL,AH ;trë l¹i thiÕt lËp ban ®Çu cña cæng B

OUT 61H,AL ;t¾t loa

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 12/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

136

 

Thêi gian kÐo dµi cña nèt nh¹c sÏ øng víi thêi gian trÔ do bé vi xö lý

80x86 cña m¸y tÝnh t¹o ra.

* T¹o thêi gian trÔ ë c¸c m¸y PC 80x86

RÊt nhiÒu c¸c øng dông cÇn ®Õn thêi gian trÔ. Do viÖc t¹o thêi gian trÔ

trong c¸c m¸y 8088/86 kh¸c víi c¸c m¸y 80286, 386, 486 vµ Pentium nªn

chóng ta sÏ t×m hiÓu riªng.

* T¹o trÔ trong PC/XT 8088/86, PS/2 vµ t− ¬ng thÝch

Ch− ¬ng tr×nh con ®Ó t¹o thêi gian trÔ lµ:

MOV CX,N

AGAIN: LOOP AGAIN

§èi víi CPU 8088/86, lÖnh LOOP thùc hiÖn mÊt 17 chu kú ®ång hå; do ®ã

thêi gian trÔ sÏ xÊp xØ N x T chu kú x 17. VÝ dô, nÕu CX=28000 vµ tÇn sè hÖthèng lµ 4,7 MHz (®èi víi PC/XT ban ®Çu T=210 ns), th× thêi gian trÔ sÏ

kho¶ng 28000 x 210 ns x 17 ≈ 100 ms. Nãi thêi gian trÔ chØ xÊp xØ v× CPU vÉn

"t¹m ng− ng" mçi khi cho phÐp DMA lµm t− ¬i bé nhí. Nãi c¸ch kh¸c, thêi gian

trÔ thùc tÕ cã kh¸c 100 ms chót Ýt. Ch− ¬ng tr×nh cña BIOS PC/XT, do IBM viÕt

®· sö dông ph− ¬ng ph¸p trªn ®Ó t¹o trÔ cho ©m bÝp nh−  sau:

SUB CX,CX

G7: LOOP G7

DEC BL

JNZ G7

Víi CX=65536, “LOOP G7” cho ®é trÔ 250 ms (210 ns x 65536 x 17 =

234 ms), chiÕm thêi gian ®¸ng kÓ ®Ó lµm t− ¬i bé nhí hÖ thèng. BL chøa thêi

gian trÔ 250 ms. NÕu tÇn sè c«ng t¸c 8088/86 lµ 8 MHz (nh−  trong IBM PS/2

25), khi ®ã T = 125 ns (1/8 MHz = 125 ns) th× thêi gian trÔ sÏ ng¾n h¬n nhiÒu.

§iÒu ®ã cã nghÜa lµ ®é trÔ kh«ng chØ phô thuéc vµo tÇn sè mµ cßn phô thuéc

vµo CPU, v× trong 80286 lÖnh LOOP chØ mÊt 8 chu kú ®ång hå (chø kh«ng

ph¶i 17 chu kú ®ång hå nh−  trong CPU 8088/86). T − ¬ng tù, lÖnh LOOP sÏ lµ

11 vµ 7 chu kú ®ång hå trong CPU 386 vµ 486 t− 

¬ng øng . §©y lµ lý do chothÊy tõ c¸c m¸y tÝnh PC/AT trë ®i (80286, 80386, 80486, Pentium.....), IBM sö 

dông m¹ch t¹o trÔ riªng víi thêi gian trÔ kh«ng lÖ thuéc vµo c¶ tÇn sè lÉn CPU.

* Thêi gian trÔ trong IBM PC 80x86 (tõ 286 vÒ sau)

Ph− ¬ng ph¸p t¹o ®é trÔ cè ®Þnh b»ng phÇn cøng ®− îc thùc hiÖn ®Çu tiªn ë 

IBM PC/AT vµ sau ®ã ë tÊt c¶ c¸c m¸y tÝnh 286, 386, 486 Pentium vµ t− ¬ng

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 13/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

137

thÝch. §iÒu nµy cµng cã ý nghÜa khi c¸c bé xö lý sau nµy võa cã tÇn sè lµm viÖc

kh¸c nhau, võa cã sè chu kú lÖnh kh¸c nhau cho cïng mét lÖnh LOOP. §Ó t¹o

®é trÔ kh«ng phô thuéc CPU, IBM ®ãng më PB4 cæng 61H víi thêi giam cø 

15,085 μs mét lÇn. Nh−  vËy, b»ng c¸ch gi¸m s¸t PB4 cæng 61H sÏ nhËn ®− îc

®é trÔ cè ®Þnh - nh− 

ch− 

¬ng tr×nh cña BIOS IBM PC/AT sau ®©y. Tr− 

íc khi gäich− ¬ng tr×nh con WAITF, thanh ghi CX ph¶i l− u thêi gian trÔ lµ sè lÇn cña

15,085 μs.

;(CX) = sè lÇn 15,085 μs

WAITF PROC NEAR

PUSH AX

WAITF1

:

IN AL,61H

AND AL,10H ;kiÓm tra PB4CMP AL,AH ;thùc hiÖn nÕu cã thay ®æi

JE WAITF1 ;chê thay ®æi

MOV AH,AL ;cÊt tr¹ng th¸i PB4 míi

LOOP WAITF1 ;tiÕp tôc cho ®Õn khi CX vÒ 0

POP AX

RET 

WAITF ENDP  

L− u ý, trong c¸c m¸y tÝnh IBM 286, 386, 486, Pentium vµ t− ¬ng thÝch,

cæng B (cæng 61H) ®− îc dïng lµm c¶ cæng vµo vµ ra, kh¸c víi c¸c m¸y tÝnh

IBM 8088/86, trong ®ã cæng B chØ lµ cæng ra.

HiÖn nay, dÔ dµng t¹o ra thêi gian trÔ bÊt kú, kh«ng phô thuéc vµo tÇn sè 

cña CPU. VÝ dô, ®Ó t¹o trÔ 0,5 s, ®Æt CX=33.144 (33.144 x 15,085 μs = 0,5 s),

sau ®ã gäi ch− ¬ng tr×nh con nh− nªu trªn:

MOV CX,33144 ; trÔ 1/2 s

CALL WAITF

VÝ dô 6.4

Sö dông ch− ¬ng tr×nh con WAITF cña BIOS, h·y t¹o trÔ 1,5s

Gi¶i:

§Ó cã trÔ 1,5 s, bé ®Õm ph¶i ®− îc ®Æt gi¸ trÞ 99.436 (1,5/15,085 =

99.436). Gi¸ trÞ lín nhÊt cña CX lµ 65,536, do ®ã cÇn sö dông ph− ¬ng

ph¸p sau:

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 14/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

138

MOV BL,03

BACK: MOV CX,33144 ;trÔ 1/2s

CALL WAITF

DEC BL

JNZ BACK

6.3 CÁC DẠNG SÓNG RA CỦA 8253Phần này sẽ giới thiệu tất cả các dạng xung ra ở cả 3 bộ đếm và

các chế độ của 8253/54 của IBM PC

Hình 6.6 Biểu đồ thời gianDạng xung OUT 0 của BIOS IBMNhư  đã nêu trên, BIOS IBM lập trình bộ  đếm 0 để tạo ra

chế  độ 3, có dạng xung vuông. Vì bộ  đếm 0 được nạp giá tr ị 65536 và chu kỳ  đồng hồ của tần số vào là1/1,193 MHz = 838ns, nên chu kỳ của xung ra OUT 0 sẽ bằng65536x838ns = 54,9ms (18,2 Hz). Nếu số N nạp vào bộ đếm là chẵnthì cả xung cao và xung thấp sẽ có độ r ộng như nhau ( N/2 x 838ns).

Nếu số N là lẻ thì xung cao sẽ có độ r ộng là (N+1)/2 x 838ns còn xungthấp sẽ có độ r ộng là (N-1)/2 x 838ns. Nói cách khác, nếu số nạp vàobộ đếm là lẻ thì phần cao của xung vuông ra sẽ hơi r ộng hơn phầnthấp. Trong tr ường hợp bộ đếm 0, BIOS nạp giá tr ị 65536 là số chẵnnên phần thấp và phần cao của xung vuông bằng nhau và bằng 32.768x 838ns. Một lưu ý quan tr ọng khác là OUT 0 liên tục phát ra xungvuông. Thực tế là khi PC bật nguồn , các chương trình BIOS nạp ngay

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 15/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

139

giá tr ị cho bộ đếm. Ngh ĩ a là không cần nạp lại bộ đếm mỗi khi đếm đến0 vì 8253/54 tự động nạp lại giá tr ị 65536 khi bộ đếm đếm lùi về 0. Việcnạp lại được thực hiện tự động mà không cần sự tr ợ giúp của CPU80x86. Lưu ý là GATE0 luôn đặt ở mức áp cao do vậy bộ đếm 0 luônđược mở.

Dạng xung OUT1 trong BIOS IBMBIOS IBM được lập trình cho bộ đếm 1 ở chế độ 2, bộ chia tần

với giá tr ị nạp vào bộ đếm là 18. Một chu kỳ CLK1 là 838ns nên OUT1có mức cao trong thời gian 17x838ns và sẽ xuống thấp trong một xung838ns. Như vậy, chu kỳ T của OUT1 là 18x838ns. Cuối xung thứ 18,bộ đếm 1 tự nạp lại giá tr ị ban đầu mà không cần sự tr ợ giúp của CPU80x86 và quá trình tiếp tục nếu như máy vẫn được cấp nguồn. Lưu ý làGATE1 luôn ở mức cao làm bộ đếm 1 làm việc liên tục.

Dạng xung OUT2 của BIOS IBM

Như giới thiệu ở phần trên, nếu số N nạp vào bộ đếm là chẵn thìcả xung cao và thấp có độ dài như nhau là (N/2 x 838ns ) và xung thấplà (N-1)/2 x 838ns. BIOS IBM nạp giá tr ị 1331 vào bộ đếm 2. Vì 1331 làlẻ nên xung cao OUT2 có độ r ộng là (1331+1)/2 x838ns Còn xung thấplà (1331 -1 )/2 x838ns Hình 5.6 .Nói cách khác, hệ số đầy xung hơi lớnhơn 50% , chu kỳ T là 1331x838ns [(666+665)]x838ns.Phần sau đâysẽ trình bày 6 chế độ của 8253/54.

Các chế độ làm việc của 8253/54 8253/54 có tất cả 6 chế độ công tác, từ chế độ 0 đến chế độ 5.

Sáu chế độ này đều có ở 3 bộ đếm của 8253/54. Phần này sẽ trình bày

từng chế độ. Lưu ý là các ví dụ này chỉ mang hàm ý làm rõ khái niệmchế  độ làm việc, chứ thực tế bạn không cần lập trình các bộ  đếm8253/54 với các giá tr ị như vậy, mặc dầu bạn có thể nối 8253/54 tớibus PC và kiểm tra các ví dụ này. 6 chế độ của 8253/54 có thể phânthành hai nhóm :

-  Nhóm thứ nhất  : Sau khi lập trình cho bộ đếm, đầu ra OUT cótín hiệu ra mong muốn chỉ khi GATE = 1 .

-  Nhóm thứ  hai : Sau khi lập trình cho bộ đếm, đầu ra OUT cótín hiệu ra mong muốn chỉ khi GATE chuyển từ 0 lên 1 .Nhómthứ hai được gọi là kích phát cứng, hay lập trình được. Sau

đây chúng ta tìm hiểu từng chế độ.Chế độ 0 : Ngắt khi đếm kết thúcTrong chế độ này, đầu tiên tín hiệu ra ở mức thấp, sau đó mức

này tiếp tục được duy trì nếu GATE =1. Độ r ộng của xung ra thấp đượctính như sau :

Độ r ộng của xung ra thấp = NxT. 

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 16/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

140

Trong đó, N là số đếm được nạp vào bộ đếm, còn T là chu kỳ củatín hiệu vào CLK. Khi đếm kết thúc, lối ra sẽ chuyển lên cao và giữ ở mức cao cho đến khi từ điều khiển mới hoặc số đếm mới lại được nạpvào.

Ví dụ 6.5Giả sử GATE1 = 1, CLK1 =1Mhz và số đếm N=1000. Xác định tín hiệura ở đầu ra OUT1 nếu lập trình ở chế độ 0.Giải :Chu kỳ của CLK1 là 1μs; do đó tr ước khi chuyển lên mức cao, tín hiệu

ra OUT1 là thấp trong khoảng thời gian 1000x1μs =1ms.

Ở chế  độ này, nếu đầu vào GATE xuống mức thấp khi đangtrong quá trình đếm, thì việc đếm sẽ dừng và đầu ra sẽ tr ở về thấp.Việc đếm được tiếp tục khi cổng GATE tr ở lại mức cao. Thời gian dừngnày sẽ cộng tiếp vào tổng thời gian mà lối ra ở mức thấp (kể từ lúcGATE lên mức cao ).

Ví dụ 6.6Trong ví dụ 6.5, giả sử GATE1 = 0 trong khoảng 400ms.  Độ r ộng xungthấp của OUT1 là bao nhiêu ?Giải : Độ r ộng xung thấp của OUT1 sẽ là 1000μs +400μs =1400μs

400 s

1400 s

GATE1= 1

OUT1

WR 

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 17/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

141

Chế độ 1 : Chế độ 1 xungChế độ này còn được gọi là chế độ một xung kích phát bằng

phần cứng . Việc kích phát được thực hiện bằng cách gửi qua chânvào GATE một xung từ mức 0 lên 1 (sườn dương). Trong các chế độ được lập trình của 8253/54, ví dụ như chế độ 1, bộ đếm cần thực hiện

qua hai bước như sau :1. Nạp các thanh ghi đếm.2. Gửi một xung từ 0 lên 1 đến đầu vào GATE để kích phát bộ 

đếm.

Ví dụ 6.7a.Vẽ tín hiệu ra OUT1 nếu CLK1=1MHz, N=500 và lập trình ở chế độ 1.b. Vẽ dạng sóng ra ở OUT1 nếu sau 150 xung đồng hồ, GATE1 lạiđược kích phát .Giải :

a.Chú ý OUT1 sẽ xuống thấp chỉ khi GATE1 từ 0 lên 1 .

b.Nếu GATE1 được kích phát sau 150 xung đồng hồ, COUNT1được nạp lại giá tr ị N=500 và quá trình đếm bắt đầu lại từ đầu sẽ tạo

xung ra r ộng 650μs như hình sau :

Ở chế độ 0, bộ đếm tạo xung ra ngay sau khi bộ đếm được nạp,với điều kiện GATE1 =1. Ở chế độ 1, sau khi sườn dương được đưađến đầu vào GATE, đầu ra OUT xuống thấp và duy trì mức này trongkhoảng thời gian NxT, sau đó lại chuyển lên mức cao cho đến khiGATE được kích phát tr ở lại.Giống như mạch đa hài đợi, khi được kíchphát thì đầu ra sẽ tr ở lại tr ạng thái tích cực trong một thời gian, sau đó

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 18/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

142

tr ở lại tr ạng thái nghỉ .  Đối với 8253/54, chúng ta có thể lập trình xácđịnh khoảng thời gian đa hài đợi ở tr ạng thái tích cực.  Độ r ộng xungthấp ở đầu ra là NxT, trong đó T là chu kỳ của CLK còn N là số đếm.Nếu trong quá trình đếm, chân GATE lại được kích phát thì bộ đếm sẽ được nạp lại số đếm N và bộ đếm bắt đầu quá trình lại từ đầu (xem

hình ví dụ 6.7)Lưu ý trong chế độ này việc đếm chỉ  bắt đầu khi sườn dương

(xung từ 0 lên 1) đặt đến đầu vào GATE.  Đó chính là lý do có tên gọilập trình được hay kích phát cứng.  Đây cũng là điểm khác với nhiềuchế độ khác, ở đó bộ đếm bắt đầu vào lúc nạp số đếm. Nói cách khác,trong kích phát cứng, sau khi nạp số đếm , chúng ta phải gửi sườnxung 0 lên 1 đến đầu vào GATE để kích phát bộ đếm.

Chế độ 2 : Máy phát sóng tỉ lệ .Chế độ 2 còn được gọi là bộ đếm chia cho N. Trong chế độ này

nếu đầu vào GATE =1 thì đầu ra OUT sẽ ở mức cao trong khoảng thời

gian NxT chu kỳ, r ồi chuyển xuống thấp trong một xung nhịp, sau đóviệc đếm được nạp lại tự động và quá trình cứ thế tiếp tục. Kết quả làchế độ này tạo thành bộ đếm chia cho N. Một chu kỳ tín hiệu ra OUT là(N+1)xT, trong đó tín hiệu cao trong khoảng NxT , còn tín hiệu thấp chỉ  trong 1 chu kỳ T (xem ví dụ 6.8) .

Ví dụ 6.8Cho CLK2 =1MHz, GATE2 =1 và N=750, vẽ tín hiệu ra OUT2 nếu

COUNT2 được lập trình ở chế độ 2.Giải :Chú ý là số đếm được nạp lại tự động và bộ đếm tiếp tục tạo ra OUT2.

Chế độ 3 : Bộ tạo xung vuôngỞ chế độ này, nếu GATE =1 thì đầu ra OUT là xung vuông với độ 

r ộng xung cao bằng độ r ộng xung thấp khi N chẵn. Như vậy, phần caovà phần thấp của xung chiếm khoảng thời gian như nhau và bằng(N/2)xT, trong đó N là số đếm xung đồng hồ, còn T là chu kỳ đồng hồ.

Trong chế độ này, số đếm được tự động nạp lại khi đếm kết thúc, dođó tạo ra dãy xung vuông liên tục có tần số là 1/N so với tần số CLK.Chế độ 3 tương tự như chế độ 2 tuy nhiên ở chế độ 3 hệ số đầy xunglà 50%. Tr ường hợp N lẻ, số xung cao sẽ có một nhịp dài hơn như đãtrình bày ở trên.

Thực tế, chế độ 3 chia CLK cho N để tạo ra xung vuông có dạnggiống như xung đầu vào, chỉ khác về tần số. Chế độ này được sử dụng

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 19/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

143

r ộng rãi để làm bộ chia tần và bộ tạo sóng âm tần (tạo tone) như đãthấy trong IBM PC. Trong chế độ này, nếu đầu vào GATE xuống thấpthì quá trình đếm lùi sẽ ngừng và việc đếm chỉ  được tiếp tục khi GATE=1 (xem ví dụ 6.9 ).

Ví dụ 6.9

Nếu CLK2 =1MHz , GATE1=1 và N=1000, vẽ tín hiệu ra OUT1nếu COUNT1 được lập trình ở chế độ 3.Giải :

Vì chu kỳ nhịp là 1μs , OUT1 là cao trong 500μs và thấp trong

500μs tạo ra xung vuông có chu kỳ 1ms. Dạng tín hiệu ra OUT1 như sau :

Chế độ 4 : Xung kích phát bằng phần mềmTrong chế độ này, nếu GATE=1 thì đầu ra sẽ có mức cao trong

khi nạp số đếm. Khoảng thời gian ở mức cao sẽ là NxT, trong đó N làsố đếm còn T là chu kỳ đồng hồ. Sau khi đếm đến 0 (kết thúc đếm),đầu ra sẽ tr ở về thấp trong một xung đồng hồ, sau đó tr ở lại mức caovà ở lại mức cao đó cho đến khi nạp một từ lệnh mới hoặc số đếmmới. Để lặp lại xung trích mẫu, số đếm cần phải được nạp lại. Nói cáchkhác , chế độ này không tự động nạp lại số đếm khi kết thúc đếm.

Chế độ 4 tương tự như chế độ 2, chỉ  có điểm khác là bộ đếmkhông tự động nạp lại. Ở chế độ này, nếu đầu vào GATE xuống thấpthì việc đếm dẽ dừng và đầu ra sẽ ở mức cao. Việc đếm chỉ  được tiếptục khi GATE tr ở lại lên mức cao khoảng thời gian bộ đếm bị dừngđược cộng vào tổng thời gian đầu ra ở mức cao (xem ví dụ 6.10 ).

Ví dụ 6.10Nếu CLK0 = 1MHz, GATE0=1 và N=600, xác định tín hiệu ra OUT0nếu COUNT0 được lập trình ở chế độ 4.Giải :

Chu kỳ CLK0 là 1μs, sau khi số đếm được nạp, OUT0 ở mức cao trongkhoảng 600μs và sẽ xuống thấp trong 1μs, sau đó lại lên mức cao và ở đó cho đến khi bộ đếm được lập trình lại.  Đầu ra OUT0 có dạng như sau :

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 20/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

144

 

Cũng cần phải lưu ý là ở chế độ này việc đếm được bắt đầu tạithời điểm số đếm được ghi vào bộ đếm .  Đây chính là lý do có tên gọikích phát bằng phần mềm. Chế độ 5 cũng tương tự như chế độ 4, tr ừ một điểm là việc kích phát được thực hiện thông qua đầu vào GATE.xem ví dụ 6.11.

Ví dụ 6.11Nếu CLK1 = 1MHz và N=400, vẽ tín hiệu ra OUT1 nếu nó được

lập trình ở chế độ 5.

Giải:Việc đếm chỉ  được bắt đầu khi đặt sườn xung 0 lên 1 đến GATE1.

Chế độ 5 : Xung mẫu kích phát bằng phần cứngChế độ này tương tự như chế độ 4 ngoại tr ừ kích phát phải được

thực hiện ở đầu vào GATE. Việc đếm chỉ bắt đầu khi có sườn dương(xung từ 0 lên 1) đưa đến đầu vào GATE.  Đây là điểm khác với chế độ 4 - việc đếm được bắt đầu ngay khi nạp số đếm, miễn là GATE1 =1.Nói cách khác, đối với chế độ 5, sau khi số đếm được nạp, cần phảiđặt sườn dương đến đầu vào GATE để khởi động bộ đếm.

Ví dụ 6.12Trong ví dụ 6.11 , giả sử GATE1 được kích phát lại sau 150 xung . Vẽ tín hiệu ra OUT1.Giải :Nếu GATE1 được kích phát lại sau 150 xung đồng hồ vào bộ đếm lùi,COUNT1 được nạp lại số đếm N=400 và quá trình đếm lại bắt đầu ,

làm cho xung ra kéo dài thêm 150μs nữa (tổng cộng 550μs ). Khi đó tínhiệu ra OUT1 sẽ như sau :

5/11/2018 61429621-KTVXL-2-13-Bo-dinh-thoi-8253-C6- - slidepdf.com

http://slidepdf.com/reader/full/61429621-ktvxl-2-13-bo-dinh-thoi-8253-c6- 21/21

 Nguyễn Đình Luyện Bài giảng K ỹ thuật Vi Xử Lý

Khoa K ỹ thuật & Công nghệ - Đại Học Quy Nhơ n 

145