• Biết cách lập trình điều khiển việc xuất nhập dữ liệu thông qua port nối tiếp ở các chế độ khác nhau... Bài 2: Chương trình điều khiển ứng dụng mở rộng port nhập thực hiện liên tục việ
Trang 1KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP TÀI LIỆU HƯỚNG DẪN
THÍ NGHIỆM - THỰC HÀNH
Trang 2L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
A MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển
• Ưùng dụng port nối tiếp của vi điều khiển để mở rộng port nhập và xuất
• Điều khiển việc thu phát nối tiếp
B YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51
• Biết cách hoạt động của port nối tiếp ở các chế độ khác nhau
• Biết cách lập trình điều khiển việc xuất nhập dữ liệu thông qua port nối tiếp ở các chế độ khác nhau
Trang 3L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H,
0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thơng qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng dây bus 8 nối J45 (PARALLEL OUT 2) ở khối thanh ghi dịch với J12 (BAR LED 2) ở khối dãy LED
• Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (IN) của J39 với bit 0 (RXD) của J66)
• Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (CLK) của J39 với bit 1 (TXD) của J66)
• Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với nguồn +5V ở khối nguồn (chú ý là ta chỉ nối bit 3 (STB) của J39 với nguồn +5V của khối nguồn)
• Dùng hai dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch và J103 (POWER) ở khối LED dãy với nguồn +5V ở khối nguồn
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD5
AD7 AD6 AD4 AD3 AD1
D0
D7 D6 D4 D2
XTAL2 18
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0 1
P1.1 2
P1.2 3
P1.3 4
P1.4 5
P1.5 6
P1.6 7
P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14
P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1
AT89C51
C1 33p
C2 33p
X1
12MHz
C3
10uF
R1
10k
+5V
D1
R2 330 +5V
D2
R3 330 +5V
D3
R4 330 +5V
D4
R5 330 +5V
D5
R6 330 +5V
D6
R7 330 +5V
D7
R8 330 +5V
D8
R9 330 +5V
2 3 5 7 9
1 RP1
10K
MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP
D 2 CLK 3 STB 1 OE 15
Q0 4 Q1 5 Q2 6 Q3 7 Q4 14 Q5 13 Q6 12 Q7 11
QS 9
QS 10 U3
4094 +5V
(ỨNG DỤNG MỞ RỘNG PORT XUẤT)
Trang 4L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H,
0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thơng qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s
AD7
AD0
AD0 AD1 AD3 AD4 AD6
AD7 AD5 AD4 AD2
D0
D7
D1 D2 D3 D4 D5 D6
XTAL2 18
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0 1
P1.1 2
P1.2 3
P1.3 4
P1.4 5
P1.5 6
P1.6 7
P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14
P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1
AT89C51
C1 33p
C2 33p
X1
12MHz
C3
10uF
R1
10k
+5V
D1
R2 330 +5V
D2
R3 330 +5V
D3
R4 330 +5V
D4
R5 330 +5V
D5
R6 330 +5V
D6
R7 330 +5V
D7
R8 330 +5V
D8
R9 330 +5V
2 4 6 8
1 RP1
10K
SRG8 R C1/->
& 1D
2
4 5 6 10 8
11 12 9
13 U2
74164
+5V
MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP
(ỨNG DỤNG MỞ RỘNG PORT XUẤT)
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
Trang 5L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H,
0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thông qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s
;***************************************************
;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP (MO RONG PORT XUAT)
;***************************************************
;KET NOI: LED -> PARALLEL OUT
; RXD -> IN
; TXD -> CLK
;***************************************************
ORG 00H
MAIN:
MOV SCON ,#12H ;KHOI TAO SERIAL PORT (MODE0, REN = 1, TI = 1, RI = 0)
MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DU LIEU
MOV R0 ,#00H ;OFFSET VUNG DU LIEU
WAIT:
JNB TI ,WAIT ;KIEM TRA CO TI (KIEM TRA PHAT XONG)
CLR TI ;XOA CO TI
MOV A , R0 ;LAY OFFSET
MOV SBUF , A ;PHAT DU LIEU RA SERIAL PORT
INC R0 ;CHUYEN SANG DU LIEU KE TIEP
CJNE R0 ,#9,WAIT ;KIEM TRA DA PHAT XONG HET CAC DU LIEU TRONG VUNG DU LIEU
SJMP MAIN
;***************************************************
DELAY:
MOV R0 ,#100
MOV TMOD ,#01H
DEL:
MOV TH0 ,#HIGH(-10000)
MOV TL0 ,#LOW(-10000)
SETB TR0
JNB TF0 ,$
CLR TR0
CLR TF0
DJNZ R0 ,DEL
RET
DATABYTE:
DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
END
1.4 Lưu chương trình và biên dịch chương trình
1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có
1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động
1.7 Nạp chương trình vào vi điều khiển
1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển
1.9 Bật nguồn cho mô hình thí nghiệm Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9
2 Bài tập:
(xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
Trang 6L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 2: Chương trình điều khiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữ liệu từ 8 cơng
tắc thơng qua port nối tiếp và sử dụng vi mạch 74165, dữ liệu nhập vào này sẽ được xuất ra 8 LED
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây bus 8 nối J41 (PARALLEL IN) ở khối thanh ghi dịch với J34 (SWITCH) ở khối cơng tắc
• Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (CLK) của J43 với bit 1 (TXD) của J66)
• Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (LD) của J43 với bit 2 (INT0\) của J66)
• Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (OUT) của J43 với bit 0 (RXD) của J66)
• Dùng ba dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch, J106 (POWER) ở khối cơng tắc và J103 (POWER) ở khối LED dãy với nguồn +5V ở khối nguồn
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
SW0
SW7 SW5 SW3 SW1
SW7 SW5 SW3 SW1
D0
D2
D4
D6
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
D0
R2
330 +5V
D1
R3
330 +5V
D2
R4
330 +5V
D3
R5
330 +5V
D4
R6
330 +5V
D5
R7
330 +5V
D6
R8
330 +5V
D7
R9
330 +5V
2 4 6 8
1
RP1
10K
SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0
MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP
(ỨNG DỤNG MỞ RỘNG PORT NHẬP)
SI 10 D0 11 D1 12 D2 13 D3 14 D4 3 D5 4 D6 5 D7 6
CLK 2
INH 15 SH/LD 1
U3
74165
2 4 6 8
1
RP3
10K +5V
Trang 7L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 2: Chương trình điều khiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữ liệu từ 8 công
tắc thông qua port nối tiếp và sử dụng vi mạch 74165, dữ liệu nhập vào này sẽ được xuất ra 8 LED 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
;***************************************************
;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP (MO RONG PORT NHAP)
;***************************************************
;KET NOI: LED -> P1
; RXD -> OUT
; TXD -> CLK
; INT0 -> LD
; SW -> PARALLEL IN
;***************************************************
ORG 00H
MAIN:
MOV SCON ,#02H ;KHOI TAO SERIAL PORT (MODE0, REN = 0, TI = 1, RI = 0)
MP1:
CLR P3.2 ;INT = LD = 0
NOP ;NAP GIA TRI CHO VI MACH CHUYEN DOI (PARALLEL -> SERIAL)
SETB P3.2 ;INT = LD = 1
SETB REN ;REN = 1 - CHO PHEP THU DU LIEU
WAIT:
JNB RI ,WAIT ;KIEM TRA CO RI (KIEM TRA THU XONG)
CLR REN ;REN = 0 - KHONG CHO PHEP THU
CLR RI ;XOA CO RI
MOV A , SBUF ;DOC DU LIEU DA THU DUOC TU SERIAL PORT
MOV P1 , A ;XUAT RA LED
END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên
2 Bài tập:
(xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
Trang 8L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội cĩ địa chỉ bắt đầu là 40H Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte Dữ liệu sau khi nhập vào được xuất ra 8 LED (cĩ sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây bus 1 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (RXD) của J66 với bit 1 (TXD) của J66)
• Dùng dây bus 1 nối J76 (MONENTARY SW) ở khối nút nhấn với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (KEY0) của J76 với bit 2 (INT0\) của J66)
• Dùng dây bus 1 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (TXD) của J66 với bit 0 (RXD) của J66)
• Dùng hai dây bus 3 nối J114 (POWER) ở khối nút nhấn và J103 (POWER) ở khối LED dãy với nguồn +5V ở khối nguồn
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD1 AD2 AD3 AD4 AD5 AD6
AD7 AD6 AD5 AD4 AD3 AD2 AD1
D0 D1 D2 D3 D4 D5 D6 D7
XTAL2 18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
D0
R2
330 +5V
D1
R3
330 +5V
D2
R4
330 +5V
D3
R5
330 +5V
D4
R6
330 +5V
D5
R7
330 +5V
D6
R8
330 +5V
D7
R9
330
+5V
2 3 4 5 6 7 8 9
1
RP1
10K
MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP
(ỨNG DỤNG MỞ RỘNG PORT NHẬP)
RUN
R10
10k +5V
Trang 9L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
Trang 10L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội
;***************************************************
;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP
;***************************************************
;KET NOI: LED -> P1
; RXD -> TXD
; KEY0 -> INT0 (ACT = 0)
;***************************************************
ORG 00H
MAIN:
MOV TMOD ,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD SERIAL PORT
SETB TR1 ;TIMER HOAT DONG
MOV SCON ,#52H ;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1
MP1:
MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DU LIEU
MP2:
MOV R0 ,#50 ;BIEN LAP - CHONG DOI PHIM
KEY_NHAN:
DJNZ R0 ,KEY_NHAN ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN)
MOV R0 ,#50 ;BIEN LAP - CHONG DOI PHIM
KEY_NHA:
DJNZ R0 ,KEY_NHA ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN)
;PHIM DA DUOC NHAN VA NHA HOAN TAT
MOV A ,#0 ;OFFSET CUA DU LIEU
MOV 40H, A ;NAP DU LIEU THU DUOC VAO O NHO 40H
MOV A , DPL ;KIEM TRA DA PHAT/THU XONG VUNG DU LIEU
CJNE A ,#LOW(DATABYTE+9),MP2
SJMP MP1 ;QUAY TRO LAI
;***************************************************
TRANS_DATA: ;CTC PHAT DU LIEU
JNB TI ,$ ;KIEM TRA PHAT XONG
CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP
MOV SBUF , A ;PHAT DU LIEU
RET
;***************************************************
RECEI_DATA: ;CTC THU DU LIEU
JNB RI ,$ ;KIEM TRA THU XONG
CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP
MOV A , SBUF ;THU DU LIEU
RET
;***************************************************
DATABYTE: ;VUNG DU LIEU
DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên
2 Bài tập:
• Bài 1: Hãy viết chương trình điều khiển việc truyền dữ liệu dạng nối tiếp giữa hai chip vi điều khiển với nhau (phương pháp nối dây cho từng vi điều khiển tương tự bài mẫu 3):
o Vi điều khiển 1: Viết chương trình tạo một bảng dữ liệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (TXD) để truyền sang cho vi điều khiển 2, việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất một byte Đồng thời, vi điều khiển 1 liên tục kiểm tra và thu dữ liệu vào từ port nối tiếp (RXD) các dữ liệu do vi điều khiển 2 gửi sang và cất vào RAM nội có địa chỉ bắt đầu là 40H, dữ liệu sau khi nhập vào được xuất ra 8 LED đồng thời với việc ghi vào RAM nội
Trang 11L HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP
Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội
o Vi điều khiển 2: Viết chương trình tạo một bảng dữ liệu gồm 9 bytes (FFH, 7FH, 3FH, 1FH, 0FH, 07H, 03H, 01H, 00H) Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (TXD) để truyền sang cho vi điều khiển 1, việc xuất dữ liệu được điều khiển bằng nút nhấn KEY1, mỗi lần xuất một byte Đồng thời, vi điều khiển 2 liên tục kiểm tra và thu dữ liệu vào từ port nối tiếp (RXD) các dữ liệu do vi điều khiển 2 gửi sang và cất vào RAM nội có địa chỉ bắt đầu là 40H, dữ liệu sau khi nhập vào được xuất ra 8 LED đồng thời với việc ghi vào RAM nội
• Bài 2: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình
3 Hướng dẫn:
Phần mở rộng port xuất:
o Port thu phát nối tiếp của 8051 có thể sử dụng để mở rộng thành nhiều port xuất song song Để thực hiện điều này, sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và vi mạch chuyển đổi từ nối tiếp ra song song (Serial In – Parallel Out) như 74164, 4094, …
o Chế độ thanh ghi dịch: RXD là ngõ ra dữ liệu nối tiếp, TXD là ngõ ra xung clock
o Viết chương trình: xuất dữ liệu ra port nối tiếp ở chế độ thanh ghi dịch
Phần mở rộng port nhập:
o Port thu phát nối tiếp của 8051 có thể sử dụng để mở rộng thành nhiều port nhập song song Để thực hiện điều này, sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và vi mạch chuyển đổi song song từ ra nối tiếp (Serial Out – Parallel In) như 74165
o Chế độ thanh ghi dịch: RXD là ngõ ra dữ liệu nối tiếp, TXD là ngõ ra xung clock
o Viết chương trình:
Cho LD\ = 0 để nhập dữ liệu từ các công tắc
Cho LD\ = 1 để chuẩn bị thực hiện việc ghi dịch
Nhập dữ liệu từ port nối tiếp ở chế độ thanh ghi dịch
Xuất dữ liệu ra các LED
Phần thu phát nối tiếp:
o Nối chân RXD của vi điều khiển 1 với chân TXD của vi điều khiển 2
o Nối chân TXD của vi điều khiển 1 với chân RXD của vi điều khiển 2