Bài 1: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần LED được nối với DATAOUT A, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT.. Bài 1: Chương tr
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 2M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI)
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
• Khảo sát nguyên lý hoạt động và phương pháp điều khiển vi mạch PPI 8255
• Khảo sát phương pháp mở rộng port xuất nhập của vi điều khiển bằng cách sử dụng các vi mạch 8255,
74573 và 74245
• Khảo sát nguyên lý và phương pháp lập trình điều khiển xuất nhập dữ liệu theo phương pháp song song
B YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51
• Nắm được sơ đồ và nguyên lý hoạt động của khối mở rộng port I/O trên mô hình thí nghiệm
• Nắm được nguyên lý hoạt động và phương pháp điều khiển vi mạch PPI 8255
• Biết cách lập trình điều khiển xuất nhập dữ liệu theo phương pháp song song
• Biết cách lập trình và nắm được phương pháp mở rộng port xuất nhập của vi điều khiển bằng cách sử dụng các vi mạch 8255, 74573 và 74245
Trang 3M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 1: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần (LED được nối với DATAOUT
A, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
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 4 nối J64 (PORT1) ở với J154 (CHIP SELECT) ở khối mở rộng port I/O (chú ý là ta chỉ nối
4 bit thấp của J64 với J154)
• Dùng dây bus 8 nối J63 (PORT0/DATA) ở khối vi điều khiển với J83 (DATA IN/OUT) ở khối mở rộng port I/O
• Dùng dây bus 8 nối J85 (DATA OUT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây hai bus 3 nối J107 (POWER) ở khối mở rộng port I/O và J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn
AD7 AD5 AD3 AD1
AD0 AD2 AD4 AD6
D0 D2 D4 D6
AD0 AD2 AD4 AD6
D8 D10 D12 D14
AD5 AD3 AD1
SW0 SW2 SW4 SW6
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
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
MẠCH ĐIỀU KHIỂN XUẤT/NHẬP DỮ LIỆU DẠNG SONG SONG
(ỨNG DỤNG MỞ RỘNG PORT XUẤT/NHẬP)
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
D9
R11
330 +5V
D10
R12
330 +5V
D11
R13
330 +5V
D12
R14
330 +5V
D13
R15
330 +5V
D14
R16
330 +5V
D15
R17
330 +5V
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
A4 6 B4 14A5
A6 8 B6 12A7
CE 19 AB/BA 1
U4
74HC245
2 4 6 8
1
RP2
10K +5V
Trang 4M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 1: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần (LED được nối với DATAOUT
A, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
;***************************************************
;CHUONG TRINH DIEU KHIEN PORT I/O DUNG 1 IC 74573
;LAM CHO 8 LED SANG DAN
;***************************************************
MAIN:
LOOP:
ACALL DELAY500MS ;TAO THOI GIAN TRE
Trang 5M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 1: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần (LED được nối với DATAOUT
A, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
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 2)
Trang 6M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 2: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần và 8 LED sáng đuổi (LED được
nối với DATAOUT A và DATAOUT B, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
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 4 nối J64 (PORT1) ở với J154 (CHIP SELECT) ở khối mở rộng port I/O (chú ý là ta chỉ nối
4 bit thấp của J64 với J154)
• Dùng dây bus 8 nối J63 (PORT0/DATA) ở khối vi điều khiển với J83 (DATA IN/OUT) ở khối mở rộng port I/O
• Dùng dây bus 8 nối J85 (DATA OUT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây bus 8 nối J90 (DATA OUT B) ở khối mở rộng port I/O với J12 (BAR LED 2) ở khối dãy LED
• Dùng dây hai bus 3 nối J107 (POWER) ở khối mở rộng port I/O và J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn
Trang 7M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 2: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần và 8 LED sáng đuổi (LED được
nối với DATAOUT A và DATAOUT B, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
AD0 AD2 AD4 AD6
D0 D2 D4 D6
AD0 AD2 AD4 AD6
D8 D10 D12 D14
AD5 AD3 AD1
SW0 SW2 SW4 SW6
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
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
MẠCH ĐIỀU KHIỂN XUẤT/NHẬP DỮ LIỆU DẠNG SONG SONG
(ỨNG DỤNG MỞ RỘNG PORT XUẤT/NHẬP)
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
D9
R11
330 +5V
D10
R12
330 +5V
D11
R13
330 +5V
D12
R14
330 +5V
D13
R15
330 +5V
D14
R16
330 +5V
D15
R17
330 +5V
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
A4 6 B4 14A5
A6 8 B6 12A7
CE 19 AB/BA 1
U4
74HC245
2 4 6 8
1
RP2
10K +5V
Trang 8M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 2: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần và 8 LED sáng đuổi (LED được
nối với DATAOUT A và DATAOUT B, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
TẮT CÁC LED (A) = 11111111B = FFH XUẤT DỮ LIỆU RA PORT (U3 VÀ U2)
(DATABUS) = (A) GỌI CTC TẠO TRỄ DELAY500MS
DỊCH PHẢI (R1)
RR A / SÁNG ĐUỔI
CHƯA SÁNG 8 LED (C) = 1
Đ S
NẠP GIÁ TRỊ BAN ĐẦU CHO LED SÁNG DẦN
(R0) = 11111110B = FEH NẠP GIÁ TRỊ BAN ĐẦU CHO LED SÁNG ĐUỔI
(R1) = 01111111B = 7FH
(LAT_573A) = 0 - CHỐT 74573-A (U3) (LAT_573B) = 1 - THÔNG 74573-B (U2) XUẤT DỮ LIỆU RA PORT (74573-B)
(DATABUS) = (R1)
(LAT_573A) = 1 - THÔNG 74573-A (U3) (LAT_573B) = 0 - CHỐT 74573-B (U2) XUẤT DỮ LIỆU RA PORT (74573-B)
(DATABUS) = (R0)
DỊCH TRÁI (R0) KÈM C RLC A / SÁNG DẦN
XÓA CỜ CY (CY) = 0
GỌI CTC TẠO TRỄ DELAY500MS
;***************************************************
;CHUONG TRINH DIEU KHIEN PORT I/O DUNG 2 IC 74573
;LAM CHO 8 LED SANG DAN (NHOM 1) VA 8 LED SANG DUOI (NHOM 2)
;***************************************************
;DINH NGHIA CAC THONG SO
;***************************************************
Trang 9M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 2: Chương trình điều khiển Port I/O dùng 74573, làm cho 8 LED sáng dần và 8 LED sáng đuổi (LED được
nối với DATAOUT A và DATAOUT B, PORT 0 được nối với DATA IN/OUT, PORT 1 được nối với CHIP SELECT)
;***************************************************
MAIN:
ACALL DELAY500MS ;TAO THOI GIAN TRE
LOOP1:
;***************************************************
MOV A , R1
MOV R1 , A
;***************************************************
ACALL DELAY500MS ;TAO THOI GIAN TRE
Trang 10M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 3: Chương trình điều khiển Port I/O dùng 74573 và 74245, liên tục đọc các giá trị từ các công tắc gạt SW0
– SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, PORT 0 được nối với DATA IN/OUT, PORT1 được nối với CHIP SELECT)
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 4 nối J64 (PORT1) ở với J154 (CHIP SELECT) ở khối mở rộng port I/O (chú ý là ta chỉ nối
4 bit thấp của J64 với J154)
• Dùng dây bus 8 nối J63 (PORT0/DATA) ở khối vi điều khiển với J83 (DATA IN/OUT) ở khối mở rộng port I/O
• Dùng dây bus 8 nối J85 (DATA OUT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây bus 8 nối J80 (DATA IN) ở khối mở rộng port I/O với J34 (SWITCH) ở khối công tắc
• Dùng dây ba bus 3 nối J107 (POWER) ở khối mở rộng port I/O, J106 (POWER) ở khối công tắc và J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn
Trang 11M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 3: Chương trình điều khiển Port I/O dùng 74573 và 74245, liên tục đọc các giá trị từ các cơng tắc gạt SW0
– SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các cơng tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, PORT 0 được nối với DATA IN/OUT, PORT1 được nối với CHIP SELECT)
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
AD0 AD2 AD4 AD6
D0 D2 D4 D6
AD0 AD2 AD4 AD6
D8 D10 D12 D14
AD5 AD3 AD1
SW0 SW2 SW4 SW6
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
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
MẠCH ĐIỀU KHIỂN XUẤT/NHẬP DỮ LIỆU DẠNG SONG SONG
(ỨNG DỤNG MỞ RỘNG PORT XUẤT/NHẬP)
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
D9
R11
330 +5V
D10
R12
330 +5V
D11
R13
330 +5V
D12
R14
330 +5V
D13
R15
330 +5V
D14
R16
330 +5V
D15
R17
330 +5V
D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9
Q0 19Q1 18Q2 17Q3 16Q4 15Q5 14Q6 13Q7 12LE 11 OE 1
A3
A4 6 B4 14A5
A6 8 B6 12A7
CE 19 AB/BA 1
U4
74HC245
2 4 6 8
1
RP2
10K +5V
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
Trang 12M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 3: Chương trình điều khiển Port I/O dùng 74573 và 74245, liên tục đọc các giá trị từ các công tắc gạt SW0
– SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, PORT 0 được nối với DATA IN/OUT, PORT1 được nối với CHIP SELECT)
;***************************************************
;CHUONG TRINH DIEU KHIEN PORT I/O DUNG 1 IC 74573
;VA 1 IC 74245 LAM CHO 8 LED SANG/TAT THEO TRANG THAI CAC SW
;***************************************************
MAIN:
;***************************************************
LOOP:
;***************************************************
• Bài 3: Hãy viết chương trình điều khiển Port I/O, làm cho LED 7 đoạn hiển thị đếm BCD từ 0 lên 9 liên tục (LED0 được nối với DATAOUT A, CS573A được nối với SELCHIP 6)
• Bài 4: Hãy viết chương trình điều khiển Port I/O, làm cho hai LED 7 đoạn hiển thị đếm BCD từ 00 lên 99 liên tục (LED0 được nối với DATAOUT A, LED1 được nối với DATAOUT B, CS573A được nối với SELCHIP 6, CS573B được nối với SELCHIP 7)
• Bài 5: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, CS573A được nối với SELCHIP 4, CS245 được nối với SELCHIP 1)
• Bài 6: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị trạng thái hiện tại (LED sáng = nút nhấn, LED tắt = nút nhả) của các nút nhấn này lên LED (LED được nối với DATAOUT A, PUSH KEY được nối với DATAIN, CS573A được nối với SELCHIP 5, CS245 được nối với SELCHIP 2)
Trang 13M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 3: Chương trình điều khiển Port I/O dùng 74573 và 74245, liên tục đọc các giá trị từ các công tắc gạt SW0
– SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, PORT 0 được nối với DATA IN/OUT, PORT1 được nối với CHIP SELECT)
• Bài 7: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị tên của các nút nhấn này lên LED 7 đoạn (LED0 được nối với DATAOUT A, PUSH KEY được nối với DATAIN, CS573A được nối với SELCHIP 6, CS245 được nối với SELCHIP 3)
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình
Trang 14M HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI) Bài 4: Chương trình điều khiển Port I/O dùng 8255, làm cho 8 LED sáng dần (LED được nối với PORT A,
PORT 0 được nối với DATA IN/OUT, PORT1 được nối với CHIP SELECT và CTRL 8255)
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 4 nối J64 (PORT1) ở với J154 (CHIP SELECT) ở khối mở rộng port I/O (chú ý là ta chỉ nối
4 bit thấp của J64 với J154)
• Dùng dây bus 4 nối J64 (PORT1) ở với J153 (CTRL 8255) ở khối mở rộng port I/O (chú ý là ta chỉ nối 4 bit cao của J64 với J153)
• Dùng dây bus 8 nối J63 (PORT0/DATA) ở khối vi điều khiển với J83 (DATA IN/OUT) ở khối mở rộng port I/O
• Dùng dây bus 8 nối J79 (PORT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED
• Dùng dây hai bus 3 nối J107 (POWER) ở khối mở rộng port I/O và J103 (POWER) ở khối dãy LED 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
AD0 AD2 AD4 AD6
D8
CS
RD A1 WR
D9 D10 D12 D14 SW1 SW4 SW6
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
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
MẠCH ĐIỀU KHIỂN XUẤT/NHẬP DỮ LIỆU DẠNG SONG SONG
(ỨNG DỤNG MỞ RỘNG PORT XUẤT/NHẬP)
D8
R10
330 +5V
D9
R11
330 +5V
D10
R12
330 +5V
D11
R13
330 +5V
D12
R14
330 +5V
D13
R15
330 +5V
D14
R16
330 +5V
D15
R17
330 +5V
2 4 6 8
1
RP2
10K
+5V D0
34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6
PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10
U2
8255A VCC=VDD