Thực hành với circuit maker

Bài 1: Giới thiệu chung CircuitMaker là một chương trình cho phép người dùng nhanh chóng lắp ráp thử nghiệm và mô phỏng các mạch số cũng như các mạch tương tự ở mức logic. Đồng thời cũng hỗ trợ việc xuất ra file netlist để vẽ mạch in. Tài liệu hướng dẫn sử dụng này tập trung vào việc lắp ráp và mô phỏng mạch số.

pdf25 trang | Chia sẻ: tlsuongmuoi | Ngày: 26/06/2013 | Lượt xem: 2667 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Thực hành với circuit maker, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 1 Phần một: THỰC HÀNH VỚI CIRCUIT MAKER Bài 1: Giới thiệu chung CircuitMaker là một chương trình cho phép người dùng nhanh chóng lắp ráp thử nghiệm và mô phỏng các mạch số cũng như các mạch tương tự ở mức logic. Đồng thời cũng hỗ trợ việc xuất ra file netlist để vẽ mạch in. Tài liệu hướng dẫn sử dụng này tập trung vào việc lắp ráp và mô phỏng mạch số. Môi trường CircuitMaker bao gồm Title Bar, Menu Bar, Toolbar, StatusBar, Panel, Schematic Window và Analysis Window. Ngoài những thành phần căn bản tồn tại trong hầu hết các ứng dụng đồ họa hiện nay như Title Bar, Menu Bar, Status Bar các thành phần còn lại có ý nghĩa như sau: • Panel gồm ba tab là Browse, Search, Digital dùng để tìm kiếm các thiết bị phục vụ cho việc ráp mạch và mô phỏng, thiết lập các thông số cho mô phỏng số, • Schematic Window là cửa sổ soạn thảo, trên đó ta sẽ thực hiện vẽ mạch, • Analysis Window là cửa sổ hiển thị các kết quả đo đạc như áp, dòng, dạng sóng…. Hai cửa sổ Schematic và Analysis có thể có hoặc không tùy theo ta thay đổi, cụ thể sẽ trình bày trong phần mô phỏng mạch số. Các linh kiện sau khi đã được đặt đúng vị trí sẽ được kết nối với nhau bằng các dây nối. Mạch sau khi đã được nối dây cho phép mô phỏng, kiểm tra bằng các công cụ mô phỏng của CircuitMaker. 1.2 Quy trình sử dụng CircuitMaker Việc sử dụng CircuitMaker có thể chia làm sáu bước như sau: 1. Chọn các thiết bị cần thiết (điện trở, tụ, IC …) và đưa lên bản vẽ, 2. Sắp xếp các thiết bị này cho hợp lý, 3. Thiết lập các thông số của thiết bị (độ trễ, nội dung ROM…), 4. Xóa hoặc thêm các thiết bị tùy theo yêu cầu, 5. Nối dây, 6. Mô phỏng và kiểm tra mạch đã vẽ. Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 2 1.3 Bắt đầu mô phỏng mạch số Để chọn chế độ mô phỏng mạch số ta làm như sau: chọn menu Simulation|Digital Mode; nếu chọn Simulation|Analog Mode là chọn chế độ mô phỏng mạch tương tự. Thực hiện Simulation|Check Pin Connections để kiểm tra các thiết bị có chân nào chưa được nối dây hay không. Thực hiện Simulation|Check Wire Connections để kiểm tra có đường dây nối nào chỉ mới nối một đầu hay không. Các công cụ mô phỏng mạch số Đây là các công cụ phục vụ cho việc mô phỏng mạch số. Những công cụ này sẽ khác nếu chọn chế độ mô phỏng là tương tự Công cụ mô phỏng số Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 3 Bài 2: Mạch đa hợp và giải đa hợp 2.1 Mạch dồn kênh 4 sang 1 A, Bảng hoạt động Ngõ vào chọn Dữ liệu ra ở Y S1 S2 0 0 I0 0 1 I1 1 0 I2 1 1 I3 Từ bảng hoạt động, dùng phương pháp rút gọn bằng bìa Các-nô ta có biểu thức ở đầu ra: _ _ _ _ Y = S1S2 + S1S2 + S1S2 + S1S2 B, Sơ đồ mạch 2.2 Mạch tách kênh 1 sang 4 Nhom thuc hanh lop 2DT-K7 V2 0V V1 0V L1 U4A U3B U3A U2D U2C U2B U2A U1DU1C U1BU1A Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 4 A, Bảng hoạt động Ngõ vào chọn S ra ở ngõ A B 0 0 Y0 0 1 Y1 1 0 Y2 1 1 Y3 Từ bảng sự thật, dùng phương pháp rút gọn bằng bìa Các-nô ta có biểu thức ở đầu ra như sau: _ _ _ Y0 = AB Y1 = AB _ Y2 = AB Y3 = AB B, Sơ đồ mạch Nhom thuc hanh lop 2DT-K7 V2 0V V1 0V L4 L3 L2 L1 U1D U1C U1B U2DU2C U2BU2A U1A Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 5 Bài 3: Mạch so sánh Giả sử tín hiệu đưa về là A, chỉ có 2 mức logic là cao và thấp (tín hiệu số 1 bit). Tín hiệu đem so sánh là B (tín hiệu cài đặt) Sẽ có 3 trường hợp xảy ra cho ngõ ra : A > B khi A = 1 và B = 0 A < B khi A = 0 và B = 1 A = B khi A = 1 = B hay A = 0 = B Từ đây xây dựng bảng sự thật cho 3 trường hợp ngõ ra từ tổ hợp trạng thái 2 ngõ vào ra như sau : Bảng hoạt động so sánh 2 số 1 bit Nhận thấy Trường hợp L2: A = B là ngõ ra của 1 cổng EXNOR 2 ngõ vào A và B Trường hợp L3: A < B là ngõ ra của 1 cổng AND 2 ngõ vào A v Ngõ vào Ngõ ra so sánh A B A > B A = B A < B 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 6 Trường hợp L1: A > B là ngõ ra của 1 cổng AND 2 ngõ vàoĠ và B Đây được gọi là mạch so sánh độ lớn 1 bit. Cấu trúc mạch sẽ như sau : Bài 4: Mạch cộng đủ Giả sử mạch đã thực hiện phép cộng lần đầu rồi nên được tổng là S0 và số nhớ C0, nếu tiếp tục cộng lần 2 khi trạng thái logic của A và B thay đổi thì S không chỉ là tổng của A và B mà gồm cả C0 trước đó. Khi này ta có mạch cộng đủ: full adder (FA) V2 5V V1 0V U4A L3 L2 L1 U2B U2A U1B U1A Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 7 A B Ci S (L1) C0 (L2) 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Rút gọn biểu thức ta được _ _ S = C0 A (A A B) _ C = AB + (A A B) Cấu trúc của mạch logic sẽ là : Sơ đồ mạch cộng đủ L2 U2A V3 0V V2 0V V1 0V L1 U4B U1B U1A U4A Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 8 Nhận thấy rằng : FA thực ra bao gồm trong nó 2 HA và cổng OR ở ngõ ra cho số nhớ C Cả 2 mạch HA và FA ở trên mới chỉ làm phép cộng 1 bit Bây giờ nếu 2 số cộng có nhiều bit hơn thì cách cộng cũng sẽ tương tự : trước hết cộng 2 bit LSB để cho bit tổng (LSB). Số nhớ được đưa tới để cộng chung với 2 bit kế tiếp bit LSB để cho bit tổng ở hàng kế tiếp cho đến phép cộng cuối cùng giữa 2 bit MSB để được bit tổng ở hàng đó, số nhớ khi này trở thành bit LSB của tổng. Sơ đồ mạch cộng hai số ba bit V6 0V V5 0VV8 5V V7 5V V2 0V V3 5V V1 0V L4 L3 L2 L1 U5C U5B U5AU3D U3C U4DU4C U4B U4A U3B U3A U2B U2A U1B U1A Thực hành với Circuit Maker GVHD: Vũ Thị Ngọc Quý 9 Bài 5: Mạch hiển thị led 7 đoạn A, Bảng hoạt động Đầu vào Phân đoạn đầu ra Hiển Thị A B C D a b c d e f g 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 2 0 0 1 1 0 0 0 0 1 1 0 3 0 1 0 0 1 0 0 1 1 1 1 4 0 1 0 1 0 0 1 0 0 1 0 5 0 1 1 0 1 1 0 0 0 0 0 6 0 1 1 1 0 0 0 1 1 1 1 7 1 0 0 0 0 0 0 0 0 0 0 8 1 0 0 1 0 0 0 1 1 0 0 9 B, Sơ đồ mạch V4 5V V3 5V V2 5V V1 0V abcdefg. V+ DISP1 74LS47 A3 A2 A1 A0 test RBI g f e d c b a RBO U1 Thực hành với Orcad GVHD: Hoàng Đình Chiến 10 Phần hai: THỰC HÀNH VỚI ORCAD Bài 1: THIẾT KẾ MẠCH IN MẠCH ĐIỀU CHỈNH ĐỘ SÁNG CỦA ĐÈN 1. Vẽ Schematic bằng Orcad Capture 1.1 Khởi động chương trình Orcad Capture Nhấp chọn Start > Programs > OrCAD Release 9 > Capture 1.2 Tạo một New. File → New → Project Khi tạo một Project mới chúng ta bắt buột phải ghi tên của Project vào trong Name và phải chọn thư mục để lưu Project đó. Còn nếu muốn mở một Project đã thiết kế rổi chúng ta vào : File → Open → Project... chúng ta sẽ thấy một hộp hội thoại xuất hiện để cho chúng ta chọn file cần mở. Thực hành với Orcad GVHD: Hoàng Đình Chiến 11 1.3 Lấy linh kiện Chọn File > New > Project. Hộp thoại New Project xuất hiện. Tại khung Name nhập tên mạch vào, tại khung Location nhấp chuột vào nút Browse đẻ chọn đường dẫn cho mạch. Chọn xong nhấp OK. Trong mạch này gồm có : 1 CẦU DIODE, 3 RẮC CẮM 2 CHÂN, 1 TỤ PHÂN CỰC, 1 DIODE ZENER, 6 ĐIỆN TRỞ,1 QUANG TRỞ, 1 BIẾN TRỞ, 4 TRANSISTOR, 1 TRIAC, 2 CHÂN MASS. Để lấy linh kiện ra từ thư viện, nhấp chọn Place > Part… hay nhấn tổ hợp Phím Shift + P trên bàn phím. Hộp thoại Place Part xuất hiện, tiến hành lấy những linh kiện từ trong thư viện ra, nhấp chuột vào nút Add Library… Thực hành với Orcad GVHD: Hoàng Đình Chiến 12 - Hộp thoại Browse File xuất hiện, tại khung Look in nhấp chuột vào mũi tên hướng xuống để chọn thư mục Library trong Orcad. Tại khung bên dưới nhấp chọn mục Discrete. Chọn xong nhấp Open. - Hộp thoại Place Part lại xuất hiện, tại khung Libraries thấy xuất hiện mục DISCRETE, nhấp chọn mục này. Tại khung Part nhấp chuột vào thanh cuộn bên phải, nhấp chọn tên R. Chọn xong nhấp OK. di chuyển con trỏ ra màn hình làm việc và nhấp chuột tại những vị trí khác nhau để chọn vị trí, số lượng linh kiện. Thực hành với Orcad GVHD: Hoàng Đình Chiến 13 - Tương tự, để lấy quang trở chọn Place > Part… Hộp thoại Place part xuất hiện, nhấp chọn R2, chọn xong nhấp OK và di chuyển con trỏ ra màn hình làm việc để nhấp chọn vị trí quang trở. - Để lấy biến trở chọn Place > Part… Hộp thoại Place part xuất hiện, nhấp chọn RESISTOR VAR 2, chọn xong nhấp OK và di chuyển con trỏ ra màn hình làm việc để nhấp chọn vị trí linh kiện. - Để lấy cầu diode chọn Place > Part… Hộp thoại Place part xuất hiện, nhấp chọn RB152, chọn xong nhấp OK và di chuyển con trỏ ra màn hình làm việc để nhấp chọn vị trí cầu diode. - Để lấy tụ phân cực, chọn Place > Part… Hộp thoại Place part xuất hiện, nhấp chọn CAPACITOR POL, chọn xong nhấp OK và di chuyển con trỏ ra màn hình làm việc để nhấp chọn vị trí tụ. - Hộp thoại Footprint for R2 xuất hiện, tại khung Libraries nhấp chọn mục JUMPER. Tại khung Footprints nhấp chọn mục JUMPER200 để chọn chân mạch in cho quang trở. Chọn xong nhấp Ok. - Trong hộp thoại Link Footprint to Component có thông báo là không thể tìm thấy chân mạch in của Q3 có tên là 2N3904. Vì thế nên cần tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… - Hộp thoại Footprint for 2N3904 xuất hiện, tại khung Libraries nhấp chọn mục TO. Tại khung Footprints nhấp chọn mục TO202AB để chọn chân mạch in cho Transistor. Chọn xong nhấp Ok. - Để lấy chân Mass cho mạch, hãy nhấp chuột vào biểu tượng Place ground trên thanh công cụ. Hộp thoại Place Ground xuất hiện, tại khung Symbol nhấp chọn tên GND_POWER/CAPSYM. Chọn xong nhấp OK và di chuyển con trỏ ra màn hình làm Thực hành với Orcad GVHD: Hoàng Đình Chiến 14 việc rồi nhấp chọn vị trí, số lượng chân Mass cần cho mạch. 1.4 Kết nối các linh kiện Sau khi tất cả các linh kiện đã được lấy ra màn hình làm việc, để hình dạng linh kiện không xuất hiện tại con trỏ chuột nữa, nhấp chuột vào biểu tượng Select trên thanh công cụ. Tất cả các linh kiện đã lấy ra màn hình làm việc ta sắp xếp các linh kiện như sau: Tiến hành nối chân các linh kiện theo sơ đồ nguyên lý. Nhấp chọn Place > Wire trên thanh công cụ. Con trỏ chuột thay đổi thành hình chữ thập, nhấp chuột tại chân linhkiện cần nối rồi di chuyển con trỏ đến chân linh kiện cần nối với nó và nhấp chuột. Cứ thế tiếp tục cho đến khi tất cả các linh kiện được nối theo sơ đồ nguyên lý sau: Thực hành với Orcad GVHD: Hoàng Đình Chiến 15 1.5 Kiểm tra lỗi Để kiểm tra lỗi cho sơ đồ nguyên lý và chuyển sang sơ đồ mạch in, nhấp chuột vào biểu tượng Minimize ở góc phải phía trên màn hình. Màn hình như sau xuất hiện, tại khung bên trái nhấp chọn trang PAGE1. Sau đó nhấp chuột vào biểu tượng Design rules check trên thanh công cụ để kiểm tra lỗi. Hộp thoại Design Rules Check xuất hiện, nhấp chuột vào nút OK để tiến hành kiểm tra. Nếu không thấy thông báo gì nghĩa là mạch không có lỗi. Tiếp tục tạo tập tin có đuôi .mnl để thiết kế mạch in. Nhấp chuột vào biểu tượng Create netlist trên thanh công cụ . Thực hành với Orcad GVHD: Hoàng Đình Chiến 16 Hộp thoại Create netlist xuất hiện, nhấp chuột vào Layout, tại khung Netlist File có thể nhấp chuột vào nút Browse để chọn đường dẫn cho tập tin được gửi vào. Chọn xong nhấp OK. 2.Vẽ mạch in bằng Orcad Layout 2.1 Khởi động chương trình: Ta chuyển sang chế độ thiết kế mạch in bằng cách chọn Start > Programs > OrCAD Release 9 > Layuot Plus 2.2 Tạo Project mới Màn hình thiết kế mạch in xuất hiện, nhấp chuột vào File > New để mở một File mới. Hộp thoại Load Template File xuất hiện, nhấp chuột vào nút Open. Hộp thoại Load Netlist Source xuất hiện, nhấp chọn tên mạch cần thiết kế mạch in. Chọn xong nhấp Open. Hộp thoại Save File As xuất hiện, tại khung File name, nhập tên cần đặt cho mạch in (tùy chọn). Nhập xong nhấp chuột vào nút Save. 2.3 Liên kết đến footprint Sau một thời gian chờ đợi, hộp thoại như sau xuất hiện. Trong hộp thoại Link Footprint to Component có thông báo là không thể tìm thấy chân mạch in của R7 có tên là RESISTOR_VAR_2. Vì thế nên tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Thực hành với Orcad GVHD: Hoàng Đình Chiến 17 Hộp thoại Footprint for RESISTOR_VAR_2 xuất hiện, tại khung Libraries nhấp chọn mục JUMPER. Tại khung Footprints nhấp chọn mục JUMPER 300 để chọn chân mạch in cho biến trở này. Chọn xong nhấp Ok. Hộp thoại Link Footprint to Component xuất hiện với thông báo là không thể tìm thấy chân mạch in của Q1 có tên là T2323. Vì thế, cần tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Thực hành với Orcad GVHD: Hoàng Đình Chiến 18 Hộp thoại Footprint for T2323 xuất hiện, tại khung Libraries nhấp chọn mục TO. Tại khung Footprints nhấp chọn mục TO126 để chọn chân mạch in cho IC. Chọn xong nhấp Ok. Hộp thoại Link Footprint to Component lại xuất hiện, ta thấy thông báo là không thể tìm thấy chân mạch in của D2 có tên là DIODE_ZENER. Vì thế nên ta tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Hộp thoại Footprint for DIODE_ZENER xuất hiện, tại khung Libraries nhấp chọn mục JUMPER. Tại khung Footprints nhấp chọn mục JUMPER100 để chọn chân mạch in cho ZENER. Chọn xong nhấp Ok. Hộp thoại Link Footprint to Component tiếp tục xuất hiện thông báo là không thể tìm thấy chân mạch in của C1 có tên là CAPACITOR_POL. Vì thế nên phải tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Hộp thoại Footprint for CAPACITOR_POL xuất hiện, tại khung Libraries nhấp chọn mục JUMPER. Tại khung Footprints nhấp chọn mục JUMPER200 để chọn chân mạch in cho TỤ. Chọn xong nhấp Ok. Hộp thoại Link Footprint to Component xuất hiện thông báo là không thể tìm thấy chân mạch in của D1 có tên là RB152. Vì thế nên tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Hộp thoại Footprint for RB152 xuất hiện, tại khung Libraries nhấp chọn mục BCON100T. Tại khung Footprints nhấp chọn mục BCON100T/VH/TM1SQ/W.100/4 để chọn chân mạch in cho cầu diode. Chọn xong nhấp Ok. Hộp thoại Link Footprint to Component lại xuất hiện thông báo không thể tìm thấy chân mạch in của R8 có tên là R2. Vì thế nên phải tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Hộp thoại Footprint for R2 xuất hiện, tại khung Libraries nhấp chọn mục JUMPER. Tại khung Footprints nhấp chọn mục JUMPER200 để chọn chân mạch in cho quang trở. Chọn xong nhấp Ok. Thực hành với Orcad GVHD: Hoàng Đình Chiến 19 Trong hộp thoại Link Footprint to Component có thông báo là không thể tìm thấy chân mạch in của Q3 có tên là 2N3904. Vì thế nên cần tìm chân cho linh kiện này bằng cách nhấp chuột vào nút Link existing footprint to component… Hộp thoại Footprint for 2N3904 xuất hiện, tại khung Libraries nhấp chọn mục TO. Tại khung Footprints nhấp chọn mục TO202AB để chọn chân mạch in cho Transistor. Chọn xong nhấp Ok. Sau khi chọn chân cho các linh kiện, các linh kiện trong sơ đồ mạch in như sau: 2.4 Sắp xếp linh kiện, chọn số lớp và vẽ mạch in Tiến hành sắp xếp các linh kiện. Để không bị giới hạn bởi khung mạch in có sẵn, nhấp chuột vào biểu tượng Reconnect Mode trên thanh công cụ. Tiếp tục nhấp chuột vào biểu tượng linh kiện và rê chuột đến vị trí cần đặt linh kiện rồi nhấp chuột. Muốn quay linh kiện một góc 90o nhấp chọn biểu tượng linh kiện rồi nhấp phải chuột, một cửa sổ xuất hiện, nhấp chuột vào Rotate hay nhấn phím R trên bàn phím. Sau khi sắp xếp xong ta có các linh kiện được sắp xếp trong mạch như sau: Để vẽ khung giới hạn cho mạch in, nhấp chuột vào biểu tượng Obstacle Tool trên thanh công cụ. Thực hành với Orcad GVHD: Hoàng Đình Chiến 20 Con trỏ chuột thay đổi hình dạng, nhấp chuột tại một điểm cần đặt cho khung giới hạn, di chuyển con trỏ đến điểm cần đặt khác và nhấp chuột. Cứ thế tiếp tục cho đến khi khung mạch in hoàn chỉnh như sau: Sau khi khung giới hạn mạch in hoàn thành, để thoát khỏi lệnh này, hãy nhấp phải chuột, một cửa sổ xuất hiện, nhấp chuột vào End Command. Để chọn lớp cho chương trình chạy mạch in, nhấp chuột vào biểu tượng hình carô (View Spreadsheet) trên thanh công cụ. Một cửa sổ xuất hiện, nhấp chọn Strategy… > Route Layer. Hộp thoại Route Layer xuất hiện, nhấp chọn tại tất cả các ô trong cột Enable, dòng BOTTOM, INNER1, INNER2. Chọn xong nhấp phải chuột, một cửa sổ xuất hiện, nhấp chọn Properties. Hộp thoại Edit Layer Strategy xuất hiện, nhấp bỏ mục Routing Enabled. Xong nhấp OK. Hộp thoại Route Layer xuất hiện, nhấp chuột vào biểu tượng Close ở góc phải phía trên hộp thoại. Ta cho chương trình tự động chạy mạch in bằng cách chọn Auto > Autoroute > Board. Sau một lúc chờ chương trình chạy mạch in, thông báo sau xuất hiện, nhấp OK để thấy sơ đồ mạch in. Thực hành với Orcad GVHD: Hoàng Đình Chiến 21 Chương trình chạy mạch in như hình sau: MẠCH ĐIỀU KHỂN ĐÈN CHẠY DÙNG 4017 1. Sơ đồ nguyên lý Thực hành với Orcad GVHD: Hoàng Đình Chiến 22 2. Mạch in MẠCH RELAY BẢO VỆ DÒNG MỘT PHA 1. Sơ đồ nguyên lý Thực hành với Orcad GVHD: Hoàng Đình Chiến 23 2. Mạch in Thực hành với Orcad GVHD: Hoàng Đình Chiến 24 MẠCH ĐIỀU CHỈNH VÀ ỔN ĐỊNH TỐC ĐỘ ĐỘNG CƠ 1. Sơ đồ nguyên lý 2. Mạch in Thực hành với Orcad GVHD: Hoàng Đình Chiến 25 MẠCH AVR CỦA MÁY PHÁT CÔNG SUẤT NHỎ 1. Sơ đồ nguyên lý 2. Mạch in

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

  • pdfThực hành với circuit maker.pdf
Tài liệu liên quan