hiển thị tốc độ động cơ lên led 7 đoạn

84 1.1K 10
hiển thị tốc độ động cơ lên led 7 đoạn

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA CHƯƠNG 1: CHƯƠNG DẪN NHẬP I) ĐẶT VẤN ĐỀ : Trong công nghiệp đời sống có nhiều yếu tố ảnh hưởng đến trình sản xuất ảnh hưởng đến người, mà người muốn sản xuất nhanh chóng cần có động hỗ trợ Trong động tốc độ yếu tố thường được đề cập đến nhiều của động Vì đời của mạch đo tốc độ động cần thiết Với phát triển của khoa học kỹ thuật, vi điều khiển đời giúp cho dễ dàng thiết kế mạch đo tốc độ động với độ xác cao, đáng tin cậy… mà chi phí chấp nhận được II) GIỚI HẠN ĐỀ TÀI : Với quy mô đồ án tốt môn học, nên nhóm chúng em cố gắng làm mà giảng viên yêu cầu, kiến thức hạn chế nên chúng em thực được yêu cầu sau : Hiển thị được tốc độ động lên led đoạn Tốc độ hạn chế có sai số thiếu kinh nghiệm III) MỤC ĐÍCH NGHIÊN CỨU : Mục đích trước hết thực đề tài để hoàn tất chương trình môn học để đủ điều kiện hoàn thành yêu cầu của môn học Cụ thể nghiên cứu đề tài chúng em muốn phát huy thành ứng dụng của vi điều khiển vào một mạch thực tế Nó kinh nghiệm cho chúng em tiến đên đồ án tốt nghiệp tới Ngoài trình thực đề tài một hội để chúng em SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA tự kiểm tra lại kiến thức học trường Đồng thời phát huy tính sáng tạo, khả giải vấn đề nhu cầu đặt IV) ĐỐI TƯỢNG NGHIÊN CỨU: Các phương án điều khiển xử lý liệu Tìm hiểu vi xử lý PIC16F877A Tìm hiểu led đoạn động xoay thuận nghịch Tìm hiểu Encoder Ứng dụng viết chương trình xử lí SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA CHƯƠNG : GIỚI THIỆU VỀ CÁC LINH KIỆN 2.1) Giới thiệu PIC: 2.1.1) Sơ lược vi điều khiển PIC 16F877A: Sơ đồ chân : • Hình 2.1 Sơ đồ chân PIC 16F877A SVTH: NHÓM 3 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA • Sơ đồ nguyên lý: Hình 2.2 Sơ đồ nguyên lý PIC 16F877A SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA • Nhận xét: Từ sơ đồ chân sơ đồ nguyên lý trên, ta rút nhận xét ban đầu sau :  PIC16F877A có tất 40 chân  40 chân được chia thành PORT, chân cấp nguồn, chân GND, chân thạch anh một chân dùng để RESET vi điều khiển  port của PIC16F877A bao gồm :  PORTB : chân  PORTC : chân  PORTD : chân  PORTA : chân  PORT E : chân Mỗi chân của vi điều khiển PIC 16F877A có một chức khác Trong có một số chân đa công dụng: mỗi chân hoạt động một đường xuất nhập một chân chức đặc biệt dùng để giao tiếp với thiết bị ngoại vi 2.1.2) Cấu trúc phần cứng PIC 16F877A: PIC tên viết tắt của “ Programmable Intelligent computer” hãng General Instrument đặt tên cho vi điều khiển đầu tiên của họ Hãng Microchip tiếp tục phát triển sản phầm tạo gần 100 loại sản phẩm khác SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA PIC16F887A dòng PIC phổ biến, đầy đủ tính phục vụ cho hầu hết tất ứng dụng thực tế Đây dòng PIC dễ cho người làm quen với PIC học tập tạo tản họ vi điều khiển PIC của  Cấu trúc tổng quát của PIC16F877A sau :  8K Flash Rom  368x8 bytes Ram  256 bytes EFPROM  port vào với tín hiệu điều khiển độc lập  bộ định thời Timer0 Timer2 bit  bộ định thời Timer1 16 bit hoạt động chế độ tiết kiệm lượng với nguồn xung clock  bộ Capture/ Compare/ PWM  bộ biến đổi Analog -> Digital 10 bit, ngõ vào  bộ so sánh tương tự  bộ định thời giám sát (Watch Dog Timer)  cổng song song bit với tín hiệu điều khiển  cổng nối tiếp  15 nguồn ngắt SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA  Sơ đồ khối Hình 2.3 Sơ đồ khối bên vi điều khiển 16F877A SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA 2.1.3) Một số chế độ đặt biệt vi điều khiển PIC 16F877A: 2.1.3.1) Dao động: PIC16F877A hoạt động bốn chế độ dao động khác nhau: • LP low-power crystal • XT crystal/resonatpor • HS high-speed crystal/resonatpor • RC resistor/capacitor Hình 2.4 Các chế độ dao động Trong chế độ LP, XT HS sử dụng thạch anh dao động nối vào chân OSC1 OSC2 để tạo dao động Việc lựa chọn tụ dao động thạch anh được lựa chọn dựa vào bảng sau: SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA Hình 2.5 Giá trị tụ dao động thạch anh Tụ có giá trị lớn mang tính ổn định của dao động làm tăng thời gian khởi động Cách tính chu kỳ máy: Ví dụ ta sử dụng thạch anh 10Mhz Khi đó: Tần số dao động của thạch anh Fosc = 10Mhz chu kỳ dao động của thạch anh Tosc = 1/Fosc= 1/10*106(s) Chu kỳ máy: T_instruction = 4*Tosc = 4/10*106(s) = 0.4 µs = 400 ns 2.1.3.2) Reset: PIC16F877A bị reset nhiều nguyên nhân khác nhau: • Power-on Reset (POR) • MCLR Reset during sleep • MCLR Reset during normal operation • WDT Reset (during normal operation) SVTH: NHÓM HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA • WDT Wake-up (during sleep) • Brown-out Reset (BOR) Hình 2.6 Các chế độ reset 2.1.3.3) Interrupts: PIC16F877A có nhiều nguồn ngắt khác Đây một số ngắt tiêu biểu: - Ngắt xảy chân INT - Ngắt Timer0 - Ngắt Timer1 - Ngắt Timer2 - Ngắt thay đổi trạng thái chân PortB SVTH: NHÓM 10 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA 2.2.2) Led đoạn : 2.2.2.1) Cấu tạo led đoạn: Hình 2.41: Sơ đồ chân led đoạn 2.2.2.2) Hoạt động led đoạn - Led đoạn có cấu tạo bao gồm led đơn xếp theo hình phía có thêm một led đơn hình tròn nhỏ thể dấu chấm tròn góc dưới, bên phải của led - led đơn led có Anode (cực +) Cathode (cực -) được nối SVTH: NHÓM 70 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA chung với vào một điểm được đưa chân để kết nối với mạch điện cực lại mỗi led đơn của led đoạn cực led đơn góc dưới, bên phải của led đoạn được đưa thành chân riêng để điều khiển cho led sáng tắt theo ý muốn - Nếu led đoạn có Anode (cực +) chung, đầu chung được nối với +Vcc, chân lại dùng để điều khiển trạng thái sáng tắt của led đơn, led sáng tín hiệu đặt vào chân mức - Nếu led đoạn có Cathode (cực -) chung, đầu chung được nối xuống Ground (hay Mass), chân lại dùng để điều khiển trạng thái sáng tắt của led đơn, led sáng tín hiệu đặt vào chân mức 2.2.2.3) Mã led đoạn: - Mã LED đoạn có Anode chung, muốn sáng ta xuất chân Cathode của LED đơn mức Từ ta có bảng giải mã LED đoạn Anode chung sau: Hình 2.42: Bảng mã LED đoạn có Anode chung SVTH: NHÓM 71 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA - Mã LED đoạn Cathode chung, muốn sáng ta xuất chân Anode của LED đơn mức Từ ta có bảng giãi mã LED đoạn Cathode chung sau: Hình 4.3.2 Bảng mã LED đoạn Cathode chung 2.2.2.4) Danh sách thành phần linh kiện khác Tên linh kiện Đomino Hình ảnh linh kiện -Domino chân -Dùng để kết nối thành phần lại với -Diode 1N4007 -Dùng để chỉnh lưu dòng điện ,bảo vệ động cơ… Diode SVTH: NHÓM Giá trị chức 72 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA IC IRF630 -IRF630 -Mosfet có khả đóng nhanh với dòng điện điện áp lớn nên được sử dụng nhiều bộ dao động tạo từ trường Vì đóng cắt nhanh làm cho dòng điện biến thiên Nó thường thấy bộ nguồn xung cách mạch điều khiển điện áp cao -Tụ 22p tụ 10uf 50v -Tụ 10uf : tính chất áp không đổi đột ngột của tụ nên có nguồn áp tụ 0V, điện áp chân 0V trì có nguồn làm cho PIC bị reset, nhiên tụ điện vẩn được nạp thông qua điện trở R, điện áp chân tăng dần đến đạt mức cao tự động kéo PIC khỏi trạng thái reset -Tụ 22p: Có chức giúp thạch anh làm việc ổn định -Thạch anh 12MHz -Làm nguồn dao động cho PIC -Transistor A1013(PNP) -Khuếch đại dòng điện làm tín hiệu dẫn cho led hoạt động Tụ điện Thạch anh Transisto r PNP SVTH: NHÓM 73 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA Biến trở -Biến trở 10k -Điều chỉnh tốc độ động cơ,điện áp ,dòng điện… Nút nhấn -Nút nhấn chân - Dùng để reset cho PIC Điện trở -Các điện trở mạch: 330ohm,10k SVTH: NHÓM 74 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA CHƯƠNG 3: THIẾT KẾ THI CÔNG 3.1) Sơ đồ khối Hình 3.1 Sơ đồ khối SVTH: NHÓM 75 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA 3.2) Sơ đồ nguyên lý: -1 v N H O M S O 5v 5v VC C R C (D U N G P W M ) 10U F P_B P_A EN C O D ER U R V1 V A R IS TO R P_A 4M 20PF m o to r VC C 20PF R 10k J2 SW R 10k D R 10K C R Y S TA L 10 11 12 13 14 15 16 17 18 19 20 M C L R /v p p R A /A N R A /A N R A /A N /V re f -/C V re f R A /A N /V re f + R A / T C K l/ C O U T R A /A N /S S /C O U T R E /R D /A N R E /W R /A N R E /C S /A N Vdd Vss O S C /C L K I O S C /C L K O R C /T O S O /T1 C K I R C /T O S I/C C P R C /C C P R C /S C K /S C L R D /P S P R D /P S P 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 R B /P G D R B /B G C R B5 R B4 R B /P G M R B2 R B1 R B /IN T VD D VSS R D /P S P R D /P S P R D /P S P R D /P S P R C /R X /D T R C /TX/C K R C /S D O R C /S D I/S D A R D /P S P R D /P S P k R Q1 IR F P_B R R 19 R e f g h R 20 R 23 R U 10 a b PN P BC E R c d e f g h 10 a b A A U 11 a b c d e f c d e f g h g h 10 Led doan Hình 3.2 Sơ đồ nguyên lý 76 Q4 R R8 R R1 R a b c d R 21 R R Q PN P BC E R p ic f 7 a SVTH: NHÓM R Q PN P BC E R 22 VC C a b A c d e f g h Led doan U 12 A a b c d e f g h 10 a b A c d e f g h Led doan A HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA 3.3) Sơ đồ mô phỏng: Hình 3.3: Sơ đồ mô SVTH: NHÓM 77 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA 3.4) Mạch thi công hoàn chỉnh: Hình 3.4: Mạch thi công hoàn chỉnh SVTH: NHÓM 78 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA CHƯƠNG 4: CODE CHƯƠNG TRÌNH Code chương trình #include #fuses nowdt,noprotect,nolvp,put,xt #device pic16f877a*=16adc=10 #use delay(clock=4000000) #use fast_IO(d) #use fast_IO(a) #use fast_IO(b) #byte portd=0x08 #bit RA0=0x05.0 #bit Rb1=0x06.1 #bit Rb2=0x06.2 #bit Rb3=0x06.3 #bit Ra4=0x05.4 #include intx,i,tram,chuc,dv; signed int32 z; //cho phép sử dụng phép toán ccs //khai báo biến số nguyên //khai báo số nguyên có dấu 32bit int so[10] = {0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010, 0b10000010,0b11111000,0b10000000,0b10010000}; //Khai báo mảng signed int16 count1 =0; //số nguyên có dấu 16bit gán count1 ban đầu=0 signed int16 count2 =0; //số nguyên có dấu 16bit gán count2 ban đầu=0 SVTH: NHÓM 79 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA #int_EXT//ngắt void EXT_isr(void) //chương trình ngắt { If ( !input (pin_A5)) count1++; //đếm xung theo chiều quay thuận else count2++;//đếm xung theo chiều quay ngược} #int_TIMER1 //tràn timer void TIMER1_isr(void) // chương trình ngắt timer1 { z = count1 -count2; if(z>=999) { count1 = 0; count2 = 0; set_timer1(0); } } void main()//chương trình {set_tris_b(0b11110001);//khai báo xuất/nhập set_tris_a(0b00001001); set_tris_d(0); setup_CCP2(CCP_PWM); //cài đặt điều chế độ rộng xung RC1 setup_timer_2(T2_div_by_16,250,1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); SVTH: NHÓM 80 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED ĐOẠN GVHD: LÊ ĐÌNH KHA set_timer1(0); enable_interrupts(INT_TIMER1); //ngắt timer enable_interrupts(INT_EXT); // ngắt enable_interrupts(GLOBAL); // ngắt toàn cục // chuyển đổi A/D // setup_adc(adc_clock_div_4); //tần số xung clock f=fose/a setup_adc_ports(AN0_AN1_AN3); //khai báo số ngỏ vào chọn Vc set_adc_channel(0); //chọn kênh cho chuyển đổi hoạt động delay_us(10); //tạo trể cho chuyển đổi while(true) //chương trình { x=read_adc(); //lấy kết set_PWM2_duty(x); z=abs(z); tram=(z/100); chuc=(z%100)/10; dv=z%10; for(i=0;i[...]... ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Bit 4 T0SE: Bit lựa chọn cạnh nào của xung clock tác động lên timer0 1: Cạnh xuống 0: Cạnh lên Bit 3 PSA: Bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 hay WDT 1: Tốc độ đếm PS2:PS0 sẽ tác động lên WDT 0: Tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độ đếm của timer hay WDT 2.1.3.8) Thanh ghi điều khiển... sau) SVTH: NHÓM 3 11 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Hình 2 .7 Các chế độ ngắt 2.1.3.4) Bộ định thời giám sát (Watch Dog Timer – WDT): Hình 2.8 Bộ định thời giám sát WDT SVTH: NHÓM 3 12 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA 2.1.3.5) Tổ chức bộ nhớ: Cấu trúc bộ nhớ của vi điều khiển PIC16F 877 A bao gồm bộ nhớ chương trình (Program memory)... lệnh chương trình Hình 2.10 Bộ nhớ dữ liệu PIC 16F 877 A SVTH: NHÓM 3 15 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F 877 A ta rút ra các nhận xét như sau : - Bank 0 gồm các ô nhớ có địa chỉ từ 00h đến 77 h, trong đó các thanh ghi dùng chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh Các thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE... chương trình PIC 16F 877 A Bộ nhớ chương trình của vi điều khiển PIC16F 877 A là bộ nhớ Flash, dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương trình PC có dung lượng 13 bit SVTH: NHÓM 3 13 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Khi vi điều khiển reset, bộ đếm chương... của PIC16F 877 A đều phải liên quan đến thanh ghi W cũng vì lý do đó Khi thực hiện một dòng lệnh nào đó, thì PIC sẽ không phải tốn 8 bit để lưu địa chỉ của thanh ghi W trong mã lệnh ( vì được hiểu ngầm) Có SVTH: NHÓM 3 23 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA thể xem thanh ghi W là thanh ghi trung gian trong quá trình viết chương trình cho PIC16F 877 A PIC16F 877 A có tất cả... trong chế độ này SVTH: NHÓM 3 32 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Hình 2.20:Sơ đồ khối chân PORT E Các thanh ghi liên quan đến PORTE bao gồm: PORTE: giữ vai trò các pin PORTE • TRISE: điều khiển xuất nhập PORTD và chuẩn giao tiếp PSP ADCON1 : thanh ghi điều khiển ADC 2.1.4) Bộ định thời của PIC 16F 877 A: PIC16F 877 A có tất cả 3 timer : timer0 (8 bit), timer1 (16 bit) và... In-Circuit Debugger và SVTH: NHÓM 3 27 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA Low Voltage Programming function: RB3/PGM, RB6/PGC, RB7/PGD Mỗi chân Port B có một transistor kéo lên Vdd Chức năng này hoạt động khi bit RBPU (Option ) được xóa Chức năng này sẽ tự động được xóa khi Port B được quy định là input Bốn chân của Port B từ RB7 đến RB4 có chức năng ngắt khi trạng... thích hợp Hình 2.18: Sơ đồ khối chân PORT C Các thanh ghi điều khiển liên quan đến PORTC: • PORTC (địa chỉ 07h) : giữ vai trò pin trong PORTC SVTH: NHÓM 3 30 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA • TRISC (địa chỉ 87h) : điều khiển xuất nhập 2.1.3.10.4) Port D và thanh ghi TRISD: Port D gồm 8 chân từ chân RD0-RD7 Bên cạnh chức năng là port xuất nhập, PortD còn có thể hoạt động... điều khiển PIC16F 877 A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE SVTH: NHÓM 3 24 HIỂN THỊ TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA 2.1.3.10.1) Port A và thanh ghi TRIS A: PORTA gồm có 6 chân Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển Hình... TỐC ĐỘ ĐỘNG CƠ LÊN LED 7 ĐOẠN GVHD: LÊ ĐÌNH KHA 1: Có một số nhớ sinh ra bởi phép cộng hoặc phép trừ 0: Không có số nhớ sinh ra 2.1.3 .7) Thanh ghi tùy chọn (Option Reg Register): Thanh ghi tùy chọn chứa các bit điều khiển để cấu hình cho các chứa năng như: ngắt ngoài, Timer 0 chức năng kéo lên Vdd của các chân Port B, và thời gian chờ của WDT H hình 2.12 Option-Reg Register Bit 7 RBPU: Bit cho

Ngày đăng: 12/11/2016, 22:04

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: CHƯƠNG DẪN NHẬP

  • I) ĐẶT VẤN ĐỀ :

  • II) GIỚI HẠN ĐỀ TÀI :

    • Nhận xét:

    • CHƯƠNG 3: THIẾT KẾ THI CÔNG

    • CHƯƠNG 4: CODE CHƯƠNG TRÌNH

Tài liệu cùng người dùng

Tài liệu liên quan