Bài giảng Thiết kế hệ thống vi xử lý - Tuần 7: Bộ dịnh thời và nguyên lý hoạt động
Bạn đang xem tài liệu "Bài giảng Thiết kế hệ thống vi xử lý - Tuần 7: Bộ dịnh thời và nguyên lý hoạt động", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_thiet_ke_he_thong_vi_xu_ly_tuan_7_bo_dinh_thoi_va.pdf
Nội dung text: Bài giảng Thiết kế hệ thống vi xử lý - Tuần 7: Bộ dịnh thời và nguyên lý hoạt động
- 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 1 Electrical Engineering 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 2 Electrical Engineering 1
- 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 3 Electrical Engineering Vớ dụ giỏ trị •Timer bắt đầu đếm từ 1000 • MOV TH0,#03 • MOV TL0, #232d – 3 X 256 + 232 = 1000 4 Electrical Engineering 2
- Cỏc chế độ của bộ định thời, TMOD 5 Electrical Engineering 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 6 Electrical Engineering 3
- 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 7 Electrical Engineering 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 8 Electrical Engineering 4
- 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 9 Electrical Engineering 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 10 Electrical Engineering 5
- 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 11 Electrical Engineering 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 12 Electrical Engineering 6
- Vớ dụ về đọc giỏ trị bộ định thời REPEAT: MOV A,TH0 • Đọc byte cao MOV R0,TL0 • Đọc byte thấp CJNE A,TH0,REPEAT • Đọc lại byte cao lần nữa và so sỏnh 13 Electrical Engineering Đếm sự kiện JNB P1.0,$ Đợi xe •Sử dụng thanh ghi TMOD JB P1.0,$ Chờ xe đi qua • Đọc giỏ trị T0 hoặc T1 INC COUNTER Tăng số đếm 14 Electrical Engineering 7
- 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 15 Electrical Engineering 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 16 Electrical Engineering 8
- Vớ dụ về tớnh hiệu quả ngắt JNB TF0, do_smt Ch−ơng trình trên phải chờ bộ CPL P3.0 định thời CLR TF0 do_smt: Giả sử bộ định thời đếm từ 0 – 65536 Ví dụ ch−ơng trnh ngắt Giả sử ch−ơng trình do_smt CPL P3.0 thực hiện mất 100 chu kỳ máy RETI Tổng cổng phải kiểm tra 655 lần 17 Electrical Engineering 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 18 Electrical Engineering 9
- Bảng Vector ngắt Interrupt Flag Interrupt Handler Address Khi xảy ra ngắt, thì External 0 IE0 0003h con trỏ PC sẽ nhảy về vị trí ngắt t−ơng ứng Timer 0 TF0 000Bh trong bảng External 1 IE1 0013h Timer 1 TF1 001Bh Serial RI/TI 0023h 19 Electrical Engineering Khởi động ngắt Bit Name Bit Address Explanation of Function SETB ET1 7 EA AFh Cho phộp ngắt toàn cục Interrupt Enable/Disable SETB EA 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ắtTimer 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 20 Electrical Engineering 10
- Ư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 21 Electrical Engineering 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 22 Electrical Engineering 11
- 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 23 Electrical Engineering Cỏc lệnh dựng bảo vệ PUSH ACC •Các thanh ghi cần bảo vệ PUSH PSW •PSW •DPTR (DPH/DPL) POP PSW POP ACC •PSW •ACC •B •Registers R0-R7 24 Electrical Engineering 12
- 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 25 Electrical Engineering 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 26 Electrical Engineering 13