You are on page 1of 13

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN

1. Khi nói “Vi điều khiển 8 bit” là có ý nghĩa gì? Giải thích?
2. Vẽ sơ đồ khối của một hệ vi xử lý cơ bản? Trình bày sơ lược chức năng, nhiệm vụ
của các khối trong sơ đồ?
3. Vẽ sơ đồ khối của một vi điều khiển đặc trưng? Trình bày sơ lược chức năng, nhiệm
vụ của các khối trong sơ đồ?
4. Phân biệt sự giống nhau và khác nhau của ROM và RAM?
5. Trình bày sơ lược về cấu trúc và phân loại ROM?
6. Trình bày sơ lược về cấu trúc và phân loại RAM?
7. Dung lượng bộ nhớ là gì? Trình bày cách xác định dung lượng bộ nhớ bán dẫn 8 bit
song song dùng cho vi xử lý?
8. Thiết bị ngoại vi là gì? Phân loại thiết bị ngoại vi? Nêu tên và phân loại một số thiết bị
ngoại vi mà em biết trong thực tế?
9. Mạch điện giao tiếp dùng để làm gì?
10. Trình bày những hiểu biết về hai phương pháp điều khiển ngoại vi: hỏi vòng
(Polling) và ngắt (Interrupt)?
11. Trình bày những hiểu biết về hai phương pháp truyền dữ liệu: nối tiếp (Serial)
và song song (Parallel)?
12. Phân biệt giữa khái niệm “Vi xử lý” và “Vi điều khiển”? Cho ví dụ cụ thể mà em
biết về ứng dụng của chúng trong thực tế?
13. Trình bày và giải thích một số tiêu chuẩn cơ bản và tham số kỹ thuật cần chú ý
khi lựa chọn bộ vi điều khiển trong việc thiết kế hệ thống điều khiển?
14. Trình bày những hiểu biết về hai kiến trúc vi điều khiển: Von Neuman và
Harvard? Vi điều khiển PIC mà ta đang học sử dụng loại kiến trúc nào?
CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F887

1. Trình bày cấu trúc tổng quát về tính năng kỹ thuật của vi điều khiển PIC16F887?
2. Trình bày sơ đồ khối tổng quát của vi điều khiển PIC16F887? Nêu sơ lược chức năng,
nhiệm vụ của các khối?
3. Vi điều khiển PIC16F887 có bao nhiêu chân? Nêu cụ thể tên và chức năng các nhóm
chân của vi điều khiển PIC16F887?
4. Vi điều khiển PIC16F887 có bao nhiêu chân xuất/nhập? Dòng điện danh điện tối đa
tại mỗi chân xuất/nhập là bao nhiêu?
5. Cấu hình xuất/nhập mặc định tại các chân xuất/nhập của vi điều khiển PIC16F887?
Lập bảng phân nhóm cho từng chân theo cấu hình xuất/nhập mặc định đã nêu?
6. Làm thế nào để thay đổi cấu hình chân xuất/nhập giữa hai chức năng: ngõ vào (Input)
và ngõ ra (Output)? Cho ví dụ minh họa cụ thể (cho cả hai loại vi điều khiển PIC16F887
và PIC16F877A)?
7. Làm thế nào để thay đổi cấu hình chân xuất/nhập giữa hai chức năng: ngõ vào tương
tự (Analog Input) và ngõ vào/ra số (Digital I/O)? Cho ví dụ minh họa cụ thể (cho cả
hai loại vi điều khiển PIC16F887 và PIC16F877A)?
8. Trình bày các bước để làm thế nào có thể xuất/nhập dữ liệu thông qua các chân
xuất/nhập của vi điều khiển PIC16F8xx? Cho ví dụ minh họa cụ thể việc xuất/nhập
qua các chân Port A,B,C,D,E của vi điều khiển PIC16F877A và PIC16F887?
9. Tính năng điện trở kéo lên trong vi điều khiển PIC16F8xx là gì? Những Port nào trong
vi điều khiển PIC16F8xx có tính năng này?
10. Trình bày cách kích hoạt tính năng điện trở kéo lên (cho cả hai loại PIC16F887
và PIC16F877A)? Cho ví dụ minh họa cụ thể (cho cả hai loại vi điều khiển PIC16F887
và PIC16F877A)?
11. Sự khác biệt tính năng điện trở kéo lên giữa hai loại vi điều khiển PIC16F887
và PIC16F877A?
12. Trình bày khái quát tính năng kỹ thuật của Port A của vi điều khiển PIC16F887?
13. Trình bày khái quát tính năng kỹ thuật của Port B của vi điều khiển PIC16F887?
14. Trình bày khái quát tính năng kỹ thuật của Port C của vi điều khiển PIC16F887?
15. Trình bày khái quát tính năng kỹ thuật của Port D của vi điều khiển PIC16F887?
16. Trình bày khái quát tính năng kỹ thuật của Port E của vi điều khiển PIC16F887?
17. Trình bày khái quát tính năng bộ dao động (Oscillator) của vi điều khiển
PIC16F887?
18. Trình bày khái quát tính năng reset hệ thống (System Reset) của vi điều khiển
PIC16F887?
19. Trình bày khái quát khả năng cung cấp nguồn hoạt động cho vi điều khiển
PIC16F887?
20. Trình bày những hiểu biết của em về tổ chức bộ nhớ (ROM, RAM và SFR) của
vi điều khiển PIC16F887?
CHƯƠNG 3: LẬP TRÌNH ĐIỀU KHIỂN PIC16F887

