Tài liệu hướng dẫn thí nghiệm và thực hành vi điều khiển MCS-51

Trường đại học công nghiệp TP Hồ chí minh Trung tâm thí nghiệp thực hành điện tử Bộ môn điện tử công nghiệp Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển Chương 2: hướng dẫn sử dụng phần mềm MCU PROGRAM LOADER Chương 3: Hệ thống các bài thực hành vi điều khiển .

pdf275 trang | Chia sẻ: banmai | Lượt xem: 1990 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tài liệu hướng dẫn thí nghiệm và thực hành vi điều khiển MCS-51, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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: 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. Giáo trình thực hành vi xử lý. 230 Biên soạn: Phạm Quang Trí 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. 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 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). Giáo trình thực hành vi xử lý. 232 Biên soạn: Phạm Quang Trí 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. 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 1: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit (LED được nối với DATAOUT A, CS573A được nối với SELCHIP 0). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 233 Biên soạn: Phạm Quang Trí 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 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 DAÕY BAR LED 2 BAR LED 1POWER VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW NGUOÀN +5V MÔÛ ROÄNG PORT I/O P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S8 25 5 P O W E R C S2 45 C S5 73 A C S573B 3 8 3 1 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) 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ớ ngoài. Giáo trình thực hành vi xử lý. 234 Biên soạn: Phạm Quang Trí 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 DAÕY BAR LED 2 BAR LED 1POWER VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW NGUOÀN +5V MÔÛ ROÄNG PORT I/O P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S8 25 5 P O W E R C S2 45 C S 57 3A C S573B 3 8 3 1 COÂNG TAÉC P O W E R SW IT C H 3 8 1 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). 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ớ ngoài. Giáo trình thực hành vi xử lý. 235 Biên soạn: Phạm Quang Trí • 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. 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 3: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit (LED được nối với PortA, CS8255 được nối với SELCHIP 0). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 236 Biên soạn: Phạm Quang Trí 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 J88 (CS8255) ở 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 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. P O R T 0 P O R T 1 P O R T 3 P O R T 2 P O R T 1 P O R T 3 40 P IN S 20 P IN S P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S 82 55 P O W E R C S 24 5 C S5 73 A C S573B 1 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4) 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 4: 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. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 237 Biên soạn: Phạm Quang Trí 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 J88 (CS8255) ở 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 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 bus 8 nối J84 (PORT B) ở khối mở rộng port I/O với J34 (MOMENTARY SW) ở 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. P O R T 0 P O R T 1 P O R T 3 P O R T 2 P O R T 1 P O R T 3 40 P IN S 20 P IN S P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S8 25 5 P O W E R C S 24 5 C S5 73 A C S573B 1 P O W E R SW IT C H 8 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 sáng đuổi liên tục (LED được nối với PortB, CS8255 đượ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 đuổi liên tục (LED được nối với PortA và PortB, CS8255 được nối với SELCHIP 4). • 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 HEX từ F xuống A liên tục (LED0 được nối với PortA, CS8255 đượ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 HEX từ 00 lên FF liên tục (LED0 được nối với PortA, LED1 được nối với PortB, CS8255 đượ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 PortA, SWITCH được nối với PortB, CS8255 được nối với SELCHIP 4). • 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 PortA, PUSH KEY được nối với PortB, CS8255 được nối với SELCHIP 5). • 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 PortA, PUSH KEY được nối với PortB, CS8255 được nối với SELCHIP 6). • Bài 8: 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 ma trận (COL-RED được nối với PortA, ROW được nối với PortB, PUSH KEY được nối với PortC, CS8255 được nối với SELCHIP 6). 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 4: 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. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 238 Biên soạn: Phạm Quang Trí • Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. 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 N. HỆ THỐNG ĐIỀU KHIỂN ADC. Giáo trình thực hành vi xử lý. 240 Biên soạn: Phạm Quang Trí 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 của vi mạch ADC 0809. • Thực hiện việc biến đổi từ tín hiệu tương tự (Analog) sang tín hiệu số (Digital). B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước và nắm được hoạt động của vi mạch ADC 0809. N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 241 Biên soạn: Phạm Quang Trí 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 J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J77 (V1) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 0 (IN0) của J48 và J77 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (4000H – 5FFFH) của J70 và J60 lại với nhau). • Dùng bốn dây bus 3 nối D35 (POWER) ở khối tạo áp, D34 (POWER) ở khối ADC, J107 (POWER) ở khối mở rộng port I/O và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. P O R T 0 P O R T 1 P O R T 3 P O R T 2 P O R T 1 P O R T 3 40 P IN S 20 P IN S 3 8 P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S8 25 5 P O W E R C S2 45 C S5 73 A C S 573B A N A L O G IN C S0 80 9 D IG IT A L O U T P O W E R T A ÏO A ÙP V 1 P O W E R V 2 V 3 V 4 3 1 1 1 1 8 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. N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 242 Biên soạn: Phạm Quang Trí 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 4) N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 2: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh IN0) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số DEC từ 0 -> 255). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 243 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4) N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào (kênh IN0) lên bốn LED 7 đoạn (LED3: hàng đơn vị; LED2, LED1 và LED0: ba số phần thập phân). Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 244 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4) N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 245 Biên soạn: Phạm Quang Trí 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 J76 (MOMENTARY SW) ở khối nút nhấn với J80 (DATA IN) ở khối mở rộng port I/O. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J77 (V1) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 0 (IN0) của J48 và J77 lại với nhau). • Dùng dây bus 1 nối J78 (V2) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 1 (IN1) của J48 và J78 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J83 (CS245) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (4000H – 5FFFH) của J70 và J83 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 4 (6000H – 7FFFH) của J70 và J60 lại với nhau). • Dùng năm dây bus 3 nối D35 (POWER) ở khối tạo áp, D34 (POWER) ở khối ADC, J114 (POWER) ở khối nút nhấn, J107 (POWER) ở khối mở rộng port I/O và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. LED 7 ÑOAÏN 7SEG7 IN SEL IN2POWER SEL IN1 7SEG6 IN 7SEG5 IN 7SEG4 IN 7SEG7 IN MUL SEL LED IN 8 8 8 8 VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW NGUOÀN +5V 3 8 8 MÔÛ ROÄNG PORT I/O P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S 82 55 P O W E R C S2 45 C S5 73 A C S573B ADC A N A L O G IN C S 08 09 D IG IT A L O U T P O W E R T A ÏO A ÙP V 1 P O W E R V 2 V 3 V 4 3 3 3 1 8 1 1 1 8 8 NUÙT NHAÁN M O M E N T A R Y S W P O W E R 1 8 1 3 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 246 Biên soạn: Phạm Quang Trí 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 biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (IN0 và IN1) lên bốn LED 7 đoạn (LED1 và LED0: kênh IN0; LED4 và LED3: kênh IN1; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài. • Bài 2: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của ba kênh ngõ vào (IN2, IN3 và IN4) lên sáu LED 7 đoạn (LED1 và LED0: kênh IN2; LED4 và LED3: kênh IN3; LED7 và LED6: kênh IN4; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài. • Bài 3: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN6, IN7) lên sáu LED 7 đoạn (LED2, LED1 và LED0: kênh IN6; LED7, LED6 và LED5: kênh IN7; dưới dạng số DEC từ 0 -> 255). Sử dụng cơ chế bộ nhớ ngoài. • Bài 4: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của tám kênh ngõ vào (kênh IN0 -> IN7) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn lần lượt các nút nhấn KEY0 -> KEY7. Sử dụng cơ chế bộ nhớ ngoài. • Bài 5: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của tám kênh ngõ vào (kênh IN0 -> IN7) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. • Bài 6: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của hai kênh ngõ vào (kênh IN0, IN1) lên bốn LED 7 đoạn (LED3: hàng đơn vị; LED2, LED1 và LED0: ba số phần thập phân), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. 3 Hướng dẫn: Quá trình biến đổi A/D được thực hiện qua các bước sau: o Xác lập địa chỉ chọn kênh ngõ vào (A0, A1, A2). o Tạo xung START/ALE bằng cách xuất một giá trị bất kỳ ra ngoại vi ADC0809 với địa chỉ ngoại vi đã chọn (CS: Chip Select). o Tạo thời gian delay 120 µs. o Đọc giá trị từ ngoại vi ADC0809 với địa chỉ ngoại vi đã chọn (giá trị này có tầm từ 0 - 255 tùy theo điện áp ngõ vào từ 0 - 5V ⇒ độ phân giải là 5V/255 = 19,6 mV). o Đổi giá trị này thành điện áp (tính bằng mV) bằng cách nhân với 19,6 ≈ 20. o Đổi giá trị này ra mã BCD nén. o Xuất ra LED 7 đoạn để hiển thị. Đổi số nhị phân 8 bit thành mã BCD nén (packed BCD): o Lấy giá trị cần chuyển đổi (0 – 255) chia cho 10 ⇒ Số dư sẽ là mã BCD hàng đơn vị. o Lấy kết quả (thương số) của phép chia trên chia tiếp cho 10 ⇒ Số dư sẽ là mã BCD hàng chục. o Kết quả (thương số) của phép chia trên ⇒ Mã BCD hàng trăm. o Kết hợp mã BCD của hàng chục và hàng đơn vị lại thành mã BCD nén. Còn mã BCD của hàng trăm thì giữ nguyên. o Chương trình mẫu: ;*************************************************** ;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD. ;*************************************************** ;NAME: BIN8TOBCD. ;INPUT: R7 = SO BCD 8 BIT (<= 255). ;OUTPUT: R7,R6 = SO BCD (TRAM - CHUC - DON VI). ;*************************************************** BIN8TOBCD: PUSH ACC PUSH B MOV B,#10 N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 247 Biên soạn: Phạm Quang Trí MOV A,R7 DIV AB ;LAY R7 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10 MOV R7,A ;R7 = TRAM MOV A,B ;LAY SO HANG CHUC SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** Đổi số nhị phân 16 bit thành mã BCD nén: o Công việc thực hiện tương tự như đối với số nhị phân 8 bit là lần lượt chia giá trị cần chuyển đổi cho 10. Tuy nhiên, cần phải tạo ra một chương trình con thực hiện việc chia số 16 bit cho 10 (vì giá trị cần đổi lúc này là số 16 bit). o Chương trình mẫu: ;*************************************************** ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. ;*************************************************** ;NAME: BIN16TOBCD. ;INPUT: R7,R6 = SO BCD 16 BIT (<= 9999). ;OUTPUT: R7,R6 = SO BCD (NGAN - TRAM - CHUC - DON VI). ;*************************************************** BIN16TOBCD: PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. ;*************************************************** ;NAME: DIV16TO8. ;INPUT: R7,R6: SO BINARY 16 BIT ; B: SO BINARY 8 BIT ;OUTPUT: R7,R6: KET QUA CUA PHEP CHIA ; B: SO DU CUA PHEP CHIA ;*************************************************** DIV16TO8: PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài. Giáo trình thực hành vi xử lý. 248 Biên soạn: Phạm Quang Trí MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: XCH A,R6 CLR C ;DICH BIT 7 CU R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;*************************************************** 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 O. HỆ THỐNG ĐIỀU KHIỂN DAC. Giáo trình thực hành vi xử lý. 250 Biên soạn: Phạm Quang Trí 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 của vi mạch DAC 0808. • Thực hiện việc biến đổi từ tín hiệu số (Digital) sang tín hiệu tương tự (Analog). B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước và nắm được hoạt động của vi mạch DAC 0808. O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 1: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục 00H, 40H, 80H, C0H và FFH, mỗi lần cách nhau 2 giây. Giáo trình thực hành vi xử lý. 251 Biên soạn: Phạm Quang Trí 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 J37 (DIGITAL IN) ở khối DACõ. • Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn. VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW DAC P O W E R D IG IT A L IN A N A L O G O U T NGUOÀN 5V, 12V 8 8 VOM 1 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 3) O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255). Giáo trình thực hành vi xử lý. 252 Biên soạn: Phạm Quang Trí 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 bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J65 (PORT2 / A8..A15) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ. • Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn. • Dùng dây bus 8 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. P O R T 0 P O R T 1 P O R T 3 P O R T 2 P O R T 1 P O R T 3 40 P IN S 20 P IN S P O W E R D IG IT A L IN A N A L O G O U T 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3) O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 3: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện tạo sóng sin có tần số bất kỳ tại ngõ ra. Giáo trình thực hành vi xử lý. 253 Biên soạn: Phạm Quang Trí 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 J37 (DIGITAL IN) ở khối DACõ. • Dùng máy hiện sóng (Oscilloscope) để kiểm tra dạng sóng tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn. VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW DAC P O W E R D IG IT A L IN A N A L O G O U T NGUOÀN 5V, 12V 8 8 1 OSC 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 biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng tam giác có tần số bất kỳ. • Bài 2: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng vuông có tần số bất kỳ. • Bài 3: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện biến đổi giá trị lưu trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi theo việc nhấn nút KEY0 hoặc KEY1 (KEY0: tăng giá trị, KEY1: giãm giá trị) từ 00H -> FFH và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255). • Bài 4: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng sin có tần số thay đổi trong một khoảng tần số tự chọn tùy theo việc nhấn nút KEY0 hoặc KEY1 (KEY0: tăng tần số, KEY1: giãm tần số ) và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255).. • Bài 5: 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 tạo sóng sin: o Tạo một bảng dữ liệu gồm 128 bytes là giá trị của 128 mẫu có được từ hình sin, đỉnh cao nhất của hình sin có giá trị là 255 (FFH), đỉnh thấp nhất của hình sin có giá trị là 0 (00H). Do đó trục của hình sin có giá trị là 127,5 (80H hay 7FH). o Giá trị của mẫu thứ x là: 5,1275,127 128 360 sin +×      × Ox o Liên tục xuất bảng giá trị này ra vi mạch DAC0808, thay đổi thời gian delay giữa các lần xuất sẽ tạo ra các tần số khác nhau. 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 P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ. Giáo trình thực hành vi xử lý. 255 Biên soạn: Phạm Quang Trí 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 và sử dụng cảm biến nhiệt LM335. • Minh họa ứng dụng của hệ thống vi điều khiển vào công việc đo lường, hiển thị và điều khiển. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên lý hoạt động của các dạng mạch khuếch đại dùng Op-Amp và cảm biến nhiệt LM335 P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ. Bài tập: Chương trình đo nhiệt độ và hiển thị giá trị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân). Giáo trình thực hành vi xử lý. 256 Biên soạn: Phạm Quang Trí 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 J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J89 (V OUT) ở khối cảm biến nhiệt với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 0 (IN0) của J48 và J89 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (4000H – 5FFFH) của J70 và J60 lại với nhau). • Dùng ba dây bus 3 nối D34 (POWER) ở khối ADC, J107 (POWER) ở khối mở rộng port I/O và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. • Dùng dây bus 4 nối J35 (POWER) ở khối cảm biến nhiệt với nguồn ±5V ở khối nguồn. NGUOÀN 5V CAÛM BIEÁN NHIEÄT V I N 2 V I N 1 P O W E R L M 33 5 V O U T LED 7 ÑOAÏN 7SEG7 IN SEL IN2POWER SEL IN1 7SEG6 IN 7SEG5 IN 7SEG4 IN 7SEG7 IN MUL SEL LED IN 8 8 8 8 VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW NGUOÀN +5V 3 8 8 MÔÛ ROÄNG PORT I/O P O R T A D A T A I N P O R T C P O R T B D A T A O U T D A T A O U T C S 82 55 P O W E R C S2 45 C S5 73 A C S 573B ADC A N A L O G IN C S 08 09 D IG IT A L O U T P O W E R 34 3 8 1 1 1 1 8 8 1 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. P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ. Bài tập: Chương trình đo nhiệt độ và hiển thị giá trị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân). Giáo trình thực hành vi xử lý. 257 Biên soạn: Phạm Quang Trí 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: • Bài 1: Hãy viết chương trình điều khiển đo nhiệt độ và hiển thị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân) với những yêu cầu sau: o Cho biết trước nhiệt độ là 50OC. o Đo nhiệt độ hiện tại. o Nếu nhiệt độ đo được nhỏ hơn nhiệt độ đặt thì kích đóng RELAY 1. o Nếu nhiệt độ đo được lớn hơn nhiệt độ đặt thì kích ngắt RELAY 1. • Bài 2: Hãy viết chương trình điều khiển đo nhiệt độ và hiển thị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân) với những yêu cầu sau: o Cho phép đặt trước nhiệt độ là (10OC - 50OC) bằng các nút nhấn KEY0 (tăng nhiệt độ) và KEY1 (giãm nhiệt độ). o Đo nhiệt độ hiện tại. o Nếu nhiệt độ đo được nhỏ hơn nhiệt độ đặt thì kích đóng RELAY 1. o Nếu nhiệt độ đo được lớn hơn nhiệt độ đặt thì kích ngắt RELAY 1. • Bài 3: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. 3 Hướng dẫn: Cân chỉnh khối cảm biến nhiệt: o Chỉnh biến trở R137 sao cho V1 = 2,73 + 0,01 x tOC (V). Trong thực tế để chính xác thì ta nhúng LM335 vào nước đá đang tan (0OC). o Chỉnh biến trở R133 sao cho V2 = 2,73 V. Đo nhiệt độ với độ phân giải 0,5OC: o Nhiệt độ sau khi qua khối cảm biến nhiệt sẽ tạo ra một điện áp tại J93 (V OUT) có giá trị là VOUT = 39 * tOC (mV). o Với độ phân giải của ADC0809 là 19,6 mV thì điện áp trên sau khi qua ADC0809 sẽ có giá trị là 39 * tOC / 19,6 ≈ 2 * tOC. o Để hiển thị giá trị nhiệt độ lên LED 7 đoạn với một số phần thập phân thì giá trị hiển thị sẽ phải là 10 * t. Do đó, giá trị thu được sau khi biến đổi A/D sẽ được nhân với 5 rồi biến đổi qua mã BCD nén → hiển thị lên LED 7 đoạn. 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 Q. HỆ THỐNG ĐIỀU KHIỂN MOTOR DC. Giáo trình thực hành vi xử lý. 259 Biên soạn: Phạm Quang Trí 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. • Tìm hiểu nguyên lý hoạt động của các loại động cơ DC công suất nhỏ. • Tìm hiểu nguyên lý điều khiển động cơ DC bằng vi điều khiển và ứng dụng lập trình để điều khiển hoạt động cho các động cơ DC này. 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 viết các chương trình điều khiển động cơ quay thuận/ngược, thay đổi tốc độ quay, …. • Nắm được sơ đồ và nguyên lý hoạt động của khối động cơ DC trên mô hình thí nghiệm. • Nắm được nguyên lý hoạt động và nguyên lý điều khiển động cơ DC. • Biết cách viết các chương trình ứng dụng điều khiển động cơ DC hoạt động theo các chế độ khác nhau. Q. HỆ THỐNG ĐIỀU KHIỂN MOTOR DC. Bài tập: Chương trình Giáo trình thực hành vi xử lý. 260 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • 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: • Bài 1: Hãy viết chương trình điều khiển • 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: : o 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 R. HỆ THỐNG ĐIỀU KHIỂN SERIAL EEPROM. Giáo trình thực hành vi xử lý. 262 Biên soạn: Phạm Quang Trí 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. • Tìm hiểu nguyên lý lưu trữ thông tin và phương pháp ghi/đọc dữ liệu từ một số bộ nhớ Serial EEPROM thông dụng của hãng Atmel: 24C01, 24C04, ... • Điều khiển việc ghi/đọc dữ liệu giữa vi điều khiển với bộ nhớ Serial EEPROM. 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 nguyên lý lưu trữ thông tin và phương pháp ghi/đọc dữ liệu từ bộ nhớ Serial EEPROM. • Biết cách lập trình và điều khiển việc ghi/đọc dữ liệu giữa vi điều khiển với bộ nhớ Serial EEPROM. R. HỆ THỐNG ĐIỀU KHIỂN SERIAL EEPROM. Bài tập: Chương trình Giáo trình thực hành vi xử lý. 263 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • 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: • Bài 1: Hãy viết chương trình điều khiển • 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: : o 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 S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Giáo trình thực hành vi xử lý. 265 Biên soạn: Phạm Quang Trí 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 và sử dụng các loại RTC (đồng hồ thời gian thực) thông dụng trên thực tế. • Tìm hiểu nguyên lý hoạt động một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên lý hoạt động của các RTC thông dụng như: PCF8583, DS1307, … (Serial RTC) và DS12887 (Parallel RTC). • Thiết kế một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển. S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài tập: Chương trình Giáo trình thực hành vi xử lý. 266 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • 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: • Bài 1: Hãy viết chương trình điều khiển • 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: : o

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_thuc_hanh_vi dieu khien MCS51.pdf
Tài liệu liên quan