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

hoạt động định thời đếm sự kiện

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 (725.18 KB, 39 trang )

GV. LÊ TIẾN DŨNG
Bộ môn Tự ñộng hóa – Khoa ðiện
Trường ðại học Bách khoa – ðại học ðà Nẵng
Email:


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

NỘI DUNG CHƯƠNG 4
1. Mở ñầu.
2. Các thanh ghi dùng truy xuất Timer/Counter.
3. Các chế ñộ (mode) ñịnh thời.
4. Các bước lập trình ñịnh thời.
5. Cách xác ñịnh giá trị nạp cho các thanh ghi TH, TL.
6. Các ví dụ ñịnh thời.
7. Lập trình bộ ñếm.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
1. Mở ñầu
- Các bộ ñịnh thời/ñếm sự kiện dùng ñể:
+ ðịnh thời trong một khoảng thời gian.
+ ðếm sự kiện.
+ Tạo tốc ñộ baud cho port nối tiếp của chip 8051.
- Trong các ứng dụng ñịnh thời trong một khoảng thời gian, bộ
ñịnh thời ñược lập trình sao cho sẽ bị tràn sau một khoảng thời gian
quy ñịnh và set cờ tràn của bộ ñịnh thời bằng 1.
- Việc ñếm sự kiện ñược dùng ñể xác ñịnh số lần xuất hiện của một


sự kiện. Sự kiện là một kích thích bên ngoài cung cấp một chuyển
trạng thái từ 1 xuống 0 tới một chân của 8051.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
Mục ñích

SFR

ðịa chỉ

ðịnh ñịa chỉ bit

TCON

ðiều khiển

88H



TMOD

Chọn chế ñộ

89H


không

TL0

Byte thấp của bộ ñịnh thời 0

8AH

không

TL1

Byte thấp của bộ ñịnh thời 1

8BH

không

TH0

Byte cao của bộ ñịnh thời 0

8CH

không

TH1

Byte cao của bộ ñịnh thời 1


8DH

không

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TCON

- TCON chứa các bit ñiều khiển và trạng thái của bộ ñịnh
thời 0 và 1.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TCON

-4 bit cao TCON.4 - TCON.7 ñược dùng ñể ñiều khiển bộ ñịnh
thời hoạt ñộng hoặc ngưng (TR0, TR1), hoặc ñể báo các bộ
ñịnh thời tràn (TF0, TF1).
- 4 bit thấp TCON.0 - TCON.3 không dùng ñể ñiều khiển các bộ
ñịnh thời, chúng ñược dùng ñể phát hiện và khởi ñộng các ngắt
ngoài.


GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TCON
Bit

TCON.7

Ký hiệu

TF1

ðịa chỉ

Mô tả

8FH

Cờ tràn của bộ ñịnh thời 1. Cờ này ñược set bởi phần
cứng khi có tràn, ñược xóa bởi phần mềm, hoặc bởi
phần cứng khi bộ VðK trỏ ñến trình phục vụ ngắt.

TCON.6

TR1

8EH


Bit ñiều khiển hoạt ñộng của bộ ñịnh thời 1. Bit này
ñược set hoặc ñược xóa bởi phần mềm ñể ñiều khiển
bộ ñịnh thời hoạt ñộng hoặc ngưng hoạt ñộng.

TCON.5

TF0

8DH

Cờ tràn của bộ ñịnh thời 0.

TCON.4

TR0

8CH

Bit ñiều khiển hoạt ñộng của bộ ñịnh thời 0.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TCON
Bit


TCON.3

Ký hiệu

IE1

ðịa chỉ

Mô tả

8BH

Cờ ngắt bên ngoài 1 (kích khởi cạnh). Cờ này ñược
set bởi phần cứng khi có cạnh âm (xuống) xuất hiện
trên chân /INT1, ñược xóa bởi phần mềm, hoặc phần
cứng khi CPU trỏ ñến trình phục vụ ngắt.

TCON.2

IT1

8AH

Chọn kích khởi cạnh hay mức cho ngắt ngoài 1. Cờ
này ñược set hoặc xóa bởi phần mềm khi xảy ra cạnh
âm hoặc mức thấp tại chân ngắt ngoài.

TCON.1

IE0


89H

Cờ ngắt bên ngoài 0.

TCON.0