Yêu cầu chung:


 Soạn thảo chương trình bằng phần mềm và công cụ biên dịch: MPLABX + XC8
hoặc MPLAB IDE + HiTech C
 Mô phỏng hoạt động bằng phần mềm: Protues V7.10 hoặc Protues V8.1
 Ngôn ngữ sử dụng: Assembly và C.
1. Sử dụng mạch mô phỏng “C3_LED_BASIC_CodeC”, viết các chương trình điều
khiển sau:

C7 Y1
4MHz
OSC2 BAI TAP UNG DUNG DIEU KHIEN XUAT/NHAP CO BAN
U2
22p MCLR 1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
OSC1 16
RC1/T1OSI/CCP2
2 17
C6 +5V RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
22p 6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
RA5/AN4/SS/C2OUT RC7/RX/DT
R2 OSC2 14
RA6/OSC2/CLKOUT
OSC1 13 19
10K RA7/OSC1/CLKIN RD0
20
33
RD1
21 D5
R49 MCLR 34
RB0/AN12/INT RD2
22 RE2
R12
RB1/AN10/C12IN3- RD3
100R 35 27 470
RB2/AN8 RD4
36 28 LED
RB3/AN9/PGM/C12IN2- RD5/P1B
SW1 C10 37
RB4/AN11 RD6/P1C
29
38 30
0.1uF
39
RB5/AN13/T1G RD7/P1D D4
40
RB6/ICSPCLK
8 RE1
R13
RB7/ICSPDAT RE0/AN5
9 RE1 470
RE1/AN6
10 RE2 LED
RE2/AN7
PIC16F887

a. Điều khiển LED D4 sáng, D5 tắt.


b. Điều khiển LED D4 tắt, D5 sáng.
c. Điều khiển LED D4 và D5 sáng.
d. Điều khiển LED D4 (hoặc LED D5) sáng/tắt liên tục, tDELAY = 0.5s.
e. Điều khiển LED D4 và D5 hoạt động theo từng chu trình sau:

i. Chu trình 1:
ii. Chu trình 2:

iii. Chu trình 3:

0.5s 0.5s
D4 0.5s
D4 … 3 lần ... 0.5s

iv. Chu trình 4:

f. Điều khiển hoạt động của LED D4 và D5 sao cho cứ sau mỗi lần LED D4
sáng/tắt đủ 5 lần thì LED D5 sáng/tắt 1 lần, tDELAY = 0.5s.

2. Sử dụng mạch mô phỏng “C3_LED_BASIC_EXT_CodeC”, viết các chương trình điều


khiển sau:

+5V RP2
BAI TAP UNG DUNG DIEU KHIEN XUAT/NHAP CO BAN +5V
C7 Y1 10K
4MHz
OSC2 U2 1
U3 10
COM
22p MCLR 1 15 1 18 D0 D0 2
RE3/MCLR/VPP RC0/T1OSO/T1CKI 1B 1C
OSC1 16 2 17 D1 D1 3
RC1/T1OSI/CCP2 2B 2C
2 17 3 16 D2 D2 4
C6 +5V RA0/AN0/ULPW U/C12IN0- RC2/P1A/CCP1 3B 3C
3 18 4 15 D3 D3 5
RA1/AN1/C12IN1- RC3/SCK/SCL 4B 4C
4 23 5 14 D4 D4 6
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA 5B 5C
5 24 6 13 D5 D5 7
RA3/AN3/VREF+/C1IN+ RC5/SDO 6B 6C
22p 6 25 7 12 D6 D6 8
RA4/T0CKI/C1OUT RC6/TX/CK 7B 7C
7 26 8 11 D7 D7 9
RA5/AN4/SS/C2OUT RC7/RX/DT 8B 8C
R11 OSC2 14
RA6/OSC2/CLKOUT
OSC1 13 19 ULN2803
10K RA7/OSC1/CLKIN RD0
20
RD1
R49 33 21
RB0/AN12/INT RD2 +5V +5V +5V +5V +5V +5V +5V +5V
MCLR 34 22
RB1/AN10/C12IN3- RD3
35 27
100R RB2/AN8 RD4
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
SW1 C10 37
RB4/AN11 RD6/P1C
29
0.1uF 38
RB5/AN13/T1G RD7/P1D
30 R9 R8 R7 R6 R5 R4 R3 R2
39 330 330 330 330 330 330 330 330
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PIC16F887 D8 D7 D6 D5 D4 D3 D2 D1
a. Điều khiển 4 LED D1 – D4 sáng, 4 LED D5 – D8 tắt.
b. Điều khiển 4 LED D2, D4, D6 và D8 sáng, 4 LED D1, D3, D5 và D7 tắt.
c. Điều khiển 8 LED D1 – D8 sáng/tắt liên tục, tDELAY = 0.5s.
d. Điều khiển 8 LED D1 – D8 hoạt động theo từng chu trình sau:
3. Sử dụng mạch mô phỏng “C3_LED_ENHANCE_CodeC”, viết các chương trình điều
khiển sau:

MCLR 1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17
RA0/AN0/ULPW U/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
RA5/AN4/SS/C2OUT RC7/RX/DT
OSC2 14 RB3
RA6/OSC2/CLKOUT
OSC1 13 19
RA7/OSC1/CLKIN RD0 150
20
RD1
33 21
RB0/AN12/INT RD2
34 22
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
RB3 36 28 RB4
RB3/AN9/PGM/C12IN2- RD5/P1B
RB4 37 29
RB4/AN11 RD6/P1C 150
RB5 38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10 RB5
RE2/AN7
150
PIC16F887

a. Điều khiển LED D6 sáng, các LED còn lại tắt.


b. Điều khiển LED D7 sáng, các LED còn lại tắt.
c. Điều khiển LED D8 sáng, các LED còn lại tắt.
d. Điều khiển LED D6 và D9 sáng, các LED còn lại tắt.
e. Điều khiển LED D9 và D10 sáng, các LED còn lại tắt.
f. Điều khiển LED D10 và D11 sáng, các LED còn lại tắt.
g. Điều khiển 6 LED D6 – D11 sáng.
h. Điều khiển 6 LED D6 – D11 hoạt động theo từng chu trình sau:
4. Sử dụng mạch mô phỏng “C3_SW_PULLUP_CodeC”, viết các chương trình điều
khiển sau:

