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

Bài giảng kỹ thuật vi xử lý Bộ định thời 8051

13 282 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 13
Dung lượng 153,77 KB

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

Nội dung

Electrical Engineering 1Bộ định thời 8051 • Có 2 bộ định thời 8 bit, 16 bit 8052 có thêm bộ định thời 16 bit •Xác định một khoảng thời gian •Đếm sự kiện • Tạo tốc độ baud trong truyền th

Trang 1

Electrical Engineering 1

Bộ định thời 8051

• Có 2 bộ định thời 8 bit, 16 bit 8052 có

thêm bộ định thời 16 bit

•Xác định một khoảng thời gian

•Đếm sự kiện

• Tạo tốc độ baud trong truyền thông nối

tiếp

Cách đếm timer

• Bộ định thời, dù đếm thời gian hay đếm sự

kiện đều luôn luôn đếm tăng

• Giá trị bắt đầu đếm được xác định bởi phần

mềm

• Khi bộ định thời đếm hết thì chương trình

sẽ bật tắc cờ tràn, dấu hiệu cho phép thực

hiện chương trình tiếp theo

Trang 2

Electrical Engineering 3

Các thanh ghi định thời

SFR Name Description SFR Address

Ví dụ giá trị

• Timer bắt đầu đếm từ 1000

• MOV TH0,#03

• MOV TL0, #232d

– 3 X 256 + 232 = 1000

Trang 3

Electrical Engineering 5

Các chế độ của bộ định thời,

TMOD

Chế độ làm việc

TxM1 TxM0 Timer Mode Description of Mode

Trang 4

Electrical Engineering 7

Chế độ 13 bit

• Chế độ này dùng tương thích với VXL cũ

và không được sử dụng hiện nay

Mode 1, 16 bit định thời

• Bộ đếm sẽ đếm tới – 65536, sau đó bộ đếm

sẽ quay lại 0

• Giá trị lớn nhất TL0 – 255

• Giá trị lớn nhất TH0 – 255

• Không tự động nạp lại

Trang 5

Electrical Engineering 9

Mode 2, 8 bit định thời

• Tự động nạp lại ở chế độ 8 bít

• THx giữ giá trị khởi động để nạp

• TLx sẽ đếm tới FF và quay trở lại TH

• Ưng dụng tạo xung PWM và dùng trong

cổng nối tiếp

Mode 3, chế độ định thời chia xẻ

• Tạo nên 3 bộ định thời

• Bộ định thời 0 gồm 2 bộ định thời 8 bit

• Bộ định thời 1 có thể dùng bất cứ chế độ

nào

Trang 6

Electrical Engineering 11

Khởi động, dừng và điều khiển

bộ định thời

Bit Name Bit Address Explanation of Function Timer

7 TF1 8Fh Timer 1 Overflow Bit này sẽ bật khi Timer 1 tràn 1

6 TR1 8Eh Timer 1 Run Khởi động và dừng Timer 1 1

5 TF0 8Dh Timer 0 Overflow Bit này sẽ bật khi Timer 0 tràn 0

4 TR0 8Ch Timer 0 Run Khởi động và dừng Timer 0 0

Ví dụ về khởi động Timer

• Đặt Timer 0 ở mode 1

• Đặt Timer 1 ở mode 1

– Mov TMOD, #00010001B

– Setb TR0

– Hoặc

– Clr TR0; Dừng Timer 0

– Đợi cơ tràn xuất hiện

– Wait: JNB TF1, Wait

Trang 7

Electrical Engineering 13

Ví dụ về đọc giá trị bộ định thời

• Đọc byte cao

• Đọc byte thấp

• Đọc lại byte cao lần nữa

và so sánh

REPEAT: MOV A,TH0

MOV R0,TL0

CJNE A,TH0,REPEAT

Đếm sự kiện

• Sử dụng thanh ghi TMOD

• Đọc giá trị T0 hoặc T1

JNB P1.0,$ Đợi xe

JB P1.0,$ Chờ xe đi qua

INC COUNTER

Tăng số đếm

Trang 8

Electrical Engineering 15

Ví dụ

• Viết chương trình tạo dao động tần số

10KHz trên chân P1.0

• 10 KHZ tương đương với chu kỳ là 100μS,

với thời gian mức thấp 50 μS, mức cao là

50μS

• Giả thiết làm việc với tần số 12 MHz

Ngắt (Interrupt)

• Tạm ngưng công việc hiện thời và chuyển

sang thực hiện chương trình khác và quay

trở lại chương trình cũ sau khi kết thúc

• Mục đích cho phép xử lý “song song” nhiều

công việc

• Tạo tính hiệu quả khi làm việc

Trang 9

Electrical Engineering 17

Vớ dụ về tớnh hiệu quả ngắt

JNB TF0, do_smt

CPL P3.0

CLR TF0

do_smt:

Ví dụ chương trnh ngắt

CPL P3.0

RETI

Chương trình trên phải chờ bộ

định thời Giả sử bộ định thời đếm từ 0 – 65536

Giả sử chương trình do_smt thực hiện mất 100 chu kỳ máy Tổng cổng phải kiểm tra 655 lần

Cỏc sự kiện xảy ra ngắt

• Timer 0 tràn

• Timer 1 tràn

• Truyền và nhận tớn hiệu nối tiếp

• Sự kiện ngoài 0

• Sự kiện ngoài 0

Trang 10

Electrical Engineering 19

Bảng Vector ngắt

Interrupt Flag Interrupt Handler Address

External 0 IE0 0003h

Timer 0 TF0 000Bh

External 1 IE1 0013h

Timer 1 TF1 001Bh

Serial RI/TI 0023h

Khi x¶y ra ng¾t, th×

con trá PC sÏ nh¶y vÒ

vÞ trÝ ng¾t t−¬ng øng trong b¶ng

Khởi động ngắt

Bit Name Bit Address Explanation of Function

7 EA AFh Cho phép ngắt toàn cục Interrupt Enable/Disable

6 - AEh Undefined

5 - ADh Undefined

4 ES ACh Cho phép ngắt nối tiếp

3 ET1 ABh Cho phép ngắt Timer 1

2 EX1 AAh Cho phép ngắt External 1

1 ET0 A9h Cho phép ngắt nối tiếp Timer 0

SETB ET1 SETB EA

Trang 11

Electrical Engineering 21

Ưu tiên ngắt

• Ngắt có ưu tiên cao sẽ xảy ra trước ngắt có

ưu tiên thấp

• 2 ngắt có cùng ưu tiên thì ngắt nào xảy ra

trước sẽ chạy trước

Hoạt động VXL khi xảy ra ngắt

• Cất bộ đếm PC vào stack

• Trong trường hợp Timer hoặc Event ngắt

xảy ra, cờ ngắt sẽ tự động xóa

• Chương trình sẽ nhảy về địa chỉ vector ngắt

• Thực hiện chương trình ngắt

Trang 12

Electrical Engineering 23

Bảo vệ thanh ghi khi xảy ra ngắt

• CLR C ;Clear carry

MOV A,#25h ;Load the accumulator with

25h

ADDC A,#10h ;Add 10h, with carry

• Ngắt có thể làm thay đổi giá trị thanh ghi

Các lệnh dùng bảo vệ

PUSH ACC

PUSH PSW

POP PSW

POP ACC

•C¸c thanh ghi cÇn b¶o vÖ

•PSW

•DPTR (DPH/DPL)

•PSW

•ACC

•B

•Registers R0-R7

Trang 13

Electrical Engineering 25

Các lỗi khi sử dụng ngắt

• Quên không bảo vệ thanh ghi

• Quên không trả lại giá trị sau khi kết thúc

ngắt

• Trả về ngắt dùng ret thay vì dùng reti

Ví dụ tạo xung vuông dùng ngắt

• Viết chương trình tạo dao động tần số

10KHz trên chân P1.0

• 10 KHZ tương đương với chu kỳ là 100μS,

với thời gian mức thấp 50 μS, mức cao là

50μS

• Giả thiết làm việc với tần số 12 MHz

Ngày đăng: 10/11/2014, 23:37

HÌNH ẢNH LIÊN QUAN

Bảng Vector ngắt - Bài giảng kỹ thuật vi xử lý   Bộ định thời 8051
ng Vector ngắt (Trang 10)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm