1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Vi Mạch MCS 51 - Ứng Dụng Thực Tế (Phần 2) part 7 docx

9 364 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 458,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. 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

Trang 1

L 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

CLR TF0

DJNZ R0,DEL

RET

DATABYTE:

DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH

END

1.3 Lưu chương trình và biên dịch chương trình

1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có

1.5 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.6 Nạp chương trình vào vi điều khiển

1.7 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.8 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 2

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 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 REN ;REN = 1 - CHO PHEP THU DU LIEU

WAIT:

JNB RI ,WAIT ;KIEM TRA CO RI (KIEM TRA THU XONG)

CLR RI ;XOA CO RI

CLR REN ;REN = 0 - KHONG CHO PHEP THU

MOV A, SBUF ;DOC DU LIEU DA THU DUOC TU SERIAL PORT

MOV P1 ,A ;XUAT RA LED

SJMP MP1

END

1.3 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 3

L 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 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 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 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

;***************************************************

;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

MOV SCON ,#52H ;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1

MP1:

MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DU LIEU

MP2:

KEY_NHAN:

KEY_NHA:

;PHIM DA DUOC NHAN VA NHA HOAN TAT

Trang 4

MOV A, DPL ;KIEM TRA DA PHAT/THU XONG VUNG DU LIEU

CJNE A,#LOW(DATABYTE+9),MP2

;***************************************************

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.3 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

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:

Trang 5

L 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 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

Trang 6

TRUNG TÂM THÍ NGHIỆM THỰC HÀNH Đ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 7

M 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 8

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 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J92 (CS573A) ở khối mở rộng port I/O (chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70)

• Dùng dây bus 8 nối J85 (DATA OUT) ở 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

LED DÃY

VI ĐIỀU KHIỂN

A0 A7

SELECT CHIP CLOCK OUT

POWER SW

NGUỒN +5V

MỞ RỘNG PORT I/O

3

8

3

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

1.3 Lưu chương trình và biên dịch chương trình

1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu cĩ

1.5 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.6 Nạp chương trình vào vi điều khiển

1.7 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.8 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 9

M 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, 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 0, CS245 được nối với SELCHIP 1) Sử dụng cơ chế bộ nhớ ngồ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 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J92 (CS573A) ở khối mở rộng port I/O (chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70)

• Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J83 (CS245) ở khối mở rộng port I/O (chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70)

• Dùng dây bus 8 nối J85 (DATA OUT) ở 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

LED DÃY

VI ĐIỀU KHIỂN

A0 A7

SELECT CHIP CLOCK OUT

POWER SW

NGUỒN +5V

MỞ RỘNG PORT I/O

3

8

3

CÔNG

TẮC

3

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

1.3 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 Port I/O, làm cho 8 LED tắt hết và sáng dần liên tục (LED được nối với DATAOUT B, CS573B được nối với SELCHIP 5)

• Bài 2: Hãy viết chương trình điều khiển Port I/O, làm cho 16 LED sáng hết và tắt dần liên tục (LED được nối với DATAOUT A và DATAOUT B, CS573A được nối với SELCHIP 4, CS573B được nối với SELCHIP 5)

• 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)

Ngày đăng: 09/07/2014, 23:20

TỪ KHÓA LIÊN QUAN