Tổng Hợp Về Vi Điều Khiển AVR

19/03/2012 0 23497

Về AVR:
- Họ vi điều khiển AVR là dòng sản phẩm được phát triển bởi hảng Atmel (1996), nó được chế tạo dựa trên cấu trúc AVR RISC (Reduced Instruction Set Computer) đồng thời AVR là một trong những họ vi điều khiển đầu tiên sử dụng bộ nhớ Flash để lưu trữ chương trình. Có thể thấy rằng trong những năm gần đây Atmel đã trở thành nhà tiên phong trên thế giới về phát triển kỹ thuật bộ nhớ Flash (không biến đổi, có thể xóa bằng điện và lập trình lại bộ nhớ, Họ AVR thường được sử dụng trong các sản phẩm như Camera số, board chủ PC…)

- Vi điều khiển Atmega AVR có công suất cao, tiêu thụ năng lượng thấp, cấu trúc RISC tiến với 130 lệnh với chu kỳ thực hiện đơn xung lớn nhất, 32 thanh ghi đa mục đích 8 bít, 16 MIPS tại tần số đặt 16 MHz, bộ nhân 2 chu kỳ On-chip, Power-on Reset và Brown-out Detection có thể lập trình, bộ dao động RC bên trong có thể lập trình các mức, 5 Mode ngủ (Idle, ADC Noise Reduction, Power-save, Power-down và Standby), có khả năng Reset khi bật nguồn, khả năng dò lỗi Brown out lập trình được, có nguồn ngắt trong và ngắt ngoài.

- Cốt lõi của AVR là sự kết hợp các câu lệnh phong phú với 32 thanh ghi đa mục đích. Tất cả 32 thanh ghi đều trực tiếp kết nối tới bộ xử lý logíc số học - Arithmetic Logic Unit (ALU), cho phép truy nhập 2 thanh ghi độc lập trong một câu lệnh đơn được thực hiện trong một chu kỳ xung. Kết quả của cấu trúc trở nên gọn nhẹ, hiệu quả hơn, trong khi vẫn đạt được thời gian xử lý nhanh hơn gấp 10 lần các vi điều khiển CISC thông thường khác.

- 8K byte Flash trên chíp có thể lập trình với các khả năng đọc trong khi ghi (Read-While-Write), 512 byte EEPROM, 1K byte SRAM, 23 đường vào ra đa mục đích, 32 thanh ghi đa mục đích, 3 Timer/Counter rất linh hoạt với các compare mode, các ngắt trong và ngắt ngoài, một bộ USART nối tiếp có thể lập trình được, ghép nối nối tiếp 2 dây định hướng byte, 6 kênh ADC (8 kênh với loại TQFP và MLF packages) trong đó 4 (hoặc 6) kênh có độ chính xác 10-bit và 2 kênh có độ chính xác 8-bit, Watchdog Timer có thể lập trình được với bộ dao động bên trong, một cổng nối tiếp SPI và 5 mode tiết kiệm năng lượng có thể lựa chọn mềm.

- Idle mode dừng CPU trong khi vẫn cho phép SRAM, Timer/Counters, cổng SPI, và hệ thống ngắt tiếp tục chức năng của chúng.

- Power-down mode tiết kiệm nội dung thanh ghi, nhưng hạn định bộ dao động, không cho phép tất cả các chức năng khác của chíp được hoạt động cho đến khi ngắt tiếp theo hoặc Reset phần cứng xuất hiện.

- Trong Power-save mode, timer không đồng bộ tiếp tục chạy, cho phép sử dụng để duy trì thời gian nền, trong khi các phần còn lại của thiết bị được ngủ.

- ADC Noise Reduction mode dừng CPU và tất các module I/O ngoại trừ timer không đồng bộ và ADC để tối thiểu hóa nhiễu mạch trong suốt quá trình ADC trong chuyển đổi.

- Trong Standby mode, bộ dao động thạch anh/ resonator được phép chạy trong khi các phần còn lại của thiết bị được ngủ. Điều này cho phép start-up rất nhanh cùng với hiệu quả tiêu thụ ít năng lượng.

- Thiết bị được sản suất áp dụng công nghệ tích hợp bộ nhớ non-volatile cao của Atmel. Bộ nhớ chương trình Flash này có thể lập trình thông qua ghép nối tiếp SPI bằng chương trình lập trình bộ nhớ non-volatile riêng, hoặc bằng một chương trình boot on – chip, chạy trong AVR core. Chương trình boot có thể sử dụng bất kỳ một ghép nối nào để download chương trình ứng dụng trong bộ nhớ Flash. Phần mềm trong Boot Flash sẽ tiếp tục chạy trong khi các phần sử dụng Flash vẫn được update, hỗ trợ cho hoạt động đọc trong khi ghi (Read-While-Write).

- Bằng việc kết hợp với một CPU 8-bit RISC với bộ nhớ Flash tự lập trình trong hệ thống trên một chíp, Atmel ATmega8 là một vi điều khiển cực mạnh, thỏa mãn yêu cầu về một bộ vi điều khiển với độ linh hoạt cao và đem lại lợi nhuận lớn với rất nhiều các ứng dụng điều khiển tác động nhanh.

- ATmega8 AVR cũng hỗ trợ đầy đủ về lập trình và phát triển các tool hệ thống, bao gồm bộ dịch C, macro assemblers, bộ mô phỏng/gỡ rối chương trình, In-Circuit Emulators, và evaluation kits.

Nguồn: http://www.tapchicongnghiep.vn/socuo...7/5/21710.ttvn

Tham khảo đầy đủ hơn:

http://en.wikipedia.org/wiki/Atmel_AVR
http://www.atmel.com/products/AVR/

1 - Các loại AVR: 

Cơ bản họ AVR có thể chia làm 4 nhóm sau: 

• tinyAVR — the ATtiny series 

o 1–8 kB program memory
o 6–32-pin package
o Limited peripheral set

• megaAVR — the ATmega series

o 4–256 kB program memory
o 28–100-pin package
o Extended instruction set (Multiply instructions and instructions for handling larger program memories)
o Extensive peripheral 

• XMEGA — the ATxmega series 

o 16–384 kB program memory
o 44–64–100-pin package (A4, A3, A1)
o Extended performance features, such as DMA, "Event System", and cryptography support.
o Extensive peripheral set with DACs

• Atmel At94k FPSLIC (Field Programmable System Level Integrated Circuit), an AVR core on-die with an FPGA. The FPSLIC uses SRAM for the AVR program code, unlike all other AVRs. Partly due to the relative speed difference between SRAM and flash, the AVR core in the FPSLIC can run at up to 50MHz.
AVR32 AP7000 Sram 32KB 1.8 - 3.3V

ATUC3A0xxxx (giá trị xxxx thể hiện dung lượng flash của VĐK)
ATUC3A0512 Flash 512kB sram64B 3.0-3.6V

Ngoài ra còn có:

AT32UC3A0256
AT32UC3A0128
AT32UC3A1512
AT32UC3A1256
AT32UC3A1128

ATUC3A0xxxx 

Các dòng AVR32 hiện tại chưa thấy bán trên thị trường tuy nhiên đây là dòng vđk 32bit khá mạch với nhiều tính năng mới :

Tích hợp USB , công nghệ xử lý tiếng nói (AC97) , tích hợp bộ RTC -thời gian thực , thêm giao thức ethernet ...

Chi tiết hơn dòng vi điều khiển 8bit 

MEGA AVR

