1. Trang chủ
  2. » Tất cả

Ôn thi cuối kỳ môn Kỹ Thuật Vi XỬ LÝ có Hướng Dẫn

35 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,9 MB

Nội dung

NGẮT (TIMER) CÁC BIT CHO PHÉP GIE Cho phép ngắt toàn cục Phải được đặt để sử dụng BẤT KỲ ngắt nào của PIC PEIE Cho phép ngắt ngoại vi Phải được đặt để sử dụng các ngắt ngoại vi T0IE Cho phép ngắt. Sử dụng ngắt ngoài lập trình điều khiển led theo yêu cầu sau Bình thường: Led đếm 0→7 theo mã nhị phân Ngắt: led chớp tắt 3 lần viết chương trình đọc giá trị điện áp (0 → 5V) từ biến trở nối với chân RB2, chuyển đổi ADC và hiển thị kết quả chuyển đổi trên 10 LED. Sử dụng modul ADC, led nối với PORTD và PORTC viết chương trình điều khiển đọc giá trị điện áp từ cảm biến nhiệt độ LM35, chuyển đổi ADC thành giá trị số nhị phân 10 bit và hiển thị giá trị nhiệt độ lên LED.

NGẮT (TIMER) CÁC BIT CHO PHÉP GIE: Cho phép ngắt toàn cục * Phải đặt để sử dụng BẤT KỲ ngắt PIC PEIE: Cho phép ngắt ngoại vi * Phải đặt để sử dụng ngắt ngoại vi T0IE: Cho phép ngắt Timer0 tràn INTE: Cho phép ngắt INT RBIE: Cho phép ngắt Port B thay đổi CÁC BIT CỜ T0IF: Cờ ngắt Timer0 tràn INTF: Cờ ngắt INT RBIF: Cờ ngắt Port B thay đổi Ví dụ: Thiết lập thứ tự ưu tiên từ cao xuống thấp cho ngắt: Port B, Timer Timer void interrupt isr(void) { if (RBIE == 1) && (RBIF == 1) PORTB_ISR(); if (TMR2IE == 1) && (TMR2IF == 1) Timer2_ISR() ;   if (TMR1IE == 1) && (TMR1IF == 1)  Timer1_ISR() ; } Ngắt (Ngắt RB0 ): b Các bit liên quan: - Nguồn ngắt : RB0 (khi có xung kích theo cạnh lên hay xuống) - Cho phép ngắt: + Cho phép ngắt ngoài: INTIE = + Cho phép ngắt toàn cục: GIE = - Chọn xung tác động theo cạnh lên/xuống: INTEDG = 1/0 - Cờ ngắt: INTIF tự động set lên có kiện ngắt xảy Cờ INTIF phải xóa chương để vi điều khiển quản lý xác lần ngắt Bài tập: Sử dụng ngắt ngồi lập trình điều khiển led theo u cầu sau Bình thường: Led đếm 0→7 theo mã nhị phân Ngắt: led chớp tắt lần void interrupt isr(void) { unsigned char j; if (INTE && INTF) { INTF = 0; for (j=0;j

Ngày đăng: 22/11/2022, 20:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w