Kho tài liệu Vi điều khiển 8051

Trong các trường đào tạo kỹ thuật, đặc biệt là các chuyên ngành: Tự động hóa, Điện tử viễn thông, Cơ điện tử, Điện điện tử… học 8051 là một môn cơ bản. Bởi khi thành thạo các kiến thức về phần cứng và kỹ thuật viết phần mềm 8051 sẽ là cánh cửa mở ra cho bạn tiếp cận với nhiều kiến trúc Vi xử lý/Vi điều khiển khác như AVR, PIC, ARM…

Dù là một kiến trúc Vi xử lý/ Vi điều khiển có tuổi đời rất lâu nhưng hiện nay các chip 8051 vẫn được sử dụng rất nhiều, bởi sự phổ biến về phần cứng và các thư viện chương trình, bên cạnh đó nguồn tài tài liệu Vi điều khiển 8051 cũng nhiều vô kể.

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết kế cho các ứng dụng hướng điều khiển. Các IC này chính là một hệ thống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch giao tiếp, điều khiển ngắt.

Trong bài viết này sẽ không giới thiệu cũng như chia sẻ các kiến thức về VXL 8051, mà chủ điểm chính là chia sẻ với các bạn các tài liệu để bạn tiếp cận, học tập, thực hành và sáng tạo cho môn học này, cũng như các bạn đã đi làm có thêm tài liệu tham khảo để phục vụ công việc, cũng là nguồn tài liệu để các bạn yêu thích VXL/VĐK 8051 tham học tập khi chưa có điều kiện học trên lớp….

Phần dưới đây là trích đăng lại bài viết “Kinh nghiệm hoc Vi Điều khiển cho Người mới bắt đầu” của Đoàn Hiệp để bạn có thêm chút kinh nghiệm học, và phần dưới bài viết là kho tài liệu VĐK/VXL 8051 chúng tôi muốn chia sẻ với bạn.

Vi điều khiển 8051
Module thực hành Vi điều khiển 8051

1-Tiếp cận với vi điều khiển

Về mặt khoa học mà nói, chúng ta có hai hướng tiếp cận chính với một đối tượng, một là nghiên cứu để phát triển đối tượng đó, hai là sử dụng đối tượng đó. Đối với vi điều khiển, ở thời điểm hiện tại năm 2005, tôi khuyên rằng chúng ta không nên nghiên cứu để phát triển vi điều khiển, mà nên học để sử dụng nó.

Vậy chúng ta cần những gì để tiếp cận và học vi điều khiển?

Trước tiên, nên hiểu quá trình thao tác từ đầu đến cuối để cho một con vi điều khiển bất kỳ hoạt động đó là:

a) Chúng ta cần làm cái gì?

Khi đặt câu hỏi này, chúng ta nghĩ ngay đến tính năng, số chân, và kích thước cần thiết của vi điều khiển. Và chúng ta phải lựa chọn được con vi điều khiển chúng ta cần dùng, tất nhiên kèm theo ngay sau đó là chúng ta có thể mua được nó nữa.

Tôi nói rằng chúng ta phải biết rằng chúng ta có thể mua được nó, chứ đừng đi mua nó vội, mà hãy xem những vấn đề tiếp theo.

b) Lập trình

Tất nhiên công việc của bạn là công việc lập trình, để làm cho con vi điều khiển đó hoạt động theo ý bạn muốn trong giới hạn các tính năng của nó. ở đây có một điểm rất vui đó là nếu bạn xét lại từ thưở “khai sinh lập địa” của con vi điều khiển, chức năng và tập lệnh của nó thật đơn giản, nhưng những công việc như bây giờ nó vẫn hoàn toàn làm được. Đó là vi sao? Là vì bản chất của nó vẫn chỉ là thao tác với những con số nhị phân. Do vậy, nếu một con vi điều khiển không hỗ trợ một tính năng nào đó, thì chúng ta cũng đều có thể thực hiện tính năng đó bằng phần mềm và một vài phần cứng hỗ trợ bên ngoài.

Nhưng tạm dừng chuyện đó lại, các bạn muốn con vi điều khiển hiểu được những chữ là chữ mà các bạn sẽ dùng để lập trình, thì các bạn phải biến đổi các chữ đó thành ra các con số nhị phân, thể hiện dưới dạng file .HEX

Muốn làm được điều này, các bạn cần có một chương trình dịch.

Việc sau đó là bạn phải biết ngôn ngữ lập trình nào đó, thông thường khi mới bắt đầu, người ta dùng ASM

c) Nạp chương trình

Bạn viết chương trình trên máy tính, bạn đã dịch ra được file HEX để vi điều khiển khi nhận được có thể hiểu được bạn muốn làm gì. Vậy làm sao để đưa nội dung đó vào cho vi điều khiển?

Các bạn cần có một mạch nạp và một chương trình nạp phù hợp với mạch nạp đó. Công việc nạp được cụ thể hoá bằng việc cắm mạch nạp vào máy tính, bật chương trình nạp, load file .HEX vào chương trình nạp, lựa chọn vi điều khiển cần nạp, cài đặt các thông số nạp, nhấn nút Program trên chương trình nạp. Sau khi nạp xong, chương trình nạp nào cũng thông báo kết quả nạp được hay không nạp được. Nếu không có gì sai, nhấn OK là xong.

d) Mạch chạy vi điều khiển

Một mạch chạy vi điều khiển tối thiểu cần có nguồn cấp điện cho vi điều khiển hoạt động. Nguồn này phải cấp điện áp từ 2.5V đến 5.5V và dòng từ 150mA đến 300mA tuỳ theo mỗi loại vi điều khiển. Nguồn này chỉ cung cấp cho vi điều khiển hoạt động, không cung cấp cho các thiết bị ngoại vi. Mạch reset để reset hoạt động của vi điều khiển. Mạch dao động (có hoặc không có) có thể được tích hợp sẵn trong vi điều khiển, chế độ này gọi là dao động nội. Nếu không có mạch dao động nội, phải dùng thạch anh để tạo đao động cho vi điều khiển. Thạch anh thường dùng từ 38KHz cho đến 40MHz tuỳ theo từng loại vi điều khiển.

Chính vì những đặc điểm này, nếu chúng ta không tính đến tất cả các thiết bị ngoại vi cần điều khiển, chúng ta hãy mạnh dạn thiết kế một mạch chuẩn cho vi điều khiển, cung cấp điện áp 5V, dòng 300mA, mạch reset và mạch dao động. Khi dùng bất kỳ loại vi điều khiển nào, cũng có thể dùng mạch này.

Nguồn cho thiết bị ngoại vi, tôi khuyên rằng nên thiết kế riêng cho từng thiết bị ngoại vi, và cho rằng thiết bị ngoại vi là bất kỳ thiết bị nào nối trực tiếp với mạch vi điều khiển nêu trên.

Ngoài ra, cần lưu ý rằng, vi điều khiển nhận và xuất tín hiệu điện trên các chân từ 2.5V đến 5.5V (phụ thuộc vào nguồn), và từ 12mA đến 20mA (tuỳ loại). Vì vậy, các thiết bị ngoại vi phải được thiết kế sao cho khi giao tiếp với vi điều khiển, trực tiếp nối vào các chân vi điều khiển, và có dòng xuất nhập, cũng như điện áp logic như trên.

e) Kết luận

Trong tất cả những vấn đề cần có này, chúng ta thấy rằng các mạch nguồn, reset và dao động là khá đơn giản, và hầu như được cung cấp một cách chi tiết bởi nhà sản xuất. Chính vì thế, chỉ cần lật datasheet ra và thiết kế giống hệt.

Đối với thiết bị ngoại vi, thì tuỳ theo ứng dụng mà chúng ta thiết kế. Tôi chưa đề cập đến ở đây.

Đối với chương trình nạp và mạch nạp, chúng ta hoàn toàn có thể lên các diễn đàn điện tử trong và ngoài nước, hoặc tìm các nguồn cung cấp mạch nạp cho từng loại vi điều khiển. Đa số các loại vi điều khiển đều có những người thiết kế mạch nạp làm sẵn, chỉ việc tìm và sử dụng. Chúng ta tuyệt đối không nên quan tâm đến việc làm sao để làm ra mạch nạp, hay viết ra được chương trình nạp, hoặc giả nguyên lý nạp như thế nào.

Những người tìm hiểu sâu với mục đích giảng dạy thì cần thiết làm việc này, để giúp sinh viên hiểu rõ hơn vấn đề, hoặc phòng khi sinh viên đặt câu hỏi. Nhưng những người dùng, không cần quan tâm đến việc này.

Chúng ta chỉ cần tìm mạch nguyên lý, làm mạch, và từ đó về sau cứ thế là dùng. Thông thường, và gần như là mặc định, bất cứ người nào cung cấp mạch nạp, cũng đều cung cấp theo đó chương trình nạp. Vậy kể từ đây, chúng ta cũng không cần quan tâm đến mạch nạp và chương trình nạp nữa.

