HƯỚNG DẪN THÍ NGHIỆM VI XỬ LÍ VÀ PLC

Chia sẻ: Dương Nhất | Ngày: | Loại File: DOC | Số trang:59

0
91
lượt xem
51
download

HƯỚNG DẪN THÍ NGHIỆM VI XỬ LÍ VÀ PLC

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

- Đối với phần thí nghiệm PLC, mỗi thao tác bật nguồn cung cấp cho kit TN phải được sự đồng ý của giáo viên hướng dẫn. Do đó, trước khi thực hiện các thao tác này, hãy đề nghị giáo viên hướng dẫn kiểm tra kit TN. Mỗi thao tác cần cẩn thận, có mục đích và sự hiểu biết, bất cứ một vấn đề nào không rõ ràng, HÃY hỏi giáo viên hướng dẫn.

Chủ đề:
Lưu

Nội dung Text: HƯỚNG DẪN THÍ NGHIỆM VI XỬ LÍ VÀ PLC

  1. TRƯỜNG CAO ĐẲNG KINH TẾ - CÔNG NGHỆ TP. HCM KHOA ĐIỆN – ĐIỆN TỬ HƯỚNG DẪN THÍ NGHIỆM VI XỬ LÝ & PLC Biên soạn: Nguyễn Ngọc Tùng LƯU HÀNH NỘI BỘ
  2. MỤC LỤC Bài mở đầu – NỘI QUY – MỘT SỐ KIẾN THỨC CƠ BẢN ....................................................... 1 Bài 1 – MÔ PHỎNG HỌ VI XỬ LÝ 89C51 TRÊN MÁY TÍNH................................................ 12 Bài 2 – GIAO TIẾP NGOẠI VI VỚI LED 7 ĐOẠN .................................................................. 21 Bài 3 – GIAO TIẾP NGOẠI VI VỚI MA TRẬN PHÍM ............................................................ 28 Bài 4 – GIAO TIẾP NGOẠI VI VỚI MA TRẬN LED ............................................................... 32 Bài 5 – ĐIỀU KHIỂN QUÁ TRÌNH TUẦN TỰ ......................................................................... 41 Bài 6 – PHÂN LOẠI VÀ ĐẾM SẢN PHẨM .............................................................................. 45 Bài 7 – ĐIỀU KHIỂN ĐÈN GIAO THÔNG............................................................................... 50 Bài 8 – ĐIỀU KHIỂN THANG MÁY.......................................................................................... 54
  3. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu Bài mở đầu NỘI QUY & MỘT SỐ KIẾN THỨC CƠ BẢN I. Nội quy phòng thí nghiệm 1. Giờ giấc - Sinh viên có mặt trước giờ thí nghiệm 5 phút, tập trung trước cửa PTN Điện tử. Giờ bắt đầu vào lớp: • Buổi sáng: 7h30’ • Buổi chiều: 13h30’ - Đúng giờ thí nghiệm, được sự cho phép của giáo viên hướng dẫn, các sinh viên trật tự bước vào phòng thí nghiệm. Cứ sau mỗi 5 phút đi trễ, các sinh viên sẽ bị trừ 1 điểm tương ứng vào điểm bài thí nghiệm của ngày hôm đó. Sau 30 phút, các sinh viên đi trễ sẽ không được vào phòng thí nghiệm và xem như vắng mặt ngày hôm đó. - Trước giờ ra về 30 phút, các nhóm sinh viên hoàn tất (hoặc chưa hoàn tất bài thí nghiệm) phải dừng thí nghiệm và nộp báo cáo thí nghiệm cho giáo viên hướng dẫn. Riêng những nhóm sinh viên hoàn tất bài thí nghiệm sớm, sau khi nộp báo cáo, nếu có nguyện vọng có thể xin phép giáo viên hướng dẫn cho về sớm. Giờ ra về: • Buổi sáng: 11h00’ • Buổi chiều: 17h00’ 2. Tổ chức lớp học và cách đánh giá sinh viên - Lớp học được chia thành tối đa 8 nhóm sinh viên, tùy sĩ số lớp mà số lượng SV mỗi nhóm sẽ dao động từ 3 đến 5 sinh viên. - Các bài thí nghiệm được chia làm 2 phần chính: phần thí nghiệm VXL gồm 4 bài được thực hiện song song bởi 4 nhóm trong mỗi buổi học; phần thí nghiệm PLC gồm 4 bài được thực hiện tuần tự bởi 4 nhóm còn lại trong mỗi buổi học. Các nhóm hoàn tất phần thí nghiệm PLC sẽ chuyển sang thực hiện phần thí nghiệm VXL và ngược lại. - Các sinh viên vắng mặt (không phép) coi như bị điểm 0 bài thí nghiệm ngày hôm đó. Các sinh viên chỉ được tối đa 1 buổi thí nghiệm vắng mặt có phép và sẽ học bù trong buổi thí nghiệm dự trữ. - Bài báo cáo thí nghiệm phải được hoàn thành ngay trong buổi thí nghiệm ngày hôm đó. Điểm bài TN sẽ được đánh giá trên bài báo cáo này và qua quá trình thí nghiệm của nhóm. Trang 1
  4. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu - Điểm trung bình cuối cùng sẽ là trung bình cộng của 2 cột điểm: điểm thí nghiệm và điểm kiểm tra cuối kỳ: • Điểm thí nghiệm (chiếm 30%): là trung bình cộng của điểm 8 bài thí nghiệm, điểm mỗi bài thí nghiệm sẽ là điểm chung của nhóm. • Điểm kiểm tra cuối kỳ (chiếm 70%): sau khi hoàn tất xong các bài thí nghiệm, mỗi sinh viên đều phải trải qua một đợt kiểm tra cuối kỳ. Nội dung kiểm tra sẽ được chọn lựa ngẫu nhiên từ nội dung các bài thí nghiệm. Hình thức thi là vấn đáp. 3. Quy chế - Đối với phần thí nghiệm PLC, mỗi thao tác bật nguồn cung cấp cho kit TN phải được sự đồng ý của giáo viên hướng dẫn. Do đó, trước khi thực hiện các thao tác này, hãy đề nghị giáo viên hướng dẫn kiểm tra kit TN. Mỗi thao tác cần cẩn thận, có mục đích và sự hiểu biết, bất cứ một vấn đề nào không rõ ràng, HÃY hỏi giáo viên hướng dẫn. - Khi bước vào phòng TN, các sinh viên để cặp táp, giỏ xách trên giá để cặp sách, chỉ được đem vào phòng TN các dụng cụ học tập cho phép (phần 4). - Khác với giờ học lý thuyết, giờ TN sẽ không có thời gian giải lao giữa giờ. Các sinh viên muốn ra khỏi phòng TN trong giờ TN phải nộp giáo viên hướng dẫn thẻ sinh viên của mình. Mỗi lần ra khỏi phòng TN không được quá 5 phút. Nếu không có nhiệm vụ cụ thể, các sinh viên nên hạn chế ra khỏi chỗ ngồi thí nghiệm của nhóm mình. - Đầu giờ, khi nhận các thiết bị, linh kiện thí nghiệm của bài ngày hôm đó, nhóm có trách nhiệm kiểm tra số lượng, tình trạng các thiết bị, linh kiện đó. Trong quá trình thí nghiệm, nếu nhóm nào làm sai (hoặc cố tình làm sai) các hướng dẫn trong bài thí nghiệm dẫn đến hư hỏng linh kiện, dụng cụ, thiết bị của phòng thí nghiệm, cả nhóm của nhóm đó có nghĩa vụ bồi thường (bằng hiện vật) linh kiện, dụng cụ, thiết bị đã bị hư hỏng. Cuối giờ, nhóm phải hoàn trả lại phòng thí nghiệm các thiết bị, linh kiện thí nghiệm đã được cấp theo đúng chất lượng và đủ số lượng. - Tuyệt đối không được đem các linh kiện, dụng cụ, thiết bị của phòng thí nghiệm ra khỏi phòng mà không được sự cho phép của giáo viên hướng dẫn. - Tuyệt đối không hút thuốc lá và thực hiện các hành vi làm phát sinh ra lửa trong phòng thí nghiệm. - Không tụ tập nói chuyện hoặc ăn uống trong phòng thí nghiệm. 4. Dụng cụ học tập - Mỗi nhóm thí nghiệm phải tự trang bị cho nhóm các dụng cụ học tập sau: Trang 2
  5. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu • Giấy A4 báo cáo thí nghiệm. • Bút, viết, máy tính. • Quyển Hướng dẫn thí nghiệm Vi xử lý và PLC. 5. Lịch thí nghiệm Buổi 1 2 3 4 5 6 7 8 9 10 11 12 Nhóm B5 B6 B7 B8 Nhóm 1 B6 B7 B8 B5 Nhóm 2 B1 B2 B3 B4 B7 B8 B5 B6 Nhóm 3 Bài Kiểm B8 B5 B6 B7 Nhóm 4 Dự mở tra cuối trữ B5 B6 B7 B8 Nhóm 5 đầu kỳ B6 B7 B8 B5 Nhóm 6 B1 B2 B3 B4 B7 B8 B5 B6 Nhóm 7 B8 B5 B6 B7 Nhóm 8 II. Một số kiến thức cơ bản về nội dung thí nghiệm 1. Phần thí nghiệm Vi xử lý Trong phần này, sinh viên sẽ tiến hành thí nghiệm với họ vi xử lý 89C51. Kit chính thí nghiệm MPE-300 chứa các thành phần chính như sau: - Chip vi xử lý 89C51 hoạt động với tần số thạch anh 7.3728MHz, ROM trong của chip đã có sẵn chương trình quản lý kit và nạp RAM ngoài 6264. - IC chốt 74LS573 dùng để chốt 8 bit địa chỉ thấp xuất ở P0 của 89C51 ở bán kỳ máy đầu tiên khi thực hiện lệnh xuất/nhập với các địa chỉ ngoài. - Bộ nhớ ROM ngoài 2764 (8KB) lưu trữ mã lệnh một số chương trình con đã được lập trình sẵn. - Bộ nhớ RAM ngoài 6264 (8KB) lưu trữ mã lệnh chương trình thí nghiệm được lập trình và nạp bởi sinh viên. - Khối bàn phím chứa 16 phím (0÷F) được bố trí thành ma trận 4 hàng x 4 cột, kết nối trực tiếp với P1 của 89C51. - Khối chỉ thị gồm 4 LED 7 đoạn được hiển thị theo chế độ quét, do đó, tần số quét phải đủ nhanh để các LED hiển thị gần như liên tục, không bị gián đoạn. - Khối mở rộng port sử dụng PPI 8255 dùng để mở rộng các port xuất/nhập cho 89C51. a. Họ vi xử lý 8051/8951 Tập lệnh Trang 3
  6. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu NHÓM LỆNH CHUYỂN DỮ LIỆU B/ B/ No CÚ PHÁP GIẢI THÍCH No CÚ PHÁP GIẢI THÍCH MC MC 1 MOV A, Rn (A) (Rn) 1/1 15 MOV @Ri, #data ((Ri)) #data 2/1 (DPTR) #data15-0 2 MOV A, direct (A) (direct) 2/1 16 MOV DPTR, #data16 (DPH) #data15-8 3/2 (DPL) #data7-0 3 MOV A, @Ri (A) ((Ri)) 1/1 17 MOVC A, @A+DPTR (A) ((A) + (DPTR)) 1/2 4 MOV A, #data (A) #data 2/1 18 MOVC A, @A+PC (A) ((A) + (PC)) 1/2 5 MOV Rn, A (Rn) (A) 1/1 19 MOVX A, @Ri (A) ((Ri)) RAM ngoài 1/2 6 MOV Rn, direct (Rn) (direct) 2/1 20 MOVX A, @DPTR (A) ((DPTR)) RAM ngoài 1/2 7 MOV Rn, #data (Rn) #data 2/1 21 MOVX @Ri, A ((Ri)) (A) RAM ngoài 1/2 ((DPTR)) (A) RAM 8 MOV direct, A (direct) (A) 2/1 22 MOVX @DPTR, A 1/2 ngoài (SP) (SP) + 1 9 MOV direct, Rn (direct) (Rn) 2/2 23 PUSH direct 2/2 ((SP)) (direct) (direct) ((SP)) 10 MOV direct, direct (direct) (direct) 3/2 24 POP direct 2/1 (SP) (SP) – 1 11 MOV direct, @Ri (direct) ((Ri)) 2/2 25 XCH A, Rn (A) (Rn) 1/1 12 MOV direct, #data (direct) #data 3/2 26 XCH A, direct (A) (direct) 2/1 13 MOV @Ri, A ((Ri)) (A) 1/1 27 XCH A, @Ri (A) ((Ri)) 1/1 14 MOV @Ri, direct ((Ri)) (direct) 2/2 28 XCHD A, @Ri (A3-0) ((Ri3-0)) 1/1 NHÓM LỆNH TOÁN HỌC B/ B/ No CÚ PHÁP GIẢI THÍCH No CÚ PHÁP GIẢI THÍCH MC MC 1 ADD A, Rn (A) (A) + (Rn) 1/1 13 INC A (A) (A) + 1 1/1 2 ADD A, direct (A) (A) + (direct) 2/1 14 INC Rn (Rn) (Rn) + 1 1/1 3 ADD A, @Ri (A) (A) + ((Ri)) 1/1 15 INC direct (direct) (direct) + 1 2/1 4 ADD A, #data (A) (A) + #data 2/1 16 INC @Ri ((Ri)) ((Ri)) + 1 1/1 5 ADDC A, Rn (A) (A) + (C) + (Rn) 1/1 17 INC DPTR (DPTR) (DPTD) + 1 1/2 6 ADDC A, direct (A) (A) + (C) + (direct) 2/1 18 DEC A (A) (A) – 1 1/1 7 ADDC A, @Ri (A) (A) + (C) + ((Ri)) 1/1 19 DEC Rn (Rn) (Rn) – 1 1/1 8 ADDC A, #data (A) (A) + (C) + #data 2/1 20 DEC direct (direct) (direct) – 1 2/1 9 SUBB A, Rn (A) (A) – (C) – (Rn) 1/1 21 DEC @Ri ((Ri)) ((Ri)) – 1 1/1 10 SUBB A, direct (A) (A) – (C) – (direct) 2/1 22 MUL AB (B15-8), (A7-0) (A) x (B) 1/4 11 SUBB A, @Ri (A) (A) – (C) – ((Ri)) 1/1 23 DIV AB (Bdư), (Anguyên) (A) / (B) 1/4 Sửa (A) sang dạng đúng của 12 SUBB A, #data (A) (A) – (C) – #data 2/1 24 DA A số BCD (vd: nếu (A) = 5AH 1/1 thì được sửa thành 60H) Trang 4
  7. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu NHÓM LỆNH LOGIC B/ B/ No CÚ PHÁP GIẢI THÍCH No CÚ PHÁP GIẢI THÍCH MC MC 1 ANL A, Rn (A) (A) AND (Rn) 1/1 14 XRL A, direct (A) (A) XOR (direct) 2/1 2 ANL A, direct (A) (A) AND (direct) 2/1 15 XRL A, @Ri (A) (A) XOR ((Ri)) 1/1 3 ANL A, @Ri (A) (A) AND ((Ri)) 1/1 16 XRL A, #data (A) (A) XOR #data 2/1 4 ANL A, #data (A) (A) AND #data 2/1 17 XRL direct, A (direct) (direct) XOR (A) 2/1 5 ANL direct, A (direct) (direct) AND (A) 2/1 18 XRL direct, #data (direct) (direct) XOR #data 3/2 6 ANL direct, #data (direct) (direct) AND #data 3/2 19 CLR A (A) 0 1/1 7 ORL A, Rn (A) (A) OR (Rn) 1/1 20 CPL A (A) (NOT A) 1/1 8 ORL A, direct (A) (A) OR (direct) 2/1 21 RL A 1/1 9 ORL A, @Ri (A) (A) OR ((Ri)) 1/1 22 RLC A 1/1 10 ORL A, #data (A) (A) OR #data 2/1 23 RR A 1/1 11 ORL direct, A (direct) (direct) OR (A) 2/1 24 RRC A 1/1 12 ORL direct, #data (direct) (direct) OR #data 3/2 25 SWAP A (A3-0) (A7-4) 1/1 13 XRL A, Rn (A) (A) XOR (Rn) 1/1 NHÓM LỆNH RẼ NHÁNH B/ B/ No CÚ PHÁP GIẢI THÍCH No CÚ PHÁP GIẢI THÍCH MC MC (PC) (PC) + 2 (PC) (PC) + 3 (SP) (SP) + 1 (SP) (SP) + 1 ((SP)) (PC7-0) ((SP)) (PC7-0) 1 ACALL addr11 2/2 7 LCALL add16 3/2 (SP) (SP) + 1 (SP) (SP) + 1 ((SP)) (PC15-8) ((SP)) (PC15-8) (PC10-0) add10-0 (PC) add15-0 (PC) (PC) + 2 2 SJMP rel 2/2 8 JMP @A+DPTR (PC) (A) + (DPTR) 1/2 (PC) (PC) + rel (PC15-8) ((SP)) (PC) (PC) + 2 (SP) (SP) – 1 3 RET 1/2 9 JZ rel IF (A) = 0 THEN 2/2 (PC7-0) ((SP)) (PC) (PC) + rel (SP) (SP) – 1 (PC15-8) ((SP)) (PC) (PC) + 2 (SP) (SP) – 1 4 RETI 1/2 10 JNZ rel IF (A) ≠ 0 THEN 2/2 (PC7-0) ((SP)) (PC) (PC) + rel (SP) (SP) – 1 (PC) (PC) + 2 (PC) (PC) + 2 5 AJMP add11 2/2 11 JC rel IF (C) = 1 THEN 2/2 (PC10-0) add10-0 (PC) (PC) + rel (PC) (PC) + 2 6 LJMP add16 (PC) add15-0 3/2 12 JNC rel IF (C) = 0 THEN 2/2 (PC) (PC) + rel (PC) (PC) + 3 (PC) (PC) + 3 13 JB bit, rel 3/2 18 CJNE Rn, #data, rel 3/2 IF (bit) = 1 THEN IF #data < (Rn) THEN Trang 5
  8. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu (PC) (PC) + rel (PC) (PC) + rel (C) 0 IF #data > (Rn) THEN (PC) (PC) + rel (C) 1 (PC) (PC) + 3 IF #data < ((Ri)) THEN (PC) (PC) + 3 (PC) (PC) + rel 14 JNB bit, rel IF (bit) = 0 THEN 3/2 19 CJNE @Ri, #data, rel (C) 0 3/2 (PC) (PC) + rel IF #data > ((Ri)) THEN (PC) (PC) + rel (C) 1 (PC) (PC) + 2 (PC) (PC) + 3 (Rn) (Rn) – 1 15 JBC bit, rel IF (bit) = 1 THEN (bit) = 0 3/2 20 DJNZ Rn, rel 2/2 IF (Rn) ≠ 0 THEN (PC) (PC) + rel (PC) (PC) + rel (PC) (PC) + 3 IF (direct) < (A) THEN (PC) (PC) + 3 (PC) (PC) + rel (direct) (direct) – 1 16 CJNE A, direct, rel (C) 0 3/2 21 DJNZ direct, rel 3/2 IF (direct) ≠ 0 THEN IF (direct) > (A) THEN (PC) (PC) + rel (PC) (PC) + rel (C) 1 (PC) (PC) + 3 IF #data < (A) THEN (PC) (PC) + rel 17 CJNE A, #data, rel (C) 0 3/2 22 NOP (PC) (PC) + 1 1/1 IF #data > (A) THEN (PC) (PC) + rel (C) 1 NHÓM LỆNH LIÊN QUAN ĐẾN BIT B/ B/ No CÚ PHÁP GIẢI THÍCH No CÚ PHÁP GIẢI THÍCH MC MC 1 CLR C (C) 0 1/1 7 ANL C, bit (C) (C) AND (bit) 2/2 2 CLR bit (bit) 0 2/1 8 ANL C, /bit (C) (C) AND (NOT bit) 2/2 3 SETB C (C) 1 1/1 9 ORL C, bit (C) (C) OR (bit) 2/2 4 SETB bit (bit) 1 2/1 10 ORL C, /bit (C) (C) OR (NOT bit) 2/2 5 CPL C (C) (NOT C) 1/1 11 MOV C, bit (C) (bit) 2/1 6 CPL bit (bit) (NOT bit) 2/1 12 MOV bit, C (bit) (C) 2/2 Ghi chú: (X) : nội dung của X ((X)) : nội dung của ô nhớ có địa chỉ là nội dung của X (X là con trỏ) direct : địa chỉ trực tiếp; Rn : n = 0 ÷ 7; Ri : i = 1,2 rel: địa chỉ tương đối (trình biên dịch sẽ tính rel từ địa chỉ cần nhảy đến) B/MC : Bytes / Machine Cycles Trang 6
  9. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu Các vùng nhớ dữ liệu Địa chỉ byte Địa chỉ bit (Hex) Địa chỉ byte Địa chỉ bit (Hex) Tên 7FH FFH F0H F7 F6 F5 F4 F3 F2 F1 F0 B E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC Vùng RAM đa dụng D7 D6 D5 D4 D3 D2 D0 _ D0H PSW CY AC F0 RS1 RS0 OV P BC BB BA B9 B8 _ _ _ 30H B8H IP PS PT1 PX1 PT0 PX0 2FH 7F 7E 7D 7C 7B 7A 79 78 B7 B6 B5 B4 B3 B2 B1 B0 2EH 77 76 75 74 73 72 71 70 B0H P3 RD WR T1 T0 INT1 INT0 TXD RXD 2DH 6F 6E 6D 6C 6B 6A 69 68 AF AC AB AA A9 A8 _ _ 2CH 67 66 65 64 63 62 61 60 A8H IE EA ES ET1 EX1 ET0 EX0 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 A0H A7 A6 A5 A4 A3 A2 A1 A0 P2 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 99H không được địa chỉ hóa bit SBUF 9F 9E 9D 9C 9B 9A 99 98 27H 3F 3E 3D 3C 3B 3A 39 38 98H SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2C 2B 2A 29 28 90H 97 96 95 94 93 92 91 90 P1 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 8DH không được địa chỉ hóa bit TH1 22H 17 16 15 14 13 12 11 10 8CH không được địa chỉ hóa bit TH0 21H 0F 0E 0D 0C 0B 0A 09 08 8BH không được địa chỉ hóa bit TL1 20H 07 06 05 04 03 02 01 00 8AH không được địa chỉ hóa bit TL0 không được địa chỉ hóa bit 1FH 89H TMOD GATE C/T M1 M0 GATE C/T M1 M0 Bank 3 8F 8E 8D 8C 8B 8A 89 88 18H 88H TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 không được địa chỉ hóa bit 17H 87H PCON SMOD – – – GF1 GF0 PD IDL Bank 2 10H DPTR 0FH 83H không được địa chỉ hóa bit DPH Bank 1 08H 82H không được địa chỉ hóa bit DPL 07H 81H không được địa chỉ hóa bit SP Bank thanh ghi 0 00H (Mặc định cho R0 - R7) 80H 87 86 85 84 83 82 81 80 P0 RAM nội Các thanh ghi chức năng đặc biệt (SFR) Trang 7
  10. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu Sơ đồ chân IC VCC = 5V 40 VCC 39 P0.0 / AD0 33pF 19 38 X1 P0.1 / AD1 37 P0.2 / AD2 12MHz 36 P0.3 / AD3 33pF 18 35 X2 P0.4 / AD4 34 P0.5 / AD5 0 33 P0.6 / AD6 29 32 PSEN P0.7 / AD7 30 ALE 1 P1.0 31 2 VCC EA P1.1 3 P1.2 8051 / 8951 4 P1.3 5 100 10uF P1.4 9 6 RST P1.5 8.2K 7 P1.6 8 P1.7 0 10 21 P3.0 / RXD P2.0 / A8 11 22 P3.1 / TXD P2.1 / A9 12 23 P3.2 / INT0 P2.2 / A10 13 24 P3.3 / INT1 P2.3 / A11 14 25 P3.4 / T0 P2.4 / A12 15 26 P3.5 / T1 P2.5 / A13 16 27 P3.6 / WR P2.6 / A14 17 28 P3.7 / RD P2.7 / A15 GND 20 0 b. Mở rộng port xuất/nhập dùng PPI 8255 - Họ 8051 có 4 port giao tiếp ngoại vi là P0, P1, P2 và P3. Khi sử dụng bộ nhớ ngoài thì P0 đảm nhận vai trò là bus dữ liệu và bus địa chỉ thấp, P2 đảm nhận vai trò là bus địa chỉ cao. Một số chân của P3 có thể được dùng vào mục đích đặc biệt như TXD, RXD, WR, RD, ngắt, … Do đó chỉ còn lại P1 để giao tiếp với các thiết bị ngoại vi. Trong trường hợp cần thêm các ngõ vào/ra để giao tiếp ngoại vi thì phải mở rộng port. PPI 8255 là một IC chuyên dùng cho mục đích này. Trang 8
  11. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu - PPI 8255 bao gồm 3 port có thể đóng vai trò như port xuất hoặc port nhập. Khi ở chế độ xuất, dữ liệu từ data bus được đưa tới và chốt ở port cần xuất. Khi ở chế độ nhập, dữ liệu từ port đang kích hoạt sẽ được đọc và đưa ngược lại vào data bus. Ngoài ra, 8255 còn có một thanh ghi điều khiển để xác lập chế độ hoạt động (xuất hoặc nhập) cho các port. Khi cần mở rộng port cho 8051/8951 thì data bus được nối với P0, các port A,B và C được nối với ngoại vi. Các ngõ vào điều khiển: • /CS: tín hiệu chọn chip (tích cực thấp) • /WR: tín hiệu cho phép xuất (nối vào chân /WR của 8051/8951) • /RD: tín hiệu cho phép nhập (nối vào chân /RD của 8051/8951) • RESET: reset 8255 (nối với chân RST của 8051/8951) • A1, A0: chọn port làm việc A1 A0 Chọn 0 0 Port A 0 1 Port B 1 0 Port C 1 1 Thanh ghi điều khiển - Trước khi sử dụng 8255 thì phải xác lập chế độ hoạt động cho nó thông qua việc xác lập giá trị của thanh ghi điều khiển. Thanh ghi điều khiển gồm 8 bit: Trang 9
  12. Hướng dẫn thí nghiệm VXL & PLC Bài mở đầu D7 D6 D5 D4 D3 D2 D1 D0 Mode nhóm A: Mode nhóm B: - 00: mode 0 0: PA out 0: PCH out 0: PB out 0: PCL out 1 - 0: mode 0 - 01: mode 1 1: PA in 1: PCH in 1: PB in 1: PCL in - 1: mode 1 - 1X: mode 2 Trong đó: Nhóm A gồm PA và PCH (PC4÷PC7) Nhóm B gồm PB và PCL (PC0÷PC3) Đối với mục đích mở rộng port xuất nhập thông thường thì mode 0 (mode xuất/nhập cơ bản) thường được sử dụng. 2. Phần thí nghiệm PLC (sẽ được trình bày trên lớp học) Trang 10
  13. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 Bài 1 MÔ PHỎNG HỌ VI XỬ LÝ 8051 TRÊN MÁY VI TÍNH I. Kiến thức cơ bản 1. Phần mềm Simulator 2003 Thông thường, sau khi viết xong một chương trình bằng Assembler cho vi xử lý, trước khi nạp chương trình vào ROM/RAM để thực thi trên thực tế thì chương trình đó cần phải được kiểm tra, đánh giá tính đúng đắn, độ tin cậy thông qua hình thức mô phỏng trên máy vi tính. Một trong những phần mềm mô phỏng vi xử lý thông dụng phải kể đến Simulator 2003. Simulator 2003 là phần mềm chuyên dùng để mô phỏng cho các họ vi xử lý 8031/8032/87C51/87C52/89C51/89C52/8051/8052. Simulator 2003 có cách sử dụng rất dễ dàng và thân thiện. Một số đặc tính nổi bật của Simulator 2003 như sau: - Cho phép giám sát động và thiết lập động nội dung bất kỳ một vùng nhớ nào ở RAM trong, RAM ngoài và các thanh ghi chức năng đặc biệt dưới dạng số hex, nhị phân và thập phân. - Cho phép giả lập đầy đủ các ngắt. - Dễ dàng dò lỗi chương trình thông qua các chức năng như mô phỏng theo từng bước, theo từng khối, theo thời gian… - Tốc độ mô phỏng có thể điều chỉnh được. - Cho phép biên dịch ngược từ mã hex hoặc bin (mã máy) sang mã Assembler. Trang 12
  14. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 Giao diện chương trình Simulator 2003 2. Phần mềm Crimson Editor Trước khi mô phỏng, chương trình vi xử lý phải được lập trình thông qua phần mềm Crimson Editor. Đây là phần mềm tạo các file văn bản hỗ trợ rất nhiều các ngôn ngữ lập trình khác nhau như Assembler, Pascal, C, C++, Visual Basic, MatLAB,… Khi viết chương trình Assembler với Crimson Editor, tập tin chương trình phải được lưu dưới dạng ‘*.a51’. Đây là một tập tin văn bản thuần túy, để có thể sử dụng chương trình này với Simulator 2003, tập tin này phải được biên dịch sang tập tin ngôn ngữ máy ‘*.bin’ thông qua chức năng biên dịch kèm theo của Crimson Editor. Trang 13
  15. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 Giao diện chương trình Crimson Editor II. Thí nghiệm 1. Mô phỏng với các lệnh chuyển dữ liệu a. Sử dụng Crimson Editor Vào File → New để tạo tập tin mới. - Vào File → Save As… để lưu tập tin mới dưới tên Bai11ab.a51 ở Desktop. - - Nhập nội dung sau vào cửa sổ soạn thảo của Bai11ab.a51: ORG 0000H MOV 20H, P0 ; (1) MOV R1, #21H ; (2) DEC 01H ; (3) MOV A, @R1 ; (4) CPL A ; (5) ANL A, #0FH ; (6) MOV 21H, @R1 ; (7) Trang 14
  16. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 ADD A, 21H ; (8) MOV B, #2 ; (9) DIV AB ; (10) MOV P1, A ; (11) SJMP $ ; (12) END Vào Tools → Translate A51 to BIN để biên dịch chương trình trên sang dạng tập tin - ngôn ngữ máy Bai11ab.bin (ở Desktop). Quan sát kết quả biên dịch ở cửa sổ Output (bên dưới cửa sổ soạn thảo), nếu nhìn thấy dòng “ASSEMBLY COMPLETE, NO ERRORS FOUND” chứng tỏ việc biên dịch đã thành công. b. Sử dụng Simulator 2003 (Nếu đang tồn tại một tập tin đang mở thì vào File → Close File để đóng tập tin). - Vào File → Open File và chọn mở tập tin Bai11ab.bin ở Desktop. - Vào Micsellaneous → General Write, trong danh sách Type chọn SFR Registers, trong - danh sách Name/Address chọn P0 (hoặc cũng có thể double click vào giá trị P0 trên cửa sổ SFRs window), nhập giá trị 99 vào ô Decimal để thiết lập giá trị 99 thập phân cho P0. Vào Execution → Start/Stop Execution (hoặc nhấn nút lệnh lệnh Start Execution - ) để bắt đầu mô phỏng chương trình. [1] Vào Miscellaneous → General Read (hoặc double click vào giá trị P1 trên cửa số - SFRs window), cho biết giá trị xuất ra ở P1 (dưới dạng thập phân) là bao nhiêu? Vào Execution → Start/Stop Execution để dừng mô phỏng. Vào Execution → Reset - Execution (hoặc nhấn nút lệnh ) để reset vi xử lý. - Thiết lập lại giá trị 99 thập phân cho P0. Vào Debugging → Single Step (hoặc nhấn F2) để thực thi chương trình theo từng dòng - lệnh một. Quan sát cửa sổ Execution Status để biết dòng lệnh kế tiếp sẽ được thực thi. - Trên cửa sổ Active Watch, click nút lệnh Add items để mở cửa sổ Add to Active Watch, chọn và click nút Add để bổ sung các vùng nhớ sau vào cửa sổ Active Watch: P0, P1, ACC, B (SFR Registers) - 20H, 21H, R1(Internal RAM) [2] - Điền giá trị (thập phân) các vùng nhớ sau khi từng dòng lệnh một được thực hiện xong vào bảng sau: Trang 15
  17. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 Lệnh PC (Hex) P0 P1 20H 21H ACC B R1 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) [3] - Nếu không có dòng lệnh (12) thì kết quả chương trình trên có khác đi không? [4] - Dòng lệnh (9) gán giá trị 2 thập phân cho thanh ghi B. Cuối chương trình (dòng lệnh (12)), giá trị thanh ghi B có thay đổi không? Tại sao? c. Ứng dụng [5] - Sử dụng Crimson Editor soạn thảo chương trình Bai11c.a51 ở Desktop với nội dung sau: nhập liên tục giá trị từ P1, kiểm tra xem nếu giá trị này lớn hơn 127 thì chia đôi và xuất kết quả (phần nguyên) ra P2. Trong trường hợp ngược lại thì nhân đôi giá trị này và cũng xuất kết quả ra P2. - Biên dịch chương trình trên sang mã máy và mô phỏng với Simulator 2003. 2. Mô phỏng với Timer a. Thí nghiệm - Sử dụng Crimson Editor soạn thảo chương trình sau với tên Bai12a.a51 ở Desktop: ORG 0000H MOV TMOD , #01H ; (1) MOV A, #10000000B ; (2) LOOP: RL A ; (3) MOV P1, A ; (4) MOV R1, P0 ; (5) ACALL DELAY ; (6) SJMP LOOP ; (7) Trang 16
  18. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 DELAY: MOV TH0, #HIGH(-1000) ; (8) MOV TL0, #LOW(-1000) ; (9) SETB TR0 ; (10) JNB TF0, $ ; (11) CLR TR0 ; (12) CLR TF0 ; (13) DJNZ R1, DELAY ; (14) RET ; (15) END - Biên dịch chương trình trên sang mã máy. Mở file bai12a.bin với Simulator 2003. Vào Options → Simulation Settings. Trong cửa sổ Simulator2003 Settings, chọn Tab - Simulation. Thay đổi giá trị Batch Instructions Count thành 100, trong danh sách Refresh Type chọn Refresh after each tick để tăng tốc độ mô phỏng và hiển thị. - Chạy mô phỏng chương trình. [1] - Thay đổi giá trị đặt cho P0 (chẳng hạn như 10, 50, 100, 200) và quan sát kết quả ở P1, từ đó giải thích ngắn gọn mục đích của chương trình trên. [2] - Giải thích dòng lệnh (1). [3] - Với thạch anh 12Mhz, dòng lệnh (11) sẽ được thực thi trong khoảng thời gian bao nhiêu? Từ đó, một cách gần chính xác, suy ra dòng lệnh (6) sẽ được thực thi trong bao nhiêu lâu nếu P0 nhận giá trị là 20. - Dừng mô phỏng và reset chương trình. Thiết lập giá trị 20 cho P0. Vào Disassembly → Disassemble Code. Trong cửa sổ Disassembly Window, click vào - cột Brk (cột đầu tiên) 2 hàng lệnh ACALL 0000EH (lệnh (6)) và SJMP 00005H (lệnh (7)) để thiết lập vị trí Break Point cho 2 hàng lệnh này. Khi mô phỏng với lệnh Start Execution , chương trình mô phỏng sẽ tạm dừng ở đầu dòng lệnh (6) cho đến khi nhận được lệnh Start Execution một lần nữa. Sau khi thực hiện xong lệnh (6), chương trình tiếp tục tạm dừng ở đầu dòng lệnh (7). [4] - Quan sát cửa sổ Execution Status để biết được thời điểm tạm dừng ở 2 đầu dòng lệnh này, từ đó cho biết chính xác dòng lệnh (6) đã được thực thi trong khoảng thời gian bao nhiêu lâu. Trang 17
  19. Hướng dẫn Thí nghiệm Vi xử lý & PLC Bài 1 [5] Giá trị thực tế này và giá trị ước lượng ở [2] có khác nhau không? Độ chênh lệch đó là - bao nhiêu và tại sao lại có sự chênh lệch đó. b. Ứng dụng [6] - Viết chương trình Bai12b.a51 ở Desktop thực hiện nhiệm vụ sau: liên tục kiểm tra chân P1.7, nếu P1.7 = 1 thì xuất ra ở P1.0 xung vuông có tần số 2Hz; nếu P1.7 = 0 thì thiết lập mức 0 cho P1.0 - Biên dịch chương trình trên sang mã máy và mô phỏng với Simulator 2003. 3. Mô phỏng với ngắt a. Thí nghiệm - Sử dụng Crimson Editor soạn thảo chương trình sau với tên Bai13a.a51 ở Desktop: ORG 0000H LJMP MAIN ; (1) ORG 0003H LJMP ISR_EX0 ; (2) ORG 000BH LJMP ISR_T0 ; (3) ORG 0030H MAIN: MOV TMOD, #01H ; (4) MOV IE, #81H ; (5) SETB IT0 ; (6) MOV A, #01H ; (7) MOV P1, #0 ; (8) SJMP $ ; (9) ISR_EX0: CPL C ; (10) CPL ET0 ; (11) JNC EXIT_EX0 ; (12) MOV R7, #5 ; (13) Trang 18
Đồng bộ tài khoản