You are on page 1of 6

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐỀ THI CUỐI KỲ I/2019 – 2020

KHOA ĐIỆN – ĐIỆN TỬ Môn thi: Thiết kế hệ thống nhúng – EE3003


BỘ MÔN ĐIỆN TỬ Ngày thi: (30/12/2019) – Thời lượng: 90 phút

LƯU Ý:
- Sinh viên được phép sử dụng tài liệu; không sử dụng điện thoại, laptop, tablet.
- Đề thi gồm 3 câu.
Câu 1: (2 điểm) (L.O.2) Hãy trả lời các câu hỏi sau về hệ thống nhúng vi điều khiển PIC
a) (0.5đ) PIC16F84 có tích hợp những loại bộ nhớ nào? Dung lượng bao nhiêu?
1K bộ nhớ chương trình
68 bytes RAM
64 bytes EEPROM

b) (0.5đ) PIC16F877 hỗ trợ bao nhiêu Timer? Cho biết số bit của mỗi bộ Timer?
Hỗ trợ 3 timers
Timer0: 8 bit
Timer1: 16 bit
Timer2: 8 bit

c) (0.5đ) PIC16F877 hỗ trợ bao nhiêu loại ngắt? Hãy mô tả cách cài đặt ngắt ngoài RB0
Hỗ trợ 14 loại ngắt
Cách cài đặt ngắt ngoài:
enable_interrupts(int_ext); // cho phép ngắt ngoài
enable_interrupts(global); // cho phép ngắt toàn cục
ext_int_edge(H_TO_L); // Cài đặt tín hiệu ngắt cạnh xuống
chương trình phục vụ ngắt đặt sau nhãn #int_ext

d) (0.5đ) Cho biết cách cài đặt port B để 4 bit cao là nhập và 4 bit thấp là xuất.
Cài đặt thanh ghi TRISB = F0h
set_tris_B(0xF0);

Câu 2: (3 điểm) (L.O.3, L.O.4) Hãy thiết kế các ngoại vi sau cho hệ thống nhúng sử dụng vi điều
khiển PIC16F877:
a) (1đ) Vẽ sơ đồ mạch bàn phím ma trận 3x3 và viết chương trình C để đọc trạng thái nút
bấm
C1 U1
13 33 Row 0
OSC1/CLKIN RB0/INT
14 34 Row 1
OSC2/CLKOUT RB1
1uF MCLR 1 35 Row 2
MCLR/Vpp/THV RB2
36
RB3/PGM
X1 2
RA0/AN0 RB4
37
3 38 Column 0
4M RA1/AN1 RB5
4 39 Column 1
C2 5
RA2/AN2/VREF- RB6/PGC
40 Column 2
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15

Column 0

Column 1

Column 2
RA5/AN4/SS RC0/T1OSO/T1CKI
1uF 16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
R8 RC6/TX/CK
25
26 Row 0
10k RC7/RX/DT
RESET 19
RD0/PSP0
MCLR 20
RD1/PSP1
21
RD2/PSP2
22 Row 1
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30 Row 2
RD7/PSP7
PIC16F877

SV có thể chọn port giao tiếp bàn phím tùy ý


Code chương trình:

b) (1đ) Vẽ sơ đồ 2 vi điều khiển PIC16F877 giao tiếp I2C, và viết chương trình C truyền giá
trị “AAh” từ vi điều khiển Master đến vi điều khiển Slave

U1 U2
13 33 Row 0 13 33
OSC1/CLKIN RB0/INT OSC1/CLKIN RB0/INT
14 34 Row 1 14 34
OSC2/CLKOUT RB1 OSC2/CLKOUT RB1
1 35 Row 2 1 35
MCLR/Vpp/THV RB2 MCLR/Vpp/THV RB2
36 36
RB3/PGM RB3/PGM
2 37 2 37
RA0/AN0 RB4 RA0/AN0 RB4
3 38 Column 0 3 38
RA1/AN1 RB5 RA1/AN1 RB5
4 39 Column 1 4 39
RA2/AN2/VREF- RB6/PGC RA2/AN2/VREF- RB6/PGC
5 40 Column 2 5 40
RA3/AN3/VREF+ RB7/PGD RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI R1 R2 6
RA4/T0CKI
7 15 10k 10k 7 15
RA5/AN4/SS RC0/T1OSO/T1CKI RA5/AN4/SS RC0/T1OSO/T1CKI
16 16
RC1/T1OSI/CCP2 RC1/T1OSI/CCP2
8 17 8 17
RE0/AN5/RD RC2/CCP1 RE0/AN5/RD RC2/CCP1
9 18 SCL 9 18 SCL
RE1/AN6/WR RC3/SCK/SCL RE1/AN6/WR RC3/SCK/SCL
10 23 SDA 10 23 SDA
RE2/AN7/CS RC4/SDI/SDA RE2/AN7/CS RC4/SDI/SDA
24 24
RC5/SDO RC5/SDO
25 25
RC6/TX/CK RC6/TX/CK
26 26
RC7/RX/DT RC7/RX/DT
19 19
RD0/PSP0 RD0/PSP0
20 20
RD1/PSP1 RD1/PSP1
21 21
RD2/PSP2 RD2/PSP2
22 22
RD3/PSP3 RD3/PSP3
27 27
RD4/PSP4 RD4/PSP4
28 28
RD5/PSP5 RD5/PSP5
29 29
RD6/PSP6 RD6/PSP6
30 30
RD7/PSP7 RD7/PSP7
PIC16F877 PIC16F877

Ghi chú: SV vẽ thiếu điện trở kéo lên nguồn bị trừ 0.25đ
Chương trình:
#include “16F877A.h”
#use delay(clock = 4000000)
#use i2c(MASTER, SCL = PIN_C3, SDA = PIN_C4)
void main()
{
i2c_start();
i2c_write(0xAA);
i2c_stop();
}

c) (1đ) Vẽ sơ đồ mạch hiển thị LCD sử dụng chế độ 4 bit giao tiếp với vi điều khiển
PIC16F877 và viết chương trình C để hiển thị chữ “Embedded System”.
U1
13 33 LCD1
OSC1/CLKIN RB0/INT LM016L
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI

VDD
VSS

VEE
7 15

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
RA5/AN4/SS RC0/T1OSO/T1CKI

E
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1

1
2
3

4
5
6

7
8
9
10
11
12
13
14
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877

Code chương trình:


#include <16F877.h>
#use delay(clock=20000000)
#include <LCD.C>
void main()
{ // 4-bit mode LCD ( 2 x 16)
char text1[]="Embedded System";
printf(lcd_putc,"%s",text1);
while(1);
}

Câu 3: (6 điểm) Xét một hệ thống nhúng điều khiển đèn cây thông Noel có giao tiếp Bluetooth
với điện thoại thông minh.
VCC
GND
 Hệ thống gồm: 1 vi xử lý, 1 module Bluetooth HC-05 giao tiếp qua UART, TXD
mạch lái dòng sử dụng transistor cho đèn và 8 bóng đèn loại 12V/100mA RXD

 Hoạt động: Sau khi mở nguồn, các bóng đèn tắt. Khi vi điều khiển nhận Bluetooth module
được các chuỗi lệnh từ Module Bluetooth thì sẽ điều khiển đèn sáng tương HC-05
ứng.
o B0: tắt tất cả các đèn
o B1: tất cả các đèn lặp lại sáng 0.5s và tắt 0.5s bật
o B2: từng đèn sáng trong thời gian 0.5s, những đèn còn lại tắt

a) (1đ) (L.O.1) Hãy phân tích ít nhất 3 constraints cho hệ thống trên với các thông số giả
định tự cho.

Các constraint:
Giá thành hệ thống: < 500 ngàn đồng
Tuổi thọ ít nhất 2 năm
Công suất tiêu thụ tối đa 20W

SV có thể chọn các constraint theo ý mình sao cho phù hợp hệ thống trên
b) (1đ) (L.O.3) Hãy vẽ sơ đồ khối và viết đặc tả phần cứng cho hệ thống (mô tả chức năng
các khối và nguyên lý hoạt động)

UART Mạch
Module Vi điều 8 đèn
lái
HC-05 khiển LED
dòng

Chức năng các khối:


Vi điều khiển: nhận tín hiệu từ HC-05 và điều khiển 8 đèn LED qua mạch lái dòng
Module HC-05: nhận tín hiệu Bluetooth từ điện thoại thông minh để điều khiển đèn
Mạch lái dòng: để khuếch đại dòng cho đèn LED
Đèn LED: dùng để trang trí cây thông Noel

Nguyên lý hoạt động:


 Sau khi mở nguồn, các bóng đèn tắt. Khi vi điều khiển nhận được các chuỗi lệnh
từ Module Bluetooth thì sẽ điều khiển đèn sáng tương ứng.
o B0: tắt tất cả các đèn
o B1: tất cả các đèn lặp lại sáng 0.5s và tắt 0.5s bật
o B2: từng đèn sáng trong thời gian 0.5s, những đèn còn lại tắt

c) (1đ) (L.O.3) Vẽ sơ đồ mạch chi tiết cho hệ thống


12V

U3 D1
C1 U1 10 R1
COM
13 33 1 18 R4
OSC1/CLKIN RB0/INT 1B 1C
14
OSC2/CLKOUT RB1
34 2
2B 2C
17 R3
100 D2
MCLR 1 35 3 16
1uF
MCLR/Vpp/THV RB2
36 4
3B 3C
15
R2
10k LED
RB3/PGM 4B 4C R5
10k
X1 2
RA0/AN0 RB4
37 5
5B 5C
14 R6
10k D3
4M 3 38 6 13 R7
RA1/AN1 RB5 6B 6C 10k
4 39 7 12 R9 LED
C2 5
RA2/AN2/VREF- RB6/PGC
40 8
7B 7C
11
10k
RA3/AN3/VREF+ RB7/PGD 8B 8C 10k
6
RA4/T0CKI 100
7
RA5/AN4/SS RC0/T1OSO/T1CKI
15 ULN2803 D4
LED
1uF 16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
RC5/SDO
24 D5
LED
R8 RC6/TX/CK
25 TX
Module Bluetooth
26 RX
10k RC7/RX/DT
RESET 19
RD0/PSP0
MCLR
RD1/PSP1
20 D6
LED
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
RD6/PSP6
29 D7
LED
30
RD7/PSP7
PIC16F877

D8
LED

LED

Ghi chú: SV có thể sử dụng transistor để lái dòng thay vì dùng chip ULN2803

d) (1đ) (L.O.4) Hãy vẽ lưu đồ chương trình chính cho hệ thống trên
Reset

Cài đặt UART, ngắt Timer 0.5s,


và tắt tất cả LED, chọn mode
0

N
Có tín hiệu UART

Đọc UART

N
Nhận ‘B’

Đọc UART

Y
Nhận ‘0’ Chọn mode 0

N
Y
Nhận ‘1’ Chọn mode 1

N
Y
Nhận ‘2’ Chọn mode 2

Ghi chú: mode0, 1, 2 là 3 mode sáng LED theo 3 chức năng của hệ thống. Để cập nhật
trạng đèn LED, ta sử dụng ngắt Timer với chu kỳ 0.5s để điều khiển LED theo các mode

e) (2đ) (L.O.4) Hãy viết chương trình C điều khiển hệ thống trên.

SV viết chương trình theo lưu đồ trên.

(Ghi chú: tổng điểm của đề thi là 11đ, bao gồm 1 điểm thưởng)

CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN RA ĐỀ


TS. Trần Hoàng Linh TS. Trương Quang Vinh
Chú thích: L.O.x là chuẩn đầu ra môn học trong đề cương môn học

You might also like