Chương trình dịch, hầu hết các nhà sản xuất cung cấp chương trình dịch cho ngôn ngữ ASM là miễn phí. Có một số nhà sản xuất cung cấp cả môi trường soạn thảo miễn phí luôn (như Microchip PIC chẳng hạn).

Các chương trình dịch từ ngôn ngữ cấp cao C, Pascal, Basic, … thường được bán với giá khá cao. Tuy nhiên, ở Việt Nam, thực tế là chúng ta dùng rất nhiều những chương trình không có bản quyền. Tôi không cổ vũ cho việc dùng trình dịch không có bản quyền, nhưng thực tế là thực tế, bây giờ hầu như các chương trình dịch ngôn ngữ cấp cao cho hầu hết các loại vi điều khiển đều được cung cấp đầy đủ trên các diễn đàn của cả Việt Nam lẫn nước ngoài. Vì vậy, về phần chương trình dịch, các bạn cũng chẳng phải lo lắng gì nữa.

Vậy điều quan trọng nhất, các bạn cần phải học, đó là học cách viết chương trình. Tôi đã phân tích vấn đề này ở diễn đàn điện tử www.diendandientu.com và sẽ đăng lại bài viết này tại www.picvietnam.com (diễn đàn mà tôi sắp mở ra). Để viết được chương trình, các bạn phải hiểu rằng, bạn viết chương trình cho một vi điều khiển, tức là sử dụng các tính năng của vi điều khiển. Vậy các bạn phải theo các bước sau:

  • tính năng đó hoạt động như thế nào? tại sao chúng ta dùng tính năng đó?
  • làm sao để kích hoạt cho vi điều khiển hiểu rằng chúng ta cần dùng tính năng đó?
  • khi làm việc với một tính năng bất kỳ, chúng ta phải tương tác với những thanh ghi đặc biệt nào trong vi điều khiển?
  • một số thuật toán để thực hiện công việc

Như vậy, các bạn sẽ nắm ngay được rằng, để điều khiển một thiết bị ngoại vi nào đó, chúng ta phải xác định công việc cần phải làm, xác định xem dùng tính năng nào của vi điều khiển để giải quyết công việc, khi đã nắm rõ hết các tính năng của vi điều khiển, phần còn lại là một chút logic để sắp xếp chương trình chạy cho có hệ thống.

Chính vì vậy, các bạn sẽ thấy rằng có rất nhiều thuật toán kinh điển đã được xây dựng, các thư viện code… Bởi vì thực tế, công việc cũng chỉ quanh đi quẩn lại có bao nhiêu đó. Đầu óc logic và khả năng lập trình một phần là do thiên phú, một phần là do sự rèn luyện và tích luỹ mà có.

Chính vì vậy, cùng một việc làm, người này làm tốt hơn người kia, chủ yếu là sự logic và biết nhiều thuật toán xử lý công việc.

Tóm lại, điều quan trọng nhất các bạn phải học là cách thực hiện một chương trình sao cho thật logic, hiệu quả, nhờ sự hướng dẫn của mọi người để tìm đến các thư viện code, những bài tập mẫu để đỡ mất công suy nghĩ những vấn đề bé nhỏ mà người khác đã giải quyết tốt.

Rất nhiều người tự tin vào khả năng sáng tạo của mình, mà thiếu sự rèn luyện và tích luỹ kinh nghiệm lập trình, cho nên cho rằng bài viết của tôi có phần dở hơi, vì không cung cấp thêm các kỹ thuật gì cho họ. Tuy nhiên tôi lại cho rằng khi hiểu mình cần phải làm gì, học gì, tích luỹ gì, giảm bớt cái gì, nó quan trọng hơn rất nhiều so với việc biết thêm một thứ kiến thức nhỏ mọn từ người khác. Cá nhân tôi khuyên các sinh viên mới bắt đầu làm việc với vi điều khiển một lời khuyên chân thành là các bạn hãy theo những bước tôi trình bày, học tập và tự mình đánh giá các vấn đề, hình thành một bản đồ kiến thức, rồi tự thực hiện một đề tài bất kỳ. Sau khi làm xong một đề tài bất kỳ, kể cả đề tài đó chỉ là làm nhấp nháy một cái đèn led, các bạn sẽ thấy rằng, các đề tài khác rồi cũng tương tự. Nhưng vấn đề quan trọng là phải xác định được những bước thực hiện như tôi đề cập trên kia và tiếp sau đây.

2-Các bước thực hiện một đề tài với vi điều khiển

Tôi viết ra đây các bước để một người mới học có thể theo và tiếp cận ngay được với vi điều khiển

a) Tìm hiểu một số khái niệm cần thiết:

  • Hiện nay có 3 họ vi điều khiển nổi tiếng là 8051 (bao gồm AVR), PIC và Motorola. Nếu bắt đầu học, chọn một trong 3 loại này để bắt đầu.
  • Tìm hiểu về kiến trúc máy tính, hiểu cơ bản về kiến trúc Harvard và kiến trúc Von Neumann
  • Tìm hiểu khái niệm RISC và CISC
  • Khái niệm thanh ghi
  • Khái niệm Stack
  • Khái niệm con trỏ (pointer)
  • Khái niệm địa chỉ và địa chỉ gián tiếp của một thanh ghi
  • Khái niệm timer
  • Khái niệm ngắt

Vì sao cần những khái niệm này, bởi vì những khái niệm này sẽ là nền tảng đề các bạn hiểu sâu hơn về tính năng và phương thức làm việc của một vi điều khiển. Hơn nữa, những khái niệm này đều là những khái niệm tổng quát, và đều bắt nguồn từ kiến trúc máy tính mà ra. Do vậy, việc tìm kiếm tài liệu cũng không khó khăn gì.

b) Hiểu các tính năng của vi điều khiển:

Các bạn download ngay một datasheet bất kỳ loại vi điều khiển nào, tôi lấy thí dụ download datasheet của PIC16F877A, cho dù là các bạn học AVR hay Motorola hay 89C51…. Các bạn cứ download datasheet này về.

Trong đó, các bạn không cần chú ý chi tiết đến kiến trúc của vi điều khiển đó, mà các bạn chỉ cần xem phần mô tả tính năng. Các bạn sẽ thấy trang đầu tiên của datasheet luôn liệt kê đầy đủ các tính năng của vi điều khiển. Một số tính năng như: timer 8 bit, timer 16 bit, có bao nhiêu ngắt, tính năng ADC, DAC, tính năng PWM, Comparator, Capture, giao tiếp USB, CAN, I2C, UASRT, Parallel, … Đây là các tính năng phổ biến của vi điều khiển hiện nay. Các bạn lật vào trong, đọc để hiểu những tính năng này làm những gì.

Vd: Chỉ cần hiểu ADC (Analog to Digital Converter) dùng để biến đổi một tín hiệu điện áp Analog vào một chân nào đó của vi điều khiển, biến đổi nó qua giá trị số (Digital) bằng cách so sánh với một điện áp tham chiếu (Reference Voltage). Điện áp tham chiếu có thể là điện áp VDD (điện áp nguồn) hoặc điện áp tham chiếu được đưa vào một chân khác. Nguyên lý biến đổi này được thực hiện như thế nào? Thế nào là ADC 10 bit, 12 bit, 8 bit…

Chỉ cần như vậy thôi, các bạn không cần hiểu nhiều hơn nữa.

Nói điều này cũng thật buồn cười cho các bạn đã học lâu rồi, nhưng đây là các bạn mới học, thì việc này vô cùng quan trọng. Vì rất nhiều bạn lên mạng và hỏi rằng PWM là cái gì? Thế nào là Duty cycle?

Do vậy, những khái niệm này, nếu các bạn nắm và hiểu được rồi, thì vấn đề chỉ còn là ứng dụng sử dụng nó thông qua việc lập trình trên vi điều khiển mà bạn chọn nữa thôi. Mà các tính năng này thì vi điều khiển nào cũng giống nhau, cho nên chỉ cần đọc một datasheet thì sẽ biết hết.

c) Tìm dụng cụ học tập

Tất nhiên, đi học phải có dụng cụ học tập. Bạn muốn học con vi điều khiển A, thời buổi này không phải là thời buổi bao cấp, phát phiếu đi lĩnh vi điều khiển về xài. Cho nên, tốt nhất là bạn làm cách nào đó muốn học thì phải tìm mua bằng được nó rồi tính chuyện học gì rồi học.

Cầm con vi điều khiển trong tay rồi mới tính chuyện học, lỡ học không được thì sao? Thì kiếm cái búa phang mạnh một cái vào con vi điều khiển, mở ruột nó ra xem coi nó có cái gì trong đó, thấy nó đen thui, chẳng có gì. Một cái cục đen thui mà mình phải học về nó mà làm gì? Thôi vứt mẹ nó đi. Cách đó là hay nhất.

