Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
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
Nội dung
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: ltdung@udn.vn CHƯƠNG 4: HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN NỘI DUNG CHƯƠNG Mở ñầu Các ghi dùng truy xuất Timer/Counter Các chế ñộ (mode) ñịnh thời Các bước lập trình ñịnh thời Cách xác ñịnh giá trị nạp cho ghi TH, TL Các ví dụ ñịnh thời Lập trình ñế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 Mở ñầu - Các ñịnh thời/ñếm kiện dùng ñể: + ðịnh thời khoảng thời gian + ðếm kiện + Tạo tốc ñộ baud cho port nối tiếp chip 8051 - Trong ứng dụng ñịnh thời khoảng thời gian, ñịnh thời ñược lập trình cho bị tràn sau khoảng thời gian quy ñịnh set cờ tràn ñịnh thời - Việc ñếm kiện ñược dùng ñể xác ñịnh số lần xuất kiện Sự kiện kích thích bên cung cấp chuyển trạng thái từ xuống tới chân 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 Các ghi dùng truy xuất Timer/Counter Mục ñích SFR ðịa ðịnh ñịa bit TCON ðiều khiển 88H Có TMOD Chọn chế ñộ 89H không TL0 Byte thấp ñịnh thời 8AH không TL1 Byte thấp ñịnh thời 8BH không TH0 Byte cao ñịnh thời 8CH không TH1 Byte cao ñịnh thời 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 Các ghi dùng truy xuất Timer/Counter * Thanh ghi TCON - TCON chứa bit ñiều khiển trạng thái ñị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 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 ñịnh thời hoạt ñộng ngưng (TR0, TR1), ñể báo ñịnh thời tràn (TF0, TF1) - bit thấp TCON.0 - TCON.3 không dùng ñể ñiều khiển ñịnh thời, chúng ñược dùng ñể phát khởi ñộng 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 Các ghi dùng truy xuất Timer/Counter * Thanh ghi TCON Bit TCON.7 Ký hiệu TF1 ðịa Mô tả 8FH Cờ tràn ñịnh thời Cờ ñược set phần cứng có tràn, ñược xóa phần mềm, phần cứng VðK trỏ ñến trình phục vụ ngắt TCON.6 TR1 8EH Bit ñiều khiển hoạt ñộng ñịnh thời Bit ñược set ñược xóa phần mềm ñể ñiều khiển ñịnh thời hoạt ñộng ngưng hoạt ñộng TCON.5 TF0 8DH Cờ tràn ñịnh thời TCON.4 TR0 8CH Bit ñiều khiển hoạt ñộng ñị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 ghi dùng truy xuất Timer/Counter * Thanh ghi TCON Bit TCON.3 Ký hiệu IE1 ðịa Mô tả 8BH Cờ ngắt bên (kích khởi cạnh) Cờ ñược set phần cứng có cạnh âm (xuống) xuất chân /INT1, ñược xóa phần mềm, phần cứng 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 Cờ ñược set xóa phần mềm xảy cạnh âm mức thấp chân ngắt TCON.1 IE0 89H Cờ ngắt bên TCON.0 IT0 88H Chọn kích khởi cạnh hay mức cho 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 Các ghi dùng truy xuất Timer/Counter * Thanh ghi TMOD Chứa nhóm 4-bit dùng ñể thiết lập chế ñộ hoạt ñộng cho ñịnh thời ñị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 ghi dùng truy xuất Timer/Counter * Thanh ghi TMOD - TMOD không ñược ñịnh ñịa bit ñiều không cần thiết - TMOD ñược nạp giá trị lần phần mềm thời ñiểm bắt ñầu chương trình ñể khởi ñộng chế ñộ hoạt ñộng ñịnh thời Sau ñó , ñịnh thời ñược dừng, bắt ñầu cách truy xuất ghi ñặc biệt khá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ách xác ñịnh giá trị cần nạp vào ghi TH, TL Giải thích: Các ñịnh thời ñếm lên thiết lập cờ tràn xảy tràn số ñếm từ FFFFH xuống 0000H, khoảng thời gian nµs ñược ñịnh thời cách khởi ñộng TL TH chứa số ñếm nhỏ 0000H lượng n, nghĩa "-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 * Chân GATE ñịnh thời + Khi GATE = ñịnh thời Timer0 Timer1 ñược khởi ñộng lệnh tương ứng "SETB TR0" "SETB TR1" + Khi GATE = việc khởi ñộng dừng ñịnh thời Timer Timer ñược thực từ bên thông qua chân P3.2 (/INT0) P3.3 (/INT1) tương ứng Lúc ñó, việc phải set TR0 TR1 lên phải ñưa tín hiệu vào từ bên thông qua /INT0 /INT1 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 * Chân GATE ñịnh thời Ứng dụng: Nhằm ñể cung cấp cho người dùng khả kiểm soát hoạt ñộng ñịnh thời từ bên VðK Ví dụ trường hợp còi báo ñộng theo thời gian ñịnh: Cứ sau 10p còi báo ñộng kêu Nếu nối công tắc chuyển mạch ñến chân /INTx ta dừng khởi ñộng ñịnh thời tắt mở còi báo ñộ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 Các ví dụ ñịnh thời Ví dụ 1: Giả sử tần số XTAL = 11,0592MHz Hãy xác ñịnh giá trị nạp vào ghi TH TL cần trễ thời gian 5ms Hãy viết chương trình cho Timer ñể tạo xung chân P2.3 có ñộ rộng 5ms Giải Vì tần số XTAL = 11,0592MHz nên ñếm tăng giá trị sau chu kỳ 1,085µs ðể có ñộ rộng xung 5ms số nhịp ñồng hồ là: n = 5ms/1,085µs = 4608 Giá trị cần nạp vào TH TL ñược tính cách: Lấy - 4608, ñổi số Hexa ta có EE00 Do vậy, giá trị cần nạp vào TH EE cần nạp vào TL 00 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 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 Chương trình: CLR P2.3 MOV TMOD,#01 LOOP: MOV TL0,#0 MOV TH0,#0xEE SETB TR0 AGAIN: JNB TF0,AGAIN CLR TR0 CLR TF0 CPL P2.3 SJMP LOOP END ; Xóa bit P2.3 ; Chọn Timer 0, chế ñộ (16 bit) ; Nạp TL = 00 ; Nạp TH = EE ; Bắt ñầu ñịnh thời ; Chờ tràn, nhảy bit TF0 chưa ñược set ; Dừng ñịnh thời ; Xóa cờ tràn TF0 cho vòng sau ; Lấy bù chân P2.3 ; Lặ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 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 ví dụ ñịnh thời Ví dụ 2: Viết chương trình tạo sóng vuông 10KHz chân P1.0 sử dụng ñịnh thời Giải - Sóng vuông 10KHz có chu kỳ 100µs với thời gian mức cao 50µs thời gian mức thấp 50µs Vì khoảng thời gian nhỏ 256 (28) nên ta sử dụng chế ñộ - Một tràn xảy sau 50µs yêu cầu giá trị số ñếm nhỏ 00h lượng +50 phải nạp nạp lại cho TL0, nghĩa giá trị nạp cho TH0 -50 ( Thời gian cần ñịnh thời: t = 50 µs P1.0 50µ µs Số cần nạp cho ghi 100µ µs ñịnh thời: Decimal: -50 Hexa: 0xCE < 0xFF => Dùng chế ñộ (auto reload 8-bit) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 8051 CHƯƠNG 4: HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN ORG 0x0000H MOV TMOD,#02 ; Chọn chế ñộ (Chế ñộ tự nạp lại 8-bit) MOV TH0,# -50 ; TH0 chứa giá trị nạp lại -50 MOV TL0,#-50 SETB TR0 LOOP: JNB TF0,LOOP ; Bắt ñầu ñịnh thời ; Nhảy TF0 = (chờ tràn) CLR TF0 ; Xóa cờ tràn CPL P1.0 ; ðổi trạng thái bit P1.0 SJMP LOOP ; Lặp lại END 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 Lập trình ñếm - Mục ñích: ðể ñếm kiện (event) xảy bên 8051 - Xung từ bên làm tăng giá trị ghi TH, TL - Chọn chức ñếm bit C/T ghi TMOD Set C/T = → chọn ñếm - Các chế ñộ ñếm: Tương tự chế ñộ ñịnh thời + Chế ñộ ñếm 13-bit + Chế ñộ ñếm 16-bit + Chế ñộ ñếm 8-bit tự ñộng 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 Lập trình ñếm - Bộ ñếm ñếm lên có xung xuất 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) 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 Lập trình ñếm Ví dụ Giả sử có nguồn xung kiện ñược cấp tới chân T1 (P3.5), viết chương trình cho ñếm chế ñộ ñể ñếm số lần xuất kiện hiển thị trạng thái số ñếm TL1 cổng P1 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 ORG 0000H MOV TMOD,#01100000B MOV TH1,#0 SETB P3.5 AGAIN:SETB TR1 BACK: MOV A,TL1 MOV P1,A JNB TF1,BACK CLR TR1 CLR TF1 SJMP AGAIN END ; Chọn ñếm 1, chế ñộ 2, C/T=1 ; Xóa TH1, bắt ñầu ñếm lên từ giá trị ; Lấy ñầu vào chân T1 ; Bắt ñầu ñếm ; ðọc giá trị ñếm TL1 vào A ; Hiển thị số ñếm cổng P1 ; Kiểm tra cờ tràn ; Dừng ñếm ; Xóa cờ tràn ; Lặp lại GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 THANK YOU ! SEE YOU IN NEXT CHAPTER GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 [...]... ðỘ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... 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ế... 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ữ... 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...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... 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à... 2007 CHƯƠNG 4: HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN Chu kỳ xung: T = 1/f = 1/10kHz = 100µ µs => Thời gian cần ñịnh thời: t = 50 µs P1.0 50µ µs Số cần nạp cho thanh ghi của 100µ µs bộ ñịnh thời: Decimal: -50 Hexa: 0xCE < 0xFF => Dùng chế ñộ 2 (auto reload 8-bit) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 8051 CHƯƠNG 4: HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆN ORG 0x0000H... ñược set bằng 1 ; Dừng bộ ñịnh thời ; Xóa cờ tràn TF0 cho vòng sau ; Lấy bù chân P2.3 ; Lặ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 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 6 Các ví dụ ñịnh thời Ví dụ 2: Viết chương trình... 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);... CHƯƠNG 4: HOẠT ðỘNG ðỊNH THỜI/ ðẾM SỰ KIỆ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 Chương trình: CLR P2.3 MOV TMOD,#01 LOOP: MOV TL0,#0 MOV TH0,#0xEE SETB TR0 AGAIN: JNB TF0,AGAIN CLR TR0 CLR TF0 CPL P2.3 SJMP LOOP END ; Xóa bit P2.3 ; Chọn Timer 0, chế ñộ 1 (16 bit) ; Nạp TL = 00 ; Nạp TH = EE ; Bắt ñầu ñịnh thời ;