intTypePromotion=4
Array
(
    [0] => Array
        (
            [banner_id] => 142
            [banner_name] => KM3 - Tặng đến 150%
            [banner_picture] => 412_1568183214.jpg
            [banner_picture2] => 986_1568183214.jpg
            [banner_picture3] => 458_1568183214.jpg
            [banner_picture4] => 436_1568779919.jpg
            [banner_picture5] => 
            [banner_type] => 9
            [banner_link] => https://tailieu.vn/nang-cap-tai-khoan-vip.html
            [banner_status] => 1
            [banner_priority] => 0
            [banner_lastmodify] => 2019-09-18 11:12:29
            [banner_startdate] => 2019-09-12 00:00:00
            [banner_enddate] => 2019-09-12 23:59:59
            [banner_isauto_active] => 0
            [banner_timeautoactive] => 
            [user_username] => minhduy
        )

)

Bài giảng Thiết kế hệ thống vi xử lý: Chương 7 - Nguyễn Hồng Quang

Chia sẻ: Kiếp Này Bình Yên | Ngày: | Loại File: PDF | Số trang:13

0
39
lượt xem
4
download

Bài giảng Thiết kế hệ thống vi xử lý: Chương 7 - Nguyễn Hồng Quang

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 7 trình bày các nội dung liên quan đến bộ định thời 8051 trong hệ thống vi xử lý như: Cách đếm timer, các thanh ghi định thời, các chế độ của bộ định thời, TMOD, chế độ làm việc,... Hy vọng bài giảng này sẽ góp phần hỗ trợ hữu ích cho quá trình học tập các bạn.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Thiết kế hệ thống vi xử lý: Chương 7 - Nguyễn Hồng Quang

  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 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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 7 EA AFh Cho phép ngắt toàn cục Interrupt Enable/Disable SETB ET1 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
  11. Ư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
  12. 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
  13. 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

CÓ THỂ BẠN MUỐN DOWNLOAD

YOMEDIA
Đồng bộ tài khoản