You are on page 1of 28

HƯỚNG DẪN SỬ DỤNG BỘ THÍ NGHIỆM 8051

1. Khối điều khiển trung tâm

Đây là khối chính thiết kế cho chíp vi điều khiển 89C51/52 của Atmel hay
các dòng chíp tương thích với kiến trúc của vi điều khiển 8051.

Thành phần của khối trung tâm bao gồm:

Khối trung tâm, bao gồm:


CPU89C51 hoặc89S8252
Giao tiếp ngoại vi qua PPI8255
Ram 32KB 62256
Serial EEPROMT 24Cxx
RTC DS1307
Giải mã địa chỉ 74LS138
Truyền thông RS485

Khối này có thể sự dụng nguồn trực tiếp qua cáp USB nối với máy
tính hoặc sử dụng nguồn ngoài.
1.1.Ghép nối bộ nhớ RAM 62256

Bộ nhớ RAM 62256 được sử dụng là bộ nhớ 32K ghép nối với 89C51
qua bus mở rộng trên cổng P0 và P2. Bộ nhớ này được giải mã trực
tiếp và có thể truy cập nội dung trên dải địa chỉ 0000h-7FFFh.

Để truy xuất dữ liệu trong RAM ta sử dụng lệnh movx dest,src của vi
điều khiển 89C51

Dưới đây là đoạn chương trình mẫu truy cập bộ nhớ RAM 62256

lcall RxByte ; nhận 1 ký tự qua cổng RS232


mov DPH,#00h ; byte cao của DPTR
mov DPL,#03h ; byte thấp của DPTR
movx @DPTR,a ; lưu ký tự nhận được vào địa chỉ 0003h
clr LED_STATUS ; turn LED on
mov DPH,#01h ; byte cao của DPTR
mov DPL,#0AEh ; byte thấp của DPTR
movx a,@DPTR ; đọc dữ liệu ra tại địa chỉ 01AEH
lcall TxByte ; gửi byte nhận được qua RS232

1.2.Ghép nối RS232

P1
5
9
U 9 4
12 14 8
11 R 1O U T T1O U T 13 3
TX 10 T 1 IN R 1 IN 8 7
R X 9 T 2 IN R 2 IN 7 2
R 2O U T T2O U T 6
1 2 1
C + V+
C 5 C 6 D B9
10uF 10uF
3 16 VC C
C 1- VC C
4 15 G N D
C 2+ G N D
C 7
10uF C 8
5 6 10uF
C 2- V-

M A X232

Chuẩn RS232 là chuẩn truyền thông của cổng COM máy tính. Chuẩn
này truyền dữ liệu trên đường dây với mức điện áp là -3V đến -24V
cho mức logic 1 và +3V đến +24V cho mức logic 0. Chíp chuyển đổi
MAX232C sẽ làm nhiệm vụ chuyển mức tín hiệu từ TTL sang tín hiệu
chẩn RS232.

Sơ đồ này sử dụng chế độ truyền 2 dây Rx,Tx không bắt tay phần
cứng. Cáp kết nối với máy tính là cáp thẳng đấu theo sơ đồ sau:

Chân 2 Chân 3
Chân 3 Chân 2
Chân 5 Chân 5

KIT 8051 Máy tính

Sau đây là đoạn chương trình khởi tạo cổng RS232 của KIT 89C51

mov PSW,#00h ; clear SMOD bit


mov TMOD,#20h ; set timer 1 for auto reload - mode 2
mov TCON,#41h ; run counter 1 and set edge trig ints
mov TH1,#0fdh ; set 9600 baud with XTAL=11.0592
MHz
mov SCON,#50h ; set serial control reg for 8 bit data
mov TL1,#0ffh ; and mode 1

Đoạn chương trình dưới đây sẽ gửi 1 byte chứa trong thanh ghi acc
qua cổng RrS232

clr scon.1 ; clear the tx buffer full flag.


