1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

39 201 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 725,18 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

+ 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

Trang 1

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

Trang 2

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

NỘI DUNG CHƯƠNG 4

Trang 3

+ 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

Trang 4

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

không 8DH

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

TH1

không 8CH

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

TH0

không 8BH

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

TL1

không 8AH

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

TL0

không 89H

Chọn chế ñộ

TMOD

Có 88H

ðiều khiển

TCON

ðịnh ñịa chỉ bit ðịa chỉ

M ục ñích

SFR

Trang 5

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

Trang 6

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.

Trang 7

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 ñiều khiển hoạt ñộng của bộ ñịnh thời 0.

8CH

TR0 TCON.4

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

8DH

TF0 TCON.5

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.

8EH

TR1 TCON.6

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.

8FH

TF1 TCON.7

Mô t

ðịa chỉ

Ký hi ệu

Bit

Trang 8

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

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

88H

IT0 TCON.0

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

89H

IE0 TCON.1

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

8AH

IT1 TCON.2

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

8BH

IE1 TCON.3

Mô t

ðịa chỉ

Ký hi ệu

Bit

Trang 9

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.

Trang 10

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.

Trang 11

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

Trang 12

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

Trang 13

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

2 0

1

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

1 1

0

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

0 0

0

Mô tả Chế ñộ

M0 M1

Chọn chế ñộ ñịnh thời

Trang 14

- Thời gian tối ña có thể ñịnh thời: 2 13 = 8192 µ µ µs (OSC =

11,0592MHz).

Trang 15

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

3 Các chế ñộ (mode) ñịnh thời

Chế ñộ 0

Trang 16

-Thời gian ñịnh thời tối ña: 2 16 = 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.

Trang 18

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,

Trang 21

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.

Trang 22

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.

Trang 23

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.

Trang 24

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.

Trang 25

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".

Trang 26

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

* Chân GATE trong các bộ ñịnh thời

+ Khi GATE = 0 thì các bộ ñịnh thời Timer0 và Timer1 ñược khởi ñộng bằng lệnh tương ứng "SETB TR0" và "SETB TR1".

+ Khi GATE = 1 thì việc khởi ñộng và dừng bộ ñịnh thời Timer

0 và Timer 1 ñược thực hiện từ bên ngoài thông qua chân P3.2 (/INT0) và P3.3 (/INT1) tương ứng Lúc ñó, ngoài việc phải set TR0

và TR1 lên bằng 1 còn phải ñưa tín hiệu vào từ bên ngoài thông qua /INT0 và /INT1.

Trang 27

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

* Chân GATE trong các bộ ñịnh thời

Ứng dụng: Nhằm ñể cung cấp cho người dùng khả

năng kiểm soát hoạt ñộng ñịnh thời từ bên ngoài VðK Ví

dụ trong trường hợp còi báo ñộng theo từng thời gian nhất

ñịnh: Cứ sau 10p thì còi báo ñộng kêu Nếu nối một công tắc chuyển mạch ñến chân /INTx thì ta có thể dừng hoặc khởi ñộng bộ ñịnh thời và như vậy có thể tắt hoặc mở còi báo ñộng.

Trang 29

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

Trang 30

MOV TH0,#0xEE ; Nạp TH = EE.

SETB TR0 ; Bắt ñầu ñịnh thời

AGAIN: JNB TF0,AGAIN ; Chờ tràn, nhảy nếu bit TF0 chưa ñược set bằng 1

Trang 31

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

Trang 32

- Một tràn xảy ra sau mỗi 50µs yêu cầu một giá trị số ñếm nhỏ hơn 00h một lượng là +50 phải nạp và nạp lại cho TL0, nghĩa là giá trị nạp cho TH0 là -50 (<FF).

Trang 34

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

ORG 0x0000H MOV TMOD,#02 ; Chọn chế ñộ 2 (Chế ñộ tự nạp lại 8-bit)

MOV TH0,# -50 ; TH0 chứa giá trị nạp lại -50 MOV TL0,#-50

END.

Trang 35

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

7 Lập trình bộ ñếm

- Xung từ bên ngoài sẽ làm tăng giá trị các thanh ghi TH, TL.

- Chọn chức năng ñếm bằng bit C/T của thanh ghi TMOD.

Trang 36

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

7 Lập trình bộ ñếm

- Bộ ñếm sẽ ñếm lên khi có xung xuất hiện từ:

+ chân T0: Timer/Counter0 external input (P3.4, chân số 14) + chân T1: Timer/Counter1 externa input (P3.5, chân số 15).

8051

P3.4 (T0) P3.5 (T1)

Trang 38

CHƯƠNG 4:

HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN

ORG 0000H MOV TMOD,#01100000B ; Chọn bộ ñếm 1, chế ñộ 2, C/T=1 MOV TH1,#0 ; Xóa TH1, bắt ñầu ñếm lên từ giá trị 0.

SETB P3.5 ; Lấy ñầu vào là chân T1

MOV P1,A ; Hiển thị số ñếm ra cổng P1

JNB TF1,BACK ; Kiểm tra cờ tràn

CLR TF1 ; Xóa cờ tràn

SJMP AGAIN ; Lặp lại

END.

Trang 39

THANK YOU !

SEE YOU IN NEXT CHAPTER.

Ngày đăng: 30/10/2015, 18:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w