Lên pin MGIR,

Một phần của tài liệu Ứng dụng vi điều khiển Pic 16F877 Thiết kế bộ điều khiển máy lạnh có hiển thị (Trang 28 - 31)

Power-on reset (POR): Đây là xung reset do vi điều khiển tạo ra khi phát hiện nguồn cung cấp VDD. Khi hoạt động ở chế độ bình thường, vi điều khiển cần được đảm bảo các thông số về dòng điện, điện áp để hoạt động bình thường. Nhưng nếu các tham sô này không được đảm bảo, xung reset do POR tạo ra sẽ đưa vi điều khiển về trạng thái reset và chỉ tiếp tục hoạt động khi nào các tham số trên được đảm bảo.

Power-up Timer /PWRT): đây là bộ định thời hoạt động dựa vào mạch RC bên trong vi điều khiển. Khi PWRT được kích hoạt, vi điều khiển sẽ được đưa về trạng thái reset. PWRT sẽ tạo ra một khoảng thời gian delay (khoảng 72 ms) để VDD tăng đến giá trị thích hợp.

Oscillator Start-up Timer (OST): OST cung cấp một khoảng thời gian ,dclay bằng 1024 chu kì xung của oscillator sau khi PWRT ngưng tác động (vi điều khiển đã đủ điều kiện hoạt động) để đảm bảo sự ổn định của xung do oscillator phát ra. Tác

động của OST còn xảy ra đối với POR reset và khi vi điều khiển được đánh thức

từ chế đợ sleep. OST chỉ tác động đối với các lọai oscillator là XT, HS và LP. Brown-out reset (BOR): Nếu VDD hạ xuống thấp hơn giá trị VBOR. (khoảng 4V) và kéo dài trong khoảng thời gian lớn hơn TBOR (khoảng 100 us), BOR được kích hoạt và vi điều khiển. được đưa về trạng thái BOR reset. Nếu điện áp cung cấp cho vi điều khiển hạ xuống thấp hơn VBOR trong khoảng thời gian ngắn hơn TBOR, vi điều khiển sẽ không được reset. Khi điện áp cung cấp đủ cho vi điều khiển hoạt động, PWRT được kích hoạt để tạo ra một khoảng thời gian delay (khoảng 72m8). Nếu trong khoảng thời gian này điện áp cung cấp cho vi điều khiển lại tiếp tục hạ xuông dưới mức điện áp VBOR, BOR reset sẽ lại được kích hoạt khi vi điều khiển đủ điện áp hoạt động. Một điểm cần chú ý là khi BOR reset được cho phép, PWRT cũng sẽ hoạt động bất chấp trạng thái của bit PWRT.

CHƯƠN G 2: KIÊN TRÚC PIC16F877A 26

Tóm lại để vi điều khiển hoạt động được từ khi câp nguồn cân trải qua các bước Sau:

POR tác động.

PWRI (nếu được cho phép hoạt động) tạo ra khoảng thời gian delay TPWRT để ổn định nguồn cung cập.

OST (nếu được cho phép) tạo ra khoảng thời gian delay bằng 1024 chu kì xung của oscillator để ôn định tần số của oscillator.

Đến thời điểm này vi điều khiển mới bắt đầu hoạt động bình thường.

Ị feset MGTR >> Sieep MOT |WOT Modde | Time-ouw Reset Voo Rise Deteet

Vao Power-oo fteset

: Đrơwn-oựi Raset soom-| ) *———————— Raset soom-| ) *———————— ST cmm==}—j) | Ly | ‹|S2= NI L_: ^ d}.. PWRT

IE= P> 10b8Rpple Couner

Hình 2.13 Sơ đồ các chế độ reset của PIC16F877A.

2.11.3 Ngắt (Interrupt)

PICI6F877A có đến 15 nguồn tạo Tra 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 bít GIE, tuy nhiên hoạt động ngắt vẫn phụ thuôc vào bịt 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 PIRI và PIR2. Trong một thời điểm chỉ có một chương trình ngắt được thực thị, chương trình ngắt được kết thúc bằng lệnh RETFTE. 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 ¬¬——==================s=ns=m========mmm

CHƯƠNG 2: KIÊN TRÚC PIC16F877A 27

RETFIE được dùng để thoát khỏi chươ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ác ngắ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át hiệ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ần 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. (adsbygoogle = window.adsbygoogle || []).push({});

EEEf EEIE psrirt am

'Wake-up (ƒf in Sleep moile toCPU

Hình 2.14 Sơ đồ logic của tất cả các ngắt trong vỉ điều khiển PIC16F877A.

—————================

Một phần của tài liệu Ứng dụng vi điều khiển Pic 16F877 Thiết kế bộ điều khiển máy lạnh có hiển thị (Trang 28 - 31)