mov sbuf,a ; put chr in sbuf
jnb scon.1,$ ; wait till chr is sent

Đoạn chương trình dưới đây sẽ nhận 1 byte lưu vào thanh ghi acc từ
cổng RrS232
jnb ri, RxByte ; wait till byte received
mov a, sbuf ; get byte
clr ri ; clear serial status bit

1.3.Ghép nối RS485

Sử dụng IC MAX485 hoặc SN75176 để chuyển đổi từ tín hiệu TTL


sang tín hiệu RS485. Chuẩn RS485 được điều khiển truyền nhận qua
3 tín hiệu

Chân tín hiệu Chức năng


RX chân nhận dữ liệu của bộ
USART
TX chân phát dữ liệu của bộ
USART
DIR chân P3.2 của bộ xử lý
89C51/52
Để có thể truyền nhận dữ liệu theo chuẩn RS485 ta làm giống như
truyền nhận dữ liệu qua cổng RS232, đồng thời điều khiển chân DIR
của module RS485. Nếu DIR=1 thì IC MAX485 sẽ cho phép phát tín
hiệu lên dây và DIR=0 sẽ cho phép nhận dữ liệu.

Dưới đây là đoạn chương trình mẫu

RS485_DIR equ P3.2

clr RS485_DIR ; cho phép nhận


lcall RxByte ; nhận 1 byte từ đường RS485
clr LED_STATUS ; turn LED on
setb RS485_DIR ; cho phép truyền
lcall TxByte ; phát tín hiệu lên RS485

1.4.Ghép nối RTC DS1307

U 8
Y 2
3 2 .7 6 8 k H z 1 5 SD A
2 X1 SD A
SC L 6 X2 7
B T1 SC LK S Q W /O U T
2 1 3
VC C 8 VBAT
B A TTE R Y VC C

D S1307

Bộ đồng hồ thời gian thực DS1307 cho phép hệ thống lấy thời gian
thực theo ngày, giờ được nạp trước 1 lần đầu tiên khi thiết lập.
DS1307 kết nối với 89C51 qua bus nối tiếp I2C.

1.5.Ghép nối I2C EEPROM

U 6

G N D 1
G N D 2 A0 5 SD A
G N D 3 A1 SD A
S C L 6 A2
G N D 7 SC LK R 3 VC C
W P SC L R 4
SD A
A T24C 64
10K
10K

Bộ nhớ EEPROM sử dụng trong hệ là 24C64A, bộ nhớ này có 8K


bytes nhớ giao tiếp qua bus I2C chung với DS1307 nhưng có dải địa
chỉ thiết bị khác nhau.
1.6.Ghép nối 74LS138

Bộ giải mã 74LS138 có nhiệm vụ giải mã địa chỉ cho các thiết bị


ngoại vi sử dụng như PPI 8255, 24 đầu ra rơ le và 24 đầu vào số.
Sơ đồ dải địa chỉ chọn chíp CS0... CS7 là

Chân Sử dụng bởi Dải địa chỉ


chọn
CS0 PPI 8255 8000h – 8003h
CS1 INPUT 1 8004h – 8007h
CS2 INPUT 2 8008h – 800Bh
CS3 INPUT 3 800Ch – 800Fh
CS4 OUTPUT 1 8010h – 8013h
CS5 OUTPUT 2 8014h – 8017h
CS6 OUTPUT 3 8018h – 801Bh
CS7 NOT USE 801Ch – 801Fh
1.7.Ghép nối PPI 8255
Bộ vào ra song song 8255 được ghép với bus hệ thống của 89C51
qua chân chọn chíp CS0 nên nó chiếm dải địa chỉ từ 8000h đến
8003h. PPI8255 sử dụng 2 chân A0,A1 để chọn thanh ghi điều khiển
hoặc thanh ghi dữ liệu cho 3 cổng PA,PB,PC.
1.8.Sơ đồ mạch in
2. Khối đầu ra rơ le số

