Professional Documents
Culture Documents
Ngắt ngoài
Ngắt ngoài
Ngắt ngoài được tích hợp trên chân RB0/INT0, RB1/INT1, RB2/INT2
Các thanh ghi liên quan đến hoạt động ngắt ngoài
1. Bài tập:
// Hướng dẫn bài 1
#include <P18f4520.h>
#include <delays.h>
#include <usart.h>
#include <string.h>
//C?u h?nh cho vi đi?u khi?n, ví d?:
#pragma config OSC = HS
#pragma config MCLRE = ON
#pragma config WDT = OFF
void main()
{
TRISC=0;
TRISB=0b00000010; //RB1 chieu vao
ADCON1=0x0F;
// Cau hinh ngat
INTCONbits.GIE=1;// Cho phep ngat toan cuc
INTCONbits.PEIE=1;// Cho phep ngat ngoai vi
INTCON3bits.INT1IE=1;// Cho phep ngat ngoai tren INT1
INTCON2bits.INTEDG1=0;// ngat theo suon am
//1 Ngat theo suon duong
while(1)
{
LED1=1;
Delay10KTCYx(30);
LED1=0;
Delay10KTCYx(30);
}
}
void main()
{
TRISC=0;
TRISB=0b00000001; //RB0 chieu vao
ADCON1=0x0F;
// Cau hinh ngat
INTCONbits.GIE=1;// Cho phep ngat toan cuc
INTCONbits.PEIE=1;// Cho phep ngat ngoai vi
INTCONbits.INT0IE=1;// Cho phep ngat ngoai tren INT0
INTCON2bits.INTEDG0=0;// ngat theo suon am
//1 Ngat theo suon duong
while(1)
{
LED4=1;
Delay10KTCYx(30);
LED4=0;
Delay10KTCYx(30);
}
}
U1
2 15
RA0/AN0/C1IN- RC0/T1OSO/T13CKI
3 16
RA1/AN1/C2IN- RC1/T1OSI/CCP2B
4 17
RA2/AN2/C2IN+/VREF-/CVREF RC2/CCP1/P1A
5 18
RA3/AN3/C1IN+/VREF+ RC3/SCK/SCL
6 23
RA4/T0CKI/C1OUT RC4/SDI/SDA
7 24
RA5/AN4/SS/HLVDIN/C2OUT RC5/SDO
R1 R2 14
RA6/OSC2/CLKO RC6/TX/CK
25
10k 10k 13 26
RA7/OSC1/CLKI RC7/RX/DT
INT0 33 19
RB0/AN12/FLT0/INT0 RD0/PSP0
int0 INT2 34 20
RB1/AN10/INT1 RD1/PSP1
INT2 35 21
RB2/AN8/INT2 RD2/PSP2
36 22
RB3/AN9/CCP2A RD3/PSP3
37 27
RB4/KBI0/AN11 RD4/PSP4
38 28
RB5/KBI1/PGM RD5/PSP5/P1B
39 29
RB6/KBI2/PGC RD6/PSP6/P1C
40 30
RB7/KBI3/PGD RD7/PSP7/P1D
8
RE0/RD/AN5
9
RE1/W R/AN6
10
RE2/CS/AN7
1
RE3/MCLR/VPP
PIC18F4520
#include <P18f4520.h>
#include <delays.h>
#include <usart.h>
#include <string.h>
//C?u h?nh cho vi đi?u khi?n, ví d?:
#pragma config OSC = HS
#pragma config MCLRE = ON
#pragma config WDT = OFF
//=====================================
void main()
{
TRISC=0;
TRISB=0b000000101; //RB0 va RB2 chieu vao
ADCON1=0x0F;
// Cau hinh ngat
INTCONbits.GIE=1;// Cho phep ngat toan cuc
INTCONbits.PEIE=1;// Cho phep ngat ngoai vi
INTCON3bits.INT2IE=1;// Cho phep ngat ngoai tren INT1
INTCON2bits.INTEDG2=0;// ngat theo suon am
//1 Ngat theo suon duong
INTCONbits.INT0IE=1;// Cho phep ngat ngoai tren INT1
INTCON2bits.INTEDG0=0;// ngat theo suon am
while(1)
{
LED1=1; LED2=LED3=LED4=0;
Delay10KTCYx(30);
LED2=1; LED1=LED3=LED4=0;
Delay10KTCYx(30);
LED3=1; LED2=LED1=LED4=0;
Delay10KTCYx(30);
LED4=1; LED2=LED3=LED1=0;
Delay10KTCYx(30);
}
}