THIẾT KẾ BỘ KIT VI XỬ LÝ ĐA NĂNG
PHỤC VỤ GIẢNG DẠY VÀ NGHIÊN CỨU KHOA HỌC
ThS. NGÔ THANH BÌNH
Bộ môn Kỹ thuật điện tử
Khoa Điện – Điện tử
Trường Đại học Giao thông Vận tải
ThS. LÊ QUANG CƯỜNG
Công ty Tư vấn xây dựng dầu khí PETROLIMEX
Tóm tắt: Bài báo này trình bày về một thiết kế cho lập trình vi xử lý thông qua bộ KIT
phát triển có kết cấu độc lập dạng Main – Chip, giúp sinh viên có thể lập trình ứng dụng cho
nhiều loại vi xử lý trên thiết bị thực tế.
Summary: This report presents a design for programming microcontroller by evolution
KITs in Main – Chip separate design, assisting students in some microcontroller programs
and applications with devices.
I. ĐẶT VẤN ĐỀ
CT 2
Bài báo trình bày về một số thiết kế cơ bản trên cơ sở cấu trúc Main – Chip, dựa trên các
nhiệm vụ thí nghiệm và tổng hợp một số yêu cầu thực tế của các công ty. Thiết kế nhằm đưa ra
sơ đồ mẫu và xây dựng những bài toán điều khiển từng cụm thiết bị độc lập, giúp sinh viên tự
thay đổi vi xử lý và ngoại vi ghép phối thành bài toán điều khiển lớn hơn, ứng dụng trong công
nghiệp, GTVT như cho các bài toán Lập trình nhúng, Lập trình cho các bài toán điều khiển đèn
giao thông, đường ngang, thông gió, điều khiển giám sát tòa nhà, điều khiển từ xa… Sinh viên
có thể trực tiếp làm việc trên bộ thiết bị sau khi học trên lớp, sau đó tự phát triển bài toán trên bộ
KIT này. Điều này tăng cường khả năng tự làm việc và sáng tạo cho sinh viên. Bên cạnh đó dựa
vào các sơ đồ thiết kế cơ sở, sinh viên sẽ giảm bớt sai sót trong quá trình thiết kế chế tạo mô
hình sản phẩm phục vụ NCKH và bảo vệ tốt nghiệp.
II. YÊU CẦU THIẾT KẾ
Bộ KIT được thiết kế chế tạo theo dạng kết cấu Main – Chip đa năng, có thể dễ dàng thay
đổi vi xử lý bằng các dòng PIC, AVR, PSoC … tạo hướng mở cho bộ KIT. Bộ KIT thí nghiệm
có khả năng bao quát cả các bài thí nghiệm hiện có ngoài việc tạo thêm trên 30 Unit mới, mỗi
Unit gồm một số bài thí nghiệm quét hết một nội dung học tập. Ngoài ra khi có sự cố chạm
chập, cháy nổ khi thí nghiệm có thể dễ dàng thay thế từng cụm thiết bị, giảm thiểu kinh phí khi
cần sửa chữa thay mới.
1. Khối vi xử lý cơ bản, lập trình ASSEMBLY
Module 1 Vi xử lý AT89C52
Bài toán cơ bản: Điều khiển Led đơn, Led 7 thanh, ma trận phím, ngắt, phát hồng ngoại,
điều khiển động cơ một chiều, động cơ bước, đo nhiệt độ, hiển thị LCD, thu hồng ngoại điều
khiển từ xa, liên kết với KIT khác thành hệ vi xử lý (Giao tiếp đa vi xử lý), ghép nối ROM,
RAM, PC, ma trận điểm.
Bài toán ứng dụng: Điều khiển đèn giao thông, các hệ thống định giờ, lập trình điều khiển
từ xa, đo lường cảnh báo, điều khiển đèn quảng cáo, quang báo, mạng vi xử lý, ghép phối hệ PC
– Vi xử lý.
Module 2 Vi xử lý AT89C52: Thiết kế KIT phát triển sử dụng các Jack cắm rời, áp dụng
cho các bài toán ứng dụng trong thực tế: Điều khiển giám sát các thiết bị nhà cao tầng, điều
khiển đường ngang, đèn giao thông, các hệ thống định giờ.
2. Khối vi xử lý nâng cao, lập trình C
Module Vi xử lý ATmega8/88.
Bài toán cơ bản: Thiết kế mạch nạp onboard usb, lập trình điều khiển LED đơn, ngắt, ghép
nối bộ nhớ ngoài, đo nhiệt độ, LCD, PWM, RTC, ghép nối PC.
Bài toán ứng dụng: Đèn quảng cáo, đo lường điều khiển các đại lượng tương tự, ghép nối
PC điều khiển KIT từ PC.
CT 2
Module Vi xử lý ATmega16/32/535.
Bài toán cơ bản: Điều khiển các cụm thiết bị độc lập, Động cơ bước, Động cơ một chiều,
PWM, RTC, Loa, quạt, đo nhiệt độ cảnh báo và điều khiển ngưỡng.
Bài toán ứng dụng: Điều khiển báo cháy, thông gió nhà cao tầng, mạng AVR, AVR – PC,
các bài toán phát triển.
Module Vi xử lý PSoC CY8C29466/566.
Hai Module này ngoài giải quyết các bài toán điều khiển trên còn có kể kết nối với các
Module khác, xử lý các ngoại vi phức tạp như kết nối thẻ nhớ, RF, GPS, INS, MEMS.
III. KẾT CẤU PHẦN CỨNG BỘ KIT
1. Vi xử lý
Bộ KIT sử dụng vi xử lý dòng MCS51 và AVR, ngoài ra còn được thiết kế mở rộng cả cho
PIC, PSoC với các bảng cắm rời theo kết cấu Module. Phần cơ sở chủ yếu được xây dựng trên
vi xử lý AT89C52 và ATMega88 của Atmel do tính thông dụng, rẻ tiền của chúng. Điều này
phù hợp với đối tượng sinh viên, bao gồm:
AT89C51/52, AT89S51/52
ATMega8/88, ATMega16/535
CY8C29466/566
Sau khi đã thành thạo về vi xử lý cơ sở, người học có thể lựa chọn vi xử lý mạnh hơn với
các ngoại vi phức tạp, phát triển thêm KIT với các Module mở rộng khác.
2. Linh kiện phụ trợ
Tất cả linh kiện nằm trên bảng Main và một vài Module độc lập khác, bao gồm:
- Led đơn, Led 7 thanh, Led Matrix 5x7/8x8
- Tụ điện, Trở, Diode, Transistor các loại
- Thạch anh dao động 11.0592MHz, 8 MHz, 32.768 KHz …
- IC nguồn, đệm, chốt, dịch, MAX232, EEROM, SRAM, RTC
- ADC, LCD, Sensor đo nhiệt độ
- Mắt thu, Led phát hồng ngoại
- Động cơ 1 chiều DC, động cơ bước +12VDC
- Quạt, Loa (Còi, Chuông)
CT 2
- Nguồn, Pin +3 VDC, Cable nối, DB9 Female, DB25 Male, Cable nạp chương trình, Phím
bấm, Switch, toả nhiệt, ốc vit…
IV. BÀI TOÁN ĐIỀU KHIỂN
Các bài toán điều khiển cơ bản chạy trên Module Main – Chip với yêu cầu cho trước. Với
các yêu cầu mở rộng sinh viên phải tự tổ chức phần cứng. Điều này tạo ra những chương trình
điều khiển khác nhau ngay cả khi cho các nhóm làm cùng một bài thí nghiệm. Các bài toán điều
khiển với yêu cầu chi tiết, sơ đồ tổ chức phần cứng, list chương trình phần mềm có thể tham
khảo trong đề tài NCKH mã số B2007-04-27 của cùng tác giả.
1. MCS51
Unit 1: Xử lý Led đơn (Nháy, quay, dịch, kết hợp)
Unit 2: Xử lý Led 7 thanh (Các hệ thống định giờ, đèn giao thông)
Unit 3: Phím bấm (Phím đơn, Ma trận phím)
Unit 4: Thu phát hồng ngoại (Điều khiển từ xa)
Unit 5: Ghép LCD (Hiển thị, tạo đồng hồ)
Unit 6: Giao tiếp PC
Unit 7: Điều khiển động cơ một chiều DC-
Unit 8: Điều khiển động cơ bước Step Motor
Unit 9: Ghép ADC ngoài
Unit 10: Ma trận điểm
Unit 11: Mở rộng bộ nhớ
Unit 12 : Thiết kế ứng dụng 1: Giao tiếp hai vi xử lý giám sát nhiệt độ
Unit 13 : Thiết kế ứng dụng 2: Điều khiển từ xa DC-
Unit 14 : Thiết kế ứng dụng 3: Điều khiển từ xa Step motor
Unit 15 : Thiết kế ứng dụng 4: Hệ đa vi xử lý
Unit 16 : Thiết kế ứng dụng 5: Điều khiển đèn giao thông
Unit 17 : Thiết kế ứng dụng 6: Điều khiển đường ngang
2. AVR/PSoC
Unit 1: Xử lý Led đơn (Nháy, quay, dịch, kết hợp)
Unit 2: Xử lý Led 7 thanh (Các hệ thống định giờ)
CT 2
Unit 3: Phím bấm (Phím đơn, Ma trận phím)
Unit 4: Thu phát hồng ngoại (Điều khiển từ xa)
Unit 5: Ghép LCD (Hiển thị, tạo đồng hồ)
Unit 6: Giao tiếp PC
Unit 7: Lập trình Project multi file
Unit 8: PWM
Unit 9: Điều khiển động cơ 1 chiều DC-
Unit 10: Điều khiển động cơ bước Step Motor
Unit 11: ADC
Unit 12: RTC
Unit 13: Bài toán phát triển; Thiết kế ứng dụng
Unit 14: Khai thác các ngoại vi của Module thí nghiệm đang sử dụng tại phòng thí nghiệm
(SAB 80515) theo các bài đã có: Chống trộm; Thông gió đường hầm; Đèn tín hiệu; Trộn nhiên
liệu.
CT 2
MỘT SỐ MODULE CỦA BỘ KIT
I2C LCD
24C16B
A0
1
A1
2
A2
3
GND
4
SDA
5
SCLK
6
WP
7
VCC
8
U4
1
2
3
J4
CON3
R14
10K
R13
10K
Y1
32.768kHz
C3
100n
DS1307
X1
1
X2
2
Vb at
3
GND
4
SDA
5
SCL
6
SQW/OUT
7
VCC
8
U3
C4
10
0n
+5V
+5V
+5V
+5V
EEPROM
RTC
BT1
3V
SCL
SDA
SCL
SDA
SQW
SCL
SDA
SCL
GND
SDA
R35 10K
LCD
VSS
1
VDD
2
VEE
3
RS
4
RW
5
E
6
A
15
K
16
D0
7
D1
8
D2
9
D3
10
D4
11
D5
12
D6
13
D7
14
U5 LCD
+5V
+5V
Var
Var
+5V
T1
C828
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
P1
Header 12X2
R86
R
Led7seg Step Motor
DOT
SEG G
SEG F
SEG E
SEG D
SEG C
SEG B
SEG A
IN0
1
IN1
2
IN2
3
IN3
4
IN4
5
IN5
6
IN6
7
IN7
8
GND
9
COM
10
OUT7
11
OUT6
12
OUT5
13
OUT4
14
OUT3
15
OUT2
16
OUT1
17
OUT0
18
U7
1
2
3
4
J7
1
2
3
4
5
6
7
8
J8
CON8
CA1
1
CA2
4
CA3
5
A
2
B
6
C
9
D
11
E
12
F
3
G
8
DOT
10
CA4
7
U6
LED7 x4
R36 5K6
Q9
A1015
R37 5K6
Q10
A1015
R38 5K6
Q11
A1015
R39 5K6
Q12
A1015
7-SEG LED
LED7 SEGMENT
+5V
STEP3
STEP4
STEP2
STEP1
STEP1
STEP2
STEP3
STEP4
Q29
TIP41C
R77 0-470
Q26
Q28
R76 5K1
Q31
TIP41C
D31
1N4007
R70 5K1
D34
1N4007
D33
1N4007
Q27
TIP41C
R72 5K1
R71 0-470
Q24
1
2
3
4
5
6
J66
1
2
3
4
J65
D32
1N4007
R75 0-470
R74 5K1
Q30
Q25
TIP41C
R73 0-470
+5V
+12V
+5V
+5V
+5V
STREP Motor
UART ADC
RXD
TXD
MAX232
C1+
1
C1-
3
C2+
4
C2-
5
VCC
16
GND
15
V+
2
V-
6
R1OUT
12
R2OUT
9
T1 IN
11
T2 IN
10
R1IN
13
R2IN
8
T1 OUT
14
T2 OUT
7
U14
1
2
J68
5
9
4
8
3
7
2
6
1
P3
FEMALE DB9
C18
1u
C20
1u
C17
1u
C19
1u
C21
1u
+5V
+5V
RS232 interface
D0
D1
D2
D3
D4
D5
D6
D7
#ADC DONE
ADC #RD
ADC #WR
ADC #CS
AD C # R D
AD C # W R
AD C # C S
#ADC DONE
C2
+IN
6
-IN
7
AGND
8
VREF/2
9
GND
10
DB7
11
DB6
12
DB5
13
DB4
14
DB3
15
DB2
16
DB1
17
DB0
18
CLKR
19
VC C/ VREF
20
CLKIN
4
INTR
5
CS
1
RD
2
WR
3
U2
R1
1
1
2
2
3
3
U1
1
2
3
4
J1
R4
R2
C1
R3
+5V
+5V
ROOM TEMPRATURE MEASUREMENT
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
P6
Header 8X2
+5V
Power DC-
AC2 /D C 2
AC1 /D C 1
IN
1
OUT
3
GND
2
U12
+
C14
D30
LED
D28
LED
+
C15
C13
+
C12
-+
2
1
3
4
D29
BRIDGE 2A
R68
22E2W
R69
IN
1
OUT
3
GND
2
U13
+
C11
R67
C16
+5V
+12 V
CT 2
12VAC input
1 2
3 4
5 6
P2
Po wer On/Off
AC1
AC2
1
2
3
J64
DC Jack
1 2
3 4
5 6
P7
Header 3X2
+5V
DC1
DC2 DC4
DC3
DC1
DC2
DC3
DC4
1
2
Q5
A1015
D3
1N4007
Q1
Q4
C828
Q6
A1015
Q2
R12 1K
D1
1N4007
R5 1K
R11 1K
R10 5K1
Q7
C2383
3
4
J3
D2
1N4007
R7 5K1
Q3
C828
D4
1N4007
R9 5K1
Q8
C2383
1 2
MG1
R6 1K
R8 5K1
+5V
+12V
+5V
M
DC Motor
ATMega16/32/566
CT 2
GND AGN D
+5V AVC C
AR EF
AC1/DC1
AC2/DC2
PB1
PD 5
PD 1
PA4
AVC C
PB2
PD 6
PD 2
PA5
PB3
PC 7
PB0
PD 3
PA6
PB4
PC 6
PB1
PA7
PD 4
MOSI
PC 5
AR EF
PB2
PD 5
MISO
GND
PB3
PD 6
SC K
AVC C
PB4
PC 4
PA0
R ESET
PC 7
MOSI
PC 3
PA1
VC C
PC 6
MISO
PC 2
PA2
GND
PC 5
SC K
XTAL 2
PC 1
PA3
PC 4
R ESET
XTAL 1
PC 3
PC 0
PA4
VC C
PD 0
PC 2
PA5
PD 7
GND
PC 1
PD 1
PA6
PA0
XTAL 2
PC 0
PD 2
PA7
PA1
PD 7
XTAL 1
PD 3
PA2
AR EF
PB0
PD 0
PD 4
PA3
GND
VC C
GND
XTAL 1
XTAL 2
PD 1
PD 0
L3 100uH
C1
100n
+
C11
1000u/50V
1
2
3
J5
-+
2
1
3
4
D5
BRID GE 1A
C4 22p
1
J7
1
1
2
2
3
3
U4
1
J8
L2 10uH
C13
100n
+
C12
470u/25V
(XCK/T0) PB0
1
(T1) PB1
2
(INT2/AIN0) PB2
3
(OC0/AIN1) PB3
4
(SS) PB4
5
(MOSI) PB5
6
(MISO) PB6
7
(SCK) PB7
8
RESET
9
VCC
10
GND
11
XTAL2
12
XTAL1
13
(RXD) PD0
14
(TXD) PD1
15
(INT0) PD2
16
(INT1) PD3
17
(OC1B) PD4
18
(OC1A) PD5
19
(ICP) PD6
20
PD7 (OC2)
21
PC0 (SCL)
22
PC1 (SDA)
23
PC2 (TCK)
24
PC3 (TMS)
25
PC4 (TDO)
26
PC5 (TDI)
27
PC6 (TOSC1)
28
PC7 (TOSC2)
29
AVCC
30
GND
31
AREF
32
PA7 (ADC7)
33
PA6 (ADC6)
34
PA5 (ADC5)
35
PA4 (ADC4)
36
PA3 (ADC3)
37
PA2 (ADC2)
38
PA1 (ADC1)
39
PA0 (ADC0)
40
U1
AT Mega16
1
2
3
J4
C10
100n
1
J6
L1 10uH
7805
IN
1
OUT
3
GND
2
U3
1
2
3
4
J3
SWITCH2X2
Y1
4-20MHz
D6
LED
1
J9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
19
20 21
22
23
24
25
26
27
28
15
16
17
18
29
30
31
32
33
34
35
36
37
38
39
40
J1
CON40C
C2
1u
1
2
3
4
5
6
7
8
9
10
11
12
13
14
19
20 21
22
23
24
25
26
27
28
15
16
17
18
29
30
31
32
33
34
35
36
37
38
39
40
J2
CON40C
R13
1K
C7 22p
+5V
+5V
External crystal
Drills
Power supply
Power-in jack
CONNECTOR 20x2
CONNECTOR 20x2
MULTI-MICROCONTROLLERSCOMMUNICATE
1 2
3 4
5 6
P4
Contac
AC1
AC2
12
C3
0.1mF
PC6 (RESET)
1
PD0 (RXD)
2
PD1 (TXD)
3
PD2 (INT0)
4
PD3 (INT1)
5
PD4 (XCK/T0)
6
VCC
7
GND
8
PB6 (XTAL1)
9
PB7 (XTAL2)
10
PD5 (T1)
11
PD6 (AIN0)
12
PD7 (AIN1)
13
PB0 (ICP1)
14
PB1 (OC1A)
15
PB2 (SS/OC1B)
16
PB3 (MOSI/OC2)
17
PB4 (MISO)
18
PB5 (SCK)
19
AVCC
20
AREF
21
GND
22
PC0 (ADC0)
23
PC1 (ADC1)
24
PC2 (ADC2)
25
PC3 (ADC3)
26
PC4 (ADC4/SDA)
27
PC5 (ADC5/SCL)
28
U2
ATmega8
4
2
3
1
P2
USB - type
B
+5V
1 2
Y2
XTAL
C8
22p
C9
22p
GND GND
D3
LED
R11
R
R12
R
D4
LED
GND
R9
330R
R8
330R
R7
330R
Reset
SCK
MI S O
MOS I
R2
1.5k
R3
1M
R4
10k
R1
100
C5
.1u
R6 68R
R5
68R
D2
4007
D1
4007
C6
104
GND
1 8
2 7
3 6
4 5
P3
Header 4X2
R10
330R
1
2
3
P1
Reset select
Rset
Rset
R_out
R_out
GND
GND
GND
GND
GND
12v
GND
CY8C29566
CT 2
SD ATA
SC L K
XR ES
GND
VCC1
V
GND
XRES
Out 7Out 7
Out 9
Out 8
Out 6
Out 4
Out 5
Out 3
Out 2
SW0
NSS Conf
GND
SDAT A
RF MISO
SCL K
RF SCK
Data
Out10
RF MOSI
NSS Data
IRQ 1
Out1
IRQ0
SW1
VCC
C1
100uF
1
2
4
3
J6
SWIT CH 2 X2
CY8C29566
A, I,P0 [7]
40
A,IO,P0[5]
41
A, IOP 0[3 ]
42
A, I,P0 [1]
43
P2[5]
1
P1 [0 ]/ I2 CSDA, XTALo u t
18
P1[2]
19
P1[4 ],EXTCLK
20
P1[6]
21
P4[6]
30
A,I,P2[0]
31
A,I,P2[2]
32
Ex VREF, P2[6]
34
A, I,P0 [0]
35
A,IO,P0[2]
36
A,IO,P0[4]
37
A, I,P0 [6]
38
Ex AGND/P2[4]
33
VCC
39
P2[7]
44
P2[1],A,I
3
P4[3]
6
P4[5]
5
P4[1]
7
SMP
8
P3[7]
9
P3[5]
10
P3[3]
11
P3[1]
12
P1 [7], I2 CSCL
13
P4[7]
4
P1[3]
15
P1 [1]/ I2C SCL,XTALin
16
P1 [5], I2 CSDA
14
Vs s
17
P4[4]
29
P3[0]
22
P3[2]
23
P3[4]
24
P3[6]
25
P4[0]
27
XRES
26
P4[2]
28
P2[3],A,I
2
U1
1
2
3
4
5
J2
CON5
VCC1
3.3V
VCC1VCC
+
C3
1000MF/50V
1
2
JP1
POW ER VIT
F1
FUSE 0.5A
R2
330R
D2
LED
OUT
2
GND
3
#ON
5
In
1
Feedback
4
U2 LM2575ADJ
L1 ??nH
R3
390R
LM317AT
IN
3
OUT
2
ADJ
1
U3
C2
100u
+
C4
470MF/25V
D1
1A
D3
R1
240R
VCC
3.3V
VCC
1
H1
Vit
1
H2
Vit
1
H4
Vit
1
H3
Vit
1 2
3 4
5 6
P1
Head er 3X2
VCC0
GND0
1
2
3
J7
DC Jack
F1 12V FB
5V
F0
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
P4
Head er 1 1X2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
P3
Header 11X2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
P2
Header 11X2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
P5
Header 11X2
VI. KẾT LUẬN
Các bài toán điều khiển cơ bản chạy trên Module Main – Chip với yêu cầu cho trước. Với
các yêu cầu mở rộng sinh viên phải tự tổ chức phần cứng. Điều này tạo ra những chương trình
điều khiển khác nhau ngay cả khi cho các nhóm làm cùng một bài thí nghiệm, tăng cường khả
năng sáng tạo cho sinh viên. Bài báo đưa ra các cấu trúc phần cứng cơ bản, sinh viên có thể áp
dụng nguyên các sơ đồ này hoặc tổ chức các khối theo các cách khác nhau phục vụ cho làm bài
tập lớn, thiết kế môn học, nghiên cứu khoa học và bảo vệ tốt nghiệp. Các thiết kế mẫu này còn
giúp sinh viên làm giảm sai sót và giảm kinh phí trong quá trình chế tạo sản phẩm.
Tài liệu tham khảo
[1]. Sensor Yeralan. Programming and Interfacing the 80C51 Microcontroller. Rigel Cor. , 1993
[2]. Michael J Pont. Programming Embedded System. University of Leicester, 2003
[3]. Dhananjay V Gadre. Programming and Customizing the AVR Microcontrollers. McGraw-Hill, 2001
[4]. David E Simon. An Embedded Software Primer. China Machine Press, 2005
[5]. Michael Barri. Programming Embedded Systems in C and C++. O’Reilly, 1999
[6]. Joe Pardue. C Programming for Microcontrollers. Smiley Micros, 2005
[7]. Peter Marweden. Embedded Systems Design. Springer, 2006♦