+5V

C7 Y1
4MHz
OSC2
U2
22p MCLR 1 15 R10
RE3/MCLR/VPP RC0/T1OSO/T1CKI 100K
OSC1 16
RC1/T1OSI/CCP2
2 17
C6 +5V RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
4
RA1/AN1/C12IN1- RC3/SCK/SCL
23
SW7
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24 RA4
RA3/AN3/VREF+/C1IN+ RC5/SDO
22p RA4 6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
OSC2 RA5/AN4/SS/C2OUT RC7/RX/DT
R2 OSC1
14
RA6/OSC2/CLKOUT
10K 13 19
RA7/OSC1/CLKIN RD0
20
RD1
RB0 33 21
R49 MCLR RB1 34
RB0/AN12/INT RD2
22 D5
35
RB1/AN10/C12IN3- RD3
27 RE2
R12
100R RB2/AN8 RD4
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B 470
SW1 C10 37
RB4/AN11 RD6/P1C
29 LED
0.1uF 38 30
RB5/AN13/T1G RD7/P1D
39
40
RB6/ICSPCLK
8 D4
RB7/ICSPDAT RE0/AN5
9 RE1 RE1
R13
RE1/AN6
10 RE2
RE2/AN7 470
LED
PIC16F887

a. Điều khiển LED D4 sáng hoặc tắt tương ứng khi nhấn hoặc nhả SW7. Ban đầu
tất cả các LED đều tắt.
b. Điều khiển LED D5 sáng sau khi đã nhấn-nhả SW7. Ban đầu tất cả các LED
đều tắt.
c. Điều khiển LED D4 (hoặc LED D5) sáng/tắt liên tục (tDELAY = 0.5s) sau khi đã
nhấn-nhả SW7. Ban đầu tất cả các LED đều tắt.
d. Điều khiển LED D4 và D5 hoạt động liên tục theo chu trình như hình bên dưới.
Trong quá trình hoạt động nếu người dùng nhấn-nhả SW7 thì sẽ dừng chu trình
hoạt động và tất cả các LED đều tắt.
5. Sử dụng mạch mô phỏng “C3_SW_NO_PULLUP_CodeC”, viết các chương trình điều
khiển sau:

RB0
4MHz
OSC2

22p MCLR 1 15 RB1


RE3/MCLR/VPP RC0/T1OSO/T1CKI
OSC1 16
RC1/T1OSI/CCP2
2 17
+5V RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23 RB2
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
22p 6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
RA5/AN4/SS/C2OUT RC7/RX/DT
OSC2 14
OSC1 RA6/OSC2/CLKOUT
10K 13 19
RA7/OSC1/CLKIN RD0
20
RB0 RD1
33 21
RB0/AN12/INT RD2
MCLR RB1 34 22
RB1/AN10/C12IN3- RD3
RB2 35 27 RE2
100R RB2/AN8 RD4
36 28 470
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29 LED
RB4/AN11 RD6/P1C
0.1uF 38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9 RE1 RE1
RE1/AN6
10 RE2 470
RE2/AN7
LED
PIC16F887

a. Điều khiển LED D4 sáng hoặc tắt tương ứng khi nhấn hoặc nhả SW4. Ban đầu
tất cả các LED đều tắt.
b. Điều khiển LED D5 sáng sau khi đã nhấn-nhả SW5. Ban đầu tất cả các LED
đều tắt.
c. Điều khiển LED D4 (hoặc LED D5) sáng/tắt liên tục (tDELAY = 0.5s) sau khi đã
nhấn-nhả SW6. Ban đầu tất cả các LED đều tắt.
d. Điều khiển LED D4 và D5 hoạt động liên tục theo chu trình như hình bên dưới.
Trong bất kỳ thời điểm nào của quá trình hoạt động nếu người dùng nhấn-nhả
SW4 thì sẽ dừng chu trình hoạt động và tất cả các LED đều tắt.