ATmega8 8kB 512B 1024B 0 - 16MHz 4.5 - 5.5V
ATmega8L 8kB 512B 1024B 0 - 8MHz 2.7 - 5.5V
ATmega16 16kB 512B 1024B 0 - 16MHz 4.5 - 5.5V
ATmega16L 16kB 512B 1024B 0 - 8MHz 2.7 - 5.5V
ATmega32 32kB 1024B 2048B 0 - 16MHz 4.5 - 5.5V
ATmega32L 32kB 1024B 2048B 0 - 8MHz 2.7 - 5.5V
ATmega48 4kB 256B 512B 0 - 20MHz 2.7 - 5.5V
ATmega48V 4kB 256B 512B 0 - 10MHz 1.8 - 5.5V
ATmega64 64kB 2048B 4096B 0 - 16MHz 4.5 - 5.5V
ATmega64L 64kB 2048B 4096B 0 - 8MHz 2.7 - 5.5V
ATmega88 8kB 512B 1024B 0 - 20MHz 2.7 - 5.5V
ATmega88V 8kB 512B 1024B 0 - 10MHz 1.8 - 5.5V
ATmega128 128kB 4096B 4096B 0 - 16MHz 4.5 - 5.5V
ATmega128L 128kB 4096B 4096B 0 - 8MHz 2.7 - 5.5V
ATmega162 16kB 512B 1024B 0 - 16MHz 2.7 - 5.5V
ATmega162V 16kB 512B 1024B 0 - 8MHz 1.8 - 5.5V
ATmega164 16kB 512B 1024B 0 - 20MHz 2.7 - 5.5V
ATmega164V 16kB 512B 1024B 0 - 10MHz 1.8 - 5.5V
ATmega165 16kB 512B 1024B 0 - 16MHz 2.7 - 5.5V
ATmega165V 16kB 512B 1024B 0 - 8MHz 1.8 - 5.5V
ATmega168 16kB 512B 1024B 0 - 20MHz 2.7 - 5.5V
ATmega168V 16kB 512B 1024B 0 - 10MHz 1.8 - 5.5V
ATmega324 32kB 1024B 2048B 0 - 20MHz 2.7 - 5.5V
ATmega324V 32kB 1024B 2048B 0 - 10MHz 1.8 - 5.5V
ATmega325 32kB 1024B 2048B 0 - 16MHz 2.7 - 5.5V
ATmega325V 32kB 1024B 2048B 0 - 8MHz 1.8 - 5.5V
ATmega640 64kB 4096B 8192B 0 - 16MHz 2.7 - 5.5V
ATmega640V 64kB 4096B 8192B 0 - 8MHz 1.8 - 5.5V
ATmega644 64kB 2048B 4096B 0 - 20MHz 2.7 - 5.5V
ATmega644V 64kB 2048B 4096B 0 - 10MHz 1.8 - 5.5V
ATmega645 64kB 2048B 4096B 0 - 16MHz 2.7 - 5.5V
ATmega645V 64kB 2048B 4096B 0 - 8MHz 1.8 - 5.5V
ATmega1280 128kB 4096B 8192B 0 - 16MHz 2.7 - 5.5V
ATmega1280V 128kB 4096B 8192B 0 - 8MHz 1.8 - 5.5V
ATmega1281 128kB 4096B 8192B 0 - 16MHz 2.7 - 5.5V
ATmega1281V 128kB 4096B 8192B 0 - 8MHz 1.8 - 5.5V
ATmega2560 256kB 4096B 8192B 0 - 16MHz 2.7 - 5.5V
ATmega2560V 256kB 4096B 8192B 0 - 8MHz 1.8 - 5.5V
ATmega2561 256kB 4096B 8192B 0 - 16MHz 2.7 - 5.5V
ATmega2561V 256kB 4096B 8192B 0 - 8MHz 1.8 - 5.5V
ATmega3250 32kB 1024B 2048B 0 - 16MHz 2.7 - 5.5V
ATmega3250V 32kB 1024B 2048B 0 - 8MHz 1.8 - 5.5V
ATmega6450 64kB 2048B 4096B 0 - 16MHz 2.7 - 5.5V
ATmega6450V 64kB 2048B 4096B 0 - 8MHz 1.8 - 5.5V
ATmega8515 8kB 512B 512B 0 - 16MHz 4.5 - 5.5V
ATmega8515L 8kB 512B 512B 0 - 8MHz 2.7 - 5.5V
ATmega8535 8kB 512B 512B 0 - 16MHz 4.5 - 5.5V
ATmega8535L 8kB 512B 512B 0 - 8MHz 2.7 - 5.5V

TINY AVR

device Flash EEPROM SRAM Speed Volts
ATtiny11 1kB 0 - 6MHz 4 - 5.5V
ATtiny11L 1kB 0 - 2MHz 2.7 - 5.5V
ATtiny12 1kB 64B 0 - 8MHz 4 - 5.5V
ATtiny12L 1kB 64B 0 - 4MHz 2.7 - 5.5V
ATtiny12V 1kB 64B 0 - 1MHz 1.8 - 5.5V
ATtiny13 1kB 64B 64B 0 - 20MHz 2.7 - 5.5V
ATtiny13V 1kB 64B 64B 0 - 10MHz 1.8 - 5.5V
ATtiny15L 1kB 64B 1.6MHz 2.7 - 5.5V
ATtiny24 2kB 128B 128B 0 - 20MHz 2.7 - 5.5V
ATtiny25 2kB 128B 128B 0 - 20MHz 2.7 - 5.5V
ATtiny25V 2kB 128B 128B 0 - 10MHz 1.8 - 5.5V
ATtiny26 2kB 128B 128B 0 - 16MHz 4.5 - 5.5V
ATtiny26L 2kB 128B 128B 0 - 8MHz 2.7 - 5.5V
ATtiny28L 2kB 0 - 4MHz 2.7 - 5.5V
ATtiny28V 2kB 0 - 1MHz 1.8 - 5.5V
ATtiny44 4kB 256B 256B 0 - 20MHz 2.7 - 5.5V
ATtiny45 4kB 256B 256B 0 - 20MHz 2.7 - 5.5V
ATtiny45V 4kB 256B 256B 0 - 10MHz 1.8 - 5.5V
ATtiny84 8kB 512B 512B 0 - 20MHz 2.7 - 5.5V
ATtiny85 8kB 512B 512B 0 - 20MHz 2.7 - 5.5V
ATtiny85V 8kB 512B 512B 0 - 10MHz 1.8 - 5.5V
ATtiny261 2kB 128B 128B 0 - 20MHz 2.7 - 5.5V
ATtiny461 4kB 256B 256B 0 - 20MHz 2.7 - 5.5V
ATtiny861 8kB 512B 512B 0 - 20MHz 2.7 - 5.5V
ATtiny2313 2kB 128B 128B 0 - 20MHz 2.7 - 5.5V
ATtiny2313V 2kB 128B 128B 0 - 10MHz 1.8 - 5.5V

LCD AVR

Device Flash EEPROM SRAM Speed Volts
ATmega169 16kB 512B 1024B 0 - 16MHz 2.7 - 5.5V
ATmega169V 16kB 512B 1024B 0 - 8MHz 1.8 - 5.5V
ATmega329 32kB 1024B 2048B 0 - 16MHz 2.7 - 5.5V
ATmega329V 32kB 1024B 2048B 0 - 8MHz 1.8 - 5.5V
ATmega649 64kB 2048B 4096B 0 - 16MHz 2.7 - 5.5V
ATmega649V 64kB 2048B 4096B 0 - 8MHz 1.8 - 5.5V
ATmega3290 32kB 1024B 2048B 0 - 16MHz 2.7 - 5.5V
ATmega3290V 32kB 1024B 2048B 0 - 8MHz 1.8 - 5.5V
ATmega6490 64kB 2048B 4096B 0 - 16MHz 2.7 - 5.5V
ATmega6490V 64kB 2048B 4096B 0 - 8MHz 1.8 - 5.5V

CAN AVR

AT90CAN128 128kB 4096B 4096B 0 - 16MHz 2.7 - 5.5V
AT90CAN64 64kB 4096B 4096B 0 - 16MHz 2.7 - 5.5V
AT90CAN32 32kB 4096B 4096B 0 - 16MHz 2.7 - 5.5V

Phần trên trích từ luồng AVR trên VAGAM (Tác giả: gioidang1985)

2 - Ứng dụng của AVR bây giờ như thế nào ? (Được dùng chủ yếu ở lĩnh vực nào ?)

- LCD controller, Motor control, USB controller, advanced PWM, CAN etc.

- Application Notes Atmel (http://www.atmel.com/dyn/products/ap...?family_id=607)

- Motor Control (http://www.atmel.com/products/AVR/mc/?family_id=607)

- USB Connectivity (http://www.atmel.com/products/AVR/usb/?family_id=607)

- Automotive Applications (http://www.atmel.com/products/AVR/usb/?family_id=607)

- Remote Access Control (http://www.atmel.com/products/AVR/rac/?family_id=607)

Học AVR để làm gì ?

Hồi đó bọn mình học môn Vi xử lý - Vi đều khiển, thầy dạy họ 8051, nhưng thầy bảo họ AVR mạnh hơn và khuyên lớp tìm hiểu về họ AVR để ứng dụng trước hết vào các project môn học và các đồ án môn học và tương lai là phục vụ cho nghề nghiệp.

3 - Khi cần học về 1 loại AVR cụ thể, thì nên bắt đầu từ nguồn tài liệu nào ? Các trang help, manual, datasheet như thế nào thì hiệu quả ?

Atmel nhà của nàng AVR: thường xuyên ghé nhà nàng nhé 

http://www.atmel.com/products/AVR/

- Tại trang chủ các bạn sẽ tìm được rất nhiều thứ: từ datasheet, trình biên dịch và trình soạn thảo (có Help đính kèm), manual, Application Notes …

- Nghe ngóng xem thiên hạ thỏa luận về nàng như thế nào:
Tìm trên các Forum về AVR.

- Từ 2 luồng thông tin trên có thể có thể chọn cho mình 1 con trong họ AVR và các công cụ, tài liệu liên quan để làm việc rùi.

Các bạn bổ sung thêm giúp mình nhé. 

Trình biên dịch và soạn thảo

• Hiện nay có nhiều loại trình biên dịch cho AVR trên các nền tảng Windows cũng như Linux.

Một số trình biên dịch trên nền tảng Windows:

http://www.atmel.com/dyn/products/to...ily_id=607#798

AVRStudio4 (http://www.atmel.com/dyn/products/to...p?tool_id=2725)

Ưu điểm: free, update thường xuyên bởi Atmel, viết được code ASM và C (cài thêm WinAVR), tài liệu, thư viện hổ trợ nhiều, có thể tìm tại trang của Atmel hoặc các forum AVR.

CodeVisionAVR (http://www.hpinfotech.ro/index.html)

Ưu điểm: dễ dùng (tự sinh code khi chọn CodeWizardAVR) và dễ học (nền tảng là ngôn ngữ C), tài liệu cũng nhiều. Ở Việt Nam số người dùng món này khá nhiều nên khi gặp khó khăn dễ tìm được sự giúp đở.

Nhược điểm: Có phí. 

BascomAVR (http://www.mcselec.com/)

mikroBasic PRO for AVR (http://www.mikroe.com/en/compilers/mikrobasic/avr/)

mikroC PRO for AVR (http://www.mikroe.com/en/compilers/mikroc/avr/)

Ưu điểm: món này nền tảng cũng là ngôn ngữ C (chuẩn ANSI) nghe nói hổ trợ mạnh lắm, help, manual đọc rất hay, tài liệu và thư viện trên trang www.mikroe.com rất đầy đủ và rất hay.

Nhược điểm: có phí, do nó hổ trợ thư viện mạnh nên không cần hiểu sâu phần cứng cũng viết được.

WinAVR (http://winavr.sourceforge.net/)

Trình biên dịch và soạn thảo trên nền tảng Linux: Sẽ cập nhật sau.

Mạch nạp

• Hiện tại mình biết một số mạch nạp:

- AVR ISP Programmer Cable (mạch nạp các chíp AVR của Atmel qua cổng COM).

- STK500 HV-Adapter Mini (hỗ trợ nạp các chíp AVR thông dụng với chế độ Parallel (PP/HVSP mode).

- AVR 910 USB Programmer Cable, AVR STK500 USB Programmer (mạch nạp qua cổng USB).

Nhờ các bạn bổ sung thêm nhé.

• Giá cả:

- AVR ISP Programmer Cable (100K)
- STK500 HV-Adapter Mini (50K)
- AVR 910 USB Programmer Cable (100K)
- AVR STK500 USB Programmer (270K)

• Ưu nhược điểm của từng loại mạch nạp:

Dùng mạch nạp cổng USB là tiện lợi nhất, tốc độ cao nữa, và máy nào cũng có cổng USB hết, máy Laptop bây giờ không còn cổng COM và LPT nữa rùi. 

CodevisionAVR v.s AVRstudio

Bài viết của BOW tại diển đàn khongtenmien

Theo tình hình BOW tui thấy các bạn làm quen với avr thường xài chương trình codevision để lập trình. hầu hết ở việt nam phần mềm codevison rất phổ biến, rất hiếm ai lập trình avr bằng AVRstudio (winavr). Sau đây là một vài ưu khuyết điểm khi xài 2 chương trình này


Codevision:


- Đây là chương trình do hãng hpinfortech viết, hỗ trợ lập trình vi điều khiển avr bằng ngôn ngữ C. đây là chương trình rất phổ biến ở việt nam (nhà nhà codevison người người codevision)

- Chương trình này có 2 phiên bản, một phiên bản standard và một phiên bản light, giá của 2 phiên bản này rất khác nhau. Phiên bản light có giá 60EUR còn phiên bản standard có giá 150UER. đối với những nước phát triển, có bảo vệ bản quyền và người dùng cuối có ý thức về vấn đề sở hữu trí tuệ cao thì đây là giá khá cao. còn khi tới việt nam thì .... nó đã trở thành "vô giá" 

- BOW tui hồi mới tiếp cận với AVR cũng đã xài chương trình này (và tất nhiên là xài Cr*** ). 

- Nó hỗ trợ cho người dùng cuối rất nhiều, giúp chung ta dễ dàng tiếp xúc với avr trong "thời kỳ đồ đá". nhưng bù lại, chung ta phải phụ thuộc vào nó rất nhiều và nếu sa đà vô chức năng codeWizard của nó thì sẽ khó có thể hiểu cụ thể được sức mạnh của avr

- Codevision cũng hỗ trợ xuất ra files COF để debug tren avrstudio. cũng cho phép tao chèn những dòng lệnh ASM trong môi trường C

- Sử dụng chương trình nạp AVRbaster của chính chương trình codevision, tương thíc với mạch nạp AVR910 free mà anh chị em nhà ta hay sử dụng

- Về tài liệu tiếng việt thì chương trình này chiếm đại đa số
tóm lại, đây là một chương trình khá hay và tiện lợi cho những ai bước đầu làm quen với AVR

AVRStudio (WinAVR)


- Đây là chương trình do chính hãng Atmel viết và phân phối, dành cho riêng dòng sản phẩm AVR của atmel

- Sản phẩm chính hãng luôn được cập nhật bản vá lỗi và các dòng avr mới

- Đây lại là sản phẩm được phân phối Free nên rất được phổ biến trên thế giới (trừ việt nam - có lẽ người việt chúng ta xài hàng cra** quen rồi nên khi gặp hàng chính hãng vừa rẻ vừa free lại chê )

- Nói cho vui vậy thôi, nhưng bow tui cũng ko biết lý do tại sao ở việt nam ko phổ biến chương trình này cho lắm (cũng có thể do atmel chê thị trường việt nam nhỏ quá nên ko tấn công vô chăng - điều này thì khác hoàn toàn so với PIC của microchip hén ).

- Đây cũng chính là chương trình dùng để debug cho avr luôn (nếu bạn sử dụng codevison nếu muốn debug thì vẫn phải dùng thằng avrstudio này)

- Chạy được trên nền linux (điều này là bow tui khoái nhất đóa) 

- Chương trình hỗ trợ 2 ngôn ngữ chính để lập trình cho avr, asm và c. điểm khác biệt cơ bản là thằng codevision sử dụng C standard làm nền còn thằng avrstudio có sử dụng thêm một vài đặc tính của C++ để mềm dẻo hơn (thực ra C và C++ cũng gân giống nhau)

- Nếu mua những Kit học avr của chính atmel phân phối (STK500, STK600 ...) nữa thì thằng avrstudio này ko thể chê vô đâu được. (đôi khi cũng có lỗi, nhưng được fix và update rất nhanh)

- Mới đầu làm quen sẽ hơi khó khăn, nhưng sau này sẽ giúp ta hiểu rất rõ về cấu trúc của AVR cũng như tập lệnh của nó

- Rất nhiều tài liệu, code cũng như thư viện được liệng đầy trên mạng

- Tương thíc với mạch avr910 Free mà anh em ưa sử dụng luôn

- Nạp chương trình bằng Avrprog của chính hãng atmel (mặc định cài đặt avrstudio là có). chương trình nạp này nhanh gấp mấy trăm lần chương trình nạp của codevison

- Khi viết code xong nhấn ctrl+F7 là debug luôn, khỏi phải lằng nhằng chuyển đôi

- Điều quan trọng nhất là nó FREE và BOW tui rất khoái thằng này 

Trên đây là một vài chính kiến của Bow tui về codevision và avrstudio, ngoài 2 phần mềm này ra còn rất nhiều phần mềm khác sử dụng ngôn ngữ C để lập trình cho vi điều khiển avr, có soft thì free, cũng có soft tính phí.

Thực ra thì thằng avrstudio nó chỉ hỗ trợ asm thôi, nếu ko cài thêm bộ Winavr. Nhưng để cho dễ hiểu đối với các bạn mới biết avr Bow tui nói đơn giản, (nếu pro nào đọc bài viết này cũng xin mạn phép bỏ qua cho) còn đối với các bạn newbie thì chỉ cần hiểu là avarstudio là được, chúng ta sẽ đi sâu hơn vào trong phần sau.

Nguông: quangngaionline.vn

Đăng nhập