IT0

88H

Chọn kích khởi cạnh hay mức cho ngắt ngoài 0.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TMOD

Chứa 2 nhóm 4-bit dùng ñể thiết lập chế ñộ hoạt ñộng
cho bộ ñịnh thời 0 và bộ ñịnh thời 1.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TMOD


- TMOD không ñược ñịnh ñịa chỉ bit và ñiều này cũng
không cần thiết.
- TMOD ñược nạp giá trị một lần bằng phần mềm ở thời
ñiểm bắt ñầu của một chương trình ñể khởi ñộng chế ñộ
hoạt ñộng của bộ ñịnh thời. Sau ñó , bộ ñịnh thời có thể
ñược dừng, bắt ñầu ... bằng cách truy xuất các thanh ghi
ñặc biệt khác của bộ ñịnh thời.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TMOD
Bit

7

Tên

GATE

Bộ ñịnh
thời

Mô tả

1


Bit ñiều khiển cổng của bộ ñịnh thời 1. Khi
ñược set lên 1, bộ ñịnh thời 1 chỉ hoạt ñộng
trong khi /INT1 ở mức cao.
Bit chọn chức năng ñếm hoặc ñịnh thời.
1 = ñếm sự kiện.
0 = ñịnh thời gian.

6

C/T

1

5

M1

1

Bit chọn chế ñộ thứ nhất.

4

M0

1

Bit chọn chế ñộ thứ hai.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007



CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
2. Các thanh ghi dùng truy xuất Timer/Counter
* Thanh ghi TMOD
Bit

3

Tên

GATE

Bộ ñịnh
thời

Mô tả

0

Bit ñiều khiển cổng của bộ ñịnh thời 0. Khi
ñược set lên 1, bộ ñịnh thời 0 chỉ hoạt ñộng
trong khi /INT0 ở mức cao.
Bit chọn chức năng ñếm hoặc ñịnh thời.
1 = ñếm sự kiện.
0 = ñịnh thời gian.

2


C/T

0

1

M1

0

Bit chọn chế ñộ thứ nhất.

0

M0

0

Bit chọn chế ñộ thứ hai.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
Chọn chế ñộ ñịnh thời
M1

M0


Chế ñộ

0

0

0

Chế ñộ ñịnh thời 13-bit.

0

1

1

Chế ñộ ñịnh thời 16-bit.

1

0

2

Chế ñộ tự ñộng nạp lại 8-bit.

1

1


3

Chế ñộ ñịnh thời chia sẻ.

Mô tả

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
a) Chế ñộ 0
-Là chế ñộ ñịnh thời 13-bit.
-Giá trị bộ ñếm 13-bit ñược lưu trong các thanh ghi TH-TL nằm trong
giới hạn từ 0000H ñến 1FFFH. Do vậy, khi bộ ñịnh thời ñếm lên ñạt
ñến giá trị cực ñại là 1FFFH thì nó sẽ quay về 0000H và cờ tràn TF
ñược bật lên 1.
- Thời gian tối ña có thể ñịnh thời: 213 = 8192 µs (OSC =
11,0592MHz).
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
Chế ñộ 0

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007



CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
b) Chế ñộ 1

-Là bộ ñịnh thời 16-bit, có cấu hình giống bộ ñịnh
thời 13-bit.
-Thời gian ñịnh thời tối ña: 216 = 65536 µs.
- Muốn ñịnh khoảng thời gian lớn hơn ta dùng bộ
ñịnh thời 16-bit kết hợp với các vòng lặp.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
Chế ñộ 1

Ngắt

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
c) Chế ñộ 2


-Chế ñộ 2 là chế ñộ tự nạp lại 8-bit. Byte thấp của bộ ñịnh
thời (TLx) hoạt ñộng ñịnh thời 8-bit trong khi byte cao của
bộ ñịnh thời lưu giữ giá trị nạp lại.
- Khi số ñếm tràn từ FFh xuống 00H, không chỉ cờ tràn của
bộ ñịnh thời ñược set lên 1 mà giá trị trong THx còn ñược
nạp vào TLx, việc ñếm sẽ tiếp tục từ giá trị này cho ñến khi
xảy ra 1 tràn (FFh → 00h) kế tiếp,...
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
c) Chế ñộ 2

Ngắt

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
3. Các chế ñộ (mode) ñịnh thời
c) Chế ñộ 3 (Chế ñộ chia sẻ)
-Ít ñược sử dụng.
- Chế ñộ 3 là chế ñộ ñịnh thời chia sẻ và có hoạt ñộng khác nhau cho
từng bộ ñịnh thời. Bộ ñịnh thời 0 ở chế ñộ 3 ñược chia làm 2 bộ ñinh
thời 8 bit (không tự ñộng nạp lại) hoạt ñộng riêng rẽ TH0 và TL0,
mỗi bộ ñịnh thời sẽ set các cờ tràn tương ứng TF0 và TF1 khi xảy ra
tràn.


GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
4. Các bước lập trình ñịnh thời

1. Nạp giá trị ban ñầu cho các thanh ghi: Chọn bộ
Timer/Counter (0,1), chọn Mod (0,1,2,3), ñặt thời
gian cần ñịnh thời cho các thanh ghi TH, TL...
2. Kích hoạt cho bộ Timer/Counter hoạt ñộng
(bằng lệnh "SETB TR0" cho Timer 0 và "SETB
TR1" cho Timer 1. Timer bắt ñầu ñếm lên.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
4. Các bước lập trình ñịnh thời
3. Kiểm tra trạng thái của cờ tràn (lệnh JNB TFx,ñích) ñể biết khi
nào thời gian ñịnh thời kết thúc. Khi xảy ra tràn thì cờ tràn TF0 hoặc
TF1 sẽ bật lên mức cao.
4. Dừng bộ ñịnh thời "CLR TR0" hoặc "CLR TR1".
5. Xóa cờ TF (nếu ko phải là ngắt) ñể chuẩn bị cho vòng kế tiếp.
6. Quay trở lại bước 2 ñể nạp lại giá trị cần ñịnh thời cho TL và TH
(ñối với chế ñộ 0,1) nếu muốn lặp lại việc ñịnh thời.

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007



CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
* Các bước lập trình ñịnh thời chế ñộ 2
1- Nạp giá trị cho thanh ghi TMOD ñể chọn bộ ñịnh thời nào (Timer 0,
Timer1) và chế ñộ hoạt ñộng 2.
2- Nạp vào thanh ghi TH giá trị ñịnh thời (-nµs).
3- Khởi ñộng bộ ñịnh thời (SETB TR0 hoặc SETB TR1);
4- Kiểm tra cờ tràn TF bằng lệnh "JNB TFx, ñích" ñể xem cờ ñã ñược bật
chưa. Thoát khỏi vòng lặp khi TF lên mức cao
LOOP: JNB TF0, LOOP
5- Xóa cờ tràn TFx
6- Quay trở lại bước 4 vì chế ñộ 2 là chế ñộ tự nạp lại.
GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
5. Cách xác ñịnh giá trị cần nạp vào thanh ghi TH, TL
Giả sử chúng ta ñã biết thời gian trễ cần có, vậy giá trị nạp cho các thanh ghi
TH và TL là bao nhiêu? Tần số dao ñộng thạch anh: 11.0592MHz. Các bước thực
hiện sử dụng máy tính Calculator của Windows như sau:
1- Chọn máy tính Calculator từ Windows và ñặt chế ñộ tính về số thập phân
Decimal.
2- Nhập từ bàn phím thực hiện chia thời gian trễ cho 1,085µs ñược một số thập
phân n.
3- Chuyển số âm "- n." sang số Hexa, ta ñược một số yyxxH là giá trị Hexa cần
nạp cho các thanh ghi của bộ ñịnh thời.
4- ðặt TL = xx và TH = yy.


GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


CHƯƠNG 4:
HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN
5. Cách xác ñịnh giá trị cần nạp vào thanh ghi TH, TL
Giải thích: Các bộ ñịnh thời ñếm lên và thiết lập cờ tràn
bằng 1 khi xảy ra tràn số ñếm từ FFFFH xuống 0000H,
vậy thì một khoảng thời gian nµs có thể ñược ñịnh thời
bằng cách khởi ñộng TL và TH chứa số ñếm nhỏ hơn
0000H một lượng là n, nghĩa là "-n".

GV. Lê Tiến Dũng. Automation Department, Faculty of Electrical Engineering – DUT / 2007


×