Ngắt (interrupt)

Một phần của tài liệu Điều khiển thiết bị gia đình bằng sóng hồng ngoại (đồ án tốt nghiệp) (Trang 40 - 42)

b) Bộ nhớ dữ liệu

2.2.11Ngắt (interrupt)

PIC16F877A cĩ đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghi INTCON (bit GIE). Bên cạnh đĩ mỗi ngắt cịn cĩ một bit điều khiển và cờ ngắt riêng. Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuơc vào bit GIE và các bit điều khiển khác. Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi này cịn chứa bit cho phép các ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi PIE1 và PIE2. Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2. Trong một thời điểm chỉ cĩ một chương trình ngắt được thực thi, chương trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực thi, bit GIE tự động được xĩa,

địa chỉ lệnh tiếp theo của chương trình chính được cất vào trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h.

Lệnh RETFIE được dùng để thốt khỏi hương trình ngắt và quay trở về chương trình chính, đồng thời bit GIE cũng sẽ được set để cho phép cácngắt hoạt động trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và phải được xĩa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động trở lại để ta cĩ thể pháthiện được thời điểm tiếp theo mà ngắt xảy ra. Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi trạng thái các pin của PORTB (PORTB Interrupt on change), việc xác định ngắt nào xảy ra cần 3 hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt. Cất chú ý là trong quá trình thực thi ngắt, chỉ cĩ giá trị của bộ đếm chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ khơng được cất và cĩ thể bị thay đổi giá trị trong quá trình thực thi chương trình ngắt. Điều này nên được xử lí bằng chương trình để tránh hiện tượng trên xảy ra.

Chương 3

Một phần của tài liệu Điều khiển thiết bị gia đình bằng sóng hồng ngoại (đồ án tốt nghiệp) (Trang 40 - 42)