Nghiên cứu và thiết kế bộ KIT 8051 TÓM TẮT 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 cơ 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 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 ở nước ta. Đi kèm với sản phẩm phần cứng là 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ị.
Trang 1CHẾ 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 – LÊ TIẾN DŨNG
Đại học Đà Nẵng
TÓM TẮT
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 cơ 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 "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 ở nước ta Đi kèm với sản phẩm phần cứng là 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 và tiếp cận dễ 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 mà 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 và đề 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 cơ 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 "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 ở nước ta Đi kèm với sản phẩm phần cứng là 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 vì mục đích của sản phẩm là phục vụ cho việc đào tạo nên cấu hình
phần cứng phải rõ ràng, dàn trải Kích thước của thiết bị gọn nhẹ, dễ dàng di chuyển và 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 và các nguồn tài nguyên ngoại vi phong phú, cho phép người sử dụng có thể tự do phát triển các ứng dụng của mình:
ngoại vi mở rộng lập trình được
Trang 2 Giao tiếp bàn phím.
tiếp (COM) và song song (LPT)
+ Các bài thí nghiệm thực hiện trên thiết bị:
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 đó
đ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ố, ví 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:
một hệ thống các bài tập mẫu được xâ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ị
thiết bị và sơ đồ bộ nhớ của các thành phần trên thiết bị, sinh viên có 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ị 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 Có khả năng sửa chương trình và thay đổi các tham số từ bàn phím, có thể lưu trữ chương trình hoặc mở một chương trình cũ
phần mềm KEIL để lập các chương trình cho thiết bị từ má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
hệ vi đ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ị:
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 có thể tạo một chương trình mới, hoặc có thể mở một chương trình cũ đã 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 gõ sai, cho phép lưu trữ lại chương trình và 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 và 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
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 là họ 8051, vì 8051 là 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
Trang 3như 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, và là 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ì 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
Vì những lí do trên, và xuất phát từ yêu cầu là 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 và các thiết bị ngoại vi phong phú
Chip vi điều khiển AT89S8252 cũng thuộc họ 8051, do đó nó có tất cả những đặc trưng cơ bản của họ này Ngoài ra nó có một số đặc điểm mới so với họ 8051 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 có 8K Flash ROM làm bộ nhớ chương trình và 2K EEPROM làm bộ nhớ dữ liệu Tất cả các vùng nhớ này đều có thể được nạp dữ liệu bằng cổng LPT của máy tính thông qua phương thức ISP Đây là 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 là 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
- Có thể lập trình cho Timer ở chế độ Watchdog Chế độ nà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 và thiết kế mạch nguyên lý của thiết bị Để việc thiết kế mạch nguyên lý được dễ dàng và 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
Trang 4Trong hệ vi điều khiển của thiết bị, mỗi thành phần thiết bị đều có 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 sử dụ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ị
Đây là phần điều khiển trung tâm của thiết bị, là 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
5
SW2 select
D2
D5
XTAL1
/CS 5_8255
U5A
7408
VCC
ADRRESS:
4000H-7FFFH
D0 D1
A2
A5
VCC
A11
D6
A3
GND A4
VCC
VCC
VCC
A2
D0
INTERNAL
A4
RXD
CL1
D3
U3 62256 10
6
25
2
14
28
13
18
20
A0 A4 A8 A10 A14
VCC D0 D4 CS WR
MISO A7
A6 D5 A5
VCC
D3
CPU
IN RXD
D1 A4
A14
VCC
A5 D0
GND
A3
GND
D6
Y1 1
12 MHz
D7
XTAL2
D2
C1.3
RST
/WR T1
-5V
EEPROM
D3
A12
VCC
VCC GND
A15
D3 5VCS
VCC
A0
T0
A1
GND MOSI
D5
/INT1 A10
/CS 7_8255 A7
P2
ISP
5 3 1
VCC
D1
A7
C8.2
R1 1 DIEN TRO DEM
6
10
RAM
VCC
MISO
A8
SCK
/CS LED7THANH
ALE
A13 D2
U7C
7432 9 8
A1 GND
U4 74HC573 2
6
11 19
15
D0 D4 LE OE
Q0 Q4
U7A
7432 1 3
SW1.1
A0
D1 D1
A4
A15 D7
D7
/CS 8_8255
MOSI GND
ADRRESS:
0000H-1FFFH
A8 D0
A14
/WR /INT0
GND
R1.3 1K
A10
C8.3
/PSEN /EA
D6
A11
ALE
D0
/CS 62256
RXD
U2 AT28C64 10
6
25
2
11
16
1
28
20
A0 A4 A8 A10
D0 D4 RDY/BUSY VCC GND
CE OE
D4
SCK
D5
A3
/WR
VCC
D4
RST
+12V
U6A 7404 1 2
U9
74HC138
1
6 15
11
A G1 Y0 Y4
U8 MAX232/SO
1
2
12
C1+
C1-C2+
V+
R1OUT T1IN T1OUT
VCC
A2 GND
R1 2
OUT TXD
D4
/RD
/CS 62256
IN RXD
VCC A12
A1
A13 D6
VCC
C1.2
P1
COM
5 3 1
VCC
A2
A9
R5 1.5K
VCC
GND
A10
D2
A11 /PSEN
U10
74HC138
1
6 15
11
A G1 Y0 Y4
C1 1
D3
U1
AT89S8252
9 19
29 31
1
5
21
25
10
14
39
35
RST XTAL2
PSEN ALE/PROG EA/VPP VCC
P1 0/T2 P1 1/T2-EX P1 2 P1 4/SS P1 5/MOSI P1 7/SCK
P2.0/A8 P2 4/A12 P3.0/RXD P3 2/I NT0 P3.4/T0
P0 0/AD0 P0 4/AD4
D7
GND
EXTERNAL
C8.1
A9
D4
A3
A6
C8.4
D4 -12V
Hình 2 Sơ đồ nguyên lý khối điều khiển trung tâm của thiết bị
Phần giao tiếp xuất nhập gồm 2 khối: khối hiển thị LCD và 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 là AT89C2051 của hãng ATMEL để
VCC
J_LCD
1 4 7 10 13 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
VCC
5PB3
VRLCD1 5k
5PB4 5PB0
GND
5PB5
COL4
GND GND
D5
VCC
VCC
ROW3
5PB0
5PB2 D3
U11
8255
34 31 28
4 1 40 37 19 22 25 15 13 10
5 36 9 35 6
D0
D3
D6
PA0
PA3
PA6
PB0
PB3
PB6
PC0
PC3
PC6
RD A0
RESET
CS
VCC
/RD
VCC
D4
ROW1 GND
COL1
D6
5PB7
COL3
LCD
U12
AT89C2051
1
20 5
12 15 18
2 7 11
RST/VPP
XTAL1
P1.0/AIN0 P1.2
P1.5
P3.0/RXD P3.1/TXD
P3.4/T0 P3.7
D7
RST VCC
VCC
J_BANPHIM
HEADER 10
1 4 7 10
5PB6
5PB1
Hình 3 Sơ đồ nguyên lý khối giao tiếp xuất/nhập của thiết bị
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 có thể lập trình được
Trang 50 / RUN 1 2 3 SHIFT
4 / STEP 5 / SAVE 6/ MENU 7/ LOAD
8255 Các thành phần ngoại vi này được dành cho người sử dụng có thể lập trình điều khiển thông qua bàn phím của thiết bị hoặc từ má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 được nạp vào bộ nhớ EEPROM ngoài của vi điều khiển AT89S8252, có 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 và 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 này được thực hiện trên phần mềm KEIL, mỗi module được viết
và 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 và 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 đượ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 có 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 là các phím chức năng: SHIFT, UP, DOWN và 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, nó sẽ làm thay đổi nội dung của một thanh ghi bên trong
và làm thay đổi mã 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:
STEP : Cho phép chạy chương trình từng bước
SAVE : Cho phép cất giữ chương trình
Trang 6MENU : Cho phép trở lại Menu ban đầu của LCD chọn chế độ làm việc.
dòng
phím SHIFT, chức năng thứ hai của phím được thực hiện
Chương trình giao diện trên máy tính PC làm nhiệm vụ giao tiếp giữa hệ vi điều khiển của thiết bị với máy tính được viết bằng ngôn ngữ Visual C++ 6.0 Giao diện của chương trình trên máy tính PC như hình vẽ Chương trình cho phép nạp chương trình của người sử dụng vào EEPRAM hoặc vào RAM của thiết bị và có thể chạy chương trình ứng dụng đó Trên giao diện của chương trình có thể download file dạng Hexa hoặc file dạng Binary của chương trình xuống thiết bị và có thể upload nội dung bộ nhớ của thiết bị
Hình 4 Giao diện giao tiếp với thiết bị trên máy tính PC
3.5 Sử dụng thiết bị
Với chương trình điều hành được nạp sẵn trên thiết bị, người sử dụng có thể nhập lệnh
từ bàn phím bằng mã máy, có thể mở một chương trình cũ, chạy chương trình, soạn thảo, sửa chữa chương trình, lưu trữ chương trình, xem nội dung các ô nhớ, thanh ghi bên trong Quá trình giao tiếp với thiết bị được hiển thị bằng màn hinh LCD
Với các chương trình lớn và phức tạp thì việc lập trình bằng mã máy từ bàn phím của thiết bị sẽ gặp khó khăn Do đó, người sử dụng dùng các phần mềm lập trình cho vi điều khiển trên giao diện của máy tính để viết chương trình điều khiển các thành phần ngoại vi của
Trang 7thiết bị, với phần mềm KEIL, ngôn ngữ để lập trình có thể là Assembly hay C, sau đó xuẩt sang dạng file Hexa và sử dụng chương trình giao diện của thiết bị trên máy tính để nạp xuống bộ nhớ EEPROM của thiết bị, lúc này chương trình điều hành trên chip vi điều khiển AT89S8252 sẽ thực hiện ngắt truyền thông
4 Kết luận
Với phương án chế tạo thiết bị thí nghiệm mà bài báo đề xuất đã đáp ứng được các yêu cầu cần thiết cho việc thí nghiệm, thực hành môn học Kỹ thuật Vi điều khiển Chip vi điều khiển AT89S8252 với công nghệ bộ nhớ Flash cho phép nạp chương trình trực tiếp từ máy tính khi thiết bị đang hoạt động mà không cần sử dụng bộ nạp riêng Thiết bị thí nghiệm cho phép người sử dụng có thể dễ dàng phát triển, kết nối điều khiển thêm các thiết bị bên ngoài qua các khối vào/ra số hoặc tương tự Với đặc điểm các thành phần của hệ vi điều khiển của thiết bị cho phép xây dựng và thực hiện các bài thí nghiệm, thực hành không những phù hợp với chương trình đào tạo môn học Kỹ thuật Vi điều khiển tại các trường cao đẳng, đại học ở nước ta mà còn có thể phục vụ cho mục đích nghiên cứu, mở rộng cho một số các ứng dụng khác
TÀI LIỆU THAM KHẢO
Microcontroller, Addision-Wesley Pub Co; ISBN: 0201633655, 1995
Library reference, User's guide 02.2001.
Programming, McGraw-Hill International Editions, 1992.
Applications, West Publishing Company, Thomson Learning; ISBN: 0314201882,
1996
thuật 1997
Nhà Xuất bản Khoa học và Kỹ thuật, 2004
Khoa học và Kỹ thuật, 2001