Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
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
Nội dung
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 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 2 Electrical 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 3 Electrical 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 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 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 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 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 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 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 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 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 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 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 9 Electrical Engineering 17 Vớ d v tớnh hiu qu ngt 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 kin xy ra ngt Timer 0 trn Timer 1 trn Truyn v nhn tớn hiu ni tip S kin ngoi 0 S kin ngoi 0 10 Electrical Engineering 19 Bng Vector ngt 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 Khi ng ngt Bit Name Bit Address Explanation of Function 7 EA AFh Cho phộp ngt ton cc Interrupt Enable/Disable 6 - AEh Undefined 5 - ADh Undefined 4 ES ACh Cho phộp ngt ni tip 3 ET1 ABh Cho phộp ngtTimer 1 2 EX1 AAh Cho phộp ngt External 1 1 ET0 A9h Cho phộp ngt ni tip Timer 0 0 EX0 A8h Cho phộp ngt External 0 SETB ET1 SETB EA [...]... sau khi kết thúc ngắt • Trả về ngắt dùng ret thay vì dùng reti Electrical Engineering 25 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 Electrical Engineering 26 13 ...Ư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 21 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 Electrical Engineering 22 11 Bảo . độ đị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 6 Electrical Engineering 11 Khởi động, dừng và điều khiển bộ. 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. 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