2.1.Sơ đồ nguyên lý

Mạch điều khiển Rơ le bao gồm 1 vi mạch chốt họ 74HC573 có


nhiệm vụ nhận dữ liệu từ vi xử lý và giữ trạng thái để điều khiển đầu
ra rơ le số đóng cắt. Mỗi module có 8 đầu ra số và được chọn địa chỉ
bởi công tắc DIP SWITCH trên Modul CPU. Các modul đầu ra số có
thể nối nối tiếp bằng 1 cáp và cắm vào cổng OUTPUT DIGITAL trên
CPU

1 2 3 OUTPUT DIGITAL

CPU
2.2.Sơ đồ mạch in

3. Khối đầu vào số

3.1.Sơ đồ nguyên lý
Khối này sử dụng vi mạch 74HC245 để làm chíp giao tiếp với vi xử lý
89C51.Mỗi module có 8 đầu vào số và được chọn địa chỉ bởi công tắc
DIP SWITCH trên Modul CPU. Các modul đầu ra số có thể nối nối
tiếp bằng 1 cáp và cắm vào cổng INPUT DIGITAL trên CPU

1 2 3 INPUT DIGITAL

CS1 CS2 CS3 CPU


3.2.Sơ đồ mạch in
4. Khối đầu vào tương tự

4.1.Sơ đồ nguyên lý

JP1 JP2 JP3


G N D C H 0 V C C
G N D 1 2 C H 1 1 1 6 V R EF 1 2
G N D 3 4 C H 2 2 1 5 G N D 3 4
G N D 5 6 C H 3 3 1 4 S C K 5 6
G N D 7 8 C H 4 4 1 3 D O U T 7 8
G N D 9 1 0 C H 5 5 1 2 D IN 9 1 0
G N D 11 1 2 C H 6 6 1 1 C S 11 1 2
G N D 13 1 4 C H 7 7 1 0 G N D 13 1 4
15 1 6 8 9 15 1 6
AN ALO G M C 3208 SPI

JP4
VC C G N D
VC C 1 2 G N D
VC C 3 4 G N D
VC C 5 6 G N D
+12V 7 8 G N D
+12V 9 1 0 G N D
+12V 11 1 2 G N D
+12V 13 1 4 G N D
15 1 6
PO W ER

4.2.Sơ đồ mạch in
5. Khối nguồn áp chuẩn

5.1.Sơ đồ nguyên lý

Khối này dùng để tạo điện áp chuẩn cho ADC. Điện áp này có thể
điều chỉnh được thông qua chiết áp chỉnh tinh RV1. Dài điều chỉnh là
từ 0K-10K.
U 1

+12V 3 2 VR EF
1 V IN VO U T
AD J
R 1 R 2
C 1 R C 2
L M 3 1 7 /T O 2 2 0 R
1uF 1uF

R V1 V A R IS TO R

5.2.Sơ đồ mạch in

Chính là khối VREF BLOCK trên cùng mạch với khối đầu vào tương
tự.

6. Khối khuếch đại & chuẩn hóa

6.1.Sơ đồ nguyên lý
VC C
VC C

U 1A R 1
R 2 1K 10K

4
U 1B
3 R 3

4
+
1 5
+
2 7 C H 0
-
1K 6
-
LM324 R 4

1
11
LM 324 R VAR

11
2
JP2
R 5 10K
1

3
G N D
2
3 G N D
4
R 6
H EAD ER 4 10K

VC C
VC C

U 1C R 7
R 8 1K 10K

4
U 1D
10 R 9

4
+
8 12
+
9 14 C H 1
-
1K 13
-
LM324 R 10

1
JP3

11
VC C G N D LM 324 R VAR

11
VC C 1 2 G N D 2
VC C 3 4 G N D
VC C 5 6 G N D
+12V 7 8 G N D R 11 10K
9 1 0

