Bài Giảng Phần Cứng Của CPU
lượt xem 79
download
Vi xử lý (viết tắt là µP hay uP), đôi khi còn được gọi là bộ vi xử lý, là mộtlinh kiện điện tử máy tính được chế tạo từ các tranzito thu nhỏ tích hợp lên trên một vi mạch tích hợp đơn. Khối xử lý trung tâm (CPU) là một bộ vi xử lý được nhiều người biết đến ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài Giảng Phần Cứng Của CPU
- BÀI GIẢNG Phần Cứng Của CPU
- MỤC LỤC 1. GIỚI THIỆU CHUNG .............................................................................3 2. MÔ TẢ KĨ THUẬT ..................................................................................4 2.1 THIẾT KẾ MẠCH ..............................................................................................................................4 2.2 MÔ TẢ PHẦN CỨNG CPU .............................................................................................................. 13 2.3 MÔ TẢ THIẾT KẾ CÁC PHẦN KHÁC ............................................................................................ 15 2.4 THIẾT KẾ PHẦN MỀM ................................................................................................................... 16 2.5 CÁC BƯỚC KIỂM TRA................................................................................................................... 17 3. KẾT QUẢ ĐẠT ĐƯỢC VÀ PHÂN TÍCH LỖI ....................................18 4. KẾT LUẬN .............................................................................................22 5. MỞ RỘNG ĐỀ TÀI ................................................................................22 6. TÀI LIỆU THAM KHẢO ......................................................................23 7. PHỤ LỤC ................................................................................................23 7.1 DANH SÁCH THIẾT BỊ................................................................................................................... 23 7.2 MÃ NGUỒN .................................................................................................................................... 24 7.3 CÁC DATASHEET .......................................................................................................................... 40
- 1. GIỚI THIỆU CHUNG Vi xử lý (viết tắt là µP hay uP), đôi khi còn được gọi là bộ vi xử lý, là một linh kiện điện tử máy tính được chế tạo từ các tranzito thu nhỏ tích hợp lên trên một vi mạch tích hợp đơn. Khối xử lý trung tâm (CPU) là một bộ vi xử lý được nhiều người biết đến và được ví như bộ não của máy tính nhưng ngoài ra nhiều thành phần khác trong máy tính cũng có bộ vi xử lý riêng của nó, ví dụ trên cạc màn hình, ổ đĩa cứng… cũng có các bộ bộ vi xử lý. Vi điều khiển có thể được coi là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các module vào ra, ADC, DAC, timer, ngắt...Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài. Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v. Hầu hết các vi điều khiển ngày nay được xây dựng dựa trên kiến trúc Harvard, kiến trúc này định nghĩa bốn thành phần cần thiết của một hệ thống nhúng. Những thành phần này là lõi CPU, bộ nhớ chương trình (thông thường là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ định thời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môi trường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tích hợp. Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt động chỉ với vài vi mạch hỗ trợ bên ngoài. Đề tài thiết kế xe chạy theo đường vẽ sẵn được chúng em thực hiện dựa trên nền kiến thức về mạch điện tử, vi xử lý nói chung và vi điều khiển họ 8051 nói riêng được thầy giáo hướng dẫn trên lớp. Thực hiện đề tài này là tiền đề để chúng em nắm được những kiến thức cơ bản về vi điều khiển 8051, từ đó tạo cơ sở để tiếp tục nghiên cứu những họ vi điều khiển khác như AVR, PIC, ARM… phục vụ trong quá trình học tập và làm việc sau này. Chúng em chân thành cảm ơn thầy Nguyễn Hồng Quang đã hướng dẫn chúng em hoàn thành bài tập này. Nhóm 2 – TĐH 4 – K50
- 2. MÔ TẢ KĨ THUẬT 2.1 THIẾT KẾ MẠCH Hai mạch chính sử dụng trong bài tập này là mạch SENSORS để dò đường và mạch VI XỬ LÝ VÀ ĐỘNG CƠ để thu tín hiệu, xử lý và đưa ra tín hiệu điều khiển hai động cơ để dẫn hướng. Ngoài ra, để nạp chương trình cho vi điều khiển, chúng em sử dụng mạch nạp ISP loại đơn giản tự làm theo sơ đồ trên mạng Internet. a) MẠCH SENSORS Đường đi của xe được vẽ bằng vạch đen nằm trên nền trắng. Để xe nhận ra được đường đi, chúng em sử dụng các cặp led thu phát hồng ngoại đặt gần nhau. Các led phát phát ra ánh sáng đỏ, các led thu có điện trở phụ thuộc vào có nhận được ánh sáng phản xạ từ đường đi hay không. Khi cặp thu phát ở vị trí nền trắng, ánh sáng từ led phát phát ra phản xạ trên nền trắng và tới led thu. Led thu thu được ánh sáng này thì điện trở giảm xuống, điện áp ở cực Anot của led thu gần về 0. Ngược lại, ở vị trí vạch đen, ánh sáng từ led phát phát ra không phản xạ lại được do bị vạch đen hấp thụ. Led thu không nhận được ánh sáng này nên điện áp ở cực Anot của nó gần bằng 5 V. Điện áp ra từ led thu được đem so sánh với điện áp chuẩn đã được tinh chỉnh hợp lý qua IC LM324 để cho ra mức logic 0-1, đưa vào vi điều khiển xử lý. Hình ảnh minh họa như sau:
- IC LM324 gồm 4 bộ so sánh. Mỗi bộ so sánh được minh họa như hình bên. Trong đó, đầu vào đảo nối với cực Anot của led thu và đầu vào không đảo nối với điện áp so sánh từ chiết áp. Khi led ở ngoài nền trắng, mức điện áp trên led thu đo được là 3.0V, ngược lại, mức điện áp thu đo được khi bắt vào vạch đen là 4.6 V. Điện áp so sánh (Vref) được đặt qua biến trở 10k là 3.8 V. Khi ở ngoài nền trắng: Vled thu Vref nên Output=0 Để bắt đường được tốt, chúng em sử dụng 6 cặp led thu phát được bố trí như sau (LT: Led thu; LP: Led phat): LT3 LP3 LT1 LT2 LT5 LT6 LP1 LP2 LP5 LP6 LT4 LP4
- Sơ đồ nguyên lý mạch SENSORS: Sơ đồ mạch in:
- b) MẠCH VI ĐIỀU KHIỂN VÀ ĐỘNG CƠ Khối NGUỒN: Trong khối nguồn chúng ta sử dụng 1 bình ắc quy khô 12V.Mặt khác hệ thốngiều khiển cần phải có nguồn 5V để cung cấp cho khối VI ĐIỀU KHIỂN và khối SENSORS. Để tạo nguồn 5V DC chúng ta sử dụng IC ổn áp 7805, với đầu vào gồm đất chung của toàn hệ thống và nguồn 12 VDC lấy trực tiếp từ nguồn ắc quy. IC ổn áp LM7805 được lắp một tản nhiệt loại nhỏ để tản bớt nhiệt khi hoạt động giúp khối nguồn cũng như toàn bộ mạch hoạt động ổn định. Mạch nguồn như sau: Trong mạch nguồn có sử dụng một cầu chì kí hiệu là SW2 phòng xảy ra sự cố chập mạch, nhằm bảo vệ cho mạch nguồn cũng như các khối liên quan khác. Khối VI ĐIỀU KHIỂN Khối này gồm có Vi điều khiển AT89S52, mạch RESET, mạch tạo dao động, các led báo vạch về từ mạch SENSORS, Jumpers đầu vào dùng để nạp ISP. + Vi điều khiển AT89S52 được chúng ta sử dụng vì nó có đầy đủ những chức năng của vi điều khiển AT89C51. Ngoài ra còn có thêm một timer (timer2) và có bộ nhớ Flash, công nghệ nạp ISP (In System Programming) tức là nạp mà không cần tháo chip ra khỏi mạch, giúp việc lập trình và test rất thuận tiện. Giá thành thậm chí còn rẻ hơn AT89C51. + Mach RESET có chức năng reset lại hoạt động của vi điều khiển, được nối vào chân số 9 của vi điều khiển là chân tích cực cao. Khi chân số 9 được set lên 1 thì vi điều khiển được reset lại. Để chống rung khi ấn nút, chúng ta dùng một tụ hóa nối song song với nút ấn. + Mạch DAO ĐỘNG sử dụng thạch anh 12Mhz, như vậy một chu kì máy là 1us, rất thuận tiện cho việc tính toán và lập trình. Tuy nhiên có hạn chế là không thể
- truyền thông với máy tính qua cổng COM (đòi hỏi thạch anh 11.0592Mhz). Thạch anh này được nối đất với tụ gốm 33p để lọc nhiễu. + Các Jumpers dùng để nạp ISP sử dụng mạch nạp ISP loại đơn giản, chỉ cần dùng 5 chân: GND, MOSI, MISO, SCK, RESET nối với cổng LPT của máy tính thông qua jack DB25. Sử dụng kiểu nạp ISP này rất thuận tiện khi lập trình và test xe vì không phải tháo chip (hạn chế hỏng, gẫy chân chip), tốc độ nạp chấp nhận được, ít khi bị lỗi, chi phí thấp. + Các led báo vạch về dùng để phản ánh tình trạng của các led thu phát ở mạch SENSORS. Khi một cặp thu-phát bắt vào vạch đen thì led báo tương ứng sẽ sáng lên và ngược lại. Nói cách khác, các led báo này phản ánh vị trí lệch của xe so với vạch đen, từ đó giúp debug chương trình thuận tiện hơn rất nhiều. Khối LCD HIỂN THỊ Trong bài tập này chúng ta sử dụng một LCD để giới thiệu cũng như hiển thị những thông tin cần thiết khác, đồng thời học cách giao tiếp giữa hai vi xử lý. Do LCD tiêu thụ dòng khá lớn đặc biệt là khi bật đèn nền, làm mau hết ắcquy nên chỉ
- sử dụng LCD với những trường hợp cụ thể. Để bật tắt đèn nền, chúng ta sử dụng một bóng thuận A1015, được điều khiển bởi chân P0.7 của vi điều khiển. Khi P0.7=0 thì bóng thông, cực A của LCD được nối với nguồn 5V, đèn nền sáng và ngược lại. Ngoài ra trong khối còn sử dụng một biến trở 10k tạo điện áp ra đưa vào chân VEE của LCD để điều chỉnh độ tương phản. Khi điện áp UVEE 0 thì độ tương phản là lớn nhất, UVEE 5 V thì độ tương phản là nhỏ nhất. Khối ĐỘNG CƠ Để điều khiển động cơ quay thuận ngược nhanh chậm, chúng ta không thể dùng trực tiếp các chân của vi điều khiển được vì dòng ra của chân vi điều khiển nhỏ. Do vậy chúng ta sử dụng IC L293D gồm hai mạch cầu H bên trong, mỗi mạch cầu H dùng điều khiển một động cơ có sơ đồ khối như hình vẽ:
- Trong khối này còn sử dụng một công tắc nguồn, có tác dụng bật tắt động cơ khi điều chỉnh vị trí của xe trước khi chạy. Bảng chân lý mô tả hoạt động của L293D trên một kênh như sau Giả sử ta cần điều khiển động cơ bên trái. Ba chân cần điều khiển là IN1, IN2, EN1 và đầu ra OUT1 OUT2 của L293D được nối với hai dây của động cơ một chiều. TRẠNG THÁI IN1 IN2 EN1 DỪNG X X 0 QUAY THUẬN 1 0 1 QUAY NGƯỢC 0 1 1
- Mạch in tổng hợp:
- Mạch nạp ISP Mạch nạp sử dụng là loại mạch ISP đơn giản, có sơ đồ như hình dưới: Mạch nạp thực tế:
- 2.2 MÔ TẢ PHẦN CỨNG CPU Cấu trúc chung của bộ vi điều khiển 8051: Một số thành phần chính của bộ vi điều khiển 8051: CPU: bộ não của vi điều khiển, thực hiện các phép toán số học, logic. Các cổng vào ra để nhận, truyền dữ liệu ra các mạch ngoại vi khác ở bên ngoài hoặc cũng có thể dùng để định địa chỉ khi sử dụng bộ nhớ ngoài Rom: nơi lưu trữ bộ nhớ chương trình để CPU thực hiện các lệnh, điều khiển hoạt động của vi điều khiển. Ram: bộ nhớ trong Các bộ timer, bộ đếm: được sử dụng rất nhiều để tạo trễ, dùng trong hoạt động ngắt Cổng nối tiếp để truyền thông máy tinh …… Các bus dữ liệu, bus điều khiển, bus địa chỉ để liên kết các khối trong vi điều khiển. Vi điều khiển sử dụng trong bài tập này là AT89S52 của hãng Atmel. Một số đặc điểm chỉnh của vi điều khiển này như sau: o Tương thích với tập lệnh 8051 o 8K bộ nhớ FLASH hỗ trợ nạp ISP o Điện áp hoạt động là 4.0V-5.5V o Tần số dao động cấp là 0-33Mhz
- o 256x8b Ram nội o 32 đường xuất nhập o 3 bộ định thời 16 bit o 8 nguồn ngắt o Hỗ trợ truyền thông máy tính cổng nối tiếp Với các đặc điểm trên, vi điều khiển AT89S52 hoàn toàn đủ mạnh để giải quyết yêu cầu đặt ra của đề bài. Sơ đồ chân của vi điều khiển AT89S52 được minh họa như hình dưới: Các chân được sử dụng trong bài tập này gồm: các chân nguồn, chân dao động, chân reset, các chân nạp ISP, cổng P3 để nhận tín hiệu led báo về, cổng P0 để điều khiển động cơ, cổng P2 điều khiển LCD.
- Sơ đồ bộ nhớ Ram: Đối với AT89S52 ngoài 128 byte Ram có địa chỉ từ 30h đến 7Fh thì còn có 128 byte Ram có địa chỉ trùng với các thanh ghi chức năng đặc biệt từ 80h đến FFh. Để truy xuất các thanh ghi chức năng đặc biệt ta sử dụng cách định địa chỉ trực tiếp, ngược lại dùng cách định địa chỉ gián tiếp để truy cập 128 byte Ram thêm. 2.3 MÔ TẢ THIẾT KẾ CÁC PHẦN KHÁC Thân xe Thân xe được làm từ một miếng nhựa tổng hợp, kích thước 15x20 cm, đằng trước có gắn bánh lái có thể quay 360o, do vậy chuyển động của xe phần lớn do hai bánh sau quyết định. Hai bánh đằng sau được lắp vào hai trục của động cơ một chiều để lái chiều chuyển động của xe. Hai động cơ sử dụng là động cơ một chiều loại 15V được gắn chặt vào thân xe. Mạch SENSORS kết nối với mạch vi điều khiển qua sợi cáp 8 sợi trong đó có hai sợi cấp nguồn 5V và 6 sợi truyền tín hiệu của mạch SENSORS về cho vi điều khiển. Hình ảnh xe:
- 2.4 THIẾT KẾ PHẦN MỀM Chương trình viết cho vi điều khiển sử dụng ngôn ngữ Assembler với trình dịch là phần mềm Keil C. Ưu điểm của ngôn ngữ Assembler là mã nguồn chạy nhanh và gọn, giúp sinh viên nắm chắc cấu trúc phần cứng của vi điều khiển cũng như các bước lập trình phần mềm. Tuy nhiên nhược điểm của ngôn ngữ này là khó hiểu và rắc rối. Sơ đồ khối điều khiển được tóm tắt như sau: MẠCH MẠCH ĐIỀU KHIỂN SENSORS VI ĐIỀU KHIỂN ĐỘNG CƠ XE CHUYỂN ĐỘNG Lưu đồ thuật toán điều khiển:
- KHỞI TẠO GIỚI THIỆU DÒ ĐƯỜNG NO YES LỆCH Đi thẳng Cua trái Or Cua phải NO VẠCH YES Chương trình con khi bắt vạch đích 2.5 CÁC BƯỚC KIỂM TRA Kiểm tra điện áp đưa ra từ khối nguồn: 4.99V Kiểm tra điện áp trên cực Anot led thu khi qua và không qua vạch đen: tốt Kiểm tra hoạt động của tín hiệu gửi về thông qua led báo: tốt Kiểm tra hoạt động mạch nạp: tốt Kiểm tra hoạt động của LCD: tốt Kiểm tra hoạt động của IC L293: tốt
- 3. KẾT QUẢ ĐẠT ĐƯỢC VÀ PHÂN TÍCH LỖI Trong quá trình thực hiện bài tập lớn, chúng em gặp một số khó khăn sau và đã từng bước khắc phục. Tài liệu Đây là lần đầu tiên thực hiện một sản phẩm thực dựa trên nền kiến thức học tập được nên nhiều vấn đề chưa được thông suốt. Trước hết, là cách làm xe về cơ khí, thiết kế mạch, dò đường ra sao, cua xe trái phải thuận ngược, lập trình LCD… Khắc phục: học hỏi từ hướng dẫn của thầy giáo, các bạn trong lớp đặc biệt là các bạn đã từng tham dự cuộc thi Robocon, học hỏi từ các anh các khóa trước, tham khảo nguồn tài liệu trên mạng Internet…. Kết quả: Học hỏi được nhiều kinh nghiệm làm robot đơn giản từ các nguồn trên, các tutorial về thiết kế mạch, thiết kế cơ khí, băm xung, ngắt… Vật tư Vấn đề: Các linh kiện điện tử khá sẵn (chợ Trời, Hàn Thuyên…). Tuy nhiên một số chi tiết cơ khí khó tìm hơn: các bánh xe, thân xe… Nguồn ắcquy cũng rất quan trọng, cung cấp năng lượng cho toàn bộ xe. Khắc phục: Tìm mua trong chợ Trời, các cửa hàng bán đồ cơ khí, cửa hàng bán đồ cũ, cửa hàng sửa chữa xe máy…. Kết quả: Tìm mua đủ các vật tư và tiến hành lắp ráp hoàn chỉnh toàn bộ xe gồm mạch điều khiển và kết cấu cơ khí. Thiết kế mạch Vấn đề: Chưa có kinh nghiệm về thiết kế mạch thực tế, cần giải quyết các vấn đề: vẽ mạch nguyên lý và mạch in sử dụng hai phần mềm Orcad Capture và Orcad Layout trong bộ sản phẩm Orcad v10.0 của hãng Cadense, các kĩ thuật sắp xếp linh kiện, đi dây, kĩ thuật làm mạch thủ công bằng phương pháp là. Khắc phục: Học cách sử dụng các phần mềm nói trên với nhiều tutorial trên các diễn đàn như www.dientuvietnam.net, www.picvietnam.com , trong mạch cũng sử dụng thư viện chân linh kiện download trên hai diễn đàn trên đã được chúng em chỉnh sửa lại. Về cách làm mạch bằng phương pháp là: học trên mạng và kinh nghiệm của các bạn đã từng làm mạch. Tuy nhiên để ra được hai mạch chạy ổn định thì cũng đã hỏng mất vài cái.
- Mạch SENSORS Mạch vi VI ĐIỀU KHIỂN VÀ ĐỘNG CƠ Lập trình Đây có thể coi là vấn đề phức tạp nhất vì là linh hồn của xe tự hành, điều khiển toàn bộ hoạt động của xe và cũng là vấn đề tiêu tốn nhiều thời gian nhất. Vấn đề 1: Đọc và xử lý tín hiệu SENSORS Tính toán, thu thập các trường hợp xe lệch ra khỏi đường, xe gặp khúc cua, xe không bắt được vạch đen, xe bắt vạch đích, xe cua ở góc cua gấp… Xử lý các trường hợp trên như thế nào? Trong quá trình test xe, nhiều khi Sensors bắt không chuẩn hoặc không ổn định.
- Khắc phục: Để thu thập các trường hợp, dùng tay đẩy xe đi theo đường đặc biệt là các khúc cua và ghi tín hiệu hiển thị trên các led báo về, tính toán các trường hợp lệch trái, lệch phải, lệch ít, lệch nhiều, không lệch, bắt vạch đích… Hàn chắc các mối hàn mạch SENSORS, kiểm tra cáp nối với mạch vi điều khiển, điều chỉnh biến trở để lấy điện áp so sánh hoạt động ổn định đưa vào IC LM324 là 3.8V. Kết quả:Mạch hoạt động ổn định, SENSORS bắt rất tốt, tín hiệu báo về trên mạch vi điều khiển chuẩn xác. Vấn đề 2: Cách điều chế độ rộng xung PWM để đưa vào chân IN1, IN3 điều khiển chiều quay cũng như tốc độ quay của hai động cơ truyền động. Trong quá trình test xe, chúng em gặp các vấn đề: băm xung xe không chạy, cùng băm xung với hai giá trị bằng nhau vào IN1 và IN3 nhưng tốc độ quay của hai động cơ không bằng nhau hoặc trường hợp động cơ quay không đúng với chương trình. Ví dụ cùng một trường hợp Led báo về nhưng có lúc động cơ quay thuận, lúc quay ngược. Khắc phục: Hiệu chỉnh chương trình băm xung cho hợp lý. Mô phỏng chương trình nói riêng cũng như mạch vi điều khiển, động cơ nói chung bằng phần mềm mô phỏng rất mạnh là Proteus bản v7.2 SP6. Phát hiện điện trở treo ở cổng P0 bị hỏng, một chân điện trở có giá trị nhỏ hơn hẳn các thanh khác dẫn đến tín hiệu vào chân IN của L293 bị ảnh hưởng, hai bánh không quay đều nhau.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng môn Lắp ráp và cài đặt máy tính - Bài 13. Chẩn đoán và xử lý sự cố cơ bản - Trường CĐ nghề CNTT iSPACE
8 p | 422 | 126
-
Bài giảng Kiến trúc máy tính: Chương 3 - Cấu trúc phần cứng của máy tính
12 p | 269 | 48
-
Bài giảng Phần cứng máy tính: Bài 5 - TC Việt Khoa
65 p | 168 | 44
-
Bài giảng Cấu trúc máy tính - Chương 2: Tổ chức CPU
112 p | 96 | 15
-
Bài giảng Cấu trúc máy tính: Chương 3 (tt) - Hoàng Văn Hiệp
213 p | 106 | 13
-
Bài giảng Tính toán song song (Parallel Computing): Phần 1
30 p | 145 | 12
-
Bài giảng Kiến trúc máy tính: Chương 4 - Vũ Thị Lưu
80 p | 38 | 10
-
Bài giảng Kiến trúc máy tính: Chương 1 - Trần Sơn Hải
55 p | 87 | 9
-
Bài giảng môn học Kiến trúc máy tính - Tổ chức máy tính
22 p | 54 | 9
-
Bài giảng Kiến trúc máy tính: Phần 2 - Trường ĐH Công nghệ Giao thông vận tải
100 p | 23 | 8
-
Bài giảng Hệ điều hành: Phần 1 - Trường Đại học Kiến trúc Hà Nội
98 p | 19 | 7
-
Bài giảng Kiến trúc máy tính: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định
121 p | 48 | 7
-
Bài giảng Tin học đại cương: Phần 1.2 - Lê Văn Hiếu
44 p | 24 | 6
-
Bài giảng Tin học đại cương (Phần 1) - Chương 2: Hệ thống máy tính
107 p | 36 | 5
-
Bài giảng Kiến trúc máy tính và hệ điều hành: Chương 2 - Nguyễn Ngọc Duy
57 p | 45 | 5
-
Bài giảng Xây dựng các hệ thống nhúng: Phần 1
139 p | 26 | 5
-
Bài giảng Tin học đại cương (Phần 1): Bài 2.1 - Tổ chức bên trong máy tính
71 p | 17 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn