We may earn an affiliate commission when you visit our partners.
NSS Channel

*) Sau khi hoàn thành khóa học về lập trình vi điều khiển, học viên có thể đạt được các mục tiêu học sau:

Read more

*) Sau khi hoàn thành khóa học về lập trình vi điều khiển, học viên có thể đạt được các mục tiêu học sau:

  1. Thành thạo Lập Trình Ngôn Ngữ Assembly: Hiểu biết sâu sắc về cú pháp và nguyên tắc lập trình ngôn ngữ assembly, giúp viết mã code hiệu quả cho vi điều khiển.

  2. Hiểu Về Kiến Trúc Vi Điều Khiển: Nắm vững kiến trúc vi điều khiển, bao gồm CPU, tổ chức bộ nhớ, các cổng I/O, bộ đếm thời gian và ngắt. Sử dụng thành thạo các thành phần này để thiết kế và triển khai các ứng dụng hệ thống nhúng.

  3. Phát Triển Ứng Dụng Sử Dụng Ngôn Ngữ C: Thành thạo viết mã lập trình vi điều khiển bằng ngôn ngữ C, sử dụng các cấu trúc như hàm, mảng, cấu trúc và con trỏ để phát triển các giải pháp phần mềm nhúng.

  4. Thực Hiện Các Giao Thức Liên Lạc: Tiếp cận thực tế trong việc thực hiện các giao thức liên lạc như

*) Trước khi tham gia khóa học về lập trình vi điều khiển, học viên nên có những kiến thức và kỹ năng cơ bản sau:

  1. Kiến Thức Cơ Bản về Lập Trình: Hiểu biết về các khái niệm cơ bản của lập trình như biến, vòng lặp, câu lệnh điều kiện và hàm.

  2. Hiểu Biết Cơ Bản về Điện Tử: Kiến thức cơ bản về nguyên lý điện tử bao gồm điện áp, dòng điện, các linh kiện điện tử như resistor, capacitor và logic số học.

  3. Sử Dụng Máy Tính: Sử dụng máy tính và các công cụ phần mềm cơ bản để viết, biên dịch và gỡ lỗi mã code.

  4. Kỹ Năng Toán Học Cơ Bản: Có kỹ năng toán học cơ bản để hiểu các tính toán thời gian và xử lý tín hiệu trong hệ thống nhúng.

Nếu không có những kiến thức và kỹ năng này, khóa học vẫn có thể trở thành điểm khởi đầu lý tưởng cho người mới bắt đầu.

*) Khóa học này dành cho những người muốn học sâu về lập trình vi điều khiển, đặc biệt là những ai muốn xây dựng nền tảng vững chắc trong phát triển hệ thống nhúng. Các đối tượng học viên bao gồm:

  1. Sinh viên và người đam mê: Sinh viên chuyên ngành khoa học máy tính, kỹ thuật điện tử hoặc những người đam mê về điện tử và lập trình.

  2. Chuyển đổi nghề nghiệp: Các chuyên gia muốn chuyển hoặc nâng cao kỹ năng trong phát triển hệ thống nhúng, bao gồm kỹ sư phần mềm, kỹ sư phần cứng và nhà thiết kế sản phẩm.

  3. Giáo viên và giảng viên: Giáo viên muốn tích hợp các khái niệm thực tế về lập trình vi điều khiển vào chương trình giảng dạy của mình.

  4. Doanh nhân và sáng tạo gia: Những người muốn tạo ra các sản phẩm hoặc giải pháp dựa trên hệ thống nhúng cho các lĩnh vực như IoT, robot, ô tô và điện tử tiêu dùng.

  5. Người muốn thay đổi nghề nghiệp hoặc tự học: Những người muốn thay đổi nghề nghiệp hoặc tự học trong lĩnh vực hệ thống nhúng và lập trình vi điều khiển.

Enroll now

What's inside

Learning objectives

  • Nắm vững kiến trúc vi điều khiển, bao gồm cpu, tổ chức bộ nhớ, các cổng i/o, bộ đếm thời gian và ngắt.
  • Hiểu biết sâu sắc về cú pháp và nguyên tắc lập trình ngôn ngữ assembly, giúp viết mã code hiệu quả cho vi điều khiển.
  • Thành thạo viết mã lập trình vi điều khiển bằng ngôn ngữ c, sử dụng các cấu trúc như hàm, mảng, cấu trúc và con trỏ để phát triển các giải pháp phần mềm nhúng.
  • Tiếp cận thực tế trong việc thực hiện các giao thức liên lạc như uart, spi và i2c để giao tiếp với các thiết bị và ngoại vi bên ngoài.
  • Được tương tác và hỗ trợ từ đội ngũ giảng viên giàu kinh nghiệm thực hành
  • Được cung cấp đầy đủ mã nguồn chương trình và các file mô phỏng proteus
  • Được cung cấp đầy đủ các file cài đặt và hỗ trợ cài đặt
  • Người học chỉ cần mua khóa học một lần và sẽ sở hữu khóa học trọn đời
  • Show more
  • Show less

