Tải bản đầy đủ (.docx) (95 trang)

Vi-Điều-Khiển-1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 95 trang )

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


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×