bởi admin lúc Mon, Apr 16 '18 11:38 AM | Lần xem 1008 | Lần tải 135
  • Download images hướng dẫn lập trình Assembly cho AVR
  • Download images hướng dẫn lập trình Assembly cho AVR
  • Download images hướng dẫn lập trình Assembly cho AVR
  • Download images hướng dẫn lập trình Assembly cho AVR
  • Download images hướng dẫn lập trình Assembly cho AVR
Hướng dẫn lập trình Assembly
Cho AVR
sử dụng AVRstudio 4.2
Hướng dẫn lập trình AVR với nội dung hướng dẫn các bạn mới làm quen
với vi điều khiển AVR và phần mềm AVRstudio4.2 . Nội dung chính của tài
liệu này là . Hướng dẫn các bạn cách để viết một chương trình assembly và
điều khiển vào ra dữ liệu.
Tài liệu này được chia làm 3 phần:
Phần 1: Các chỉ thị hợp dịch trong ASSEMBLY.
Phần 2:Viết mã lệnh cho một chương trình ASSEMBLY.
Phần3: Điều khiển vào ra dữ liệu và các thiết bị tích hợp trong AVR.
Phần 1: Các chỉ thị hợp dịch.
Chương trình dịch Assembly làm việc trên file chương trình nguồn và một
file nguồn bao gồm : các lệnh , các nhãn và các chỉ dẫn.Chúng được xếp
tuần tự trong file nguồn.
Một dòng lệnh có chiều dài cực đại là :120 kí tự.
Mọi dòng lệnh đều có thể đặt trước bởi một nhãn,nó là một chuỗi kí tự và
kết thúc bằng dấu 2 chấm.Nhãn được sẻ dụng như là đích cho các lệnh nhảy,
Và các chỉ thị rẽ nhánh.Và còn được sử dụng như là tên biến trong bộ nhớ
chương trình và bộ nhớ dữ liệu.
Một dòng lệnh có thể là một trong bốn dạng sau:
1.
[nhan: ] chỉ_thị [toán_hạng] [;lời chú thích]
2.
[nhan: ] lệnh [toán_hạng] [;lời chú thích]
3.
;chú thích
4.
dòng trống (không chứa kí tự nào)
Một lời chú thích luôn đi sau dấu chấm phảy(“;”)và nó không được dịch
sang mã máy chỉ có tác dụng cho người đọc chương trình dẽ hiểu.
Chương trình Assembly hỗ trợ một số các chỉ thị.Các chỉ thị này không
được dịch ra mã nhị phân (mã máy).Và nó được sử dụng để điwuf khiển quá
trình dịch và cụ thể là : điều khiểu ghi lệnh vào bộ nhớ chương trình, định
nghĩa các biến …
1
Dưới đây là bảng các chỉ thị :
Chỉ thị
Mô tả
BYTE
Định nghĩa một biến kiểu byte
CSEG
Đoạn mã chương trình
DB
Định nghĩa một hắng số kiểu byte
DEF
Định nghĩa một tên gợi nhớ cho một thanh ghi
DEVICE
Định nghĩa loại VĐK cho chương trình
DSEG
Đoạn dữ liệu
DW
Định nghĩa một hằng số kiểu 2 byte (word)
ENDMACRO
Kêt thúc của một macro
EQU
Thay một biểu thức bằng một kí tự.
ESEG
Đoạn EEPROM
EXIT
Thoát ra từ một file
INCLUDE
Sử dụng mã nguồn từ một file khác
LIST
Cho phép tạo ra trong file list
LISTMAC
Cho phép thêm macro vào list khi được gọi
MACRO
Bắt đầu macro
NOLIST
Không cho phép tạo ra trong file list
ORG
Thiết lập mốc của chương trình
SET
Gán một nhãn cho một giá trị
Tất cả các chỉ thị đều đặt sau dấu chấm (“.”).
1.1.BYTE :
Chỉ thị này giành trước tài nguyên bộ nhớ trong SRAM.Chỉ thị này
phải đi sau một nhãn và có một tham số,nó chỉ ra số byte được giành
trước.Chỉ thị này chỉ dùng trong đoạn dữ liệu.
Cú pháp :
LABEL: .BYTE expression
Ví dụ:
.DSEG
var1:
.BYTE 1 ;
var2 :
.BYTE 10;
.CSEG
ldi r30,low(var1);
Nếu như bạn nào đã học qua một ngôn ngữ cấp cao nào đó thì thực ra
vùng nhớ này cũng như là một biến.Dữ liệu sẽ không tự động được
ghi vào và chỉ khi bạn dùng các lệnh tác động đến nó mà thôi.Nhãn
chính là địa chỉ đầu của đoạn bộ nhớ được giành trước .
2
1.2.Chỉ thị CSEG:
Chỉ thị này định nghĩa điểm bắt đầu của đoạn mã chương trình.Một
file nguồn assembly có thể chứa nhiều đoạn mã chương trình ,và
chúng lại được liên kết thành một đoạn mã lệnh khi dịch.Chỉ thị
BYTE không được sử dụng trong đoạn này.Một đoạn chương trình
nếu không được định nghĩa là mã lệnh hay dữ liệu thì đều được mặc
định là đoạn mã lệnh.Mối đoạn mã lệinh thì có một địa chỉ riêng 16
it (hay là một từ).Chỉ thị ORG có thể được sử dụng để đặt vị trí của
các đoạn mã lệnh và hằng số trong bộ nhớ chương trình .Chỉ thị này
không kèm theo bất kì một tham số nào.
Cú pháp:
.CSEG
Ví dụ:
.DSEG
var1: .BYTE
1
.CSEG
CONST: .DW
2
MOV R1,R0
1.3.DB:
Định nghĩa các hằng số kiểu byte được lưu trong bộ nhớ chương trình hợac
ộ nhớ EEPROM.Và chỉ thị này luôn theo sau một nhãn .Chỉ thị này thường
được sử dụng trong việc lưu giữ các bảng và các biểu thức (nhưng có thể
tính ra giá trị cuối cùng) .Các nhãn chính là địa chỉ khởi đầu cho giá trị ban
đầu của bảng.Chỉ dẫn này chỉ có thể đặt được trong đoạn mã hoặc đoạn bộ
nhớ EEPROM.
Các phần tử trong bảng được phân biệt bằng dấu phảy.
Cú pháp:
Label:
.DB
danh_sach_biểu_thức
Ví dụ:
.CSEG
Sin: .DB
0,1,2,3,4,6,7
.ESEG
const: .DB 1,2,3
Chú ý: Một số hay một biểu thức (phải có kết quả) nằm trong khoảng –128
đến 255.Nếu số đó là só âm thì sẽ được lưu dưới dạng 8bit mã bù 2.
4.DEF:
3
bởi admin lúc Mon, Apr 16 '18 11:38 AM

Chỉ thị ORG thiết lập một con trỏ tuyệt đối .Giá trị được thiết lập chính là
tham số cho chỉ thị này.Nếu như chỉ thị này nằm trong đoạn dữ liệu thì vị trí
được thiết lập chính là một vị trí trong SRAM và cụ thể đó là vị trí bắt đầu
của biến đước khai báo sau chỉ thị BYTE.
Còn khi chỉ thị này được khai báo trong đoạn chương trình thì vị trí tuyệt đối
đó nằm trong bộ nhớ chương trình và đoạn mã lệnh theo sau nó sẽ được ghi
vào bôin nhớ chương trình từ con trỏ đó.Và đối với đoạn ESEG cũng tương
tự.Nếu như chỉ thị này đi sau một nhãn thì nhãn đó có giá trị chính bằng
tham số của chỉ thị này
773062.pdf
Kích thước: 316.32 kb
Lần tải: 0 lần
Download