intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Thí nghiệm vi xử lý - Bài 1

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:22

113
lượt xem
22
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

THIẾT BỊ CHÍNH μPTS-31 (MICROPROCESSOR TRAINNING SYSTEM - 31) MỤC ĐÍCH THÍ NGHIỆM Giúp sinh viên bằng thực nghiệm khảo sát các vấn đề chính sau đây : - Giao tiếp với máy tính thông qua khe cắm mở rộng (open slot). - Dùng 8255A điều khiển nhập / xuất dữ liệu. - THIẾT BỊ SỬ DỤNG 1. Bộ thí nghiệm μPTS-31. 2. Máy vi tính.

Chủ đề:
Lưu

Nội dung Text: Thí nghiệm vi xử lý - Bài 1

  1. CÁC BÀI THÍ NGHIỆM VÀ ỨNG DỤNG MICROCOMPUTER Phòng thí nghiệm Vi xử lý TRUYỀN SỐ Đ/K MA TRẬN LED LIỆU VÀ BÀN PHÍM μPM-302 μPM-303 PC BUS-2 COM2 CHUYỂN ĐỔI AD CHUYỂN ĐỔI DA μPM-304 μPM-305 THIẾT BỊ CHÍNH Trang 1 PART B XỬ LÝ PART A TRUYỀN SỐ ĐIỀU KHIỂN ĐỘNG I/O CONTROL LIỆU RS-232C CƠ BƯỜC μPM-301 μPM-306 PART PART C D CÁC BỘ THÍ NGHIỆM ĐIỀU KHIỂN BỘ NẠP VÀ MÔ VỀ HỆ THỐNG VI XỬ LÝ ĐỘNG CƠ DC PHỎNG ROM μPM-307 μPM-308 TEST BOARD ỨNG DỤNG QUANG BÁO SƠ ĐỒ KHỐI CỦA THIẾT BỊ THÍ NGHIỆM VI Tài liệu thí nghiệm Vi xử lý
  2. Phòng thí nghiệm Vi xử lý Tài liệu thí nghiệm Vi xử lý BÀI 1: THIẾT BỊ CHÍNH μPTS-31 (MICROPROCESSOR TRAINNING SYSTEM - 31) MỤC ĐÍCH THÍ NGHIỆM Giúp sinh viên bằng thực nghiệm khảo sát các vấn đề chính sau đây : - Giao tiếp với máy tính thông qua khe cắm mở rộng (open slot). - Dùng 8255A điều khiển nhập / xuất dữ liệu. - THIẾT BỊ SỬ DỤNG 1. Bộ thí nghiệm μPTS-31. 2. Máy vi tính. PHẦN I : CƠ SỞ LÝ THUYẾT I. GIỚI THIỆU Máy vi tính chính là một hệ thống vi xử lý lớn và hoàn hảo, trong máy tính đã cung cấp các khe cắm mở rộng trên đó có đầy đủ các bus địa chỉ (address bus), bus dữ liệu (data bus) và bus điều khiển (control bus) như một hệ thống vi xử lý thông thường. Ngoài ra các hệ thống giao tiếp của máy tính như màn hình, bàn phím, chuột và các phần mềm giúp ta dễ dàng ghi và thử giải thuật cho một đoạn chương trình mong muốn. Sau đó từ giải thuật này ta chuyển sang ngôn ngữ cho từng loại vi xử lý riêng. Ngoài ra nó còn dễ dàng giúp cho người nghiên cứu về Vi xử lý thấy được bằng thực tế các vấn đề khi xây dựng và thiết kế các hệ thống vi xử lý. Đặc điểm của thiết bị chính μPTS-31 nó tương thích với các máy tính IBM PC. Ngôn ngữ lập trình có thể dùng các ngôn ngữ thông dụng, dễ học như Pascal, Assembly, QBasic, C++... Ngoài ra các bộ đệm, bộ phối hợp cho phép điều khiển trực tiếp Relay, Led, ma trận LED, bàn phím, loa, động cơ, ... Các thiết bị có trong bộ thí nghiệm vi xử lý: – Các mạch giao tiếp I/O độc lập cho phép nối với các hệ thống khác. – Trên thiết bị chính có 1 TEST BOARD để dễ dàng trong khi thí nghiệm và thiết kế. – Sử dụng các khối Module đi kèm để thực hành và thí nghiệm. – Các phần chương trình đi kèm viết bằng hợp ngữ (Assembly) cho một số ứng dụng minh họa như truyền dữ liệu, quang báo.... II. ĐẶC TÍNH KỸ THUẬT CỦA BỘ THIẾT BỊ CHÍNH 1. Hệ thống μPTS-31 tương thích được với các hệ thống máy tính IBM PC . 2. Cho phép ghép nối với cổng RS-232C của máy để thực hiện các bài thí nghiệm về truyền số liệu qua cổng COM. 3. Có bộ đệm dữ liệu và giải mã địa chỉ để có thể giao tiếp với máy tính qua khe cắm mở rộng. Trang 2
  3. Phòng thí nghiệm Vi xử lý Tài liệu thí nghiệm Vi xử lý 4. Có các bộ đệm Nhập / Xuất (I/O) để có thể cho phép điều khiển trực tiếp relay, LED, loa.... – Cho phép xuất ra các Port A, B, C của 8255A để cho phép nối μPTS-31 với các thiết bị ngoài trong các bài thí nghiệm và ứng dụng. – Có các ngõ ra relay. – Có ngõ ra loa để thí nghiệm điều khiển tương tự hay cảnh báo. – LED 8 bit để hiển thị dữ liệu khi xuất từ máy tính ra thiết bị chính μPTS-31. 5. Có các linh kiện I/O lập trình được, đưa ra các chốt cắm giúp cho người sử dụng có thể kết nối với các thiết bị ngoài khác. 6. Ngoài ra để phục vụ cho các bài thí nghiệm trên bộ μPTS-31 còn có các chốt nguồn cung cấp có các mức như sau: ♦ +5V/ 2A: Do đa số các bài thí nghiệm và linh kiện sử dụng là TTL cho nên cần nguồn +5V có dòng lớn. ♦ -5V/0,5A: Ta chỉ cần 0,5A bởi vì nó chỉ sử dụng trong 1 số ít trường hợp. ♦ +12V/0,5A. ♦ -12V/0,5A. III. CARD GIAO TIẾP PCBUS-2 Để giao tiếp và điều khiển từ máy tính tới các thiết bị khác mà cụ thể trong bộ thí nghiệm này là một CARD giao tiếp lập trình được để điều khiển thiết bị chính như màn hình, ổ đĩa, chuột... và để điều khiển được 1 số lượng lớn thiết bị, đồng thời đáp ứng được các chương trình ứng dụng của phần thí nghiệm, thiết bị μPTS-31 dùng phương pháp ghép nối qua khe cắm mở rộng của máy tính. Do chỉ cần sử dụng đường dữ liệu 8 bit cho nên bộ μPTS-31 dùng khe cắm ISA 8 bit. Thiết bị μPTS-31 chọn vùng địa chỉ còn trống từ 300h tới 31Fh sử dụng cho không gian địa chỉ của Port I/O. Nếu trong một số máy tính có sự trùng lắp địa chỉ thì ta vẫn có thể dùng các chuyển mạch DIP SW để dời sang vùng địa chỉ khác. CARD PCBUS – 2 được thiết kế như sau: – Đầu tiên để giải mã địa chỉ cho Card hay nói khác đi là cho thiết bị μPTS- 31, ta dùng phương pháp giải mã bằng cách dùng công tắc để chọn. Trong mạch dùng một bộ so sánh 8 bit 74 LS688, khi các địa chỉ từ A5 tới A12 tương ứng với giá trị trên các đường của DIP SW thì ở chân 19 của U2 sẽ tạo ra mức THẤP. Chân này sẽ là đường tín hiệu chọn thiết bị chính ( CS ). vị trí cho các công tắc trên DIP SW được ghi trên bảng sau: Bảng 1.1: Địa chỉ A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 Ạ 5 A4 A3 A2 A1 A0 DIP SW D7 D6 D5 D4 D3 D2 D1 D0 0300h 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 031Fh 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 Từ đó ta thấy với địa chỉ đầu là 300h tức khi đó các giá trị của các đường địa chỉ không dùng để chọn (từ A 4 tới A 0) sẽ là 00000b và tại địa chỉ cuối tức là (từ A4 tới A 0) sẽ là 11111b từ bảng ta có giá trị DIP SW là D4 = D3 = 1 còn các giá trị còn lại bằng 0. Các đường dữ liệu được đệm nhờ 74LS245 để bảo vệ các đường dữ liệu của máy tính và tránh các trường hợp xung đột. Chân DIR của 74LS245 cho phép chọn hướng truyền dữ liệu: dữ liệu sẽ đi từ A qua B khi DIR = 1 và từ B qua A khi DIR = 0. Đường IOR được dùng để điều khiển hướng truyền dữ liệu. Trong mạch đường DIR Trang 3
  4. Phòng thí nghiệm Vi xử lý Tài liệu thí nghiệm Vi xử lý của U1 sẽ được nối vào đường IOR của bus hệ thống. Các đường dữ liệu từ bus dữ liệu sẽ nối vào A1 tới A8 của 74LS245. Các đường dữ liệu ra sẽ đưa ra ổ nối DB25M (P1) gắn trên vỏ CPU của máy tính. Nhờ đó trong chu kỳ đọc I/O Port thì IOR xuống 0 do đó dữ liệu sẽ truyền từ ngoài vào máy tính và ngược lại. Các đường địa chỉ thấp từ A0 tới A4 đưa vào thiết bị chính để giải mã xác định chính xác linh kiện nào được chọn trên thiết bị chính. Đồng thời các đường tín hiệu điều khiển IOR , IOW , AEN, CLK và RESET DRV là các tín hiệu cần thiết cho thí nghiệm sẽ được đưa ra ổ nối DB25M (P1) gắn trên vỏ CPU để khi thao tác ta không phải tháo lắp vỏ máy. Việc kết nối các đường Bus hệ thống với ổ DB25M (P1) thông qua bộ đệm công suất lớn (dùng họ TTL 74LS07) nhằm tránh trường hợp quá tải cho đường bus hệ thống. Các đường trên khe cắm mở rộng tương ứng với các đường trên ổ DP25M (P1): Bảng 1.2: Bảng chân ổ ra DB-25 tương ứng trên khe cắm mở rộng SỐ THỨ TỰ Ổ RA 25 PIN (DB25M P1) KHE CẮM MỞ RỘNG CHÂN SỐ CHỨC NĂNG CHÂN SỐ CHỨC NĂNG 1 1 D0 A9 D0 2 2 D2 A7 D2 3 3 D4 A5 D4 4 4 D6 A3 D6 5 5 +5V B3,B29 +5V 6 6 +12V B9 +12V 7 7 -12V B7 -12V 8 8 RESET DRV B2 RESET 9 9 /IOW B13 /IOW 10 10 CLOCK A20 A11 11 11 A3 A28 A3 12 12 A1 A 30 A1 13 13 /CS ADD(300H- 31FH) 14 14 D1 A8 D1 15 15 D3 A6 D3 16 16 D5 A4 D5 17 17 D7 A2 D7 18 18 GND B1,B10 GND 19 19 GND B31 GND 20 20 -5V B5 -5V 21 21 AEN A11 AEN 22 22 /IOR B14 /IOR 23 23 A4 A27 A4 24 24 A2 A29 A2 25 25 A0 A31 A0 Trang 4
  5. CAÙC CHAÂN TREÂN SLOT A9 D0 B1 A1 2 18 A8 D1 B2 A2 3 17 A7 D2 B3 A3 4 16 A6 D3 B4 A4 5 15 A5 D4 B5 A5 6 14 A4 D5 B6 A6 7 13 A3 D6 B7 A7 8 12 A2 D7 B8 A8 D0D1D2D3D4D5D6D7 CAÙC CHAÂN TREÂN SLOT 9 11 A26 CS P=Q P0 G 2 19 19 A25 B14 P1 DIR IOR 4 1 A24 P2 6 A23 P3 U1 8 A22 P4 11 A21 P5 13 Phòng thí nghiệm Vi xử lý A20 CS 74LS245 P6 A5A6A7A8A9 A11 15 1 2 A19 P7 A10 A12 17 D0 P1 1 SL0 D1 CAÙC CHAÂN TREÂN SLOT U3A Q0 7407 3 14 SL1 D2 Q1 5 2 SL2 A31 A0 D3 Q2 A0 7 3 4 15 SL3 D4 PC INTERFACE Q3 9 3 SL4 D5 Q4 12 16 SL5 D6 U3B Q5 7407 14 4 D7 SL6 Q6 16 17 SL7 A30 A1 Q7 A1 18 5 6 5 18 G 1 6 AEN U3C 7407 19 U2 7 +5V +12V-12V A29 A2 A2 -5V 9 8 20 RESET-DRV 8 AEN 74LS688 21 Trang 5 IOW U3D 7407 9 IOR 22 A28 A3 A3 11 10 10 A4 23 A3 11 A2 U3E 7407 24 Card giao tiếp PC BUS-2. A1 12 SL0 A27 A4 A0 SL0 A4 1 16 13 12 25 SL1 SL1 CS 2 15 13 SL2 SL2 3 14 SL3 SL3 U3F 7407 4 13 +5V SL4 SL4 5 12 SL5 SL5 B14 IOR IOR 6 11 1 2 SL6 SL6 7 10 SL7 SL7 8 9 U4A 7407 S1 R1 B13 IOW 3 4 IOW 10K x 8 SW DIP-8 U4B 7407 A11 AEN 5 6 AEN U4C 7407 A11 B2 RESET-DRV 9 8 RESET-DRV U4D 7407 Tài liệu thí nghiệm Vi xử lý
  6. Phòng thí nghiệm Vi xử lý Tài liệu thí nghiệm Vi xử lý IV. BỘ ĐỆM DỮ LIỆU VÀ GIẢI MÃ LỆNH Phần này dùng để đệm dữ liệu cho các linh kiện, các Port và đặc biệt dùng để giải mã địa chỉ ra thành từng đường địa chỉ riêng biệt để có thể chọn chính xác địa chỉ từng Port I/O và cho từng linh kiện. Một ổ DB25M (CON1) có các chân tương ứng với ổ P1 được dùng để kết nối ổ DB25M (P1) từ Card PCBUS-2 đến thiết bị μPTS 31. Vi mạch đệm dữ liệu I/O (74LS245 - U5) dùng đệm các đường dữ liệu D0 – D7 thông qua chân điều khiển CS (tức là nó có địa chỉ từ 300h tới 31Fh). Chân điều khiển IOR điều khiển hướng truyền dữ liệu A → B hay B → A nghĩa là trong chu kỳ bus đọc Port I/O thì IOR sẽ xuống 0 làm cho tín hiệu đi từ B → A và khi ghi thì IOR sẽ lên 1 làm cho dữ liệu sẽ đi từ A → B. Vi mạch 74LS07 là loại cực thu để hở dùng các điện trở nối lên +5V làm điện trở kéo lên (Pull up) tại ngõ ra U3 và U4 cho các đường địa chỉ A0 – A4, CLK và các đường điều khiển. Các đường này qua bộ đệm lệnh và địa chỉ U6 (74LS245). Do các đường địa chỉ và lệnh chỉ có thể xuất ra từ máy tính do đó DIR của U6 được chọn cố định hướng dữ liệu từ B → A (DIR = 0) ta cũng có thể chọn hướng dữ liệu là từ A → B. Tuy nhiên để dễ dàng trong công việc thiết kế mạch in ta chọn từ B → A và DIR = GND = 0. Các đường A3 ,A4 và CS được dùng giải mã địa chỉ cho các giá trị địa chỉ : CS1 = 300h → 307h CS2 = 308h → 30Fh CS3 = 310h → 31Fh Ở đây ta dùng cổng OR tức là ngõ ra chỉ bằng 0 khi cả 2 ngõ vào bằng 0 cho nên ngõ ra U8C = 0 khi A3 = 0 và chân 10 của nó bằng 0 tức là ngõ ra U8A = 0 mà ngõ ra U8A = 0 khi CS = 0 và A4 = 0 . CS = 0 khi địa chỉ nằm trong vùng 300h → 31Fh. Từ đó ta có địa chỉ đầu tiên cho CS1 khi A2, A1, A0 đều bằng 0 và địa chỉ cuối cùng của CS1 là 307h. Bảng 1.3: Giải mã địa chỉ chân CS1 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 300h 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 307h Tuỳ ý Cổng OR Tuỳ ý CS = 0 Tương tự chân CS2 là 0 khi A3 = 1, CS = 0 và A4 = 0. Khi đó ta có địa chỉ đầu và địa chỉ cuối của CS2 là 308h và 30Fh. Trang 6
  7. Phòng thí nghiệm Vi xử lý U3 D0 D0 2 18 A1 B1 D0 D1 D1 3 17 D1 A2 B2 D2 D2 4 16 A3 B3 D2 D3 D3 5 15 D3 A4 B4 D4 D4 6 14 D4 A5 B5 D5 D5 7 13 D5 A6 B6 D6 D6 8 12 D6 A7 B7 D7 D7 9 11 D7 A8 B8 19 CS G 1 IOR DIR 74LS245 U3C U3B IOW 5 6 3 4 7404 7404 IOW U3D U3E 9 8 11 10 IOR 7404 IOR 7404 P1 D0 1 D1 14 A0 D2 2 Trang 7 A1 D3 15 A2 U4 D4 3 A3 CLOCK CLK D5 16 18 2 B1 A1 CLK AEN AEN D6 4 17 3 RS B2 A2 A3 A3 D7 17 16 4 AEN B3 A3 CS CS 5 15 5 +5V B4 A4 A2 A2 18 14 6 B5 A5 A1 A1 6 13 7 +5V +12V B6 A6 A0 A0 19 12 8 B7 A7 RS RS 7 11 9 -12V B8 A8 20 -5V RS RS A4 8 19 A3 R1 560 G AEN AEN 21 1 R2 560 DIR IOW IOW 9 R3 220 IOR IOR 22 CS R4 220 74LS245 CLOCK CLOCK 10 U2C R5 220 A4 A4 A3 23 9 300H ->307H R6 560 A3 A3 11 8 R7 560 CS1 A2 A2 24 10 U3A R8 560 A1 A1 12 R9 560 A0 A0 25 1 2 74LS32 Bài thí nghiệm Vi xử lý R10 560 CS CS 13 R11 560 7404 U2D COMPUTER INTERFACE /A3 12 U2A 308H ->30FH CS 1 11 CS2 3 13 A4 2 74LS32 74LS32 U2B CS 4 U3F 310H ->31FH 6 CS3 /A4 13 12 5 BỘ ĐỆM SỐ LIỆU VÀ GIẢI MÃ 74LS32 7404
  8. Phòng thí nghiệm Vi xử lý Bài thí nghiệm Vi xử lý Bảng 1.4: Giải mã địa chỉ chân CS2 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 308h 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 30Fh Tuỳ ý Cổng OR Tuỳ ý CS = 0 Chân CS3 = 0 khi CS = 0 và A4 =1. Khi đó ta có địa chỉ đầu của CS3 là 310h và địa chỉ cuối là 31Fh. Bảng 1.5: Giải mã địa chỉ chân CS3 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A A2 A1 A0 3 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 310H 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 31FH Tuỳ ý Cổng Tuỳ ý CS = 0 OR Các đường A0, A1, A2, A3, CLK, RS, AEN lấy trực tiếp trên các chân ngõ ra của U6. 4 cổng đảo của 74LS04 còn dư trong mạch được tận dụng để đệm và khuếch đại cho các đường IOR , IOW như trên mạch. Tụ C1 chống nhiễu tần số cao cho các IC số trong mạch.s – CS1 điều khiển Nhập / Xuất cho bộ LED chỉ thị, relay, công tắc nhấn và các ngõ ra công suất cho động cơ bước. – CS2 điều khiển Nhập / Xuất cho các Port A, B, C của 8255a để sử dụng trong các thí nghiệm và ứng dụng. – CS3 dùng trong thực tập giao tiếp với thiết bị ngoại vi không thông qua 8255A. V. BỘ ĐIỀU KHIỂN NHẬP /XUẤT (I/O CONTROL) Trên thiết bị chính có thiết kế 2 bộ điều khiển nhập xuất cho phép tổ chức trao đổi thông tin với máy tính và giữa μPTS-31 và các bộ thí nghiệm hay có thể dùng trong các ứng dụng điều khiển mở rộng của người sử dụng như quang báo, điều khiển động cơ... Ngõ P1 của bộ μPTS 31 được nối với ổ ra P1 của khối giao diện PCBUS-2 gắn trong máy tính. Các đường dữ liệu, địa chỉ và điều khiển sẽ đưa từ Part A sang Part B để thực hiện điều khiển như sau: – Các đường dữ liệu từ D0 → D7. – Các đường tín hiệu điều khiển đọc IOR , đường tín hiệu điều khiển ghi IOW . – Đường chọn linh kiện CS1 có địa chỉ từ 300h → 307h để chọn cho bộ điều khiển nhập xuất 1 để điều khiển LED dữ liệu, 3 relay và các ngõ ra công suất để điều khiển động cơ bước, công tắc phím nhấn. – Đường chọn linh kiện CS2 có địa chỉ từ 308h → 30Fh sử dụng để điều khiển nhập / xuất cho các Port A , B, C của 8255A cho các ứng dụng và điều khiển khác. – Đường RESET để khởi tạo lại các kinh kiện nhập / xuất lập trình được. Trang 8
  9. +5V 7 6 5 4 3 2 1 0 BỘ ĐIỀU KHIỂN NHẬP / XUẤT (I/O CONTROL) Phòng thí nghiệm Vi xử lý R19 R18 R17 R16 R15 R14 R13 R12 220 220 220 220 220 220 220 220 U5 D0 PA0 34 4 D1 PA1 D0 PA0 33 3 D2 PA2 D1 PA1 32 2 D3 PA3 D2 PA2 31 1 D4 PA4 D3 PA3 30 40 12 12 10 D5 PA5 D4 PA4 29 39 4 2 6 2 4 D6 PA6 D5 PA5 28 38 D7 PA7 D6 PA6 27 37 D7 PA7 U7B U7A U7F U6C U6A U6F U6B U6E IOR PB0 5 18 7406 7406 7406 7406 7406 7406 7406 7406 IOW PB1 36 RD PB0 19 A0 PB2 9 WR PB1 20 3 1 13 5 1 13 3 11 PB3 A1 8 A0 PB2 21 RESE 35 A1 PB4 PB3 22 CS1 PB5 PA4 PA3 6 RESE PB4 PA7 PA6 PA5 PA2 PA1 PA0 23 PB6 CS PB5 RELA T 24 PB7 PB6 Y 25 COM PB7 PC0 NC1 1 14 COM PC1 COM COM NO1 PC0 2 15 PC2 COM PC1 3 16 NC1 NC2 PC3 NC2 PC2 4 NC3 17 PC4 NO2 PC3 5 13 D0 PC5 NO2 NO3 COM PC4 NO1 6 12 D0 D1 PC6 NC3 PC5 7 11 D1 D2 PC7 NO3 PC6 8 10 +5V +5V +5V D2 D3 PC7 9 D3 D4 10 8255 D4 D5 CON2 D5 D6 GND D6 D7 D1 +5V 1 D2 D3 D7 2 COM RL1 RL2 RL3 Trang 9 +5V 3 COM A 4 B 5 1N414 6 C 1N414 1N414 10 7 D 8 8 8 6 8 Q1 Q2 Q3 8 IOR D560 D560 D560 STEP IOR IOW U7D U7C U7E Q4 MOTOR IOW A0 7406 7406 D560 7406 A0 A1 A1 RESE R24 R25 5 11 9 R23 R22 CS1 300H- RS 2K2 2K2 2K2 2K2 CS2 308H- PC6 PC5 PC7 PC0 PC1 PC2 PC3 +5V R21a R21c R21e R21g U9 D0 10K 34 4 10K 10K 10K D1 D0 PA0 1 33 3 SW4 SW3 SW2 D2 SW1 D1 PA1 2 32 2 D3 D2 PA2 3 31 1 JP1 D4 D3 PA3 4 30 40 PORT D5 D4 PA4 5 29 39 R21d R21f R21b R21h D6 D5 PA5 6 28 38 10K 10K 10K 10K Bài thí nghiệm Vi xử lý D7 D6 PA6 7 27 37 D7 PA7 8 6 5 12 13 10 11 8 9 IOR 5 18 U8C U8F U8E U8D IOW RD PB0 1 36 19 7407 7407 7407 7407 A0 WR PB1 2 9 20 A1 A0 PB2 3 8 21 RESE A1 PB3 4 JP1 35 22 CS2 RESE PB4 5 PB5 PB6 PORT PB7 PB4 6 23 CS PB5 6 T 24 PB6 7 25 PB7 8 14 PC0 1 15 PC1 2 16 PC2 3 17 JP1 PC3 4 13 PORT PC4 5 12 PC5 6 11 PC6 7 10 PC7 8 8255
  10. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù V.1. Bộ điều khiển nhập/xuất 1 Bộ điều khiển Nhập / Xuất 1 (I/O Control) được xây dựng trên IC 8255A (U5). Các đường tín hiệu của nó được nối như sau: D0 → D7 nối vào các đường dữ liệu D0 → D7 của hệ thống. Đường RD nối vào IOR , WR nối vào IOW . Các đường địa chỉ A0, A1 nối vào A0 và A1 của hệ thống. RESET nối vào RESET chung nhờ đó 8255A này sẽ được RESET chung với hệ thống. CS nối vào CS1 có địa chỉ từ 300h → 307h. Do đó vùng địa chỉ của bộ điều khiển nhập xuất này là từ 300h → 307h. Thanh ghi điều khiển được chọn khi A1 = A0 = 1 tức tương ứng với địa chỉ của hệ thống là 303h hay 307h. Bảng 1.6: Giải mã địa chỉ cho các PORT của U5 (8255A) A15 ÷ A13 A12 ÷ A5 A4 A3 A2 A1 A0 ĐỊA CHỈ Địa chỉ CS = 0 CS1 PA 000 00011000 0 0 0 0 0 300H 000 00011000 0 0 1 0 0 304H PB 000 00011000 0 0 0 0 1 301H 000 00011000 0 0 1 0 1 305H PC 000 00011000 0 0 0 1 0 302H 000 00011000 0 0 1 1 0 306H THANH GHI 000 00011000 0 0 0 1 1 303H ĐIỀU KHIỂN 000 00011000 0 0 1 1 1 307H Từ đó ta có PA có địa chỉ điều khiển đối với hệ thống là 300h hoặc 304h được sử dụng để điều khiển 8 LED dữ liệu. Các cổng đệm đảo công suất 74LS06 (U6, U7) được sử dụng để tăng dòng tải kéo Led cho các đường Port ra của 8255A khi ở mức cao. Tương tự Port PB có địa chỉ điều khiển đối với hệ thống là 301h hay 305h sử dụng để nhận dữ liệu từ các công tắc nhấn tương ứng như sau: – PB6 ứng với SW1 – PB5 ứng với SW2 – PB4 ứng với SW3 – PB7 ứng với SW4 Tương tự các bộ đệm không đảo (74LS07/U8) là loại cực thu hở được dùng để đệm dữ liệu trước khi đưa đến các ngõ vào của Port thông qua các điện trở kéo lên (Pull up). Port C có địa chỉ điều khiển đối với hệ thống là 302h hay 306h được dùng để điều khiển động cơ bước, loa và các Relay như sau: – PC0 ứng với chân A ( Step Motor ) CON2 – PC1 ứng với chân B ( Step Motor ) CON2 – PC2 ứng với chân C ( Step Motor ) CON2 – PC3 ứng với chân D ( Step Motor ) CON2 – PC4 ứng với loa. – PC5 ứng với Relay 1 Trang 10
  11. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù – PC7 ứng với Relay 2 – PC6 ứng với Relay 3 Các ngõ ra relay có thể dùng trong các ứng dụng, các thí nghiệm điều khiển công suất lớn hay điều khiển các thiết bị xoay chiều tương tự như khi điều khiển Led. Ta cũng phải làm sao khi xuất mức 1 ra Port C thì Relay tương ứng hay đường điều khiển động cơ bước tương ứng sẽ tác động. Để đủ dòng kéo cho các Relay ta cũng dùng bộ đệm đảo 74LS06 (U7) kéo dòng ở mức thấp (Ishink) do dòng kéo khi ngõ ra ở mức thấp lớn hơn rất nhiều dòng ở mức cao. Một đầu của Relay sẽ được nối lên nguồn +5V, một đầu nối với ngõ ra 74LS06 để khi ngõ ra U7 ở mức thấp sẽ làm cho Relay tác động. Dòng Ishink của 74LS06 đủ sức kéo Relay. Các Diode mắc song song với cuộn dây và phân cực ngược để chống điện áp ngược phát sinh khi Relay ngắt có thể làm hư hỏng 74LS06. Khi điều khiển động cơ bước, do dòng kéo động cơ bước cần rất lớn cho nên ta không thể dùng 74LS06 mà phải dùng Transistor Darlington D560 để kéo. Từ đó đưa ra các trạm ra relay nối sẵn các tiếp điểm chung (COM) thường đóng (NC: Normal Contact ) và thường hở (NO: Normal Open ) cho các Relay 1, 2, 3 ra như bảng sau: Bảng 1.7 : Các tiếp điểm trên Relay Relay Tiếp điểm thường đóng / NC Tiếp điểm thường hở / NO Tiếp điểm chung / COM 1 NC1 NO1 COM1 2 NC2 NO2 COM2 3 NC3 NO3 COM3 Các ngõ ra công suất điều khiển động cơ bước gồm : – Các chân chung 1 và 2 (COM1 và COM2), đường nguồn +5V nối vào nguồn +5V của hệ thống. – Chân GND. – 4 đường điều khiển A, B , C , D. Tất cả các đường này được đưa ra một đầu nối CON2 phục vụ cho thí nghiệm điều khiển động cơ bước. V.2. Bộ điều khiển nhập/xuất 2 Bộ điều khiển nhập/xuất 2 được xây dựng trên IC 8255A (U9) được dùng để thực hiện các công việc điều khiển và nhập xuất trong các ứng dụng. Các đường dữ liệu và điều khiển của nó được kết nối giống như bộ điều khiển nhập xuất thứ nhất ngoại trừ đường chọn linh kiện CS của nó được nối vào CS2 do đó nó có vùng không gian địa chỉ là từ 308h → 30Fh. Ta xác định các địa chỉ Port A ,B ,C và từ điều khiển cũng tương tự như xác định cho bộ điều khiển nhập/xuất 1. Trang 11
  12. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Bảng 1.8: Giải mã địa chỉ các PORT trên bộ điều khiển nhập xuất 2 (U9) A15 ÷ A13 A12 ÷ A5 A4 A3 A2 A1 A0 ĐỊA CHỈ Địa chỉ CS = 0 CS2 PA 000 00011000 0 1 0 0 0 308H 000 00011000 0 1 1 0 0 30CH PB 000 00011000 0 1 0 0 1 309H 000 00011000 0 1 1 0 1 30DH PC 000 00011000 0 1 0 1 0 30AH 000 00011000 0 1 1 1 0 30EH THANH GHI 000 00011000 0 1 0 1 1 30BH ĐIỀU KHIỂN 000 00011000 0 1 1 1 1 30FH – Thanh ghi điều khiển (Control Register) của U9 có địa chỉ đối với hệ thống là 30Bh hoặc 30Fh. – Port PA (PA0 →PA7) có địa chỉ điều khiển đối với hệ thống 308h hay 30Ch được nối với chốt cắm PORT A trên thiết bị chính μPTS-31. – Port PB (PB0 → PB7 ) có địa chỉ điều khiển đối với hệ thống là 309h hay 30Dh nối với chốt cắm PORT B trên thiết bị chính μPTS-31. – Port PC (PC0 → PC7 ) có địa chỉ điều khiển đối với hệ thống là 30Ah hay 30Eh và được nối với chốt cắm PORT C trên thiết bị chính. Các Port A,B,C của thiết bị chính μPTS-31 được thiết kế sẵn để sử dụng trong các bài thí nghiệm cũng như trong các ứng dụng phát triển mở rộng sau này. VI. THIẾT BỊ TƯƠNG TỰ Để điều khiển thiết bị tương tự từ máy tính ở đây sử dụng một bộ khuếch đại loa. Trong mạch dùng OP-AMP LM 386 để tạo thành mạch khuếch đại. Ngõ vào đảo (V-) nối xuống GND, ngõ vào không đảo (V+) nối trực tiếp vào PC4 / U5 thông qua R18 và C2. Do chỉ có 2 mức áp ra ở chân PC4 là 0V hay 5V, ta dùng xung vuông để tạo tín hiệu âm thanh ra loa. Mạch tương tự có địa chỉ là Port PC4 / U9. CON6 1 6 CON7 2 1 7 2 3 3 8 4 4 5 9 5 RS-232C Trang 12
  13. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù PC4/U5 C2 10uF +5V R18 10K 61 C5 3 + 7 5 2 LM386 - 220uF R19 R20 SPEAKER 48 10K 22 C3 0.1 uF SÔ ÑOÀ PART D VAØ KHOÁI TÖÔNG TÖÏ VII. BỘ ĐỆM DỮ LIỆU VÀ ĐỆM GIẢI MÃ Dùng để đưa dữ liệu và các tín hiệu điều khiển ra cho các bài thí nghiệm. Lối vào của Part C được nối tới ngõ ra của bộ đệm dữ liệu Part A trên thiết bị chính. Các kết nối như sau: - Đường chọn hướng truyền dữ liệu DIR nối vào IOR . - Đường chọn linh kiện nối vào CS . Do đó khi đọc thì IOR = 0 và CS = 0 cho phép linh kiện và hướng truyền dữ liệu từ B → A (hướng từ ngoài vào thiết bị chính) . Ngược lại khi ghi thì CS = 0 và IOR = 1 nên hướng dữ liệu là từ A → B (hướng từ thiết bị chính ra ngoài). Vì 74LS155 có 2 bộ đệm ta sử dụng nó để đưa ra 2 đầu nối CON4 và CON5 để làm 2 ngõ ra các tín hiệu điều khiển với: ♦ CON 4 là ngõ ra tín hiệu điều khiển Đọc. ♦ CON 5 là tín hiệu điều khiển Ghi. Cả hai ngõ ra này có cùng một địa chỉ so với máy tính (từ 310h tới 31Fh). Trang 13
  14. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù 1 U13 2 13 7 A2 A 1Y0 3 3 6 A3 B 1Y1 4 5 1Y2 9 U12D 8 2 4 CON4 1G 1Y3 1 9 7404 1C 2Y0 10 2Y1 14 11 /IOW 2G 2Y2 1 15 12 /CS3 2C 2Y3 2 /IOR 3 74155 4 CON5 U11 1 DIR 19 G 9 11 D7 A8 B8 1 8 12 D6 A7 B7 2 7 13 D5 A6 B6 3 6 14 D4 A5 B5 4 5 15 D3 A4 B4 5 4 16 D2 A3 B3 6 3 17 D1 A2 B2 7 2 18 D0 A1 B1 8 CON3 74LS245 +5V +5V C2 C1 .01 .01 BỘ ĐỆM DỮ LIỆU VÀ GIẢI MÃ (PART C) Trang 14
  15. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Bảng 1.9: Địa chỉ các ngõ ra giải mã và dữ liệu trên bộ giải mã và đệm dữ liệu NGÕ RA A15-A13 A12-A4 A3 A2 A1 A0 ĐỊA CHỈ 0 0 0 0 310h 1Y0,2Y0 000 000110001 0 0 0 1 311h 0 0 1 0 312h 0 0 1 1 313h 0 1 0 0 314h 1Y1,2Y1 000 000110001 0 1 0 1 315h 0 1 1 0 316h 0 1 1 1 317h 1 0 0 0 318h 1Y2,2Y2 000 000110001 1 0 0 1 319h 1 0 1 0 31Ah 1 0 1 1 31Bh 1 1 0 0 31Ch 1Y3,2Y3 000 000110001 1 1 0 1 31Dh 1 1 1 0 31Eh 1 1 1 1 31Fh – Chốt ra 1Y0, 2Y0 có địa chỉ từ 310h tới 313Hh. – Chốt ra 1Y1, 2Y1 có địa chỉ từ 314h tới 317h. – Chốt ra 1Y2, 2Y2 có địa chỉ từ 318h tới 31Bh. – Chốt ra 1Y3, 2Y3 có địa chỉ từ 31Ch tới 31Fh. PHẦN II : TIẾN TRÌNH THÍ NGHIỆM I. KHẢO SÁT LED 8 Led dữ liệu được kết nối với Port A của U5 (có địa chỉ là 300h), như vậy nếu muốn xuất dữ liệu ra Led, ta dùng lệnh OUT DX,AL trong đó DX chứa địa chỉ của Led (300h) và AL chứa dữ liệu muốn xuất ra Led. - Vào thư mục: C:\TNVXL\TASM - Dùng NCEdit tạo đoạn chương trình sau, lưu lại với tên Led_uPTS.asm: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov ax,02h int 10h ;Xóa màn hình mov al,82h ;PA: XUẤT, PB: NHẬP, PC: XUẤT mov dx,303h ;Địa chỉ CR của U5 out dx,al ;Định cấu hình cho U5 Trang 15
  16. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù mov dx,300h ;Địa chỉ Port A (nối với Led) mov al,0Fh out dx,al exit: mov ah,4Ch ;Kết thúc chương trình int 21h main endp END main - Tại dấu nhắc DOS gõ lệnh: tasm Led_uPTS.asm - Nếu chương trình không có lỗi sẽ tạo thành file Led_uPTS.obj, tiếp tục gõ lệnh: tlink Led_uPTS.obj - Ta có thể tạo một file .bat để thực hiện 2 quá trình trên (ví dụ như compiler.bat): Nội dung file .bat như sau (giả sử dùng file compiler.bat): tasm %1.asm tlink /v %1.obj Gõ lệnh compiler.bat Led_uPTS để thực hiện dịch chương trình - Chương trình sẽ tạo thành file Led_uPTS.exe - Tại dấu nhắc DOS, gõ lệnh Led_uPTS để thực thi chương trình vừa tạo. Sửa lại chương trình để thực hiện sáng Led tuần tự từ trái sang phải: .model small .stack 100h .data pa db 01h,02h,04h,08h,10h,20h,40h,80h .code main proc mov ax,@data mov ds,ax mov ax,02h int 10h ;Xóa màn hình mov al,82h ;PA: XUẤT, PB: NHẬP, PC: XUẤT mov dx,303h ;Địa chỉ CR của U5 out dx,al ;Định cấu hình cho U5 mov bx,0 mov dx,300h ; Địa chỉ Led next1: mov al,pa[bx] out dx,al Trang 16
  17. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù mov cx,0FFh next2: call delay; Tạo thời gian trễ loop next2 inc bx cmp bx,8 ; Led có 8 trạng thái jne next1 exit: mov ah,4Ch ; Kết thúc chương trình int 21h main ENDP ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp END main Ngoài ra, ta có thể dùng hàm 0Bh của ngắt 21h để tạo vòng lặp vô tận, chờ cho đến khi nhấn phím bất kỳ sẽ kết thúc chương trình. start: mov ah,0Bh int 21h cmp al,0FFh je exit ……… exit: mov ah,4Ch int 21h Sinh viên thực hiện thay đổi dữ liệu để Led chạy theo một kiểu tùy ý: nhấp nháy 2 Led giữa 10 lần, sáng dần các Led từ trái sang phải, … II. KHẢO SÁT LOA Loa nối với Port C của U5, để phát âm thanh ra Loa, ta phải gởi một chuỗi xung ra loa có dạng như sau: 1 0 Trang 17
  18. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Loa nối với PC4 của U5 nên muốn tạo 2 mức logic 0 và 1 ở loa, ta phải tạo 2 mức logic 0 và 1 ở PC4. Hai mức logic này có thể tạo nhờ chế độ BSR (Bit Set/Reset) của U5. Set bit PC4 = 1 : từ điều khiển = 0000 1001b (09h) Reset bit PC4 = 0 : từ điều khiển = 0000 1000b (08h) Lưu ý rằng: chế độ BSR tác động lên Port C nhưng phải gởi dữ liệu ra thanh ghi điều khiển. Ta có chương trình phát âm thanh ra loa như sau: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov al,82h mov dx,303h out dx,al call speaker exit: mov ah,4Ch int 21h main endp ;--------------------------------------------- speaker proc push ax ; Lưu lại giá trị các thanh ghi push cx push dx mov cx,30 ; Tạo 30 xung speak: mov dx,303h ; Địa chỉ CR mov al,09h ; Set bit PC4 = 1 out dx,al call delay mov dx,303h mov al,08h ; Reset bit PC4 = 0 out dx,al call delay loop speak Trang 18
  19. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù pop dx ; Lấy lại nội dung các thanh ghi pop cx pop ax ret speaker endp ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp END main - Thay đổi chương trình để loa kêu liên tục cho đến khi nhấn một phím bất kỳ thì kết thúc. - Thay đổi chương trình để loa kêu 10 lần thì kết thúc (gợi ý: tạo vòng lặp gọi chương trình speaker 10 lần, giữa mỗi lần tạo chương trình tạo trễ giống như đoạn chương trình in nghiêng trong phần I). - Viết chương trình điều khiển Led sao cho mỗi lần Led sáng thì phát âm thanh ra loa. III. KHẢO SÁT RELAY Các Relay được nối với Port C của U5. Do đó, nếu muốn đóng Relay nào, ta sẽ cho bit tương ứng của Port C = 1 còn nếu muốn ngắt Relay thì sẽ cho bit tương ứng = 0. VD: Đóng RL1 (PC5 = 1): từ điều khiển 0000 1011b = 0Bh Ngắt RL1 (PC5 = 0): từ điều khiển 0000 1010b = 0Ah Chương trình đóng lần lượt các Relay 1, 2, 3 và sau đó ngắt các Relay này theo thứ tự 3, 2, 1: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov al,82h mov dx,303h out dx,al Trang 19
  20. Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù mov al,0Bh mov dx,303h out dx,al call delay1 mov al,0Fh mov dx,303h out dx,al call delay1 mov al,0Dh mov dx,303h out dx,al call delay1 mov al,0Ch mov dx,303h out dx,al call delay1 mov al,0Eh mov dx,303h out dx,al call delay1 mov al,0Ah mov dx,303h out dx,al call delay1 exit: mov ah,4Ch int 21h main endp ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp ;--------------------------------------------- delay1 proc push cx Trang 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2