3
+12V G N D
+12V 11 1 2 G N D JP1
+12V 13 1 4 G N D G N D C H 0
15 1 6 G N D 1 2 C H 1
G N D 3 4 C H 2 R 12
E X T -P O W E R G N D 5 6 C H 3 10K
G N D 7 8 C H 4
G N D 9 1 0 C H 5
G N D 11 1 2 C H 6
G N D 13 1 4 C H 7
15 1 6
AN ALO G

Sử dụng để chuẩn hóa tín hiệu vào cho bộ biến đổi tương tự - số ADC
MC3208.
6.2.Sơ đồ mạch in

7. Khối bàn phím & hiển thị


8.

8.1.Sơ đồ nguyên lý

Khối MMI được giao tiếp với 89C51 thông qua 2 cổng PA và PC của
PPI 8255. Trong đó PA và 4 bít cao của PC dùng để điều khiển 4 LED
hiển thị. Còn lại 4 bít thấp của cổng PC dùng để nhận tín hiệu bàn
phím.

Để điều khiển được MMI thì PPI 8255 phải được cấu hình ở MODE0
với PORTA là OUTPUT và PORTC-H là OUTPUT, PORTC-L là
INPUT.
Thanh ghi cấu hình cho 8255 trong trường hợp này sẽ nhận giá trị là

CONTROL = 0000 0001b = 01H

C 0

C 1

C 2

C 3
L1 L2 L3 L4

3
8

3
8

3
8

3
8
JP1
G N D P A 3 D 7 D 0 4 D 0 4 D 0 4 D 0 4
1 2 a a a a

C
C

C
C

C
C

C
C
G N D P A 2 D 2 D 1 5 D 1 5 D 1 5 D 1 5
G N D 3 4 P A 1 D 3 D 2 7 b D 2 7 b D 2 7 b D 2 7 b
G N D 5 6 P A 0 D 4 D 3 9 c D 3 9 c D 3 9 c D 3 9 c
G N D 7 8 P A 4 D 6 D 4 10 d D 4 10 d D 4 10 d D 4 10 d
G N D 9 1 0 P A 5 D 5 D 5 2 e D 5 2 e D 5 2 e D 5 2 e
G N D 11 1 2 P A 6 D 0 D 6 1 f D 6 1 f D 6 1 f D 6 1 f
G N D 13 1 4 P A 7 D 1 D 7 6 g D 7 6 g D 7 6 g D 7 6 g
15 1 6 p p p p
H E A D E R 8X2 LED 7 LED 7 LED 7 LED 7

JP2 VC C
VC C G N D
VC C 1 2 G N D R 6 R
VC C 3 4 G N D PC 7 T1
VC C 5 6 G N D C 828
+12V 7 8 G N D
+12V 9 1 0 G N D C 0
+12V 11 1 2 G N D
+12V 13 1 4 G N D
15 1 6
PO W ER VC C

SW 1 JP3 R 10 R
JP4 VC C PC 6 T2
G N D P C 0 1 C 828
G N D 1 2 P C 1 2
SW 2
G N D 3 4 P C 2 3 C 1
G N D 5 6 P C 3 4
G N D 7 8 P C 7 P C 0 5
SW 3
G N D 9 1 0 P C 6 P C 1 6
G N D 11 1 2 P C 5 P C 2 7 VC C
G N D 13 1 4 P C 4 P C 3 8
SW 4
15 1 6 9 R 11 R
H E A D E R 8X2 PC 5 T3
H EAD ER 9 C 828

C 2

VC C

R 12 R
PC 4 T4
C 828

C 3

8.2.Sơ đồ mạch in
9. Khối nguồn chuẩn 5V

9.1.Sơ đồ nguyên lý
Q 1
TIP L 7 5 1 VC C Q 2
T IP L 7 5 1 +12V
2 3
2 3
U 1
D 1 L M 7 8 0 5 C /T O 2 2 0 U 2
+15V 1 3 D 2 L M 7 8 1 2 C /TO 2 2 0
IN O U T +15V 1 3
IN O U T
1