Syllabus

Giới thiệu chung | General Introduction
Hướng dẫn học và đánh giá khóa học | Guide on how to study and rate a course
Giới thiệu về vi điều khiển AVR và cài đặt môi trường làm việc
Read more
Giới thiệu vi điều khiển, phân loại, chức năng, và thành phần cơ bản
Câu hỏi trắc nghiệm

- Bài này hướng dẫn người học cài đặt phần mềm, cách sử dụng mạch nạp.

- File cài đặt được cung cấp trong phần tài liệu có thể tải xuống.

- Bài này hướng dẫn người học tạo một chương trình đơn giản và cách xem mã lệnh trên phần mềm. Lưu ý, cần phải có mạch nạp, có IC atmega16 thì mới xem được mã lệnh trên phần mềm.

- File mã nguồn C cũng được cung cấp trong phần tài liệu có thể tải xuống

Các câu hỏi trắc nghiệm giúp sinh viên ôn tập lại kiến thức chương 1

Cấu trúc vi điều khiển - Thao tác đọc ghi dữ liệu với thanh ghi đa năng
32 Thanh ghi đa năng 8bit, Thanh ghi X, Y, Z 16bit
Đổi các số giữa cơ số 16 (số HEX) và cơ số 2
Câu hỏi trắc nghiệm:
Ghi dữ liệu vào các thanh ghi đa năng. Lệnh ASM. Mã lệnh 16 bit.
Xóa nội dung các thanh ghi đa năng R0-R31, Lệnh LDI Rd,0 hoặc CLR Rd
Copy nội dung thanh ghi đa năng Rm sang Rd, Lệnh ASM: Move Rd, Rm
Ghi dữ liệu các thanh ghi 16 bit: X, Y, Z, quan sát trên AVRStudio
Thanh ghi vào ra dữ liệu, Thanh ghi cổng A, Cổng B, Cổng C, Cổng D
Ghi dữ liệu ra thanh ghi vào ra, lệnh ASM: OUT A, Rd
Đọc dữ liệu vào từ thanh ghi vào ra, lệnh IN Rd, A
Ứng dụng đọc dữ liệu vào từ cổng B và xuất dữ liệu ra cổng A

Câu hỏi trắc nghiệm giúp sinh viên ôn tập lại nội dung đã học trong bài 2

Đọc ghi dữ liệu với các bộ nhớ của vi điều khiển
Bộ nhớ Flash (Program), bộ đếm chương trình, tóm tắt lập trình VDK
Quan sát bộ đếm chương trình và bộ nhớ Flash trên AVRStudio
Bộ nhớ SRAM, Truy xuất bộ nhớ SRAM theo chế độ địa chỉ trực tiếp
Ghi dữ liệu vào bộ nhớ SRAM theo chế độ địa chỉ trực tiếp
Đọc dữ liệu từ bộ nhớ SRAM theo chế độ địa chỉ trực tiếp
So sánh ghi dữ liệu vào bộ nhớ SRAM theo chế độ địa chỉ trực tiếp và gián tiếp
Các bước ghi dữ liệu vào bộ nhớ SRAM theo chế độ địa chỉ gián tiếp
Các bước đọc dữ liệu từ bộ nhớ SRAM theo chế độ địa chỉ gián tiếp
Phân tích sơ đồ khối atmega16, sơ đồ chân, địa chỉ TG I/O ở datasheet
Ngôn ngữ lập trình C cho vi điều khiển AVR
Giới thiệu ngôn ngữ lập trình C cho vi điều khiển AVR
Các kiểu dữ liệu sử dụng trong ngôn ngữ lập trình C cho VDK AVR
Vòng lặp cấu trúc While (đk), vòng lặp vô tận While(1) trong C VDK
Viết chương trình đọc dữ liệu vào cổng B và xuất dữ liệu ra cổng A
Viết chương trình quét 1 phím được nhấn bằng ngôn ngữ C cho VDK
Thiết kế bộ đếm lên từ 0 đến 9 dùng atmega16 và ngôn ngữ C cho VDK
Viết chương trình quét 8 phím đơn lẻ nối trực tiếp đến cổng B
Viết chương trình quét bàn phím gồm 9 phím đơn lẻ nối qua IC 74LS147
Lắp ráp các mạch điều khiển, mạch bàn phím 8 phím, hiển thị ledbar
Lập trình ứng dụng dùng 2 nút nhấn để tăng giảm cường độ
Sử dụng toán tử trong ngôn ngữ C cho VDK
Toán tử gán và toán tử số học sử dụng trong ngôn ngữ C cho VDK
Toán tử quan hệ và toán tử logic sử dụng trong ngôn ngữ c cho VDK
Toán tử thao tác bit: AND bit và OR bit, sử dụng trong ngôn ngữ C
Toán tử thao tác bit: Dịch phải và Dịch trái, sử dụng trong ngôn ngữ C
Cách đưa một bit nào đó của thanh ghi lên 1 bằng ngôn ngữ C
Tác động lên từng bit ở các thanh ghi vào ra bằng ngôn ngữ C
Xóa 1 bit của thanh ghi về 0, lấy 1 bit ra khỏi thanh ghi, vòng lặp chờ sự kiện
Thiết kế bộ đếm từ 0 đến 999, sử dụng các toán tử trong ngôn ngữ C
Thiết kế bộ đếm từ 0 đến 999, sử dụng chung 4 đường dữ liệu
Bộ nhớ EEPROM, thanh ghi địa chỉ, dữ liệu, các bit điều khiển đọc ghi
Viết chương trình ghi dữ liệu vào bộ nhớ EEPROM bằng ngôn ngữ C
Viết chương trình đọc dữ liệu vào bộ nhớ EEPROM bằng ngôn ngữ C
Câu lệnh cấu trúc Swith Case, FOR và Kiểu dữ liệu mảng trong ngôn ngữ C
Câu lệnh cấu trúc Swith case trong ngôn ngữ lập trình C cho VDK
Câu lệnh cấu trúc FOR trong ngôn ngữ lập trình C cho vi điều khiển
Viết chương trình hiển thị thời gian theo phút giây bằng ngôn ngữ C
Kiểu dữ liệu mảng trong ngôn ngữ C, khai báo và sử dụng dữ liệu mảng
Xung nhịp hệ thống và các tùy chọn xung nhịp
Giới thiệu xung nhịp hệ thống và các tùy chọn xung nhịp của IC VDK
Hướng dẫn lựa chọn tần số xung nhịp hệ thống khi nạp chương trình
Sử dụng ngắt trong lập trình hệ thống
Giới thiệu cơ chế hoạt động của ngắt trong lập trình hệ thống
Viết chương trình và mô phỏng cách hoạt động của ngắt ngoài INT0
Bộ định thời/ bộ đếm (Timer/ Counter)
Bộ định thời/ bộ đếm (Timer/ Counter). Câu chuyện NT và Timer/counter
Các chế độ hoạt động của Timer/counter. Chế độ Normal Top = 0xFF
Chế độ Normal Top =0xFF của timer, Ưu nhược điểm và cách tính chu kỳ
Hoạt động Timer/counter. Chế độ CTC (Clear Timer On Compare Match)
Hoạt động Timer/counter. Ưu điểm Chế độ CTC so với chế độ Normal
Hoạt động Timer/counter. Chế độ PWM Top = 0xFF, ưu và nhược điểm
Hoạt động Timer/counter. Chế độ PWM Top = ICR, ưu và nhược điểm
Nguyên lý cấu tạo và điều khiển hoạt động của động cơ bước
Viết chương trình điều khiển động cơ bước dùng IC công suất
Viết chương trình điều khiển động cơ bước sử dụng Timer chế độ PWM

Các câu hỏi trắc nghiệm giúp người học ôn tập củng cố kiến thức trong chương 10

Đề thi trắc nghiệm từ chương 1 đến chương 10 giúp giảng viên tổ chức kiểm tra lấy điểm giữa kỳ

Bộ chuyển đổi từ tương tự sang số ADC và từ số sang tương tự DAC
Cấu tạo, nguyên lý hoạt động của bộ chuyển đổi tương tự sang số ADC
Mô phỏng hoạt động của ADC trên phần mềm proteus
Giao tiếp giữa vi điều khiển và màn hình LCD
Màn hình LCD12864, cấu trúc bên trong và sơ đồ chân của LCD
Màn hình LCD12864, kết nối phần cứng và phần mềm giữa LCd với VĐK
Các hàm LCD, hàm khởi tạo LCD, hàm xóa LCD, Hàm thiết lập font
Các hàm LCD, hàm hiển thị ký tự lưu trong RAM, lưu trong Flash
Các hàm LCD, hàm kẻ đường thẳng, hàm vẽ hình chữ nhật
Các hàm LCD, hàm vẽ hình tròn, cung tròn, tấm tròn, tấm chữ nhật
Viết hàm hiển thị các số lên LCD và cách hiển thị thời gian đếm ngược
Giao tiếp SPI (Serial Peripheral interface)
Giao tiếp SPI, Serial Peripheral interface, 2 đường truyền MISO, MOSI
Giao tiếp SPI, Serial Peripheral interface, đường SCK và 4 chế độ
Giao tiếp SPI, đường SS, cấu hình vào / ra và kết nối trên mạch
Giao tiếp SPI, Cách thức hoạt động, vai trò SCK, SS, MOSI và MISO
Giao tiếp SPI, Các thanh ghi trong module SPI (SPCR, SPSR, SPDR)

