D1, D2, D3: Chọn chế độCó 6 chế độ tạo xung ra Mode 0 Tạo xung khi đếm hết Mode 1 Tạo 1 xung bằng phần cứng Mode 2 Tạo xung tỷ lệ Mode 3 Tạo xung vuông Mode 4 Tạo xung kích phát bằng phầ
Trang 1bài 7
Bộ định thời
8253
Trang 31 Giới thiệu
RESET tới 8088 OSC
14,3818 Mhz
đến khe cắm
mở rộng
PCLK 2,38683 Mhz tới 8253 CLK 4,772776 Mhz tới 8088
READY tới 8088
XTAL OSC
14,31818
Mhz
D
Q CK
Chia 2 SYNC
CK
D Q FF2
Chia 3 SYNC
CK
D Q FF2
F/
EFI CSYNC RDY1 RDY2
Trang 5 Bộ định thời 8253/54 dùng
để giảm tần số theo yêu
cầu của các ứng dụng
Máy tính IBM PC/XT dùng chip 8253.
Từ thế hệ IBM PC/AT dùng chip 8254.
8253/54 Bố trí chân giống nhau, 8254 tương thích với 8253
Trang 62 Bộ định thời 8253
Thanh ghi
từ đ/k
CLK0 Gate0 Out0
CLK1 Gate1 Out1
CLK2 Gate2 Out2
Hình 9.1 Sơ đồ khối bộ định thời
8253A
Trang 71
2
3
4
5
6
7
8
9
10
11
12
8 2 5 3
Vcc
A1 A0 CLK2 OUT2 GATE2 CLK1 GATE1 OUT1
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE 0 GND D7-D0
A0 A1
8253
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1
CLK2 GATE2 OUT2
Bè trÝ ch©n
8253
WR RD CS
WR RD
CS
24 23 22 21 20 19 18 17 16 15 14 13
Trang 8Bảng 9.1 Định địa chỉ cổng của 8253/54
Trang 11D1, D2, D3: Chọn chế độ
Có 6 chế độ tạo xung ra
Mode 0 Tạo xung khi đếm hết
Mode 1 Tạo 1 xung bằng phần cứng
Mode 2 Tạo xung tỷ lệ
Mode 3 Tạo xung vuông
Mode 4 Tạo xung kích phát bằng phần
mềmMode 5 Tạo xung kích phát bằng
phần
cứng
Trang 121 Nạp byte trọng số cao (MSB).
2 Nạp byte trọng số thấp (LSB)
3 Nạp LSB trước và MSB sau.
Tất cả các bộ đếm 8253 đều đếm lùi.
Trang 14c) Lập trình bộ đếm 2 để có tần số
ra bằng 1KHz nếu tần số vào là
2MHz
Trang 15
a) Tìm địa chỉ cổng:
CS A1A0 Cổng ĐC cổng (hex)
1001 01 00 Bộ đếm 0 94
1001 01 01 Bộ đếm 1 95
1001 01 10 Bộ đếm 2 96
1001 01 11 Thanh ghi ĐK 97 b) Lập trình bộ đếm 0
+ Hệ số chia: K=Fvào/Fra =
1,2MHz/10KHz=1200/10=120K=120<256 sử dụng LSB
+ TGĐK=0001.0110=13H
Trang 16Chương trình
MOV AL,13H OUT 97H,AL MOV AL,120
OUT 94H,AL
c) Lập trình bộ đếm 2
Số chia: K= 1,2MHz/500 Hz= 1200/0.5=2400
Trang 174 Các chế độ tạo xung ra của 8253
Có 6 chế độ tạo xung ra
Mode 0 Tạo xung khi đếm hết
Mode 1 Tạo 1 xung bằng phần cứng
Mode 2 Tạo xung tỷ lệ
Mode 3 Tạo xung vuông
Mode 4 Tạo xung kích phát bằng phần
mềmMode 5 Tạo xung kích phát bằng
phần
cứng
Trang 18Mode 0: Tạo xung khi đếm hết
Với GATE=1, đầu tiên bộ đếm tạo tín hiệu ra ở mức thấp và duy trì
mức này trong khi đếm
Khi đếm hết, lối ra chuyển lên
mức cao và ở mức này cho đến khi
số đếm mới được nạp.
Độ rộng của xung thấp được tính:
t= N x T Trong đó, N là số đếm T là chu kỳ CLK
Trang 19Ví dụ: Mode0
Cho GATE1=1, CLK1=1 MHz và số đếm
N =1000 Xác định tín hiệu ra OUT1 nếu bộ đếm ở Mode0
Trang 20Mode 1: Tạo 1 xung kích phát bằng phần cứng
Khi chân GATE có 1 sườn xung dư
ơng từ 0 lên 1, ở đầu ra OUT từ
cao xuống thấp
Sau khi đếm hết thì OUT chuyển lên cao, tạo độ rộng xung NxT.
Sườn GATE là kích phát phần
cứng
Trang 22b) Nếu GATE1 được kích phát sau
150 xung đồng hồ, COUNT1 được
nạp lại giá trị N=500 và đếm lại từ
đầu sẽ tạo xung ra 650 à s:
Trang 23Phân biệt:
Mode0: Bộ đếm tạo xung ra ngay sau khi bộ đếm được nạp, với điều kiện GATE=1
Mode1: Có sườn dương GATE, đầu
ra OUT xuống thấp trong thời gian NxT rồi chuyển lên mức cao cho đến khi GATE được kích phát trở lại.
Mode1 Có tên gọi Kích phát cứng.
Trang 24 Mode 2: Tạo sóng tỷ lệ hay bộ chia N.
Khi GATE=1 thì đầu ra OUT sẽ
ở mức cao trong khoảng thời
gian NxT, 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 lặp lại.
Trang 25Ví dụ: Mode2
Cho CLK2=1 MHz, GATE2=1 và N=750, vẽ tín hiệu ra OUT2 nếu COUNT2 được lập trình ở chế độ 2
Trang 26Mode 3: Tạo xung vuông.
Khi GATE=1 thì đầu ra OUT tạo xung vuông với độ rộng xung cao bằng độ rộng xung thấp khi N chẵn.
Nếu N lẻ, độ rộng xung cao có
một nhịp dài hơn xung thấp.
ở chế độ này, số đếm được tự
động nạp lại khi đếm hết nên 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.
Trang 27VÝ dô: Mode 3
NÕu CLK1=1 MHz, GATE1=1 vµ N=1000, vÏ tÝn hiÖu ra OUT1 nÕu COUNT1 ®îc lËp tr×nh ë Mode3.
500 µ s 500 µ s 500 µ s 500 µ s
1000 µ s 1000 µ s
GATE=
1 OUT1
Trang 28 Mode 4: Xung được kích phát
bằng phần mềm
ở chế độ này, GATE=1 thì đầu ra
có mức cao trong khi nạp số đếm
Thời gian ở mức cao là NxT.
Khi đếm hết, đầu ra về thấp
trong một xung đồng hồ, sau đó
trở lại mức cao và chờ đến khi nạp
số đếm mới
Chế độ này giống chế độ 2, với
điểm khác là bộ đếm không tự
động nạp lại.
Trang 29Ví dụ:
Cho CLK0=1 MHz, GATE0=1 và N=600, xác định OUT0 nếu COUNT0 được lập trình ở chế độ 4.
Trang 30 Mode 5: Xung được kích phát bằng phần cứng
kích phát bằng sườn dư
ơng chân GATE.
Trang 31Ví dụ:
Cho CLK1=1 MHz và N=400, vẽ tín hiệu
ra OUT1 nếu nó được lập trình ở chế độ 5
Trang 32VÝ dô:
ë vÝ dô trªn, gi¶ sö GATE1 ®îc kÝch
ph¸t l¹i sau 150 xung VÏ tÝn hiÖu ra OUT1
Trang 335 Nèi ghÐp 8253/54 ë m¸y
tÝnh IBM PC XT
H×nh 13.4 Chän cæng 8253 ë m¸y tÝnh PC/XT
A0 A1
A B
C Y2
G2B G2A G1
A5 A6 A7 A8 A9 AEN
LS138
CS A0 A1
8253
Trang 34§Þa chØ cæng cña 8253/54 ë m¸y
tÝnh PC§Þa chØ nhÞ ph©n (Binary) §Þa
chØ Hex
Chøc n ¨ ng
Trang 35+5v
1.19 M Hz
(Chia 2) 74LS175
OUT0
OUT1
OUT2
+5 v
Dữ liệu
ra loa
Mở
PB0 loa 8255 Port
61
+5v 74LS38
CLK0 GATE0 8253
GATE1
CLK2 GATE2
D CIK Pr CLR
74LS74
18.2 Hz
đến IRQ0 của 8259
DREQ của DMA 8237
66,278 KHz
đến cassette
đến PC5 của 8255
CI
PB1 của 8255 Port 61
Trang 36Bộ định thời kênh 0 của
8253
Cho
phép Com2 Com1 Cổng Lpt2 Đĩa mềm
RAM Kiểm tra kênh
I/0
INTA
IR0 INTR IR1 IR2 IR3 IR4 IR5 IR6 IR7
8259
Trang 37tr×nh ®iÒu khiÓn.
Trang 38 INT 1CH là ngắt kiểm soát bộ
định thời.
Người dùng có thể định nghĩa CS:IP của trình ứng dụng để trỏ tới INT 1CH
OUT0 tạo ra tần số 18,2 Hz
Hệ số chia của Bộ đếm 0
N=1,193MHz/18,2Hz=65.536.
Trang 39 OUT1 được đưa đến DMA
8237 có nhiệm vụ làm tươi
DRAM.
Hệ số chia nạp cho Bộ đếm 1: N=(1,19318 MHz : 66.278
Hz=18)
Trang 40Sử dụng bộ đếm 2.
Bộ định thời 2 được dùng cho loa
BIOS dùng bộ định thời 2 để tạo tiếng bíp.
Tiếng bíp có tần số 896 Hz
của chế độ 3 (xung vuông)
Hệ số chia tiếng bip: N=
1,19318 MHz/896 Hz =1331.
Trang 41Cổng A
Địa chỉ 60H với mọi lối
vào
Cổng B
Địa chỉ 61H với mọi lối ra
Cổng C
Địa chỉ 62H với mọi lối
vào
Bàn phím hoặc dữ liệu
từ thiết bị trỏ
Mở loa Timer2 Dữ liệu ra loa Không sử dụng Không sử dụng Cho phép kiểm tra chẵn
lẻ RAM Cho phép kiểm tra kênh I/O
Không sử dụng Không sử dụng Không sử dụng
=1 nếu có đồng xử lý toán
=0 nếu có đĩa Không sử dụng Không sử dụng Lối ra kênh 2 timer Kiểm tra kênh I/O Kiểm tra chẵn lẻ RAM
Cổng 8255 trong các máy tính PC thế hệ sau
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
Trang 42a) BËt loa dïng PB0 vµ PB1 cæng 61H
IN AL,61H MOV AH,AL
OR AL,03H OUT 61H,AL CALL DELAY MOV AL,AH OUT 61H,AL
6 Mét sè lËp tr×nh øng
dông
Trang 43+5v
1.19 M Hz
(Chia 2) 74LS175
OUT0
OUT1
OUT2
+5 v
Dữ liệu
ra loa
Mở
PB0 loa 8255 Port
61
+5v 74LS38
CLK0 GATE0 8253
GATE1
CLK2 GATE2
D CIK Pr CLR
74LS74
18.2 Hz
đến IRQ0 của 8259
DREQ của DMA 8237
66,278 KHz
đến cassette
đến PC5 của 8255
CI
PB1 của 8255 Port 61
Trang 44b) T¹o trÔ ë m¸y XT
Trang 45c) T¹o trÔ ë c¸c m¸y tÝnh tõ AT
;(CX) = sè lÇn 15,085 µ s MOV CX, N
LAP:
IN AL,61H AND AL,10H CMP AL,AH
JE LAP MOV AH,AL LOOP LAP
Trang 46MOV BL,03
BACK:
MOV CX,33144 ;trÔ 0,5s CALL Delay
DEC BL
JNZ BACK
Trang 47d) T¹o nèt nh¹c ë m¸y tÝnh IBM
Trang 48A4 440 Hz 2711 09A7 (La quãng 4)
Biết trị nạp vào bộ đếm 2 vậy có thể viết chương trình tạo nốt nhạc ra loa trong một khoảng thời gian xác định.