D IO D E
1
G N D

D IO D E
G N D
2

C 1
2

C C 2
D 3 C
D 4
D IO D E
D IO D E

D 5 D 6 JP1 JP2 JP3


VC C G N D VC C G N D VC C G N D
JP4 VC C 1 2 G N D VC C 1 2 G N D VC C 1 2 G N D
D IO D E D IO D E VC C 3 4 G N D VC C 3 4 G N D VC C 3 4 G N D
2 +15V VC C 5 6 G N D VC C 5 6 G N D VC C 5 6 G N D
1 D 8 +12V 7 8 G N D +12V 7 8 G N D +12V 7 8 G N D
D 7
+12V 9 1 0 G N D +12V 9 1 0 G N D +12V 9 1 0 G N D
PO W ER C 3 +12V 11 1 2 G N D +12V 11 1 2 G N D +12V 11 1 2 G N D
D IO D E C +12V 13 1 4 G N D +12V 13 1 4 G N D +12V 13 1 4 G N D
D IO D E
15 1 6 15 1 6 15 1 6
H E A D E R 8X2 H E A D E R 8X2 H E A D E R 8X2
9.2.Sơ đồ mạch in

10.Khối chuyển đổi RS485

10.1.Sơ đồ nguyên lý

Sử dụng chuyển đổi MAX485 kết hợp với MAX232 để chuyển đổi
giữa 2 chuẩn tín hiệu RS485 và RS232. Đường truyền nhận RS485
được điều khiển qua chân RTS từ cổng COM của máy tính.
10.2.Sơ đồ mạch in

11.Mạch nạp và cách sử dụng

Xem hướng dẫn sử dụng mạch nạp TMe PROG 89C51/52/55 trong
đĩa CD đi kèm.

HDSD 89C51.pdf

Chương trình nạp sử dụng là

Ezdl4.exe

12. Phần mềm lập trình S-Tech 8051 Assembler V3.5 /MD2

Sử dụng phần mềm S-Tech 8051 Assembler V3.5 /MD2


Gồm các file: A8051.EXE,HEX2BIN.EXE,XLINK.EXE,A51.BAT và
RUN.BAT
Để dịch một file mã ASM bất kỳ có dạng ten_file.S03 ta dùng lệnh từ
CMD> A51 ten_file hoặc sử dụng tệp RUN.BAT với nội dung như
sau:

A51 ten_file

Sau đó chạy tệp RUN.BAT chương trình sẽ thi hành tự động để dịch
ra file HEX

13.Phầm mềm reads51


Đây là cách thức tao ra một Project
.Đặt tên cho Project trong trường name và “OK”(“cacvidu” chẳng hạn)

.Vào Module→Create module→hiện lên cửa sổ create new module như hình sau
Nhập vào trường name tên của module,chẳng hạn:vidu1,có thể nhập một chút mô tả
vào trường Description ,trong trường Language ,chọn C nếu muốn viết bằng C,chọn
Assembly nếu muốn viết bằng hợp ngữ,xong rồi “OK”
Hiện lên cửa sổ soạn thảo như sau:
Soạn thảo chương trình ,ví dụ viết cho 8051 :
Sau đó là đến công đoạn “buid”ra mã hex,vidu1 sẽ được buid ra file .obj ;.hex;
Sau khi buid:
File sẽ lưu vào thư mục mặc định tại reads51/work/cacvidu:
Reads51 chỉ khoảng 5MB,nhưng lại không Diassembler được,tôi dùng theo với nó là
soft TS Controls Emulator 8051……,dung lượng vài MB.Về phần mềm
Diassembler,theo tôi biết thì có cả phần mềm của VNam,nhưng tốt nhất cứ dùng TS
Controls Emulator 8051,nó miẽn phí.

You might also like