Tiếp tục trang bị dụng cụ học tập, như tôi đã nói, chúng ta cần có: chương trình dịch, mạch nạp và chương trình nạp. Hiện nay diễn đàn điện tử www.diendandientu.com và diễn đàn tôi sắp mở www.picvietnam.com có cung cấp đủ các công cụ này. Muốn tìm hiểu thêm, các bạn lên các diễn đàn nước ngoài, họ cung cấp không thiếu một thứ gì. Thậm chí không cần lên diễn đàn, đi hỏi thằng Google là có ngay.

Keyword: PIC programmer, PIC bootloader, AVR programmer, free pcb programmer,…. nhiều lắm đánh cái gì vào cũng tìm ra được hết. Nhưng các bạn nên tìm cái nào miễn phí. Sau khi tìm xong nhớ quay lại share cái link đó cho mọi người để mọi người đỡ mất công tìm kiếm.

Keyword: PIC C compiler, AVR C compiler… cứ vậy mà tìm tới tới

Sau khi tìm được sơ đồ nguyên lý mạch nạp, chương trình nạp cho con vi điều khiển của mình, các bạn nhanh chóng làm ngay mạch nạp. Load một chương trình mẫu bất kỳ đơn giản vào vi điều khiển để kiểm tra mạch nạp hoạt động tốt hay không. Nếu tốt thì oki, nếu không thì lại bò lên các diễn đàn để hỏi. Những thằng rảnh rỗi như tôi sẵn sàng trả lời cho các bạn.

d) Học viết chương trình

Học viết chương trình có thể chia cụ thể làm 2 cách học, học để viết cho vi điều khiển chạy được thì nhảy thẳng vào học ngôn ngữ cấp cao, học cấp tốc để đối phó với một đồ án nào đó. Thậm chí vài dòng lệnh ban đầu viết sai, nhảy lên diễn đàn hỏi, tìm thầy hướng dẫn hỏi, tìm bạn hỏi… cuối cùng rồi cũng viết xong cho nó chạy được. Cái nào thấy khó khăn, không biết làm thì tìm code mẫu bằng ngôn ngữ cấp cao, thế là xong.

Cách thứ hai rườm ra hơn, đó là học viết ASM. Học ASM khá công phu, phải hiểu chi tiết cấu trúc vi điều khiển, phải điều khiển từng thanh ghi…

Tuy nhiên, tôi khuyên khi mới học, các bạn nên bắt đầu bằng việc học ASM. Khi nắm vững cách viết ASM cho một con vi điều khiển nào đó, chuyển sang con vi điều khiển khác không mấy khó khăn, và các bạn sẽ giống như một chuyên gia về nó một khi các bạn đã hiểu tường tận mọi vấn đề.

Ban đầu có vẻ sẽ hơi khó xơi và mệt mỏi, nhưng sau này thì các bạn sẽ thấy hoàn toàn tự tin vào kiến thức mình thu thập được.

e) Làm các bài ứng dụng

Sau khi có chương trình nạp và mạch nạp, các bạn thường hay làm ngay bài tập nhấp nháy đèn led là bài tập khá kinh điển. Thực ra đó là gì, các bạn thực hiện một mạch chạy cho vi điều khiển, và thiết bị ngoại vi là cái đèn led. Nhớ lại là thông thường vi điều khiển xuất tín hiệu 5V, 12mA.

Nhưng cái đèn led chỉ dùng ở khoảng 2.5V 12mA, nên chúng ta nối một cái điện trở nối tiếp với cái đèn led.

Như vậy, chúng ta xác định rõ, chúng ta phải làm một mạch chạy cho vi điều khiển, bao gồm nguồn, mạch reset, mạch dao động. Các chân còn lại được nối với dãy chân cắm để nối ra ngoài. Cái này, chúng ta sẽ gọi là mạch test. Và cho đến khi chúng ta học thành thạo một con vi điều khiển nào đó, thậm chi sau này dùng vào việc thực hiện những dự án lớn với con vi điều khiển đó, mạch test này vẫn có giá trị của nó.

Làm một mạch test là điều thứ tư phải làm.

Quay lại chuyện cái đèn led. Cái đèn led và điện trở, thì vài trò của cái đèn led và điện trở là thiết bị ngoại vi, cái đèn led là thiết bị cần điều khiển, cái điện trở là “mạch” giao tiếp. Điều này có nghĩa là, không cần biết bạn làm cái gì, nhưng các bạn thiết kế được một mạch ngoại vi, cắm vào vi điều khiển để điều khiển nó, thì bạn chỉ việc cắm nó vào các chân được đưa ra ngoài của mạch test (các socket, chân cắm…). Nhớ rằng

Mass phải được nối chung trong tất cả các mạch điện tử. Một số mạch điện tử phức tạp dùng nhiều mass khác nhau, thì ít nhất cũng phải có một mass chung với mass của vi điều khiển.

f) Các bước học tính năng vi điều khiển

Sau khi ù ù cạc cạc làm nhấp nháy cái đèn led, theo một sự hướng dẫn nào đó, thậm chí là copy and paste, nhưng cái đèn nó nhấp nháy, chứng tỏ bạn làm tốt mọi việc từ đầu đến khi chính thức bắt đầu học vi điều khiển.

Hãy tiến hành các bài tập sau:

  • Học các thanh ghi đặc biệt, bản đồ bộ nhớ (memory map) (học lý thuyết)
  • Học cách xuất trên từng chân vi điều khiển (bài tập tắt mở đèn led)
  • Học viết hàm delay (làm đèn nhấp nháy)
  • Đèn nhấp nháy dùng timer
  • Bấm một nút, đèn bật/tắt (nhập port, nhập trên từng chân, dùng ngắt ngoài)
  • Điều khiển động cơ (PWM)
  • Đọc encoder (Capture/Comparator)
  • Đọc ADC bằng cách xoay biến trở
  • Giao tiếp RS232
  • Giao tiếp I2C

Sau khi các bạn học xong các bài học này, việc học tiếp các bài học khác sẽ không phải là vấn đề khó khăn với các bạn nữa, các bạn hoàn toàn có thể tham khảo datasheet để thực hiện một mình.

Các bạn cần phải phân biệt thật rõ vấn đề học các chức năng của PIC, với việc học để sử dụng một số thiết bị ngoại vi thông dụng. Ví dụ như việc điều khiển LCD, chẳng qua chỉ là việc xuất nhập PORT, hoặc như bảng điện, quang báo, led 7 đoạn, nó cũng chỉ là việc xuất nhập port. Trong các bài học này, đó là các bạn học các thiết bị ngoại vi thông thường khi dùng vi điều khiển, chứ không phải học các tính năng của vi điều khiển.

Nhưng trái lại, nếu các bạn học một bài học đơn giản vô cùng đó là dùng tính năng PWM để làm bộ biến đổi DAC (Digital to Analog Converter) thì chính là các bạn lại học cách dùng tính năng PWM.

Việc định hướng các bài học, và mục tiêu giảng dạy phụ thuộc chủ yếu vào người hướng dẫn, tuy nhiên tôi phân tích ý này ở đây để các bạn sinh viên hiểu vì sao có thể một số bạn đã thực hành rất nhiều đề tài, nhưng vẫn cảm thấy mình không đủ kiến thức để thực hiện một đề tài lớn với vi điều khiển. Đó là vì các bạn chưa thực sự dùng hết các tính năng của vi điều khiển, mà mới chỉ dùng một vài tính năng và được rèn luyện đi rèn luyện lại.

3-Kho tài liệu Vi điều khiển/Vi xử lý 8051

  1. Giáo trình vi xử lý 1 – Nguyễn Đình Phú _ đại học sư phạm kỹ thuật TPHCM
  2. Giáo trình 8051 – đại học công nghiệp TPHCM
  3. Giáo trình vi điều khiển 8051 – Tong Van On
  4. Giáo trình vi điều khiển cấu trúc lập trình và ứng dụng – Đại học công nghiệp hà nội
  5. Cấu trúc lập trình – ứng dụng và ghép nối vi điều khiển ( 2 tập): Tập 1, Tập 2
  6. Học 8051 theo từng chủ đề ( lý thuyết)
  7. Vi điều khiển 8051 – Nguyễn Tăng Cường và Phan Quốc Thắng
  8. Giáo trình vi điều khiển – Nguyễn Đình Phú, Trương Ngọc Anh
  9. Giáo trình Vi xử lý – Vi điều khiển – Trường Đại học Sao Đỏ – Bộ Công thương
  10. Giáo trình họ Vi điều khiển 8051 có nhiều ví dụ hay
  11. 8051-toan-tap.rar
  12. 89C51(2).rar
  13. 89C51.rar
  14. KT_vi_dieu_khien.rar
  15. HocVDK.rar
  16. KT_vi_dieu_khien.rar
  17. Tổng hợp
  18. CODE_CAC_LOAI.rar