Save this course

Save Khóa học Lập trình vi điều khiển AVR từ cơ bản đến nâng cao to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Khóa học Lập trình vi điều khiển AVR từ cơ bản đến nâng cao with these activities:
Ôn tập kiến thức cơ bản về điện tử
Củng cố kiến thức nền tảng về điện tử để hiểu rõ hơn về hoạt động của vi điều khiển.
Show steps
  • Xem lại các khái niệm về điện áp, dòng điện, điện trở, tụ điện.
  • Giải các bài tập cơ bản về mạch điện.
  • Tìm hiểu về các linh kiện điện tử thông dụng.
Đọc sách về kiến trúc máy tính
Nâng cao hiểu biết về kiến trúc máy tính để nắm vững cấu trúc và hoạt động của vi điều khiển AVR.
View Alter Ego on Amazon
Show steps
  • Đọc các chương liên quan đến kiến trúc CPU, bộ nhớ và I/O.
  • Tìm hiểu về các khái niệm như tập lệnh, pipeline và cache.
  • So sánh kiến trúc RISC-V với kiến trúc AVR.
Nghiên cứu datasheet của Atmega16
Hiểu rõ datasheet để khai thác tối đa khả năng của vi điều khiển AVR.
View Alter Ego on Amazon
Show steps
  • Tải datasheet của Atmega16 từ trang web của nhà sản xuất.
  • Đọc kỹ các phần liên quan đến kiến trúc, bộ nhớ, I/O và các module ngoại vi.
  • Tìm hiểu về các thanh ghi điều khiển và cách cấu hình chúng.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Thực hành lập trình Assembly
Luyện tập viết mã Assembly để hiểu rõ hơn về cách vi điều khiển thực thi các lệnh.
Show steps
  • Viết các chương trình Assembly đơn giản như cộng, trừ, nhân, chia.
  • Thực hiện các thao tác trên thanh ghi và bộ nhớ.
  • Sử dụng các lệnh điều khiển luồng như nhảy và rẽ nhánh.
  • Gỡ lỗi và tối ưu hóa mã Assembly.
Viết blog về các giao thức giao tiếp
Củng cố kiến thức về UART, SPI và I2C bằng cách viết bài giải thích chi tiết về chúng.
Show steps
  • Nghiên cứu kỹ về UART, SPI và I2C.
  • Viết bài blog giải thích nguyên lý hoạt động, ưu nhược điểm và ứng dụng của từng giao thức.
  • Thêm ví dụ minh họa bằng code và sơ đồ mạch.
  • Chia sẻ bài viết trên các diễn đàn và mạng xã hội.
Xây dựng mạch điều khiển đèn LED bằng AVR
Áp dụng kiến thức đã học để xây dựng một dự án thực tế, giúp hiểu sâu hơn về cách vi điều khiển tương tác với phần cứng.
Show steps
  • Thiết kế mạch điện điều khiển đèn LED.
  • Viết code AVR để điều khiển đèn LED theo các hiệu ứng khác nhau.
  • Lắp ráp mạch điện và nạp code vào vi điều khiển.
  • Kiểm tra và gỡ lỗi mạch điện và code.
Tạo tài liệu hướng dẫn sử dụng thư viện AVR
Chia sẻ kiến thức và kinh nghiệm bằng cách tạo tài liệu hướng dẫn sử dụng thư viện AVR cho người mới bắt đầu.
Show steps
  • Chọn một thư viện AVR phổ biến.
  • Nghiên cứu kỹ về các hàm và chức năng của thư viện.
  • Viết tài liệu hướng dẫn chi tiết, kèm theo ví dụ minh họa.
  • Chia sẻ tài liệu trên các diễn đàn và cộng đồng AVR.

Career center

Learners who complete Khóa học Lập trình vi điều khiển AVR từ cơ bản đến nâng cao will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Khóa học Lập trình vi điều khiển AVR từ cơ bản đến nâng cao.
Cuốn sách này cung cấp kiến thức sâu rộng về kiến trúc máy tính, bao gồm cả RISC-V, một kiến trúc tập lệnh hiện đại. Nó giúp học viên hiểu rõ hơn về cách vi điều khiển hoạt động ở cấp độ phần cứng và phần mềm. Mặc dù không tập trung hoàn toàn vào AVR, các nguyên tắc chung về kiến trúc máy tính vẫn rất hữu ích. Đây là một tài liệu tham khảo giá trị để hiểu sâu hơn về các khái niệm được đề cập trong khóa học.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser