Giáo trình Bộ định thời 8051

1Electrical 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 Electrical Engineering 2 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

pdf13 trang | Chia sẻ: huongnhu95 | Lượt xem: 361 | Lượt tải: 0download
Tóm tắt tài liệu Giáo trình Bộ định thời 8051, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2Electrical Engineering 3 Cỏc thanh ghi định thời SFR Name Description SFR Address TH0 Timer 0 High Byte 8Ch TL0 Timer 0 Low Byte 8Ah TH1 Timer 1 High Byte 8Dh TL1 Timer 1 Low Byte 8Bh TCON Timer Control 88h TMOD Timer Mode 89h Electrical Engineering 4 Vớ dụ giỏ trị • Timer bắt đầu đếm từ 1000 • MOV TH0,#03 • MOV TL0, #232d – 3 X 256 + 232 = 1000 3Electrical Engineering 5 Cỏc chế độ của bộ định thời, TMOD Electrical Engineering 6 Chế độ làm việc TxM1 TxM0 Timer Mode Description of Mode 0 0 0 13-bit Timer. 0 1 1 16-bit Timer 1 0 2 8-bit auto-reload 1 1 3 Split timer mode 4Electrical 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 Electrical Engineering 8 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 5Electrical 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 Electrical Engineering 10 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 6Electrical 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 Electrical Engineering 12 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 7Electrical 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 ... Electrical Engineering 14 Đế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 8Electrical 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 Electrical Engineering 16 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 9Electrical 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 Electrical Engineering 18 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 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 Electrical Engineering 20 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 0 EX0 A8h Cho phộp ngắt External 0 SETB ET1 SETB EA 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 Electrical Engineering 22 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 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 Electrical Engineering 24 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 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 Electrical Engineering 26 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

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_bo_dinh_thoi_8051.pdf
Tài liệu liên quan