Tải bản đầy đủ (.pdf) (32 trang)

Bài Tập Lớn Lập Trình Bộ Đếm Khoảng Thời Gian

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 32 trang )

8254
LẬP TRÌNH BỘ ĐẾM KHOẢNG THỜI GIAN
 Tương thích với toàn bộ của Intel
và hầu hết các bộ vi xử lí khác.
 Xử lí đầu vào từ DC đến 10 MHz
- 8 MHz 8254
- 10 MHz 8254-2
 Trạng thái lệnh đọc lại.







Sáu chế độ lập trình bộ đếm
Ba bộ đếm 16 bit độc lập.
Hệ số đếm nhị phân hoặc BCD.
Nguồn đơn + 5V.
Có thế hiện thị nhanh nhiệt độ tiêu
chuẩn

Intel 8254 là bộ đếm / thiết bị tính giờ được thiết kế để giải quyết vấn đề điều khiển thời gian
phổ biến trong thiết kế hệ thống máy vi tính. Nó cung cấp ba bộ đếm 16 bit độc lập, mỗi bộ đếm
có khả năng xử lý nhịp đồng hồ đầu vào lên tới 10 MHz. Tất cả chế độ này là phần mềm lập
trình. 8254 là đời cao hơn của 8253.
8254 Sử dụng cơng nghệ HMOS và có tới trong 24 - chân hoặc gói CERDIP
_____________________________________________________________________

Nhóm 03 - L p t đ ng hóa B - K56
- L p t đ ng hóa B - K56



Trang 1


8254
Bảng 1: Mơ tả chân.
Kí hiệu Chân số
D7-D0 1 -8
CLK 0
OUT 0
GATE 0
GND
VCC
WR
RD
CS

9
10
11
12
24
23
22
21

A1, A0

20-19


CLK 2
OUT 2
GATE 2
CLK 1
GATE 1
OUT 1

18
17
16
15
14
13

Loại Tên và chức năng
I/O
Dữ liệu: Hai chiều ba trạng thái bus dữ liệu tuyến, được kết nối với bus dữ
liệu hệ thống.
I
Đồng hồ 0: Đầu vào đồng hồ của bộ đếm 0.
O
Đầu ra 0: Đầu ra của bộ đếm 0.
I
Cổng 0: Cổng đầu vào của bộ đếm 0.
Đất: Kết nối bộ nguồn.
Bộ nguồn: +5V bộ nguồn kết nối.
I
Ghi điều khiển: Đầu vào này là thấp trong thao tác ghi CPU.
I
Đọc điều khiển: Đầu vào này là thấp trong thao tác đọc CPU.

I
Chíp Chọn: Thấp trên đầu vào này tạo cơ hội cho 8254 đáp lại tín
hiệu

. Mặt khác

bị bỏ qua.
I
Địa chỉ: Sử dụng để chọn một trong ba bộ đếm hoặc thanh ghi điều khiển
từ để đọc hoặc ghi hoạt động. Thường được kết nối với hệ thống Bus địa chỉ

I
O
I
I
I
O

A1 A0
Lựa chọn
0
0
Bộ đếm 0
0
1
Bộ đếm 1
1
0
Bộ đếm 2
1

1
Thanh ghi điều khiển từ
Đồng hồ 2: Đầu vào đồng hồ của bộ đếm 2.
Đầu ra 2: Đầu ra của bộ đếm 2.
Cổng 2: Cổng đầu vào của bộ đếm 2.
Đồng hồ 1: Đầu vào đồng hồ của bộ đếm 1.
Cổng 1: Cổng đầu vào của bộ đếm 1.
Đầu ra 1: Đầu ra của bộ đếm 1.

MÔ TẢ THIẾT THỰC
Tổng quát
8254 Là thiết bị được lập trình để đếm
khoảng thời gian / bộ đếm thiết kế để dùng
với hệ thống máy vi tính Intel. Đó là mục
đích chung, Yếu tố đa thời gian có thể coi
như một mảng của cổng I / O trong hệ
thống phần mềm.
8254 Giải quyết một trong những vấn
đề phổ biến nhất trong mọi hệ thống
máy vi tính, hình thành của sự chậm trễ

Nhóm 03 - L p t đ ng hóa B - K56

thời gian chính xác dưới sự kiểm sốt
phần mềm .Thay vì xác lập thời gian
vịng lặp trong phần mềm, lập trình viên
chỉnh cấu hình 8254 khớp với yêu cầu
của họ và chương trình của họ một
trong những bộ đếm cho sự trễ mong
muốn. Đằng sau sự trễ mong muốn,

8254 sẽ ngắt CPU. Phần mềm trên là tối
thiểu và sự chậm trể dài hơn có thể dễ
dàng được cung cấp.

Trang 2


8254
Một vài chức năng của bộ đếm/ thiết bị
tính giờ chung đến máy vi tính để có thể
triển khai với 8254 là :








Đồng hồ thời gian thực.
Bộ đếm biến cố
Kỹ thuật số một lần duy nhất
Lập trình bộ phát sinh tốc độ
Bộ phát sóng vng
Bộ nhân nhị phân tỷ lệ
Bộ phát sóng phức tạp.

 Bộ điều khiển động cơ phức tạp.

Sơ đồ khối

Bus dữ liệu vùng đệm
Đây là 3 - trạng thái, hai chiều, vùng
đệm 8 bit được dùng để tiếp giáp 8254
đến bus hệ thống ( xem hình 3 )

Hình 3. Sơ đồ khối kết dữ liệu Bus dữ liệu vùng đệm và chức năng đọc / ghi thuật tốn

Nhóm 03 - L p t đ ng hóa B - K56

Trang 3


8254
Đọc/ghi logic

Truy cập 0, truy cập 1 , truy cập 2

Đọc/ghi logic chấp nhận đầu vào từ hệ
thống bus dữ liệu và tạo ra tín hiệu điều
khiển khối chức năng của 8254.A1 và A0
lựa chọn trong 3 bộ đếm hoặc thanh ghi
điều khiển từ được đọc / ghi vào. Trên
RD ở mức thấp đầu vào 8254 thì CPU
đang đọc 1 trong các bộ đếm . trên WR
ở mức thấp đầu vào cho 8254 thi CPU
đang ghi là điều khiển từ hoặc đếm ban
đầu .Nếu cả 2 RD và WR có đủ điều
kiện gần CS;RD và WR được bỏ qua trừ
khi 8254 đã được lựa chọn bằng cách
giữ CS thấp.


Ba khối chức năng giống hệt nhau
trong hoạt động, vì vậy chỉ một bộ đếm
duy nhất sẽ được mô tả. Các sơ đồ khối
bên trong của một bộ đếm duy nhất
được hiển thị trong hình 5.

Thanh ghi từ điều khiển
Thanh ghi từ điều khiển ( xem ở hình 4)
được chọn bời đọc/ghi logic khi
A1,A0=11.Nếu CPU khi thực hiện một
hoạt động ghi vào 8254, các dữ liệu
được lưu trữ trong thanh ghi từ điều
khiển và được giải thích như là một điều
khiển từ ( Control word ) được sử dụng
để xác định hoạt động của bộ đếm.
Thanh ghi điều khiển từ chỉ có thể được
ghi vào; thơng tin trạng thái có sẵn lệnh
đọc lại (Read-Back Command)

Nhóm 03 - L p t đ ng hóa B - K56

Các bộ đếm là hồn tồn độc lập. Mỗi
bộ đếm có thể hoạt động trong các chế
độ khác nhau.
Thanh ghi từ điều khiển được thể hiện
trong hình , nó khơng phải là một phần
của bộ đếm nhưng nội dung của nó
quyết định cách bộ đếm hoạt động.
Tình trạng thanh ghi, thể hiện trong

hình 5, khi bị chốt, gồm các nội dung
hiện tại của thanh ghi từ điều khiển và
trạng thái của đầu ra và cờ vô giá trị
(Null count flag). (Xem giải thích chi
tiết của lệnh đọc lại.)
Bộ đếm thực tế là dán nhãn CE (“Cho
đếm phần tử”). Nó là 16 bit thiết lập
đồng bộ xuống bộ đếm.
OLM và OLL là 2 chốt 8 bit. OL là viết
tắt của ‘’ Output Latch’, các chỉ số L
và M đứng cho ‘Byte ít quan trọng
nhất’’ và ``Byte quan trọng nhất’’

Trang 4


8254

Hình 4. Sơ đồ khối biểu thị thanh ghi từ điều khiển và chức năng bộ đếm

Hình 5. Sơ đồ khối bên trong bộ đếm

Nhóm 03 - L p t đ ng hóa B - K56

Trang 5


8254
tương ứng . Cả hai đều thường được gọi
là một đơn vị và được gọi là OL. Các chốt

thường ``Theo sau '' CE , nhưng nếu một
lệnh chốt bộ đếm phù hợp được gửi đến
8254, các chốt "latch'' đếm hiện tại cho
đến khi đọc bởi CPU trở lại "Tiếp tục
theo" CE. Một chốt tại một thời điểm
được kích hoạt do chốt điều khiển logic
truy nhập vào ổ đĩa nội bộ. Đây là cách
giao tiếp truy cập 16-bit qua bus nội bộ 8bit . Lưu ý rằng CE bản thân không thể
đọc được; bất cứ khi nào bạn đọc đếm ,
đó là OL đang được đọc .
Tương tự như vậy , có hai thanh ghi 8 bit được gọi là CRM và CRL ( cho
"Thanh ghi đếm '') . Cả hai đều bình
thường được gọi là một đơn vị và được
gọi là CR . Khi một số mới được ghi vào
bộ đếm , đếm sẽ lưu trữ trong CR và sau
đó chuyển sang CE . Các kiểm soát logic
cho phép một thanh ghi tại một thời điểm
để được tải từ bus nội bộ . Cả hai byte
được chuyển thành CE cùng một lúc.
CRM và CRL được xóa khi bộ đếm được
lập trình . Trong này cách , nếu bộ đếm đã
được lập trình cho một byte đếm (hoặc
chỉ byte quan trọng nhất hoặc là byte ít
quan trọng nhất ) các byte khác sẽ bằng
không. Lưu ý CE không thể được ghi vào
; bất cứ khi nào một số được ghi, nó được
ghi vào CR . Điều khiển logic ( Control
logic ) cũng được thể hiện trong biểu đồ.
CLK n, n GATE, và OUT n, tất cả được
kết nối với thế giới bên ngồi thơng qua

Điều khiển logic

8254 là một thành phần của hệ thống vi
tính Intel. Hệ thống và giao diện theo
cách tương tự như tất cả thiết bị ngoại vi
khác của gia đình . Nó được xử lý bởi các
phần mềm hệ thống như là một mảng
ngoại vi I/O; ba là bộ đếm và thứ tư là
thanh ghi điều khiển cho chương trình
MODE. Về cơ bản, các yếu tố đầu vào
chọn A0, A1 kết nối với A0, Tín hiệu bus
địa chỉ A1 của CPU. CS có thể có nguồn
gốc trực tiếp từ bus địa chỉ sử dụng một
phương pháp chọn tuyến tính . Hoặc nó
có thể được kết nối với đầu ra của một bộ
giải mã , chẳng hạn như bộ xử lý Intel
8205 cho các hệ thống lớn hơn.
MÔ TẢ HOẠT ĐỘNG
Tổng quan
Sau khi đóng điện , trạng thái của 8254 là
không xác định . Các chế độ, giá trị đếm,
và đầu ra của tất cả các bộ đếm là không
xác định. Làm thế nào mỗi bộ đếm hoạt
động được xác định khi nó được lập
trình? Mỗi bộ đếm phải được lập trình
trước khi nó có thể được sử dụng. Bộ đếm
khơng sử dụng khơng cần phải được lập
trình .
Lập trình 8254
Bộ đếm được lập trình bằng cách ghi Từ

điều khiển và đếm ban đầu. Từ điều khiển
được ghi vào thanh ghi từ điều khiển ,
được chọn khi A1, A0 = 11. Từ điều
khiển tự quy định cụ thể mà bộ đếm đang
được lập trình .

GIAO DIỆN HỆ THỐNG 8254

Nhóm 03 - L p t đ ng hóa B - K56

Trang 6


8254

Hình 6. Giao diện hệ thống 8254

Nhóm 03 - L p t đ ng hóa B - K56

Trang 7


8254
A1,A0 = 11,CS = 0, RD = 1, WR = 0.
D7
SC1

D6
SC0


D5
RW1

D4
RW0

D3
M2

D2
M1

D1
M0

SC – Lựa chọn bộ đếm

Chế độ - M

SC1
0
0
1

SC0
0
1
0

1


1

M2
0
0
X
X
1
1
BCD
0
1

Chọn bộ đếm 0
Chọn bộ đếm 1
Chọn bộ đếm 2
Lệnh đọc lại (Xem phần hoạt
động đọc- Read)

RW- Đọc/Ghi
RW1 RW0
0
0
Lệnh chốt bộ đếm ( xem phần hoạt động
đọc- Read
0
1
Chỉ đọc/ghi byte có trọng số thấp nhất
1

0
Chỉ đọc/ghi byte có trọng số cao nhất
1
1
Đọc/ghi byte có trọng số thấp nhất trước,
sau đó là ghi byte có trọng số cao nhất.

D0
BCD

M1
0
0
1
1
0
0

M0
0
1
0
1
0
1

Chế độ 0
Chế độ 1
Chế độ 2
Chế độ 3

Chế độ 4
Chế độ 5

Bộ đếm nhị phân 16bit
Bộ đếm mã hóa số thập phân
(BCD) ( 4 thập tiến )

Chú ý: Đừng quan tâm bit (X) phải là 0 , để đảm bảo khả năng tương thích với các sản phẩm của Intel
trong tương lai.

Hình 7: Định dạng từ điều khiển

Ngược lại, những đếm ban đầu được
ghi vào Bộ đếm, không phải thanh
ghi từ điều khiển ( control word
register ). Đầu vào A1, A0 được sử
dụng để lựa chọn bộ đếm để ghi vào .
Định dạng của đếm ban đầu được xác
định bởi điều khiển từ được sử dụng.

Hoạt động Ghi
Thủ tục lập trình cho 8254 rất linh
hoạt. Chỉ có hai quy ước cần phải
nhớ:
1)Đối với mỗi bộ đếm, Điều khiển từ
phải được ghi trước khi đếm ban đầu
được ghi
2) Các đếm ban đầu phải tuân theo
các định dạng đếm quy định trong


Nhóm 03 - L p t đ ng hóa B - K56

Trang 8


8254
Điều khiển từ ( Chỉ byte ít quan trọng
nhất, Chỉ byte quan trọng nhất, hoặc
byte ít quan trọng nhất trước, sau đó
là byte quan trọng nhất.)
Kể từ lúc Thanh ghi từ điều khiển
và ba Bộ đếm có địa chỉ riêng biệt
(được lựa chọn bởi các đầu vào A1,
A0), và mỗi Điều khiển từ xác định
Bộ đếm nó áp dụng cho ( SC0, SC1
bit), khơng có hướng dẫn đặc biệt
trình tự được yêu cầu. Bất kỳ chương
trình trình tự theo quy ước trong hình
7 là chấp nhận được. Một đếm ban
đầu mới có thể được ghi vào bộ đếm
tại bất cứ lúc nào mà khơng ảnh
hưởng tới chế độ lập trình của bộ

A1
1
0
0
1
0
0

1
1
1
1
1
1
1
0
0
0
0
1

Từ điểu khiển – bộ đếm 0
LSB của đếm – bộ đếm 0
MSB của đếm – bộ đếm 0
Từ điểu khiển – bộ đếm 1
LSB của đếm – bộ đếm 1
MSB của đếm – bộ đếm 1
Từ điểu khiển – bộ đếm 2
LSB của đếm – bộ đếm 2
MSB của đếm – bộ đếm 2
Từ điểu khiển – bộ đếm 0
Từ điểu khiển – bộ đếm 1
Từ điểu khiển – bộ đếm 2
LSB của đếm – bộ đếm 2
LSB của đếm – bộ đếm 1
LSB của đếm – bộ đếm 0
MSB của đếm – bộ đếm 0
MSB của đếm – bộ đếm 1

MSB của đếm – bộ đếm 2

A0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0

đếm bằng bất kỳ cách nào. Quá trình
đếm sẽ bị ảnh hưởng như mô tả trong
chế độ định nghĩa (Mode definitions).
Đếm mới phải tuân theo các định
dạng đã được lập trình.
Nếu một Bộ đếm được lập trình để
đọc/ghi hai byte, các biện pháp phịng
ngừa sau đây áp dụng: Một chương

trình khơng phải chuyển giao điều
khiển giữa đang ghi byte đầu tiên và
byte thứ hai đến thủ tục khác ,cũng
ghi vào cùng một bộ đếm. Nếu
không, Bộ đếm sẽ nạp với một đếm
khơng chính xác.

Từ điểu khiển – bộ đếm 2
Từ điểu khiển – bộ đếm 1
Từ điểu khiển – bộ đếm 0
LSB của đếm – bộ đếm 2
MSB của đếm – bộ đếm 2
Từ điểu khiển – bộ đếm 2
MSB của đếm – bộ đếm 1
LSB của đếm – bộ đếm 0
MSB của đếm– bộ đếm 0
Từ điểu khiển – bộ đếm 1
Từ điểu khiển – bộ đếm 0
LSB của đếm – bộ đếm 1
Từ điều khiển – bộ đếm 2
LSB của đếm – bộ đếm 0
MSB của đếm – bộ đếm 1
LSB của đếm– bộ đếm 2
MSB của đếm– bộ đếm 0
MSB của đếm– bộ đếm 2

A1 A0
1
1
1

1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0

0
1
0

Hình 8. Một vài trình tự lập trình

Nhóm 03 - L p t đ ng hóa B - K56

Trang 9


8254
Hoạt động đọc

A1,A0 = 11; CS = 0; RD = 1; WR =0

Nó thường mong muốn để đọc giá trị
của Bộ đếm mà không làm ảnh hưởng
đến đếm trong tiến trình. Điều này có
thể dễ dàng thực hiện trong 8254. Có ba
phương pháp có thể cho các bộ đếm:
Một hoạt động đọc đơn giản, Lệnh chốt
bộ đếm, và lệnh đọc lại. Từng được giải
thích dưới đây. Phương pháp đầu tiên là
để thực hiện một hoạt động đọc đơn
giản. Để đọc bộ đếm, nó được lựa chọn
với A1, A0 đầu vào, đầu vào CLK của
các bộ đếm được lựa chọn phải được
ngăn cản bằng bằng cách sử dụng đầu
vào GATE hoặc logic bên ngồi. nếu

khơng, đếm có thể trong q trình thay
đổi khi nó được đọc, tạo ra kết quả
khơng xác định.

D7 D6 D5
D4 D3
SC1 SC0 RW1 RW M2
0
SC – Lựa chọn bộ đếm

LỆNH CHỐT BỘ ĐẾM
Phương pháp thứ hai sử dụng các
“Lệnh chốt bộ đếm”. Như một từ điều
khiển, lệnh này được viết vào Thanh
ghi từ điều khiển, đó là lựa chọn khi
A1, A0 = 11. Cũng như một từ điều
khiển, SC0, SC1 bit chọn một trong ba
Bộ đếm, nhưng hai bit khác D5 và D4
phân biệt lệnh này từ Từ điều khiển
Bộ đếm được lựa chọn là chốt đầu ra,
chốt đếm tại thời điểm Lệnh chốt bộ
đếm (Counter Latch Command) được
nhận. Sự tính tốn này đc diễn ra trong
chốt sau khi được đọc bởi CPU.( hoặc
cho tới khi khi Bộ đếm lập trình lại).
Đếm sau đó mở tự động và OL trở lại
để tiếp tục các yếu tố đếm (CE). Nó
cho phép đọc nội dung của bộ đếm, “on
the fly” ( Tranh thủ ) mà khơng ảnh
Nhóm 03 - L p t đ ng hóa B - K56


SC1
0
0
1

SC0
0
1
0

1

1

D2 D1 D0
M1 M0 BC
D

Chọn bộ đếm 0
Chọn bộ đếm 1
Chọn bộ đếm 2
Lệnh đọc lại (Xem phần hoạt
động đọc- Read)

D5,D4- 00 Chỉ định lệnh chốt bộ đếm
X- không quan tâm
Chú ý: Đừng quan tâm tới bits (X) nên là 0
đê đảm bảo khả năng tương thích với các
sản phẩm của Intel trong tương lai


Hình 9. Định dạng bộ đếm truy cập
chốt lệnh
hưởng tới q trình đếm. nhiều Lệnh
chốt bộ đếm có thể được sử dụng để
chốt nhiều lượt đếm. Mỗi chốt bộ đếm
OL giữ giá trị của nó cho đến khi nó
được đọc. Lệnh chốt bộ đếm khơng ảnh
hưởng tới chế độ lập trình của bộ đếm
bất cứ bằng cách nào.
Nếu bộ đếm chốt lại và 1 thời gian sau
đó lại chốt trước khi đếm được đọc.
Lệnh chốt bộ đếm thử 2 được bỏ qua.
Đếm sẽ được đếm tại thời điểm Lệnh
chốt bộ đếm đầu tiên được ban hành.
Với 1 trong 2 phương pháp, đếm sẽ
phải đọc theo định dạng được lập trình.
Đặc biệt là, nếu bộ đếm được lập trình
để đếm 2 byte, 2 bye đó sẽ phải được
đọc. 2 byte không cần phải đọc hết lần
này tới lần khác, đọc hoặc ghi hoặc lập
Trang 10


8254
trình cho hệ thống của các bộ đếm
khác có thể được chèn giữa chúng.
Tính năng khác của 8254 là đọc và ghi
xen kẽ cùng lúc trong bộ đếm. Ví dụ:
Nếu bộ đếm được lập trình để đếm 2

byte sẽ theo trình tự sau đây:

thứ 2 để đọc cùng 1 bộ đếm. Nếu
khơng, số đếm khơng chính xác sẽ được
đọc.
LỆNH ĐỌC LẠI
Phương pháp thứ 3 là lệnh đọc lại, Lệnh
này cho phép người dùng kiểm tra giá
trị tính tốn, chế độ lập trình và trạng
thái hiện tại của chân ra và cờ Null
Count của bộ đếm được được chọn.
Lệnh được viết vào thanh ghi từ điều
khiển và có dạng được thấy trong hình
10. Lệnh áp dụng để bộ đếm thiết lập
lựa chọn tương ứng bits D3,D2, D1=1.

1)Đọc byte thấp nhấp
2)Ghi mới byte thấp nhấp
3)Đọc byte cao nhấp
4)Ghi mới byte cao nhất
Nếu bộ đếm được lập trình để đọc/ghi 2
byte đếm, các biện pháp phịng ngừa
sau đây được áp dụng: Một chương
trình không phải chuyển giao điều
khiển giữa lần đọc bye thứ 1 và byte

A0, A1 = 11,

= 0,


= 1,

=0

D7 D6
D5
D4
D3
D2
D1
D0
1
1 COUNT STATUS CNT2 CNT1 CNT0
0
D5:0 = Đếm giá trị của bộ đếm được lựa chọn
D4:0 =Đếm trạng thái của bộ đếm được lựa chọn
D3:0 = Lựa chọn bộ đếm 2
D2:0 = Lựa chọn bộ đếm 1
D1:0 = Lựa chọn bộ đếm 0
D0: Dành cho việc mở rộng trong tương lai; Phải bằng 0

Hinh 10. Định dạng của lệnh đọc lại

Nhóm 03 - L p t đ ng hóa B - K56

Trang 11


8254
Lệnh đọc lại có thể sử dụng để chốt

nhiều chốt bộ đếm ra (OL) bằng cách
thiết lập
D5=0 và lựa chọn
bộ đếm mong muốn. Đơn lệnh này có
chức năng tương đương với một số lệnh
truy cập chốt. Một lần cho 1 truy cập
chốt. Mỗi bộ đếm được chốt đếm được
diễn ra cho tới khi nó được đọc (hoặc bộ
đếm được lập trình lại). Bộ đếm sẽ tự
động mở chốt khi đọc, nhưng những bộ
đếm còn lại được chốt sau khi chúng đọc.
Nếu nhiều lần đọc lại lệnh được thực hiện
cùng đếm mà không đọc giá trị, tất cả
những thứ đầu tiên được bỏ qua. Nghĩa là
giá trị được đọc là giá trị tại thời điểm

lệnh đọc lại đầu tiên được ban hành Lệnh
đọc lại cũng có thể được sử dụng để chốt
trạng thái thông tin của bộ đếm được chọn
bởi thiết lập
bit D4 = 0. Trạng
thái phải được chốt để đọc, trạng thái của
bộ đếm được truy cập bởi việc đọc từ bộ
đếm này. Dạng trạng thái truy cập được
thể hiện ở bảng 11. Bit D5 thông qua D0
chứa bộ đếm là Chế độ lập trình chính xác
như được ghi trong chế độ Từ điều khiển
cuối cùng. OUTPUT Bit 7 chứa trạng thái
hiện tại của chân ra. Điều này cho phép
người sử dụng giám sát đầu ra của bộ

đếm thông qua phần mềm có thể loại bỏ
một số phần cứng từ một hệ thống.

D7 D6 D5 D4 D3 D2 D1 D0
Output Null
RW1 RW0 M2 M1 M0 BCD
Count
D7
1= Chân ra là 1
0= Chân ra là 0
D6
1= Null Count
0= Giá trị sẵn sàng để đọc
D5-0 Truy cập chế độ lập trình ( xem hình 7)
Hình 11. Byte trạng thái
NULL COUNT bit D6 cho biết số đếm
cuối được ghi vào thanh ghi bộ đếm CR
đã được tải vào trong bộ đếm CE. Khoảng
thời gian chính xác này phụ thuộc vào
phương thức ghi chép vào được miêu tả
trong Chế độ định nghĩa (Mode
Definitions). Nhưng cho tới khi đếm được
tải vào trong yếu tố đếm ( CE), nó khơng
thể đọc được từ bộ đếm. Nếu số bị chốt
hoặc bị đọc trước thời gian đó, thì giá trị
của đếm sẽ không phản ánh đúng đếm
vừa mới được viết ra. Hoạt động của Null
Count được mô tả trong hình 12.
Nhóm 03 - L p t đ ng hóa B - K56


Nếu nhiều trạng thái chốt của bộ đếm
được thực hiện mà không cần đọc trạng
thái, đối với tất cả chỉ có cái đầu tiên
được bỏ qua; nghĩa là trạng thái sẽ được
đọc là trạng thái của bộ đếm vào lúc
trạng thái đầu tiên lệnh đọc lại đã được
đưa ra. Cả việc đếm và trạng thái đã
chọn của bộ đếm có thể được chốt cùng
lúc (đồng thời) bằng việc thiết lập cả hai
chương
trình
(đếm)

S
(trạng thái) của Bits D5,D4, =
0. Chức năng này giống như việc đưa ra
2 yêu cầu lệnh đọc lại cùng một lúc và
việc thảo luận ở trên vẫn được áp dụng
Trang 12


8254
ở đây. Cụ thể là: Nếu có nhiều đếm
hoặc các trạng thái yêu cầu lệnh đọc lại
được đưa ra cùng 1 bộ đếm mà khơng
Hành động

có bất cứ u cầu lệnh đọc nào khác, tất
cả biến đếm trừ cái đầu tiên bị bỏ qua.
Điều này được minh họa trong hình 13

Nguyên nhân

A Ghi vào thanh ghi từ điều khiển

Null Count = 1

B Ghi vào thanh ghi bộ đếm

Null Count =1

Giá trị mới được tải vào CE (CR-CE)

Null Count = 1

Chú ý:
1.Chỉ bộ đếm quy định bởi control word sẽ có Null Count thiết lập đến 1. Bits Null count của các
bộ đếm khácsẽ không bị ảnh hưởng
2. Nếu bộ đếm lập trình để đếm giá trị 2 byte (byte ít quan trọng nhất sau đó là byte quan trọng
nhất). Null Count tới 1 khi byte thứ 2 ghi

HÌnh 12. Hoạt động của Null Count
D7 D6 D5 D4 D3 D2 D1 D0
Mô Tả
1
1
0
0
0
0
1

0
Đọc lại giá trị và trạng thái
của bộ đếm 0
1
1
1
0
0
1
0
0
Đọc lại trạng thái của bộ đếm
1
1
1
1
0
1
1
0
0
Đọc lại trạng thái của bộ đếm
2, 1
1
1
0
1
1
0
0

0
Đọc lại giá trị của bộ đếm 2
1

1

0

0

0

1

0

0

1

1

1

0

0

0


1

0

Kết quả
Giá trị và trạng thái được
chốt cho bộ đếm 0
Trạng thái được chốt cho
bộ đếm 1
Trạng thái được chốt cho
bộ đếm 2, không phải 1
Giá trị được chốt cho bộ
đếm 0
Đọc lại giá trị và trạng thái Giá trị được chốt cho bộ
của bộ đếm 1
đếm 1, không phải trạng
thái
Đọc lại trạng thái của bộ đếm Bỏ qua lệnh, trạng thái
1
sẵn sàng chốt cho bộ đếm
1

HÌnh 13. Ví dụ lệnh đọc lại

Nếu cả đếm và trạng thái của bộ đếm đều
bị chốt lại thì hoạt động đọc đầu tiên của
đếm đó sẽ được quay lại chốt trạng thái
đó, bất kể nó được chốt trước. Từ biến
Nhóm 03 - L p t đ ng hóa B - K56


đếm thứ 2 được đọc (phụ thuộc vào việc
bộ đếm được lập trình cho một hay hai
loại đếm) trở đi sẽ được chốt đếm lại. Sau
đó đọc lại mở chốt đếm.
Trang 13


8254

0
0
0
0
0
0
0
0
1
0

1
1
1
1
0
0
0
0
X
1


0
0
0
0
1
1
1
1
X
1

A1
0
0
1
1
0
0
1
1
X
X

A0
0
1
0
1
0

1
0
1
X
X

Ghi vào bộ đếm 0
Ghi vào bộ đếm 1
Ghi vào bộ đếm 2
Đọc từ bộ đếm 0
Đọc từ bộ đếm 1
Đọc từ bộ đếm 2
Không hoạt động
Không hoạt động
Không hoạt động

Hình 14. Tóm tắt hoạt động Đọc/Ghi

Chế độ xác định
Sau đây là xác định để sử dụng trong
việc mô tả hoạt động của 8254.
Xung CLK: Một cạnh tăng, sau đó một
cạnh giảm theo thứ tự , đầu vào của bộ
đếm CLK.
Trigger : Một cạnh tăng của cổng đầu
bộ đếm.
Nạp bộ đếm: Việc chuyển giao một giá
trị từ CR tới CE (tham khảo phần “ Mô
tả các chức năng”).
Chế độ 0: Ngắt các thiết bị đầu cuối.

Chế độ 0 thường được sử dụng để đếm
sự kiện. Sau khi Điều khiển từ được ghi,
OUT ban đầu là thấp và sẽ vẫn còn thấp
cho đến khi truy cập đạt đến giá trị
không. OUT sau đó trở lên cao và vẫn
cịn cao cho đến khi một giá trị mới hoặc
chế độ 0 Từ điều khiển từ được ghi vào
trong bộ đếm
Nhóm 03 - L p t đ ng hóa B - K56

.GATE = 1 cho phép đếm; GATE = 0 vơ
hiệu hóa đếm. GATE khơng có tác dụng
trên OUT.
Sau khi Từ điều khiển và đếm ban đầu
được ghi vào một bộ đếm, đếm ban đầu
sẽ được nạp vào xung CLK tiếp theo.
Xung CLK này này khơng làm giảm
đếm, do đó, cho một đếm ban đầu của N,
OUT không trở lên cao cho tới khi N+1
xung CLK sau khi đếm mới của N được
ghi vào.
Nếu một đếm mới được ghi vào bộ dếm,
cho tới khi GATE = 0, được nạp vào
xung CLK tiếp theo. Khi GATE cao lên,
OUT sẽ trở nên cao N xung CLK sau đó,
khơng có xung CLK cần thiết để nạp vào
Bộ đếm như thế này đã được thực hiện.
Chế độ 1: Khởi động lại phần cứng
một lần duy nhất


Trang 14


8254
OUT ban đầu sẽ cao. OUT sẽ trở nên
thấp trên xung CLK sau một kích hoạt để
bắt đầu xung one-shot, và sẽ vẫn ở mức
thấp cho đến khi Bộ đếm đạt đến giá trị
khơng. OUT sau đó sẽ trở nên cao và giữ
ở mức cao cho đến khi xung CLK sau
khi trigger tiếp theo
Sau khi ghi Từ điều khiển và đếm ban
đầu, Bộ đếm được tăng cứng.. Một
trigger kết quả trong tải Bộ đếm và thiết
lập OUT thấp ở xung CLK tiếp theo, như
vậy bắt đầu xung cùng một lúc. Count
ban đầu của N sẽ dẫn đến chu trình một
xung N CLK trong thời hạn. one-shot
được khởi động lại, do đó OUT sẽ vẫn
cịn thấp để xung N CLK sau bất kỳ
Trigger nào. Các xung one-shot có thể
được lặp đi lặp lại mà không cần viết lại
cùng đếm vào bộ đếm. GATE không ảnh
hưởng tới OUT.
Nếu một đếm mới được ghi vào bộ đếm
trong khi xung one-shot, xung one-shot
hiện tại không bị ảnh hưởng trừ khi bộ
đếm được khởi động lại. Trong trường
hợp đó, Bộ đếm được nạp với các đếm
mới và xung one-shot tiếp tục cho đến

khi đếm mới kết thúc
Chế độ 2: Bộ phát sinh tốc độ
Chức năng của chế độ này như một phân
chia theo N bộ đếm. nó thường được sử
dụng để tạo ra một đồng hồ thời gian
thực gián đoạn. OUT lúc đầu sẽ cao. Khi
đến ban đầu giảm đến 1, OUT đi thấp
cho một xung CL. OUT sau đó lại cao
một lần nữa, Bộ đếm nạp lại đếm ban
Nhóm 03 - L p t đ ng hóa B - K56

đầu và q trình này lặp đi lặp lại. Chế
độ 2 là định kỳ; cùng một trình tự được
lặp đi lặp lạivơ thời hạn. Đối với một
count của N, trình tự lặp đi lặp lại N
CLK mỗi chu trình .
GATE = 1 cho phép đếm; GATE = 0 vơ
hiệu hóa đếm. Nếu GATE trở nên thấp
đi trong khi xung vào, OUT thiết lập cao
ngay lập tức. Trigger tải nạp lại bộ đếm
với count ban đầu; OUT thấp đi N xung
CLK sau khi kích hoạt. do đó đầu vào
GATE có thể được sử dụng để đồng bộ
hóa Bộ đếm.
Sau khi ghi Từ điều khiển và đếm ban
đầu, Bộ đếm sẽ nạp vào xung CLK tiếp
theo. OUT thấp đi N CLK xung sau khi
đếm ban đầu ghi. Điều này cho phép Bộ
đếm phải được đồng bộ bởi phần mềm.
Ghi đếm mới trong khi đếm không ảnh

hưởng đến trình tự đếm hiện tại. Nếu
Trigger nhận lại sau khi ghi đếm mới
nhưng trước khi kết thúc giai đoạn hiện
tại, các bộ đếm sẽ được nạp với đếm trên
xung CLK tiếp theo và sẽ tiếp tục đếm
từ đếm mới. Nếu không, đếm mới sẽ
được nạp vào cuối chu kỳ đếm. Trong
chế độ 2, một COUNT của 1 là không
hợp lệ.
Chế độ 3: Chế độ sóng vng
Chế độ 3 thường được sử dụng cho Bộ
phát sinh tốc độ Baud. Chế độ 3 cũng
tương tự như chế độ 2 ngoại trừ chu kỳ
nhiệm vụ của OUT. OUT ban đầu sẽ cao.
Khi một nửa đếm ban đầu đã kết thúc,
Trang 15


8254

Chú ý: Các quy ước sau đây áp dụng cho tất cả biểu đồ chế độ thời gian:
1.
2.
3.
4.

Bộ đếm được lập trình cho nhị phân (khơng phải BCD) đang đếm và chỉ cho đọc/ghi “byte ít quan trọng nhất” (LSB)
Bộ đếm luôn được chọn (
luôn thấp )
CW là viết tắt của “điều khiển từ“ CW= 10 nghĩa là điều khiển từ của 10 HEX

LSB là viết tắt của” byte ít quan trọng nhất” của đếm

Số dưới sơ đồ là giá trị đếm, số thấp hơn là byte ít quan trọng nhất, số cao hơn là ``Byte quan trọng nhất’’, từ khi bộ đếm được
lập trình để chỉ đọc/ghi LSB, ``Byte quan trọng nhất’’ không thể được đọc
5.
6.

N là viết tắt của đếm không xác định.
Đường thẳng đứng cho thấy quá trình chuyển đổi giữa các đếm.

Hình 15. Chế độ 0

Nhóm 03 - L p t đ ng hóa B - K56

Trang 16


8254

Hình 16. Chế độ 1

Nhóm 03 - L p t đ ng hóa B - K56

Trang 17


8254
OUT thấp đi cho việc đếm còn lại. Chế
độ 3 là định kỳ : Các trình tự trên được
lặp đi lặp lại vô thời hạn. Đếm ban đầu

của N kết quả trong một sóng vng
với một khoảng thời gian N CLK chu
kỳ GATE = 1 cho phép đếm ; GATE =
0 vơ hiệu hóa đếm. Nếu GATE thấp đi
trong khi OUT thấp , OUT được thiết
lập cao ngay lập tức ; Không xung
CLK là điều bắt buộc. Một Trigger lại
các truy cập với đếm ban đầu về xung
CLK tiếp theo. Do đó, đầu vào GATE
có thể được sử dụng để đồng bộ hóa
các bộ đếm. Sau khi ghi một điều khiển

Nhóm 03 - L p t đ ng hóa B - K56

từ và đếm ban đầu, Bộ đếm sẽ được
nạp vào xung CLK tiếp theo , Điều này
cho phép truy cập phải được đồng bộ
bằng phần mềm.
Ghi một đếm mới trong khi đếm khơng
ảnh hưởng đến trình tự đếm hiện tại .
Nếu kích hoạt nhận lại sau khi ghi một
đếm mới nhưng trước khi kết thúc nửa
chu kỳ của sóng vuông hiện tại , Bộ
đếm sẽ được nạp với các đếm mới trên
xung CLK tiếp theo và sẽ tiếp tục đếm
từ số mới . Nếu khơng thì số mới sẽ
được nạp ở cuối của nửa chu kỳ hiện
tại

Trang 18



8254

Chú ý: Q trình chuyển đổi cổng khơng nên xảy ra một đồng hồ trước đếm cuối cùng

Hình 17. Chế độ thứ2
Chế độ 3 được thực hiện như sau:
Ngay khi đếm : OUT ban đầu là cao. Số
đếm ban đầu nạp trên một xung CLK và
sau đó được giảm đi bởi hai xung CLK kế
tiếp. Khi số kết thúc OUT thay đổi giá trị
và bộ đếm lại tải với đếm ban đầu. Q
trình trên là lặp đi lặp lại vơ thời hạn
Nhóm 03 - L p t đ ng hóa B - K56

Đếm lẻ: OUT ban đầu là cao .Số lượng
ban đầu trừ một (Số chẵn) được nạp vào
xung CLK và sau đó được giảm đi bởi hai
xung CLK liên tục. Một xung CLK sau
khi giá trị kết thúc OUT thấp đi qua và bộ
đếm được nạp lại với đếm ban đầu trừ 1.
Xung liên tục CLK giảm các giá trị đi hai.
Trang 19


8254
Khi đếm hết giá trị, OUT một lần nữa
cao lên và Bô đếm nạp lại với một đếm
ban đầu trừ 1 ở trên, quá trình trên được


lặp đi lặp lại vơ thời hạn Vì vậy, vì vậy
với giá trị lẻ OUT sẽ cao cho (N+1)/2
đếm và thấp cho (N-1)/2 đếm.

Hình 18: Chế độ thứ 3

Chế độ 4: Kích hoạt Phần mềm nhấp
nháy

Nhóm 03 - L p t đ ng hóa B - K56

Trang 20


8254
OUT ban đầu sẽ cao. Khi đếm đầu tiên
kết thúc, OUT sẽ thấp đi một xung CLK
và sau đó cao lên một lần nữa. Trình tự
đếm được kích hoạt bằng cách ghi đếm
ban đầu. Gate = 1 cho phép đếm; Gate= 0
vơ hiệu hóa đếm. cổng Gate khơng có tác
dụng trên đầu ra OUT .Sau khi điều khiển
từ và đếm ban đầu, Bộ đếm sẽ được nạp
vào xung CLK tiếp theo. Xung CLK này
khơng giảm các đếm, do đó, một đếm ban
đầu của N, đầu ra OUT không nhấp nháy
thấp cho đến khi N +1 xung CLK sau khi
đếm ban đầu được ghi. Nếu một đếm mới
được ghi trong thời gian đếm, nó sẽ được


nạp vào xung CLK tiếp theo và sẽ tiếp tục
đếm từ số mới. Nếu một đếm hai byte
được ghi,thì sẽ xảy ra:
1) Ghi các byte đầu tiên không ảnh hưởng
đến việc đếm
2) Ghi byte thứ hai cho đếm mới được
nạp vào xung CLK tiếp theo.
Điều này cho phép trình tự để được ``
retriggered ''( khởi động lại ) bởi phần
mềm. OUT nháy thấp N+1 xung CLK
sau khi đếm mới của N được ghi.

.
Hình 19. chế độ 4

Nhóm 03 - L p t đ ng hóa B - K56

Trang 21


8254
Kích hoạt phần cứng nhấp nháy
(RETRIGGERABLE)
OUT ban đầu sẽ cao. Đếm được kích hoạt
bởi một cạnh tăng của cổng ra. Khi đếm
đầu tiên kết thúc, OUT sẽ thấp đi một
xung CLK và sau đó lại cao một lần nữa.
Sau khi ghi Điều khiển từ và đếm ban
đầu, bộ đếm sẽ khơng được nạp cho đến

khi xung CLK kích hoạt. Xung này CLK
khơng làm giảm giá trị đếm, do đó, một
số ban đầu của N, OUT không nhấp nháy
thấp cho tới khi N+1 CLK xung sau khi
kích hoạt.

Nhóm 03 - L p t đ ng hóa B - K56

Kết quả kích hoạt trong Bộ đếm được nạp
với các đếm đầu tại xung CLK tiếp theo.
Trình tự đếm là kích hoạt lại . OUT sẽ
không nhấp nháy thấp cho N +1 xung
CLK sau khi bất kỳ kích hoạt nào . Cổng
GATE khơng có tác dụng trên OUT.
Nếu một đếm mới được ghi trong thời
gian đếm, trình tự đếm hiện tại sẽ khơng
bị ảnh hưởng. Nếu một kích hoạt xuất
hiện sau khi đếm mới được ghi, nhưng
trước khi đếm hiện tại kết thúc, bộ đếm sẽ
được nạp với đếm mới ở xung CLK tiếp
theo và đếm sẽ tiếp tục từ đó.

Trang 22


8254

Hình 20. chế độ 5

Nhóm 03 - L p t đ ng hóa B - K56


Trang 23


8254
Khi một từ điều khiển được đưa vào
bộ đếm, tất cả các giá trị logic điều
khiển được thiết lập lại tức thời và
biết được trạng thái khởi tạo của đầu
ra, xung CLK khơng cần thiết phải có
trong trường hợp này.

Trì cho đến cạnh biên tăng tiếp theo
của CLK. Chú ý rằng trong trường
hợp 2 và 3, đầu vào cổng Gate ở cả
mức biên và mức nhạy. Trong chế độ
2 và 3, nếu một nguồn CLK khác so
với đồng hồ hệ thống được sử dụng
thì Gate sẽ là xung tức thời ngay sau
WR của giá trị đếm mới.

Cổng Gate

Bộ đếm

Đầu vào cổng Gate luôn được lấy
trên cạnh biên tăng của CLK. Trong
các chế độ 0, 2, 3, 4 thì đầu vào cổng
Gate là mức chính xác, và mức logic
được lấy trên cạnh biên tăng của

CLK. Trong các chế độ 1, 2, 3, và 5
thì đầu vào cổng gate là cạnh biên
tăng nhạy. Trong các chế độ này,
cạnh biên tăng của cổng gate (bộ khởi
động) thiết lập một mạch lật (FlipFlop) cạnh biên nhạy trong bộ đếm.
Mạch lật này sau đó được lấy mẫu
trên cạnh biên tăng tiếp theo của
CLK. Mạch lật được thiết lập lại
ngay lập tức sau khi nó được lấy
mẫu. Theo cách này, một bộ khởi
động sẽ được xác định là khơng có
vấn đề gì khi nó xảy ra – một mức
logic cao khơng được duy

Việc tính tốn mới được nạp và các bộ
đếm bị giảm đi trong cạnh biên giảm
của CLK.

Lập trình

Nhóm 03 - L p t đ ng hóa B - K56

Việc tính tốn ban đầu có thể lớn nhất
là 0, điều này tương đương với là 216
đối với bộ đếm nhị phân và 104 đối
với bộ đếm BCD.
Bộ đếm khơng dừng lại khi nó đạt tới
0. Trong các chế độ 0, 1, 4 và 5 thì bộ
đếm sẽ đếm các giá trị cao nhất, hoặc
FFFF (hex) cho đếm nhị phân hoặc

9999 cho đếm BCD và tiếp tục đếm.
Các chế độ 2 và 3 là có chu kỳ; các bộ
đếm nạp lại chính nó với việc tính
tốn ban đầu và tiếp tục đếm từ đó.

Trang 24


8254
Các chế độ
trạng thái tín
hiệu
0

Mức thấp hoặc sẽ thấp

Tăng

Cao

Khơng đếm

__

Đếm

1

__


1. Đếm khởi tạo
2. Thiết lập lại đầu ra sau xung
đồng hồ tiếp theo

__

Đếm khởi tạo

Đếm

__

Đếm

Đếm khởi tạo

Đếm
__

2

3
4
5

1. Không đếm
2. Thiết lập đầu ra tức
thời cao
1. Không đếm
2. Thiết lập đầu ra tức

thời cao
Khơng đếm
__

Hình 21. Tóm tắt hoạt động chân Gate

Chế độ

Đếm MIN

0
1
2
3
4
5

1
1
2
2
1
1

Đếm
MAX
0
0
0
0

0
0

Chú ý: 0 tương đương với 216 để đếm nhị phân và 104 cho đếm BCD.

Hình 22. Đếm ban đầu nhỏ nhất và lơn nhất

Nhóm 03 - L p t đ ng hóa B - K56

Trang 25


×