Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Cùng học AVR - AVR2 cấu trúc AVR pot
MIỄN PHÍ
Số trang
25
Kích thước
764.1 KB
Định dạng
PDF
Lượt xem
810

Cùng học AVR - AVR2 cấu trúc AVR pot

Nội dung xem thử

Mô tả chi tiết

AUTO.NLU

For more details and questions, contact me: [email protected]

CÙNG HỌC AVR

AVR2 – CẤU TRÚC AVR

Thoả thuận: tài liệu này thuộc quyền sở hữu của tác giả, bạn có thể tự do tham khảo

tài liệu nhưng không ñược phép sử dụng ñể in thành sách báo, ñăng lên các diễn ñàn

hay website, nhưng bạn có thể dùng ñường link http://www.dieukhientudong.net ñể

hướng tới tài liệu. Liên hệ tác giả qua email: [email protected].

I. Bạn sẽ ñi ñến ñâu.

Bài này tiếp tục bài ñầu tiên trong loạt bài giới thiệu về AVR, nếu sau bài 1 bạn ñã phần nào

biết cách lập trình cho AVR bằng AVRStudio thì trong bài này, chúng ta sẽ tìm hiểu kỹ hơn về

cấu trúc của AVR. Sau bài này, bạn sẽ:

- Hiểu ñược cấu trúc AVR, cấu trúc bộ nhớ và cách thức hoạt ñộng của chip.

- Hiểu về Stack và cách hoạt ñộng.

- Biết ñược một số instruction cơ bản truy xuất bộ nhớ.

- Học các instruction rẽ nhánh và vòng lặp.

- Chương trình con (Subroutine) và Macro.

- Cải tiến ví dụ trong bài 1.

- Viết 1 ví dụ minh họa cách sử dụng bộ nhớ và vòng lặp.

II. Tồ chức của AVR.

AVR có cấu trúc Harvard, trong ñó ñường truyền cho bộ nhớ dữ liệu (data memory bus) và

ñường truyền cho bộ nhớ chương trình (program memory bus) ñược tách riêng. Data memory bus

chỉ có 8 bit và ñược kết nối với hầu hết các thiết bị ngoại vi, với register file. Trong khi ñó

program memory bus có ñộ rộng 16 bits và chỉ phục vụ cho instruction registers. Hình 1 mô tả cấu

trúc bộ nhớ của AVR.

Bộ nhớ chương trình (Program memory): Là bộ nhớ Flash lập trình ñược, trong các chip

AVR cũ (như AT90S1200 hay AT()2313…) bộ nhớ chương trình chỉ gồm 1 phần là Application

Flash Section nhưng trong các chip AVR mới chúng ta có thêm phần Boot Flash setion. Boot

section sẽ ñược khảo sát trong các phần sau, trong bài này khi nói về bộ nhớ chương trình, chúng

ta tự hiểu là Application section. Thực chất, application section bao gồm 2 phần: phần chứa các

instruction (mã lệnh cho hoạt ñộng của chip) và phần chứa các vector ngắt (interrupt vectors). Các

vector ngắt nằm ở phần ñầu của application section (từ ñịa chỉ 0x0000) và dài ñến bao nhiêu tùy

thuộc vào loại chip. Phần chứa instruction nằm liền sau ñó, chương trình viết cho chip phải ñược

load vào phần này. Xem lại phần ñầu của ví dụ trong bài 1:

.ORG 0x000

RJMP BATDAU

.ORG 0x020

BATDAU:

Trong ví dụ này, ngay sau khi set vị trí 0x000 bằng chỉ thị (DIRECTIVE) .ORG 0x000

chúng ta dùng instruction RJMP ñể nhảy ñến vị trí 0x020, như thế phần bộ nhớ chương trình từ

0x00 ñến 0x01F không ñược sử dụng (vì trong ví dụ này chúng ta không sử dụng các vector

AUTO.NLU

For more details and questions, contact me: [email protected]

ngắt). Chương trình chính ñược bắt ñầu từ ñịa chỉ 0x020, con số 0x020 là do người lập trình chọn,

thật ra các vector ngắt của chip ATMEGA8 chỉ kéo dài ñến ñịa chỉ 0x012, vì vậy chương trình

chính có thể ñược bắt ñầu từ bất cứ vị trí nào sau ñó. Để biết ñộ dài các vector ngắt của từng chip

bạn hãy tham khảo datasheet của chip ñó.

Vì chức năng chính của bộ nhớ chương trình là chứa instruction, chúng ta không có nhiều cơ

hội tác ñộng lên bộ nhớ này khi lập trình cho chip, vì thế ñối với người lập trình AVR, bộ nhớ này

“không quá quan trọng”. Tất cả các thanh ghi quan trọng cần khảo sát nằm trong bộ nhớ dữ liệu

của chip.

Hình 1. Cấu trúc bộ nhớ của AVR.

Bộ nhớ dữ liệu (data memory): Đây là phần chứa các thanh ghi quan trọng nhất của chip,

việc lập trình cho chip phần lớn là truy cập bộ nhớ này. Bộ nhớ dữ liệu trên các chip AVR có ñộ

lớn khác nhau tùy theo mỗi chip, tuy nhiên về cơ bản phần bộ nhớ này ñược chia thành 5 phần:

Phần 1: là phần ñầu tiên trong bộ nhớ dữ liệu, như mô tả tronh hình 2, phần này bao gồm 32

thanh ghi có tên gọi là register file (RF), hay General Purpose Rgegister – GPR, hoặc ñơn giản là

các Thanh ghi. Tất cả các thanh ghi này ñều là các thanh ghi 8 bits như trong hình 2.

Hình 2. Thanh ghi 8 bits.

Tất cả các chip trong họ AVR ñều bao gồm 32 thanh ghi Register File có ñịa chỉ tuyệt ñối từ

0x0000 ñến 0x001F. Mỗi thanh ghi có thể chứa giá trị dương từ 0 ñến 255 hoặc các giá trị có dấu

từ -128 ñến 127 hoặc mã ASCII của một ký tự nào ñó…Các thanh ghi này ñược ñặt tên theo thứ

Tải ngay đi em, còn do dự, trời tối mất!