Tự học AVR ( Bài 1 - Làm quen với AVR )

Bắt đầu từ đầu
                                    

·         AT90S2323 and AT90S2343

·         AT90S2333 and AT90S4433

·         AT90S4414 and AT90S8515

·         AT90S4434 and AT90S8535

·         AT90C8534

·         ATtiny10, ATtiny11 and ATtiny12

·         ATtiny15

·         ATtiny22

·         ATtiny26

·         ATtiny28

·         ATmega8/8515/8535

·         ATmega16

·         ATmega161

·         ATmega162

·         ATmega163

·         ATmega169

·         ATmega32

·         ATmega323

·         ATmega103

·         ATmega64/128/2560/2561

·         AT86RF401.

·         ....

Trong bài viết này tôi sử dụng chip ATmega8 để làm ví dụ, tôi chọn ATmega8 vì đây là loại chip thuộc dòng AVR mới nhất, nó có đầy đủ các tính năng của AVR nhưng lại nhỏ gọn (gói PDIP có 28 chân) và low cost nên các bạn có thể mua để tự mình tạo ứng dụng.

Tại sao Assembly (ASM): bạn có thể không cần biết về cấu trúc của AVR vẫn có thể lập trình cho AVR bằng các phần mềm hỗ trợ ngôn ngữ cấp cao như BascomAVR (Basic) hay CodevisionAVR (C), tuy nhiên đó không phải là mục đích của bài viết này. Để hiểu thấu đáo về AVR bạn phải lập trình bằng chính ngôn ngữ của nó, ASM. Như vậy lập trình bằng ASM giúp bạn hiểu tường tận về AVR, và tất nhiên để lập trình được bằng ASM bạn phải hiểu về cấu trúc AVR….Một lý do khác bạn mà tôi khuyên bạn nên lập trình bằng ASM là các trình dịch (compiler) ASM cho AVR là hoàn toàn miễn phí, và nguồn source code cho AVR viết bằng ASM là rất lớn. Tuy nhiên một khi bạn đã thành thạo AVR và ASM bạn có thể sử dụng các ngôn ngữ cấp cao như C để viết ứng dụng vì ưu điểm của ngôn ngữ cấp cao là giúp bạn dễ dàng thực hiện các phép toán đại số 16 hay 32 bit (vốn là vấn đề khó khăn khi lập trình bằng ASM).

II. Công cụ.

Trình biên dịch: có rất nhiều trình biên dịch bạn có thể sử dụng đế biên dịch code của bạn thành file intel hex để nạp vào chip, một số trình dịch quen thuộc có thể kể đến như sau:

·         AvrStudio: là trình biên dịch ASM chính thức cung cấp bởi Atmel, đây là trình biên dịch hoàn toàn miễn phí và tất nhiên là tốt nhất cho lập trình AVR bằng ASM. Phiên bản hiện tại là 4.18 SP1, bạn có thể download phần mềm AvrStudio tại trang web chính thức của Atmel hoặc bản 4.623 tại đây.

·         Wavrasm: cũng được cung cấp bởi Atmel, nó chính là tiền thân của AvrStudio. Hiện tại wavrasm không còn được sử dụng nhiều vì so với AvrStudio trình biên dịch này có nhiều hạng chế, nếu bạn quan tâm có thể download tại đây.

Tự học AVR ( Bài 1 - Làm quen với AVR )Nơi câu chuyện tồn tại. Hãy khám phá bây giờ