Lập trình vi điều khiển Pic 18f4520
1.1.
Đại học Điện Tử 4—k6
Lập trình điều khiển vào ra (20 câu)
Cho sơ đồ nguyên
lý như hình bên.
Viết chương trình
điều khiển theo
yêu cầu: Nhấn
phím KEY1 các
LED1÷LED4
sáng; nhấn KEY2
LED5 và LED6
sáng; Nhả các
phím, LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
LED4
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
RB7
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
8 MHZ
KEY2
22p
KEY3
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
#include
{
#include<delays.h>
ADCON1=0x0f;
#pragma config OSC=HS
TRISB=0x0f;
#pragma config WDT=OFF
TRISC=0x00;
#pragma config MCLRE=ON
while(1)
#define sw1 PORTBbits.RB0
{
#define sw2 PORTBbits.RB1
if(sw1==0)
void main(void)
PORTB=0xff;
==================================================================================
1
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
Delay10KTCYx(20);
PORTB=0x00;
if(sw2==0)
PORTC=0xff;
Delay10KTCYx(20);
PORTC=0x00;
}
}
==================================================================================
2
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Câu 1.2: (6
điểm)
Đại học Điện Tử 4—k6
PIC18F4520
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương
trình điều khiển
theo yêu cầu:
Nhấn phím
KEY1, KEY2,
KEY3 hoặc
KEY4 sẽ sáng
tương ứng
LED1, LED2,
LED3 hoặc
LED4; Nhả
phím, LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RB7
LED4
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
8 MHZ
KEY2
22p
KEY3
C2
LED5
RC2
LED6
KEY4
OSC2
LED6
22p
==================================================
#include
#define led2 PORTBbits.RB5
#include<delays.h>
#define led3 PORTBbits.RB6
#pragma config OSC=HS
#define led4 PORTBbits.RB7
#pragma config WDT=OFF
void main(void)
#pragma config MCLRE=ON
{
#define sw1 PORTBbits.RB0
ADCON1=0x0f;
#define sw2 PORTBbits.RB1
TRISB=0x0f;
#define sw3 PORTBbits.RB2
while(1)
#define sw4 PORTBbits.RB3
{
#define led1 PORTBbits.RB4
if(sw1==0)
==================================================================================
3
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
{
Đại học Điện Tử 4—k6
led1=1;
Delay10KTCYx(10);
Delay10KTCYx(10);
led3=0;
led1=0;
}
}
if(sw4==0)
if(sw2==0)
{
{
led2=1;
Delay10KTCYx(10);
Delay10KTCYx(10);
led4=0;
led2=0;
}
}
}
if(sw3==0)
{
led4=1;
}
led3=1;
Câu 1.3: (6 điểm)
==================================================================================
4
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ nguyên
lý như hình bên.
Viết chương trình
điều khiển theo yêu
cầu: Nhấn KEY4,
LED1÷LED4 sáng;
nhấn KEY2, KEY3
hoặc KEY1, tất cả
các LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
LED2
8
9
10
1
PIC18F4520
LED2
RB4
LED1
KEY1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
C2
KEY4
OSC2
22p
================================================
#include
ADCON1=0x0f;
#include<delays.h>
TRISB=0x0f;
#pragma config OSC=HS
while(1)
#pragma config WDT=OFF
{
#pragma config MCLRE=ON
if(sw4==0)
#define sw1 PORTBbits.RB0
PORTB=0xf0;
#define sw2 PORTBbits.RB1
if(sw1==0|sw2==0|sw3==0)
#define sw3 PORTBbits.RB2
PORTB=0x00;
#define sw4 PORTBbits.RB3
}
void main(void)
}
{
Câu 1.4: (6 điểm)
==================================================================================
5
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ nguyên
lý như hình bên.
Viết chương trình
điều khiển theo yêu
cầu: Nhấn KEY3,
LED3 và LED4
sáng; Nhấn KEY4,
LED1 và LED2
sáng; Nhấn KEY2
các LED1÷LED4
tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
LED2
8
9
10
1
PIC18F4520
LED2
RB4
LED1
KEY1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
C2
KEY4
OSC2
22p
==============================================
#include
void main(void)
#include<delays.h>
{
#pragma config OSC=HS
ADCON1=0x0f;
#pragma config WDT=OFF
TRISB=0x0f;
#pragma config MCLRE=ON
while(1)
#define sw2 PORTBbits.RB1
{
#define sw3 PORTBbits.RB2
if(sw3==0)
#define sw4 PORTBbits.RB3
{
#define led1 PORTBbits.RB4
led3=1;
#define led2 PORTBbits.RB5
led4=1;
#define led3 PORTBbits.RB6
}
#define led4 PORTBbits.RB7
if(sw4==0)
==================================================================================
6
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
{
if (sw2==0)
led1=1;
PORTB=0x00;
led2=1;
}
}
}
Câu 1.5.1: (6 điểm)
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương trình
điều khiển theo
yêu cầu: Nhấn
KEY3, LED3
sáng; Nhấn
KEY2, LED3 tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
==================================================================================
7
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
===========================================
#include
{
#include<delays.h>
ADCON1=0x0f;
TRISB=0x0f;
#pragma config OSC=HS
while(1)
#pragma config WDT=OFF
{
#pragma config
MCLRE=ON
if(sw3==0)
led3=1;
#define sw2 PORTBbits.RB1
if (sw2==0)
#define sw3 PORTBbits.RB2
#define led3 PORTBbits.RB6
void main(void)
led3=0;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
Bài 1.5.2 tương tự như bài 1.5.1 nhé
Câu 1.5.2: (6 điểm)
==================================================================================
8
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ
nguyên lý như
hình bên.
- Viết chương
trình điều khiển
theo yêu cầu:
Nhấn KEY1,
LED1 sáng;
Nhấn KEY2,
LED1 tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
Làm tương tự bài 1.5.1
Câu 1.6: (6 điểm)
==================================================================================
9
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
PIC18F4520
Cho sơ đồ nguyên
lý như hình bên.
- Viết chương
trình điều khiển 4
LED sáng tuần tự.
Khi nhấn KEY3
các LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
LED2
8
9
10
1
PIC18F4520
LED2
RB4
LED1
KEY1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
C2
KEY4
OSC2
22p
==========================================
#include
TRISB=0x0f;
#include<delays.h>
while(1)
#pragma config OSC=HS,WDT=OFF,
MCLRE=ON
{
if (sw3==1)
for(i=0;i<4;i++)
#define sw3 PORTBbits.RB2
{
#define led1 PORTBbits.RB4
PORTB=m[i];
#define led2 PORTBbits.RB5
Delay10KTCYx(50);
#define led3 PORTBbits.RB6
}
#define led4 PORTBbits.RB7
else
unsigned char m[]={0x10,0x20,0x40,0x80};
PORTB=0;
void main(void)
{
int i;
}
}
ADCON1=0x0f;
==================================================================================
10
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
}
Câu 1.7: (6 điểm)
PIC18F4520
Cho sơ đồ
nguyên lý như
hình bên.
- Viết chương
trình điều khiển
6 LED sáng
tuần tự. khi
nhấn KEY4 các
LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RB7
LED4
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
KEY2
22p
KEY3
8 MHZ
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
===============================================
#include
#define sw4 PORTBbits.RB3
#include<delays.h>
#define led1 PORTBbits.RB4
#pragma config OSC=HS
#define led2 PORTBbits.RB5
#pragma config WDT=OFF
#define led3 PORTBbits.RB6
#pragma config MCLRE=ON
#define led4 PORTBbits.RB7
#define sw1 PORTBbits.RB0
void main(void)
#define sw2 PORTBbits.RB1
{
#define sw3 PORTBbits.RB2
int i;
ADCON1=0x0f;
==================================================================================
11
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
TRISB=0x0f;
if(sw4==1)
TRISC=0x00;
{
PORTB=0x40;
PORTC=0;
while(1)
Delay10KTCYx(50);
{
}
if(sw4==1)
else
{PORTB=0x10;
{
PORTC=0;
PORTB=0;
Delay10KTCYx(50);
PORTC=0;
}
}
else
if(sw4==1)
{
{
PORTB=0;
PORTB=0x80;
PORTC=0;
PORTC=0;
}
Delay10KTCYx(50);
if(sw4==1)
}
{
else
PORTB=0x20;
{
PORTC=0;
PORTB=0;
Delay10KTCYx(50);
}
PORTC=0;
}
else
{
if(sw4==1)
PORTB=0;
{
PORTC=0;
PORTC=0x02;
}
PORTB=0;
==================================================================================
12
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Delay10KTCYx(50);
Đại học Điện Tử 4—k6
PORTB=0;
}
Delay10KTCYx(50);
else
}
{
else
PORTB=0;
{
PORTC=0;
PORTB=0;
};
PORTC=0;
}
if(sw4==1)
}
{
}
PORTC=0x04;
Câu 1.8: (6 điểm)
==================================================================================
13
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương
trình điều khiển
theo quy luật:
Nhấn KEY1 một
lần, LED1 sáng,
các LED khác
tắt; Nhấn KEY1
hai lần, LED1 và
LED2 sáng, các
LED khác
tắt…;Nhấn
KEY1 sáu lần cả
6 LED sáng.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RB7
LED4
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
KEY2
22p
KEY3
8 MHZ
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
================================================
#include
#define led2 PORTBbits.RB5
#include<delays.h>
#define led3 PORTBbits.RB6
#pragma config OSC=HS
#define led4 PORTBbits.RB7
#pragma config WDT=OFF
#define led5 PORTCbits.RC1
#pragma config MCLRE=ON
#define led6 PORTCbits.RC2
#define sw1 PORTBbits.RB0
#define sw2 PORTBbits.RB1
void main(void)
#define sw3 PORTBbits.RB2
{
unsigned char i;
#define sw4 PORTBbits.RB3
ADCON1=0x0f;
#define led1 PORTBbits.RB4
TRISB=0x0f;
==================================================================================
14
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
TRISC=0x00;
if(i==3)
PORTB=0x0f;
{
PORTC=0x00;
PORTB=0x70;
PORTC=0x00;
while(1)
}
{
if(i==4)
if(sw1==0)
{
{
PORTB=0xf0;
Delay10KTCYx(50);
PORTC=0x00;
while(!sw1);
}
i++;
if(i==5)
}
{
PORTB=0xf0;
if (i==1)
PORTC=0x02;
{
}
PORTB=0x10;
if(i==6)
PORTC=0x00;
{
}
PORTB=0xf0;
if(i==2)
PORTC=0x06;
{
}
PORTB=0x30;
}
PORTC=0x00;
}
}
Câu 1.9: (6 điểm)
==================================================================================
15
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ nguyên lý
như hình bên.
Viết chương trình
đếm số lần nhấn
KEY2 và hiển thị số
lần nhấn trên 04
LED (LED1÷LED4)
dưới dạng số nhị
phân.
(giả thiết số lần nhấn
≤15 lần).
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
=================================================
#include
while(1)
#include<delays.h>
{
#pragma config OSC=HS
if(sw2==0)
#pragma config WDT=OFF
{
#pragma config MCLRE=ON
Delay10KTCYx(50);
#define sw2 PORTBbits.RB1
while(!sw2);
void main(void)
x++;
{
}
unsigned char x;
PORTB=x<<4;
ADCON1=0x0f;
}
TRISB=0x0f;
}
Câu 1.10: (6 điểm)
==================================================================================
16
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ nguyên
lý như hình bên.
- Viết chương
trình điều khiển
theo quy luật:
Nhấn KEY3 một
lần, (*) LED1
sáng; nhấn KEY3
hai lần, LED2
sáng… nhấn
KEY3 bốn lần,
LED4 sáng; nhấn
KEY3 năm lần
các LED tắt;
nhấn KEY3 sáu
lần lặp lại (*)…
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
LED2
8
9
10
1
PIC18F4520
LED2
RB4
LED1
KEY1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
C2
KEY4
OSC2
22p
==================================================
#include
{
#include<delays.h>
ADCON1=0x0f;
#pragma config OSC=HS
TRISB=0x0f;
#pragma config WDT=OFF
while(1)
#pragma config MCLRE=ON
{
#define sw3 PORTBbits.RB2
if(sw3==0)
#define led1 PORTBbits.RB4
{
#define led2 PORTBbits.RB5
Delay10KTCYx(50);
#define led3 PORTBbits.RB6
while(!sw3);
#define led4 PORTBbits.RB7
x++;
unsigned char x;
if(x%5==1)
void main(void)
led1=1;
==================================================================================
17
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
if(x%5==2)
if(x%5==0)
led2=1;
PORTB=0x00;
if(x%5==3)
}
led3=1;
}
if(x%5==4)
}
led4=1;
Câu 1.11.: (6 điểm)
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương
trình điều khiển
theo yêu cầu:
Nhấn KEY1
LED1, LED2,
LED3 sáng, các
LED khác tắt;
nhấn KEY2
LED4, LED5,
LED6 sáng, các
LED khác tắt;
nhấn KEY4 các
LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
KEY2
22p
KEY3
RB7
LED4
15
16
17
18
23
24
25
26
8 MHZ
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
===============================================
#include
#define sw1 PORTBbits.RB0
#include<delays.h>
#define sw2 PORTBbits.RB1
#pragma config
OSC=HS,WDT=OFF,MCLRE=ON
#define sw3 PORTBbits.RB2
==================================================================================
18
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
#define sw4 PORTBbits.RB3
led1=1;led2=1;led3=1;
#define led1 PORTBbits.RB4
led4=0;led5=0;led6=0;
#define led2 PORTBbits.RB5
}
#define led3 PORTBbits.RB6
if(sw2==0)
#define led4 PORTBbits.RB7
{
#define led5 PORTCbits.RC1
led1=0;led2=0;led3=0;
#define led6 PORTCbits.RC2
led4=1;led5=1;led6=1;
void main(void)
}
{
if (sw4==0)
ADCON1=0x0f;
{
TRISB=0x0f;
PORTB=0x00;
TRISC=0x00;
PORTC=0x00;
while(1)
}
{
}
if(sw1==0)
}
{
Câu 1.12: (6 điểm)
==================================================================================
19
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương
trình điều khiển
theo yêu cầu:
Nhấn KEY1
LED1, LED3,
LED5 sáng, các
LED khác tắt;
nhấn KEY2
LED2, LED4,
LED6 sáng, các
LED khác tắt;
nhấn KEY4 các
LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RB7
LED4
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
KEY2
22p
KEY3
8 MHZ
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
==============================================
#include
#define led2 PORTBbits.RB5
#include<delays.h>
#define led3 PORTBbits.RB6
#pragma config OSC=HS
#define led4 PORTBbits.RB7
#pragma config WDT=OFF
#define led5 PORTCbits.RC1
#pragma config MCLRE=ON
#define led6 PORTCbits.RC2
#define sw1 PORTBbits.RB0
void main(void)
#define sw2 PORTBbits.RB1
{
#define sw3 PORTBbits.RB2
ADCON1=0x0f;
#define sw4 PORTBbits.RB3
TRISB=0x0f;
#define led1 PORTBbits.RB4
TRISC=0x00;
==================================================================================
20
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
while(1)
led2=1;led4=1;led6=1;
{
}
if(sw1==0)
if (sw4==0)
{
{
led1=1;led3=1;led5=1;
PORTB=0x00;
led2=0;led4=0;led6=0;
PORTC=0x00;
}
}
if(sw2==0)
}
{
}
led1=0;led3=0;led5=0;
Câu 1.13: (6 điểm)
Cho sơ đồ nguyên
lý như hình bên.
- Viết chương
trình điều khiển
theo yêu cầu:
Nhấn KEY1
LED1 sáng; nhấn
KEY2 hoặc
KEY3 hoặc
KEY4, LED1 tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
==============================================
#include
#pragma config OSC=HS
==================================================================================
21
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
#pragma config WDT=OFF
TRISB=0x0f;
#pragma config MCLRE=ON
TRISC=0x00;
#define sw1 PORTBbits.RB0
while(1)
#define sw2 PORTBbits.RB1
{
#define sw3 PORTBbits.RB2
if(sw1==0)
#define sw4 PORTBbits.RB3
led1=1;
#define led1 PORTBbits.RB4
if(sw2==0|sw3==0|sw4==0)
void main(void)
led1=0;
{
}
ADCON1=0x0f;
}
Câu 1.14: (6 điểm)
==================================================================================
22
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Cho sơ đồ
nguyên lý như
hình bên.
Viết chương
trình điều khiển
theo yêu cầu:
Nhấn KEY1
hoặc KEY2, cả
6 LED sáng;
nhấn KEY3
hoặc KEY4 các
LED tắt.
- Biên dịch, nạp
chương trình và
chạy chương
trình trên “thiết
bị thực hành vi
điều khiển”
Đại học Điện Tử 4—k6
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RB7
LED4
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
15
16
17
18
23
24
25
26
LED5
LED6
LED4
RB6
LED3
LED3
19
20
21
22
27
28
29
30
RB5
LED2
LED2
Reset
8
9
10
1
RB4
LED1
LED1
RC1
PIC18F4520
KEY1
C1
LED5
OSC1
KEY2
22p
KEY3
8 MHZ
C2
KEY4
LED5
RC2
LED6
OSC2
LED6
22p
============================================
#include
#define led2 PORTBbits.RB5
#include<delays.h>
#define led3 PORTBbits.RB6
#pragma config OSC=HS
#define led4 PORTBbits.RB7
#pragma config WDT=OFF
#define led5 PORTCbits.RC1
#pragma config MCLRE=ON
#define led6 PORTCbits.RC2
#define sw1 PORTBbits.RB0
void main(void)
#define sw2 PORTBbits.RB1
{
#define sw3 PORTBbits.RB2
ADCON1=0x0f;
#define sw4 PORTBbits.RB3
TRISB=0x0f;
#define led1 PORTBbits.RB4
TRISC=0x00;
==================================================================================
23
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
while(1)
if(sw2==0|sw3==0|sw4==0)
{
{
if(sw1==0)
PORTB=0x00;
{
PORTC=0x00;;
PORTB=0xf0;
}
PORTC=0x06;
}
}
}
Câu 1.15: (6 điểm)
Cho sơ đồ nguyên
lý như hình bên.
-Viết chương trình
đếm số lần nhấn
KEY4. Nếu số lần
nhấn là một số lẻ,
LED4 sáng, số lần
nhấn là một số
chẵn, LED4 tắt.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều
khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
===============================================
#include
#pragma config MCLRE=ON
#include<delays.h>
#define sw4 PORTBbits.RB3
#pragma config OSC=HS
#define led4 PORTBbits.RB7
#pragma config WDT=OFF
void main(void)
==================================================================================
24
Chúc mọi người làm tốt phần bài thi của minh
Lập trình vi điều khiển Pic 18f4520
Đại học Điện Tử 4—k6
{
while(!sw4);
unsigned char x;
x++;
ADCON1=0x0f;
}
TRISB=0x0f;
if(x%2==0)
TRISC=0x00;
led4=1;
while(1)
else
{
led4=0;
if(sw4==0)
}
{
}
Delay10KTCYx(50);
Câu 1.16: (6 điểm)
Cho sơ đồ nguyên lý
như hình bên.
- Viết chương trình:
Đếm số lần nhấn
KEY2. Giả sử số lần
nhấn là n, hiển thị số
dư của phép chia n/8
(n%8) trên 03 LED
(LED1÷LED3) dưới
dạng số nhị phân.
- Biên dịch, nạp
chương trình và
chạy chương trình
trên “thiết bị thực
hành vi điều khiển”
PIC18F4520
OSC2
OSC1
2
3
4
5
6
7
14
13
KEY1
KEY2
KEY3
KEY4
LED1
LED2
LED3
LED4
33
34
35
36
37
38
39
40
RA0/AN0/C1INRC0/T1OSO/T13CKI
RA1/AN1/C2INRC1/T1OSI/CCP2B
RA2/AN2/C2IN+/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/C1IN+/VREF+
RC3/SCK/SCL
RA4/T0CKI/C1OUT
RC4/SDI/SDA
RA5/AN4/SS/HLVDIN/C2OUT
RC5/SDO
RA6/OSC2/CLKO
RC6/TX/CK
RA7/OSC1/CLKI
RC7/RX/DT
RB0/AN12/FLT0/INT0
RB1/AN10/INT1
RB2/AN8/INT2
RB3/AN9/CCP2A
RB4/KBI0/AN11
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5/P1B
RD6/PSP6/P1C
RD7/PSP7/P1D
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RE3/MCLR/VPP
RB7
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LED4
LED4
RB6
LED3
LED3
RB5
Reset
PIC18F4520
KEY1
LED2
RB4
LED1
C1
LED1
OSC1
8 MHZ
KEY2
22p
KEY3
LED2
8
9
10
1
C2
KEY4
OSC2
22p
================================================
#include
#include<delays.h>
==================================================================================
25
Chúc mọi người làm tốt phần bài thi của minh