Bộ định thời và ngắt, TS Nguyễn Hồng Quang

16 672 0
Bộ định thời và ngắt, TS Nguyễn Hồng Quang

Đ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

Bộ định thời ngắt TS Nguyễn Hồng Quang Electrical Engineering Bộ định thời 8051 • 8051 có bộộ định ị thời 16 bit T0,, T1,, 8052 có thêm định thời 16 bit, T2 • Xác định khoảng thời gian • Đếm kiện •Tạo tốc độ baud truyền thông nối tiếp Electrical Engineering Ý nghĩa • Bộ định thời cho phép tạo thời gian trễ xác tuyệt đối • Bộ định thời ngắt kết hợp coi lõi (kernel) hoạt động song song độc lập với chương trình (PC) Electrical Engineering Cách đếm định thời (timer/counter) • Bộ định thời thời, dù đếm thời gian hay đếm kiện luôn đếm tăng • Giá trị bắt đầu đếm xác định phần mềm • Khi bộộ định ị thời đếm hết chươngg trình bật cờ tràn, dấu hiệu cho phép thực chương trình Electrical Engineering Các ghi định thời SFR Name Mô tả Địa TH0 Timer High Byte 8Ch TL0 Timer Low Byte 8Ah TH1 Timer High Byte 8Dh TL1 Timer Low Byte 8Bh TCON Timer Control 88h TMOD Timer Mode 89h Electrical Engineering Ví dụ giá trị • Timer bắt đầu đếm từ 1000 • MOV TH0,#03 • MOV TL0, #232d – X 256 + 232 = 1000 Electrical Engineering Các chế độ định thời, TMOD Electrical Engineering Bit GATE • Cho phép kích hoạt dừng định thời từ ngắt GATE =1 • Cho phép kích hoạt dừng định thời từ phần mềm bên GATE =0 – Ví dụ: “SETB TR1” “CLR TR1” Electrical Engineering Chế độ làm việc TxM1 TxM0 Timer Mode Mô tả 0 13-bit Timer 1 16-bit Timer 8-bit auto-reload 1 Split timer mode Electrical Engineering Khởi động, dừng điều khiển định thời Thanh ghi TCON Bit Nam e Bit Add Address Explanation p of Function Time r TF1 8Fh Timer Overflow Bit bật Timer tràn TR1 8Eh Timer Run Khởi động dừng Timer 1 TF0 8Dh Timer Overflow Overflow Bit bật Timer tràn TR0 8Ch Timer Run Khởi động dừng Timer 0 Electrical Engineering 10 Chế độ 13 bit • Chế độ dùng tương thích với VXL cũ không sử dụng Electrical Engineering 11 Mode 1, 16 bit định thời • Bộ đếm đếm từ giá trị khởi động – 65536 (0 – FFFFh) • Giá trị lớn TL0 – 255 • Giá trị lớn TH0 – 255 • Không tự động nạp lại Electrical Engineering 12 Phương pháp làm việc với Mode1 • • • Nạp ghi TL TH giá trị khởi tạo sau khởi động Timer “SETB TR0” Timer “SETB TR1” Timer1 Bộ định thời đềm tới FFFFH bật bít cờ TF(Timer Flag, cờ tràn) TF0 TF1 Muốn lặp lại việc đếm ghi TH TL phải nạp lại với giá trị ban đầu TF phải xóa Electrical Engineering 13 Các bước làm việc Timer • • • • • • • Nạp giá trị TMOD (Timer0 hay Timer1) sử dụng chế độ chọn Nạp ghi TL TH với giá trị đếm ban đầu Khởi động định thời Chờ cờ TF “JNB TFx, đích” Dừng định thời Xoá cờ TF cho vòng Quay trở lại bước để nạp lại TL TH Electrical Engineering 14 Ví dụ • Tạo xung vuông với chu kỳ 50% chân ộ định ị thời Timer0 P1.5 Bộ 15 Electrical Engineering Thời gian trễ • Hay nói cách khác, Timer0 đếm tăng sau 085 để ttạo ttrễễ bằ 1,085s số ố đế đếm 1,085s 085 • Số đếm FFFFH - FFF2H = ODH (13 theo số thập phân) • Cộng + 13 cần thêm nhịp đồng hồ để quay từ FFFFH bật cờ TF Do vậy, ta có 14  1,085s 085 = 15,19s 15 19 cho h nửa chu h kỳ vàà cảả chu h kỳ T =  15,19s = 30, 38s thời gian trễ tạo định thời Electrical Engineering 16 Ví dụ tạo xung • Giả sử tần số XTAL 11,0592MHz ộ sóng g vuông g tần viết chươngg trình tạo số 2kHz chân P1.5 Electrical Engineering 17 Mode 2, bit định thời • Tự động nạp lại chế độ bít • THx giữ giá trị khởi động để nạp • TLx đếm tới FF, sau cờ tràn TFx đặt lên, VXL tự động copy giá trị chứa TH vào TL • Người sử dụng phải tự xóa cờ TFx • Ưng dụng tạo xung PWM dùng cổng nối tiếp Electrical Engineering 18 Các bước lập trình • • • • • • Nạp tthanh a ghi g giá g trị t ị TMOD O để báo đị định tthời gian ga (Timer0 hay Timer1) sử dụng chế độ làm việc chúng chọn Nạp lại ghi TH với giá trị đếm ban đầu Khởi động định thời Sử dụng lệnh “JNB TFx, đích” để đợi cờ TFx lên Thoát vòng lặp TF lên cao Xoá cờ TF Quay trở lại bước chế độ chế độ tự nạp lại 19 Electrical Engineering Ví dụ Giả sử tần số XTAL = 11.0592MHz 11 0592MHz Hãy tìm a) tần số sóng vuông tạo chân P1.0 chương trình sau b) tần số nhỏ có chương trình Electrical Engineering 20 10 Chương trình 21 Electrical Engineering Lưu ý hợp ngữ • Vì định thời bít chế độ nên ta hợp ngữ tính giá trị cho TH • Ví dụ, lệnh “MOV TH0, # - 100” trình hợp ngữ tính toán FF– 100 = 9C gán TH = 9CH Electrical Engineering 22 11 Mode 3, chế độ định thời chia xẻ • Tạo nên định thời • Bộ định thời gồm định thời bit với Timer với TL0, Timer với TH0 • Bộ định thời dùng chế độ bạn khởi động dừ timer dừng ti (luôn (l ô l ô chạy) h ) • Chỉ sử dụng cần timer bit timer tạo xung cho cổng nối tiếp 23 Electrical Engineering Đếm kiện • Tạo bộộ đếm dùngg C/T = • Xung nhịp đếm tín hiệu T0, T1 từ (không liên quan tới thạch anh) • Các chế độ đếm giống chế độ định thời Electrical Engineering 24 12 Ví dụ ứng dụng Giả sử đếm gửi tới chân T1, viết chương trình cho h đếm đế chế hế độ để đế đếm xung vàà hiển hiể thị trạng thái số đếm TL1 cổng P2 Electrical Engineering 25 Nói thêm bit GATE • Dùng điều khiển Timer từ chân INT0 bên • Timer Ti phải hải đđược bật tắt TR0 Electrical Engineering 26 13 8052 timer thứ Electrical Engineering 27 Chế độ làm việc Timer Electrical Engineering 28 14 Các chức Timer • Timer chế độ tạo xung cho cổng nối tiếp (baud-rate generator) • Timer chế độ tự động nạp lại (autoreload) – TH2 nạp p RCAP2H, TL2 nạp p RCAP2L – Timer tràn từ FFFFh 0000h 29 Electrical Engineering Capture mode • TH2 TL2 copy vào RCAP2H and RCAP2L • Chuyên dùng để tính tần số kiện đưa vào chân T2EX (P1.1) Timer chạy ngắt xảy cờ tràn TF2 đặt lên Electrical Engineering 30 15 Bài tập • Viết chương trình tạo dao động tần số 10KHz chân P1.0 • 10 KHZ tương đương với chu kỳ 100S, với thời gian mức thấp 50 S, mức cao 50S • Giả thiết làm việc với tần số 12 MHz Electrical Engineering 31 16 [...]... khiển Timer từ chân INT0 hoặc 1 bên ngoài • Timer Ti 0 phải hải đđược bật tắt bởi TR0 Electrical Engineering 26 13 8052 timer thứ 3 Electrical Engineering 27 Chế độ làm việc Timer 2 Electrical Engineering 28 14 Các chức năng Timer 2 • Timer 2 ở chế độ tạo xung cho cổng nối tiếp (baud-rate generator) • Timer 2 ở chế độ tự động nạp lại (autoreload) – TH2 nạp p bởi RCAP2H, TL2 nạp p bởi RCAP2L – Timer. .. 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 với Timer 0 với TL0, Timer 1 với TH0 • Bộ định thời 1 có thể dùng bất cứ chế độ nào tuy vậy bạn không thể khởi động và dừ timer dừng ti (luôn (l ô luôn l ô chạy) h ) • Chỉ sử dụng khi cần 2 timer 8 bit và 1 timer tạo xung cho cổng nối tiếp 23 Electrical Engineering Đếm sự kiện • Tạo ạ ra bộộ đếm khi dùngg... TL2 nạp p bởi RCAP2L – Timer 2 tràn từ FFFFh về 0000h 29 Electrical Engineering Capture mode • TH2 và TL2 sẽ copy vào RCAP2H and RCAP2L • Chuyên dùng để tính tần số sự kiện đưa vào chân T2EX (P1.1) vì Timer 2 luôn chạy và ngắt xảy ra khi cờ tràn TF2 được đặt lên Electrical Engineering 30 15 Bài tập • 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,

Ngày đăng: 10/08/2016, 21:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan