Vi xử lý và vi điều khiển nguyên lý và ứng dụng

370 211 0
Vi xử lý và vi điều khiển   nguyên lý và ứng dụng

Đ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

PHẠM MẠNH THẮNG (Chủ biỄn) HOÀNG VAN m ạnh ■ NGUYÊN LÝ VÀ ỨNG DỤNG ị ĨỦSẢCH KHOA HỌC MS:185-KHTN-2Q16 NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NÔI PHẠM MẠNH THẮNG (Chủ biên) HOẤNG VĂN MẠNH ■ VI xử LÝ VÀ VI ĐIẾU KHIỂN NỈUYỄNLỸVAỨNGDUNC NHÀ XUÁT BẢN ĐẠI HỌC QUỐC GiA HÀ NỘI MỤC LỤC LỜI NÓI ĐẦU 11 DANH MỤC TỪ VIẾT T Ắ T .13 DANH MỤC HÌNH VẼ 15 DANH MỤC BẢNG BlỂU 21 Chương GIỚI THIỆU VỀ VI x LÝ VÀ VI ĐIỀU KHIỂN 25 1.1 Khái niệm Vi xử lý 25 1.1.1 Cấu trúc hoạt động Vi xử lý 26 1.1.2 Bộ Vi xử lý CISC RISC 34 1.2 Vi điều k h iể n 34 1.2.1 Thiết bị nhúng nhớ n g o i 37 1.2.2 Kiến trúc Harvard Von Neumann .37 1.2.3 Vi điều khiển 8-bit 16-bit 38 1.2.4 Một số loại Vi điều khiển thương mại 39 1.2.4.1 MCS-51 Atmel 89CXX, 89CXX51 39 1.2.4.2 Họ M C S-51 39 1.2.4.3.Vi điều khiển Atmel 40 1.2.4.4.Vi điều khiển P I C 41 1.3 Lịch sử phát triển Vi xử lý Vi điêu k h iê n 42 VI xử LÝ VA VIĐIÉU KHIỂN - NGUYÊN LÝ VẦ ỨNG DỤNG Chương NGỐN NGỮ LẬP TRÌNH NHÚNG _ ^ 2.1 Ngôn ngữ lập trình hợp ngữ - 47 2.1.1 Các thành phần hợp n g ữ 48 2.1.2 Cấu trúc hợp n g ữ 48 2.2 Ngơn ngữ lập trình c -57 2.2.1 Kiểu liệu, phép toán biểu thức 57 2.2.1.1.Kiểu kích thước liệu 57 2.2.1.2.Các phép toán số h ọ c 58 2.2.2 Vòng lặp điều k h iển 61 2.2.3 Hàm cấu trúc chương trình 65 2.2.4 Con trỏ mảng 70 2.2.5 Cấu trú c 73 Chương VI ĐIỀU KHIỂN AVR 79 3.1 Tổng quan kiến trúc Vi điêu khiển ATmegaló 79 3.1.1 Máy tính với tập lệnh rút g ọ n 79 3.1.2 Tập lệnh hợp ngữ 80 3.1.3 Kiến trúc Vi điều khiển A Tm egaló 81 3.2 Bộ nhớ liệu -82 3.2.1 Bộ nhớ Flash EEPROM 82 3.2.2 Bộ nhớ EEPROM truy cập địa byte 83 3.2.3 Bộ nhớ truy cập ngẫu nhiên tĩnh SR A M 84 3.3 Hệ thống cổng _ 84 3.4 Bộ chuyển đổi tương tự - số ADC _ 86 MỤC LỤC 3.4.1 Các ghi A DC 89 3.4.2 Lập trình A DC 92 3.5 Phân hệ định thời 93 3.5.1 Tổng quan định thời 93 3.5.2 Bộ định thời TimerO 95 3.52.1 Các chế độ hoạt động 96 3.5.2.2 Các ghi liên quan tới TimerO 98 3.5.3 Bộ định thời T im erl 101 3.5.4 Bộ định thời Tim er2 105 3.5.5 ứ ng dụng định thời - đếm .109 3.6 Truyền thông nối tiếp _ 112 3.6.1 Truyền thông nối tiếp U SA RT 112 3.6.1.1 Tổng quan khối USART A Tm egaló 113 3.6.1.2 Khối tạo xung đồng hồ USART 113 3.6.1.3 Khối truyền USART 113 3.6.1.4.Khối nhận U SA RT 115 3.6.1.5.Các ghi U SA RT .115 3.6.1.6.Lập trình USART 116 3.6.2 Giao tiếp ngoại vi nối tiế p 118 3.6.2.1.Hoạt động S P I 118 3.6.2.2.Các ghi S P I 120 3.6.3 Giao tiếp nối tiếp d ây .123 3.6.3.1.Hoạt động TW I 123 VI xử LỸ VA VI ĐIỀU KHIỂN - NGUYÊN LỸ VẦ ỨNG DỤNG 3.6.3.2.Các ghi TW I .141 3.7.1 Phân hệ ngắt A tm egaló 145 3.7.2 Lập trình n g .147 Chưcmg VI ĐIỀU KHIỂN PIC 155 4.1 Tổng quan tính 155 4.2 Vi điều khiển PIC 16C6X/7X _ 158 4.2.1 Khối ALU PIC 16C XX 159 4.2.2 Thanh ghi C PU 159 4.2.3 Sơ đồ chân 165 4.2.4 Hoạt động Reset P IC 165 4.2.5 Chức PO R 166 4.2.6 Chức BO R 168 4.2.7 Giao tiếp tạo dao động PIC 168 4.2.8 TỔ chức nhớ P IC 169 4.2.8.1.BỘ nhớ chương trình 169 4.2.8.2.BỘ nhớ liệu 171 4.2.9 Các lệnh dùng với PIC 16C6/7X 175 4.2.9.1.Các thao tác với b it 175 4.2.9.2.Phép toán tăng g iảm 176 4.2.9.3.Hoạt động vào/ra 176 4.2.10 Các chế đô đia .179 MỤC LỤC 4.2.10.1.Địa trực tiếp 179 4.2.10.2.Địa gián tiếp 180 4.2.11.CỔng xuất nhập vào/ra 180 4.2.12.Ngắt PIC 16C61/71 182 4.2.12.1.Ngắt 183 4.2.12.2.Ngắt định thòi TimerO 186 4.2.12.3.Ngắt thay đổi PO RTB 186 4.2.12.4.Ngắt A D C 186 4.2.13.Các định thời PIC 16C61/71 187 4.2.13.1.BỘ định thời TimerO 187 4.2.13.2.BỘ định thời W D T 189 4.2.13.3.BỘ chuyển đổi tứì hiệu tương tự - số (A D C) 191 4.3 Vi điều khiển PIC 16F8XX _ 194 4.3.1 Sơ đồ chân PIC 16P8XX .196 4.3.2 Thanh ghi trạng th 199 4.3.3 Thanh ghi điều khiển lượng 201 4.3.4 Thanh ghi OPTION_REG 202 4.3.5 Bộ nhớ chương trình PIC 16P8XX 203 4.3.6 Bộ nhớ liệu PIC 16P8XX 204 43.6.1.Bộ nhớ liệu R A M 204 4.3.6.2.BỘ nhó liệu EEPROM 207 4.3.6.3 Bộ nhớ liệu EEPROM,bộ nhớ chương trình Flash EEPROM 207 VI xử LÝ VÀ VIĐIÉU KHIỂN - NGUYÊN LỸ VA ỨNG DỤNG 4.3.7 Ngắt Vi điều khiển 16P877 212 4.3.8 Các cổng xuất nhập vào/ra 216 4.3.9 Các định th i 219 4.3.10 Mô-đun bắt Capture/Compare/PW M 223 4.3.10.1.Chế độ Capture 225 4.3.10.2.Chếđộ Com pare 227 4.3.10.3.Chế độ điều chế độ rộng xung PW M 229 4.3.11.M ô-đunM SS P 233 4.3.11.1.Giao tiếp ngoại vi nối tiếp SPI 233 4.3.11.2.BUS P C 244 4.3.12.USAR T .252 4.3.12.1.Chế độ giao tiếp nối tiếp không đồng b ộ 254 4.3.12.2.Chế độ giao tiếp nối tiếp đồng b ộ 259 4.3.13.BỘ chuyển đổi A D C .259 Chương GIAO TIẾP VÀ ỨNG DỤNG CỦA VI ĐIỀU KHIỂN 269 5.1 Giới thiệu _ 269 5.2 Giao tiếp với LED, nút nhấn R le 270 5.3 Giao tiếp với bàn phím 279 5.3.1 Phương pháp sử dụng phần cúmg 279 5.3.2 Giao tiếp bàn phím với PIC 16P877 280 5.4 Giao tiếp với LED 7-thanh - -.284 5.5 Giao tiếp với LCD _ 287 5.5.1 Mô-đun LCD 288 MỤC LỤC 5.5.2 Các lện h L C D 290 5.5.3 Khởi tạo mô-đun LCD 292 5.5.4 Giao tiếp LCD A T m egaló 292 5.6 Giao tiếp với vi mạch chuyên đổi ADC/DAC _ 296 5.6.1 Lựa chọn chuyển đổi ADC 297 5.6.2 Giao tiếp với A DC0808/0809 298 5.6.3 Giao tiếp với chuyển đổi M AX5822 300 5.7 Các ứng dụng đo lường - 302 5.7.1 Sử dụng biến trở để đo góc khớp R obot .304 5.7.2 Bộ mã hóa quang h ọ c 305 5.7.3 Biến áp vi sai thay đổi tuyến tính 308 5.7.4 Xác định tốc độ góc (RPM ) 311 5.7.5 Đo nhiệt đ ộ 314 5.7.6 RTD cặp nhiệt điện tuyến tính 316 5.7.7 Load C e ll 319 5.8 Các ứng dụng điêu khiển tự động h óa - 320 5.8.1 Bộ điều khiển số P ID 321 5.8.2 Điều khiển thiết b ị 325 5.8.2.1.Điều khiển tốc độ động dc sử dụng PW M 326 5.8.2.2.Điều khiển Thyristo 329 5.8.2.3.Điều khiển tải AC sử dụng TRIA C 333 5.8.3 Điều khiển động bước 334 5.9 Thiết kế hệ th ốn g _ 342 VI xử LỶ VÀ VI ĐIÊU KHIẾN - NGUYÊN LÝ VÂ ỨNG DỤNG 5.9.1 Trạm theo dõi thông số thời tiết .343 5.9.1.1.Yêu dâu 343 5.9.1.2.SơđỒcấu trú c 343 5.9.1.3.Sơđ ồm ạch 344 5.9.1.4.Sơ đồ thuật toán 345 5.9.1.5.Code cho Vi điều khiển 346 5.9.2 Điều khiển tốc độ động 357 5.9.2.1.Yêu cầu 357 5.9.2.2.Sơ đồ cấu trú c 357 5.9.2.3.SƠ đồ m ạch 357 5.9.2.4.Sơ đồ thuật toán 357 5.9.2.5.Code cho Vi điều khiển 360 TÀI LIỆU THAM KH ẢO 369 Chương GIAOTIẾP VÀ ỨNG DỤNGCỦAVI ĐIẼU KHIỂN 5.9.2 357 Điêu khiến tốc độ động Dự án điều khiển tốc độ động 24 Vdc, 1500 RPM cách sử dụng biến trở Động trang bị với máy đo tốc độ quang học có khả tạo kênh thông tin Hai số kênh đầu có pha lệch 90° với điện áp hình sm có giá trị đỉnh 0,5V Kênh thứ ba tạo xung tín hiệu (Index) động hồn thành vòng quay Hình 5.58 5.9.2.1 Yêu cầu Hệ thống thiết kế với u cầu sau: • Tín hiệu điều khiển PWM có tần số kHz • Thay đổi chu kỳ nhiệm vụ từ 50 tới 100% cách thay đổi giá trị điện áp từ chiết áp, 50% chu kỳ nhiệm vụ úmg với OVdc, 100% chu kỳ nhiệm vụ ứng với 5Vdc • Hiển thị RPM chu kỳ nhiệm vụ lên LCD 5.9.22 Sơ đô cấu trúc Sơ đồ cấu trúc dự án điều khiển tốc độ động chiều dc cho Hình 5.59 5.9.2.3 Sơ đô mạch Bộ điều chế độ rộng xung PWM ATm egal64 sử dụng để điều khiển tốc độ động vói chu kỳ nhiệm vụ xác định chiết áp Chiết áp có điện áp OVdc ứng với chu kỳ nhiệm vụ 50% 5V d c r g với 100% Tốc độ động chu kỳ nhiệm vụ hiển thị hình LCD Hình 5.60 5.9.2A Sơ thuật tốn Sơ đồ thuật tốn cho dự án điều khiển tốc độ động cho Hình 5.61 358 VI xử LỸ VÀ VIĐIÉU KHIỂN - NGUYÊN LỸ VẦ ỨNGDỤNG Raie trang ử\ài rảr ỊSgi) quáng học B ộ n ũ h M / ^ quang học ộ T t Ọ r -.Q c D- tL D ' s G ậ K [ i > > ữí ’■ s Tín hiệu díẽu khiẻn 7404 > a) M c h g ia o tiế p v i đ ộ n g c Ễ 0,5 Vdc c m :) 200 chu kỳ / vòrvg Index I— - xung / VỊI'^ c) T ín hiộu c c k ê n h CÙ b ộ m â h ó a q u a n g h ọ c Hình 5.58 Động 24 Vdc, 1500 RPM với kênh mã hóa quang học Điều khiên tõc độ độ ng ca G iao tíõp với độ ng CXT _I LCD PW M INTn Dừliẻu Ọ hiỂh thi Khởi tạo LC D H iên thi LCD SSR quang M OSPET B ộ f * ậ n đo tốc đồ quang ầẩ Khới tạo PVVM EMều ch inh tốc đ ộ động T ố c đ ộ y cầu T ố c độ thự c tế Hình 5.59 Sơ đồ cấu trúc cho dự án điều khiển tốc độ động X c định đ íẽu chinh tổcđõ 359 Chương GIAOTIẾP VÀ ỨNG DỤNGCÙAVI ĐIẾUKHIỂN PAO (ADCD) - 40 PAl (A D C l)-39 PA4 (ADC4) - 36 PA5 (ADCS) - 35 PA6 (ADC6) - 34 - RESET -V C C 11 -G N D t-H S) í PA7 (ADC7) - 33 AREP-32 AGND - 31 A C C-30 12-X T A L e5 PC7 (TOCS2) 29 13-XTALl actualRPM) && (OCRIBL != OxFF)) 0C R 1B L = C R B L + 1; else if (desiredRPM < actualRPM && OCRIBL != 0x00) 362 VI xử LỸ VÀ VIĐIÉU KHIỂN- NGUYÊN LÝ VÀ ỨNG DỤNG C R B L = C R B L - 1; else O C R IB L -O C R IB L ; displayData(); } retura 0; } void delay_5ms(void) { unsigned int i; for(i=0; i 0) putChar((unsigned char) (hundreds) + 48); else 365 VI xử LÝ VÀVI ĐIỂU KHIẾN- NGUYÊN LÝ VÀ ỨNGDỤNG 366 putChar(’ ’); putChar((unsigned char) (tens) + 48); putChar((unsigneđ char) (ones) + 48); putChar(’% ’); } void PWM_init(void) { imsigned int Open_Speed_int; float Open_Speed_float; int PWM_duty_cycle; Open_Speed_int = readADC(0x02); 100% =255 / / Vdc = 50% =I27, Vdc ■ - Open_Speed_float = (float) (Open_SpeeđJnt) / (float) (0x0400); //chuyển đồi giá trị điện áp sang PWM (127 - 255) Open_Speed jnt== (unsigned int) ((Open_Speed_float * 127) + 128.0); //cấ u hình PWM TCCRIA = OxAl; //tần số = resonator/510 = MHz/5ỈO - ỉ9.607 kHz TCCRIB = 0x02; //g ià trị chia tần //khởi tạo biến chu kỳ nhiệm vụ (Duty Cycỉe) cho PWM PWM_duty_cycle = 255; O C R lB H = OxOO; OCRIBL = (unsigned char) (PWM_duty_cycIe); } Chương 6IA0 TIẾPVÀỨNGDỤNGCỦAVIOIỀU KHIỂN 367 CÂU HỎI ÔN TẬP CHƯƠNG 5.1 Vai trò điện trở treo lên trình giao tiếp Vi điều khiển với nút nhấn, bàn phím? 5.2 Phương pháp giải vấn đề nhiễu giao tiếp Vi điều khiển bàn phím? 5.3 Tại lại cần có khoảng thời gian trễ lần gửi liệu tới LED-7 thanh? 5.4 Bàn phím giao tiếp với IC giao tiếp hiển thị bàn phím 8279 Sự khác biệt phương pháp phương pháp thảo luận chương này? 5.5 Thảo luận nguyên tắc lựa chọn LCD LED? 5.6 Hoạt động chuyển đổi DA tiến hành đầu PWM lọc thông thấp RC So sánh phương pháp với phương pháp sử dụng DAC0808? 5.7 Mô-đun PWM PIC cho phép tạo đầu tưorng tự Hãy thảo luận giá trị độ phân giải 10 bit PWM trường hợp này? 5.8 Thiết kế bo mạch sử dụng PIC 16P877 giao tiếp với LCD bàn phím để nhập liệu dạng Hex? Viết chương trình đọc bàn phím hiển thị thơng tm lên LCD? 5.9 Đặc tính kỹ thuật thiết bị đo nhiệt độ số dựa Vi điều khiển? Trong số loại Vi điều khiển thảo luận loại phù hợp với xíng dụng này? 5.10 Làm để cải thiện độ phân giải thiết bị đo tốc độ góc? Các hạn chế việc đếm số xung Vi điều khiển? Làm để đếm xung có tốc độ cao (chẳng 368 VI xử LÝ VÀVIĐIÉU KHIỂN - NGUYÊN LÝ VÀ ỬNG DỤNG hạn 100,000 xung/s) Vi điều khiển? 5.11 Khi cần có cách ly Vi điều khiển với phần khác mạch? 5.12 Nếu bạn muốn điều khiển van solid với điện áp hoạt động 220Vac sử dụng MOSPET có cần cách ly Vi điều khiển? 5.13 Cách xác định vị trí trục quay sử dụng động bước mà khơng cần cảm biến? Bạn có cần Vi điều khiển để thực điều này? 5.14 Khi cần sử dụng nguồn công suất không biến áp cho ứng dụng điều khiển động ac sử dụng Vi điều khiển? 5.15 u điểm việc sử dụng vi mạch ADC nối tiếp ứng dụng đo lường? 5.16 Thiết kế thiết bị đo nhiệt độ dựa Vi điều khiển có hỗ trợ giao tiếp RS485? 5.17 Viết chưong tình tính tốn hiển thị trọng lượng sử dụng load cell? 5.18 Thiết kế điều khiển PID sử dụng Vi điều khiển? Viết chương trình cho điều khiển PID Thiết k ế nên có khả giao tiếp với người dùng? TÀI LIỆU THAM KHẢO Ajay Deshmukh, Microcontrollers: Theory and Applications, Tata Mcgraw Hill, ISBN-13: 978-0070585959, May 3, 2005 Dhananiay V Gadre, Programming and Customizing the AVR Microcontrolỉer, 1"' edition, McGraw-Hill Companies, ISBN13: 978-0071346665, October 9, 2000 Harprit Singh Sandhu, Making PIC Microcontroller Instruments and Controỉlers, 1"‘ edition, McGraw-Hill Companies, ISBN-13: 978-0071606165, December 23, 2008 Harprit Singh Sandhu, Running Smalỉ Motors ĩưith PỈC Microcontrolỉers, Ist edition, McGraw-Hill Companies, ISBN-13: 978-0071633512, July 23, 2009 Jonathan w Valvano, Embeddeđ Microcomputer Systems: Real Time ỉnterỷacing, 3'^*^ edition, Cengage Leaming, ISBN-13: 978-1111426255, January 1, 2011 Julio Sanchez, Maria p Canton, Microcontroller Programming: The Microchip PIC, CRC Press, ISBN-13: 9780849371899, December 19, 2006 Martin p Bates, Programming 8-bit PỈC Microcontrollers in C: With Interactive Hardĩvare Simulation, 1®* edition, Newnes, ISBN-13: 978-0750689601, July 29, 2008 Muhammad AU Mazidi, Sarmad Naimi Sepehr Naimi, AVR Mỉcrocontrolỉer and Embedded Systems: Using Assembly and c , 1®^ edition, Prentice Hall, ISBN-13: 978-0138003319, January 31, 2010 370 VI xử LỸ VÀVI ĐIỂU KHiỂN- NGUYÊN LÝ VÀ ỨNGDỤNG Myke Predko, Programming and Customizing PIC MicrocontroUer, 3'^'^ edition, McGravv-Hill Companies, ISBN13: 978-0071472876, October 16, 2007 10 Nigel Gardner, PlCmicro MCLỈ C: An introduction to Programming the Microchip PIC in CCS c , 2"“^ Rev edition, Ccs Inc, ISBN-13: 978-0972418102, August 19, 2002 11 Richard H Barnett, Sarah Cox, Larry 0'C ull, Embedded c Programming and the Atmel AVR, 2"'^ edition, Cengage Leaming, ISBN-13: 978-1418039592, June 5, 2006 12 Richard H Bamett, Sarah Cox, Larry 0'C ull, Embedded c Programming and the Microchip PIC, edition, Cengage Learning, ISBN-13: 978-1401837488, November 3, 2003 13 Tim VVilmshurst, Designing Embedded Systems ĩưith PIC Microcontrollers: Principles and Applications, edition, Newnes, ISBN-13: 978-0750667555, November 27, 2006 14 Todd D Morton, Embedded Microcontrolỉer, 1"* edition, Prentice H all ISBN-13: 978-0139075773, September 17, 2000 15 Takashi Kenjo, Akira Sugavvara, Stepping Motors and Their Microprocessor Controls, 2"^ edition, Clarendon Press, ISBN13: 978-0198593850, January 15,1994 NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI 16 Hàng Chuối - Hai Bà Trirng - Hà Nội Giám đốc - Tổng Biên tập: (04) 39715011 Quản lý xuất bản: (04) 39728806 Biên tập: (04)39714896 Kỹ thuạt xuất bản; (04)39715013 Chịu trách nhiệm xuất bản: Giám đốc - Tổng Biên tập: TS PHẠM THỊ TRÂM Chịu trách nhiệm nội dung: Hội đồng Nghiệm thu giáo trình Trường Đại học Công nghệ - ĐHQGHN Người nhận xét: PGS.TS NGUYÊN PHẠM THỤC ANH TS ĐINH TRIÈU DƯƠNG Biên tập xuất bản; ĐINH QUỐC THẮNG Biên tập chuyên ngành: NGUYỄN NGỌC THẮNG Chế bản: NGUYẼN NGỌC THẤNG Trình bày bìa: NGUYỄN NGỌC ANH VI x LÝ VÀ VI ĐIÈU KHIẾN NGUYÊN LÝ VÀ ỨNG DỤNG Mã số: 1K-07ĐH2016 In 300 cuốn, khổ 16x24 Cơng ty TNHH In Thanh Bình Số 432, Đường K2, Phường cầu Diễn, Quận Nam Từ Liêm - Hà Nội Số xuất bản; 3184-2016/CXBIPH/18 - 277/ĐHQGHN, ngày 21/9/2016 Quyết định xuất số: 21KH-TN/QĐ-NXB ĐHQGHN, ngày 21/9/2016 In xong nộp lưu chiểu nàm 2016 ... Chương GIỚI THIỆU VÊ VI XỬ LÝ VÀ VI ĐIÊU KHIỂN Mục tiêu • Cấu trúc Vi xử lý Vi điều khiển • Lịch sử trình phát triển Vi xử lý, Vi điều khiển • Các thuật ngữ nhúng, nhớ ngoài, Vi xử lý CISC RISC • Thơng... Hình 5.35 Bộ điều khiển PID s ố 325 Hình 5.36 Mạch điều khiển động d c 327 VI xử LỸ VÀ VI ĐIỀU KHIỂN - NGUYÊN LÝ VÀ ỨNG DỤNG Hình 5.37 Mạch điều khiển động DC sử dụng IC A ... 21 Chương GIỚI THIỆU VỀ VI x LÝ VÀ VI ĐIỀU KHIỂN 25 1.1 Khái niệm Vi xử lý 25 1.1.1 Cấu trúc hoạt động Vi xử lý 26 1.1.2 Bộ Vi xử lý CISC RISC 34 1.2 Vi điều k h iể n

Ngày đăng: 29/12/2019, 11:28

Từ khóa liên quan

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

Tài liệu liên quan