e. Điều khiển LED D4 và D5 hoạt động liên tục theo chu trình như hình bên dưới.
Trong bất kỳ thời điểm nào của quá trình hoạt động nếu người dùng nhấn-nhả
SW4 thì trạng thái hoạt động sẽ quay trở về thời điểm đầu tiên của chu trình và
tiếp tục hoạt động theo chu trình.
f. Điều khiển LED D4 và D5 hoạt động theo sự điều khiển của các nút nhấn như
sau:
 D4 sáng, D5 tắt sau khi nhấn-nhả SW4.
 D4 tắt, D5 sáng sau khi nhấn-nhả SW5.
 D4 và D5 tắt sau khi nhấn-nhả SW6.
6. Sử dụng mạch mô phỏng “C3_SW_ENHANCE_CodeC”, viết các chương trình điều
khiển sau:

BAI TAP UNG DUNG DIEU KHIEN XUAT/NHAP CO BAN SW4


Y1 RB0
C7 D5
4MHz
OSC2 K A R12 RE2
U2 SW5
470
22p MCLR 1 15 RB1 LED
RE3/MCLR/VPP RC0/T1OSO/T1C KI
OSC1 16
RC1/T1OSI/CCP2
2 17
C6 +5V
3
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
18
SW6 D4
4
RA1/AN1/C12IN1- RC3/SCK/SCL
23 RB2 K A R13 RE1
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO 470
22p RA4 6 25 LED
7
RA4/T0CKI/C1OUT RC6/TX/CK
26
SW7
RA5/AN4/SS/C2OUT RC7/RX/DT
R2 OSC2 14
OSC1 RA6/OSC2/CLKOUT
13 19
10K RA7/OSC1/CLKIN RD0 R3 RB3
20
RB0 33
RD1
21
SW8
R49 M CLR RB1 34
RB0/AN12/INT RD2
22 RA4 A K K 150
RB1/AN10/C12IN3- RD3
100R
RB2 35
RB2/AN8 RD4
27 D6 D7 D10
RB3 36 28 LED 0 LED 1 LED 4
RB4
RB3/AN9/PGM/C12IN2- RD5/P1B SW9
SW1 C10 37
RB4/AN11 RD6/P1C
29
K A A R4
RB5 38 30 RB4
0.1uF RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK A K A 150
40 8
RB7/ICSPDAT RE0/AN5
9 RE1
SW10 D8 D9 D11
RE1/AN6
10 RE2 LED 2 LED 3 LED 5
RE2/AN7
PIC16F887 K A K R5 RB5
R6 100K
150

a. Điều khiển LED D4 sáng hoặc tắt tương ứng khi nhấn hoặc nhả SW8. Ban đầu
tất cả các LED đều tắt.
b. Điều khiển LED D5 sáng sau khi đã nhấn-nhả SW9. Ban đầu tất cả các LED
đều tắt.
c. Điều khiển LED D4 (hoặc LED D5) sáng/tắt liên tục (tDELAY = 0.5s) sau khi đã
nhấn-nhả SW10. Ban đầu tất cả các LED đều tắt.
d. Điều khiển các LED từ D4 đến D10 sáng tương ứng khi đã nhấn-nhả các nút
nhấn từ SW4 đến SW10 (nút nào điều khiển LED đó theo đúng số thứ tự). Ban
đầu tất cả các LED đều tắt.
e. Điều khiển 6 LED D6 – D11 hoạt động theo từng chu trình như bên dưới tương
ứng khi nhấn các nút nhấn sau:
 Chu trình 1 hoạt động liên tục sau khi nhấn-nhả SW4.
 Chu trình 2 hoạt động liên tục sau khi nhấn-nhả SW7.
 Chu trình 3 hoạt động liên tục sau khi nhấn-nhả SW8.
 Chu trình 4 hoạt động liên tục sau khi nhấn-nhả SW10.
<… Đang cập nhật tiếp theo …>

You might also like