CHẾ TẠO THIẾT BỊ THÍ NGHIỆM VI ĐIỀU KHIỂN
SỬ DỤNG CHIP VI ĐIỀU KHIỂN AT89S8252
MANUFACTURING TESTING EQUIPMENT FOR MICROCONTROLLER
SYSTEMS USING MICROCONTROLLER AT89S8252
LÊ TẤN DUY – TIẾN DŨNG
Đại học Đà Nẵng
TÓM TT
Bài báo đề xuất phương án chế tạo một thiết bị thí nghiệm với đầy đủ các thành phần bản
của một hệ vi điều khiển các ngoại vi, trên đó thể thực hiện các bài thí nghiệm từ
bản đến nâng cao, đáp ứng được yêu cầu thí nghiệm môn học "Kỹ thuật Vi điều khiển", phù
hợp với chương trình đào tạo các trường đại học, cao đẳng ớc ta. Đi kèm với sản
phẩm phần cứng các chương trình phần mềm cho phép người sử dụng lập trình thực hiện
các bài thí nghiệm từ bàn phím của thiết bị hoặc từ trên máy vi tính kết nối với thiết bị.
ABSTRACT
The article proposes a method to manufacture testing equipment with complete elements of a
microcontroller system and peripheral devices, in which users can experiment exercises from
fundamental to advanced levels, satisfying the requirements of testing for “Microcontroller
Technology” subject in accordance with the training curricula of many universities, colleges in
VietNam. Enclosed with the equipment are software allowing the users to program
experimental exercises using the equipment keyboard or the computers connected with the
equipment.
1. Đặt vấn đề
Môn học K thuật Vi xử lý, Kỹ thuật Vi điều khiển là môn học căn bản quan trọng đối
với sinh viên các ngành Tự động - Đo lường, Điện tử, Tin học. Dựa trên nền tảng của môn
học Kỹ thuật Vi xử lý, Kỹ thuật Vi điều khiển, sinh viên sẽ tiếp thu những môn học kỹ thuật
chuyên ngành quan trọng khác tiếp cận dễ ng hơn với những công nghệ, trang thiết bị
hiện đại. Thiết bị thực hành để phục vụ cho môn học là rất cần thiết, nhưng hiện nay các thiết
bị thí nghiệm mua của nước ngoài thì đắt tiền không khai thác được hiệu quả do linh kiện
và nội dung các bài thí nghiệm không phù hợp với chương trình đào tạo ở nước ta.
Xuất phát từ yêu cầu thực tế trên, chúng tôi nghiên cứu đề xuất phương án chế tạo
một thiết bị thí nghiệm Vi điều khiển với đầy đủ các thành phần bản của một hệ vi điều
khiển và các ngoại vi, trên đó có thể thực hiện các bài thí nghiệm từ cơ bản đến nâng cao, đáp
ứng được yêu cầu thí nghiệm môn học "Kthuật Vi điều khiển", phù hợp với chương trình
đào tạo các trường đại học, cao đẳng nước ta. Đi kèm với sản phẩm phần cứng các
chương trình phần mềm điều hành cho phép người sử dụng lập trình thực hiện các bài thí
nghiệm từ bàn phím của thiết bị hoặc từ trên máy vi tính kết nối với thiết bị.
2. Phân tích yêu cầu đối với thiết bị
+ Phần cứng: Bởi mục đích của sản phẩm phục vụ cho việc đào tạo nên cấu hình
phần cứng phải ràng, dàn trải. ch thước của thiết bị gọn nhẹ, dễ dàng di chuyển bảo
quản. Các thành phần của hệ vi điều khiển phải được thể hiện rõ ràng, dễ nhận biết.
+ Các thành phần của thiết bị: Thiết bị có đầy đủ các thành phần cơ bản của một hệ vi
điều khiển các nguồn tài nguyên ngoại vi phong phú, cho phép người sử dụng thể tự do
phát triển các ứng dụng của mình:
Bộ vi xử lí trung tâm.
Các bộ nhớ ROM, RAM, EEPROM bên ngoài.
Các cổng vào/ra tương tự, vào/ra số, các cổng ghép nối ngoại vi mở rộng lập trình
được.
Giao tiếp bàn phím.
Hiển thị LCD.
Hiển thị trạng thái bằng đèn LED .
Hiển thị LED 7 thanh.
Hiển thị ma trận LED (8x8).
Các đầu vào xung.
Mạch điều khiển động cơ một chiều, động cơ bước.
Giao tiếp với máy tính PC qua cổng truyền thông nối tiếp (COM) song song
(LPT).
+ Các bài thí nghiệm thực hiện trên thiết bị:
Các bài bản: Giúp sinh viên làm quen với hlệnh của chip vi điều khiển, nhập
các lệnh và chạy chương trình để xem kết quả thực hiện của các lệnh đó.
Các bài nâng cao: Gồm các bài thí nghiệm phức tạp hơn thực hiện việc điều khiển
các thành phần ngoại vi trên thiết bị. Các bài thí nghiệm thực hiện việc điều khiển
một quá trình tương tự hoặc số, dụ: Điều khiển hiển thị đèn LED, LED 7 thanh,
ma trận LED, điều khiển vào/ra số - tương tự, điều khiển động cơ bước...
+ Thực hiện các bài thí nghiệm:
Các bài tập mẫu xây dựng trước: Đi kèm với sản phẩm phần cứng là một hệ thống
các bài tập mẫu được y dựng cho các ứng dụng trên thiết bị như điều khiển các
thành phần ngoại vi của thiết bị, điều khiển vào/ra tương tự - số... Sinh viên có thể
đọc hướng dẫn sử dụng và thực hiện các bài tập mẫu này trên thiết bị.
Các bài tập do sinh viên tự lập trình: Sau khi đã nắm rõ cấu hình của thiết bị và sơ
đồ bộ nhớ của các thành phần trên thiết bị, sinh viên thể tự lập trình các bài thí
nghiệm theo ý định riêng của mình.
+ Công cụ lập trình:
Bằng bàn phím và LCD: Có thể lập trình trực tiếp từ bàn phím của thiết bị bằng mã
máy và quan sát kết quả hiển thị trên màn hình tinh thể lỏng LCD và các cổng vào
ra. khả năng sửa chương trình thay đổi các tham số từ bàn phím, thể lưu
trữ chương trình hoặc mở một chương trình cũ.
Bằng máy tính PC: Có thể sử dụng các công cụ phát triển dụ như phần mềm
KEIL để lập các chương trình cho thiết bị từ y tính bằng ngôn ngữ C hoặc
Assembly sau đó biên dịch thành file dạng Hexa hoặc Binary rồi nạp xuống hvi
điều khiển của thiết bị thực hiện các chương trình đó.
+ Công cụ phát triển cho thiết bị:
Chương trình MONITOR: Chương trình Monitor điều hành hoạt động của cả thiết
bị và cho phép lập trình từ bàn phím hoặc từ máy tính để điều khiển thiết bị. Người
sử dụng thể tạo một chương trình mới, hoặc có thể mở một chương trình đã
lưu từ lần thí nghiệm trước trong thiết bị, cho phép soạn thảo lại chương trình,
sửa đổi các lệnh nếu sai, cho phép lưu trữ lại chương trình chương trình lưu
trữ không bị mất dữ liệu khi cắt nguồn,... Ngoài ra chương trình Monitor của thiết
bị còn cho phép xem sử đổi nội dung của các thanh ghi đặc biệt hoặc nội dung
các ô nhớ trong của chip vi điều khiển chính.
Công cụ gỡ rối: Trên giao diện máy tính thể sử dụng các phần mềm phát triển
ví dụ phần mềm KEIL để gỡ rối cho việc lập trình.
3. Nội dung
Sau khi đã nghiên cứu, phân tích các yêu cầu cần thiết đối với thiết bị thí nghiệm Vi
điều khiển, chúng tôi đề xuất phương án chế tạo thiết bị như sau:
3.1. Chọn phương án
Chọn họ vi điều khiển làm thành phần trung tâm họ 8051, 8051 họ vi điều
khiển phổ biến nhất hiện nay, được sử dụng rất rộng rãi trong các ứng dụng công nghiệp cũng
như trong việc chế tạo các sản phẩm dân dụng. Ngoài ra, họ vi điều khiển 8051 đã xâm nhập
vào các phòng thí nghiệm thiết kế của trường trung học, trường đại học, một đối tượng
cụ thể cho sinh viên khi bắt đầu nhập môn Vi điều khiển. vậy, việc chọn họ 8051 làm
thành phần trung tâm của thiết bị là phù hợp với chương trình đào tạo và điều kiện học tập của
sinh viên ở nước ta.
những lí do trên, và xuất phát từ yêu cầu thiết kế một thiết bị thí nghiệm Vi điều
khiển phục vụ mục đích đào tạo môn học vi điều khiển, ta quyết định chọn phương án s
dụng chip vi điều khiển AT89S8252 của hãng ATMEL để làm thành phần trung tâm điều
khiển thiết bị, cùng với các thành phần bộ nhớ ROM, RAM bên ngoài các thiết bị ngoại vi
phong phú.
Đặc điểm của chip vi điều khiển AT89S8252
Chip vi điều khiển AT89S8252 cũng thuộc họ 8051, do đó tất cả những đặc
trưng bản của họ này. Ngoài ra một số đặc điểm mới so với h8051. Sau đây là
những tính năng bổ sung của 89S8252:
- Ngoài 2 Timer T0 và T1, 89S8252 còn có thêm Timer T2. Timer này có thể làm việc
như Timer T0, T1 trong chế độ Reload ngay cả ở lúc làm Timer 16 bit.
- AT89S8252 8K Flash ROM làm bộ nhớ chương trình 2K EEPROM làm bộ
nhớ dữ liệu. Tất cả các vùng nhớ này đều thể được nạp dữ liệu bằng cổng LPT của y
tính thông qua phương thức ISP. Đây một phương thức nạp dữ liệu vào vi điều khiển rất
thuận tiện, không cần mạch nạp riêng. Các chân đa chức năng từ P1.4 đến P1.7 của 89S8252
thực hiện giao tiếp ISP này. Phần mềm sử dụng để nạp ISP AEC_ISP của hãng AEC
Electronics.
- Vi điều khiển AT89S8252 hỗ trợ tần số làm việc đến 24 MHz.
- Có hai con trỏ dữ liệu.
- thể lập trình cho Timer chế độ Watchdog. Chế độ y cho phép người sử dụng
theo dõi trạng thái hoạt động của vi điều khiển.
- Có 9 nguồn ngắt với 2 mức ưu tiên khác nhau.
- Có chế độ Power Down và Idle để tiết kiệm điện năng của hệ thống.
3.2. Sơ đồ khối chức năng của thiết bị
Hình 1. Sơ đồ khối chức năng của thiết bị thí nghiệm vi điều khiển
3.3. Sơ đồ mạch nguyên lý
Sau khi phân tích lựa chọn phương án thiết kế thiết bị thí nghiệm và từ sơ đồ khối thiết
lập được như trên, ta tiến hành lựa chọn linh kiện thiết kế mạch nguyên của thiết bị. Để
việc thiết kế mạch nguyên được dễ dàng tránh sai sót, ta chia mạch nguyên lý của thiết
bị thành các phần nhỏ được trình bày dưới đây.
Trong hệ vi điều khiển của thiết bị, mỗi thành phần thiết bị đều một địa chỉ cụ thể,
người thiết kế cần xác định rõ ràng các địa chỉ này để có thể đảm bảo cho hệ hoạt động và viết
chương trình điều hành hoạt động của hệ. Người sdụng cũng cần nắm rõ các địa chỉ này để
có thể lập trình cho các ứng dụng trên thiết bị.
Khối CPU
Đây phần điều khiển trung tâm của thiết bị, bộ phận quan trọng nhất. Khối CPU
gồm có chip vi điều khiển chính AT89S8252, EEPROM, RAM, mạch chốt, giải mã địa chỉ...
VCC
GND
D7
/CS 6_8255
TXD
D2
A13
/EA
D6
A0
VCC
J1
NGUON
1
2
3
4
5
6
SW2
select
D2
D5
XTAL1
/CS 5_8255
U5A
7408
1
23
VCC
ADRRESS:
4000H-7FFFH
D0 D1
A2
A5
VCC
A11
D6
A3
GND
A4
VCC
VCC
VCC
A2
TXD OUT TXD
D0
INTERNAL
A4
RXD
CL1
22nF
D3
U3 62256 10
9
8
7
6
5
4
3
25
24
21
23
2
26
1
14
28
11
12
13
15
16
17
18
19
20
27
22
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
VSS
VCC
D0
D1
D2
D3
D4
D5
D6
D7
CS
WR
OE
MISO
A7
A6
D5A5
VCC
D3
CPU
IN RXD
D1
A4
A14
A12
VCC
A5
D0
GND
A3
GND
D6
Y1.1
12 MHz
D7
XTAL2
D2
C1.3
10uF
RST
/WR
T1
-5V
EEPROM
D3
A12
A8 A9
VCC
VCC
GND
A15
D3
5VCS
VCC
A0
T0
A1
GND
MOSI
D5
/INT1
A10
/CS 7_8255
A7
P2
ISP
5
9
4
8
3
7
2
6
1
VCC
D1
A7
C8.2
10uF
R1.1D IEN TRO D EM
1 2
3
4
5
6
7
8
9
10
RAM
VCC
MISO
A8
SCK
/CS LED7THANH
ALE
A13
D2
U7C
7432
9
10
8
A1
GND
U4 74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10 20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
GND VCC
U7A
7432
1
2
3
SW1.1
RESET
A0 D1
D1
A4
A15D7
D7
/CS 8_8255
MOSI
GND
ADRRESS:
0000H-1FFFH
A8
D0
A14
/WR
/INT0
GND
R1.3
1K
A10
C8.3
10uF
/PSEN
/EA
D6
A11
ALE
D0
/CS 62256
RXD
U2 AT28C64
10
9
8
7
6
5
4
3
25
24
21
23
2
11
12
13
15
16
17
18
19
1
28
14
20
22
27
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
D0
D1
D2
D3
D4
D5
D6
D7
RDY /BUSY
VCC
GND
CE
OE
WE
D4
SCK
D5
A3
/WR
VCC
D4
RST
+12V
U6A 7404
12
U9
74HC138
1
2
3
6
4
5
15
14
13
12
11
10
9
7
168
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
VCCGND
U8 MAX232/SO
1
3
4
5
1615
2
6
12
9
11
10
13
8
14
7
C1+
C1-
C2+
C2-
VCCGND
V+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
VCC
A2
GND
R1.2
10K
OUT TXD
D4
/RD
/CS 62256
IN RXD
VCC
A12
A1
A13
D6
VCC
C1.2
33uF
P1
COM
5
9
4
8
3
7
2
6
1
VCC
A2
A9
R5
1.5K
VCC
GND
A10
D2
A11
/PSEN
U10
74HC138
1
2
3
6
4
5
15
14
13
12
11
10
9
7
168
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
VCCGND
C1.1
33uF
D3
U1
AT89S8252
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
GND
PSEN
ALE/PROG
EA/VPP
VCC
P1.0/T2
P1.1/T2-EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7 D7
GND
EXTERNAL
C8.1
10uF
D5 A6
A9
D4
A3
A6
C8.4
10uF
D4
-12V
Hình 2. Sơ đồ nguyên lý khối điều khiển trung tâm của thiết bị
Giao tiếp xuất/ nhập
Phần giao tiếp xuất nhập gồm 2 khối: khối hiển thị LCD khối bàn phím. Để giảm
bớt khối lượng tính toán cho chip vi điều khiển chính, đây ta dùng một chip vi điều khiển
loại nhỏ 20 chân rất thông dụng trên thị trường hiện nay AT89C2051 của hãng ATMEL để
quét bàn phím.
D2
VCC
J_LCD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GND
VCC
COL2
5PB6
ADRRESS:
PA1:8000H
PB1:8001H
PC1:8002H
CW1:8003H
GND
GND
R12.3
10k
RLCD1
150
DATA BUS
(D0 - D7)
5PB3
C12.3
33p
/CS 5_8255
ROW2
Y12.1
12 MHz
5PB7
C12.1
10uF
C12.2
33p
GND
/WR
ROW4
R12.2
2.2K
R12.1
2.2K
A1
GND
/INT1
GND
A0
BAN PHIM
5PB1
D1
GND
5PB5
5PB4
VCC
5PB3
VRLCD1
5k
5PB4
5PB0
GND
5PB5
COL4
GND
GND
D5
VCC
VCC
ROW3
5PB0
5PB2
5PB2
D3
U11
8255
34
33
32
31
30
29
28
27
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
26
7
5
36
9
8
35
6
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
VCC
GND
RD
WR
A0
A1
RESET
CS
VCC
/RD
VCC
D4
ROW1
GND
COL1
D6
5PB7
COL3
D0 VCC
LCD
U12
AT89C2051
1
10
20
5
4
12
13
14
15
16
17
18
19
2
3
6
7
8
9
11
RST/VPP
GND
VCC
XTAL1
XTAL2
P1.0/AIN0
P1.1/AIN1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.7
D7
RST
VCC
VCC
J_BANPHIM
HEADER 10
1
2
3
4
5
6
7
8
9
10
5PB6
5PB1
Hình 3. Sơ đồ nguyên lý khối giao tiếp xuất/nhập của thiết bị
0 /RUN
1
2
3
SHIFT
4 /STEP
5 /SAVE
6/MENU
7/LOAD
8
9
A
B
C
D
E
F
ENTER
Các thành phần ngoại vi khác
Các thành phần ngoại vi khác của thiết bị thí nghiệm như Chuyển đổi tương tự/số,
chuyển đổi số/tương tự, hiển thị LED 7 thanh, ma trận LED, vào/ra số… được ghép nối với
chip vi điều khiển chính AT89S8252 qua các vi mạch mở rộng ngoại vi thể lập trình được
8255. Các thành phần ngoại vi y được dành cho người sử dụng thể lập trình điều khiển
thông qua bàn phím của thiết bị hoặc từ y tính kết nối với thiết bị. Do giới hạn của bài báo
nên không thể hiện sơ đồ nguyên lý ở đây.
3.4. Phần mềm cho thiết bị
Để điều khiển hoạt động của thiết bị thí nghiệm ta có các chương trình phần mềm sau:
Chương trình điều hành
Chương trình điều hành được nạp vào bộ nhớ EEPROM ngoài của vi điều khiển
AT89S8252, chức năng điều hành hoạt động của thiết bị. Do chương trình điều hành của
hệ thống phức tạp khá lớn nên ta sẽ tổ chức thành nhiều module nhỏ ghép lại với nhau.
Việc chia thành các module y được thực hiện trên phần mềm KEIL, mỗi module được viết
lưu trên một file riêng và được liên kết lại với nhau trong một project. Mỗi module thực
hiện mỗi chức năng riêng, các module trong chương trình điều hành gồm:
+ Module thực hiện việc hiển thị LCD.
+ Module ngắt ngoài của bàn phím.
+ Module quản lí việc đọc/ghi dữ liệu trong EEPROM và RAM.
+ Module tạo thời gian trễ.
+ Module định nghĩa các kiểu dữ liệu.
+ Chương trình chính (Main).
+ Module điều khiển truy cập các thanh ghi đặc biệt các ô nhớ bên trong chip vi
điều khiển chính.
+ Module ngắt truyền thông giao tiếp với máy tính PC.
Chương trình quét bàn phím
Chương trình quét bàn phím được nạp vào chip vi điều khiển AT89C2051. Bàn phím
sử dụng trong thiết bị gồm 20 phím, 16 phím đầu tiên được sắp xếp theo kiểu ma trận và 4
phím cuối cùng được xếp theo một cột nối đất chung. Trên bàn phím của thiết bị, 4 phím trên
một cột nối đất chung các phím chức năng: SHIFT, UP, DOWN ENTER. Trong đó
phím SHIFT có chức năng thay đổi mã bàn phím làm cho bàn phím có thể mở rộng mã đến 39
phím. Khi phím SHIFT được nhấn, sẽ làm thay đổi nội dung của một thanh ghi bên trong
làm thay đổi của các phím trên bàn phím, khi phím SHIFT được ấn thêm một lần nữa,
mã của các phím lại quay về giá trị cũ.
Giao diện bàn phím như sau:
Chức năng các phím: