YOMEDIA
ADSENSE
vxl7-Bộ định thời 8051
178
lượt xem 52
download
lượt xem 52
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
8051 có hai bộ đếm 16 bit T0 và T1, Các bộ định thời của 8051 có thể hoạt động theo một vài chế độ ột ài hế độ: – Chế độ của bộ định thời được điều khiển bởi thanh ghi TMOD – Các bộ định thời bị điều khiển bởi thanh ghi TCON (4 ề ể bit cao) ,Nguồn clock cho bộ định thời là sys_clock/12, Các thanh ghi của bộ định thời • Mỗi bộ định thời của 8051 có 2 thanh ghi 8 bit .Các thanh ghi của bộ định thời...
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: vxl7-Bộ định thời 8051
- 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 Timer Mode Description of Mode TxM1 TxM0 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 • Đọc byte cao REPEAT: MOV A,TH0 • Đọc byte thấp MOV R0,TL0 • Đọc lại byte cao lần nữa CJNE A,TH0,REPEAT và so sánh ... 13 Electrical Engineering Đếm sự kiện • Sử dụng thanh ghi JNB P1.0,$ Đợi xe TMOD • Đọc giá trị T0 hoặc T1 JB P1.0,$ Chờ xe đi qua 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 Gi¶ sö bé ®Þnh thêi ®Õm tõ 0 – do_smt: ... 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× con trá PC sÏ nh¶y vÒ External 0 IE0 0003h 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ắ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 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ệ •C¸c thanh ghi cÇn b¶o vÖ PUSH ACC •PSW PUSH PSW ................ •DPTR (DPH/DPL) POP PSW •PSW POP ACC •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
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn