Tập thanh ghi- [ hanh ghi tích luỹ — Thanh ghi tích luỹ được giải mã hoàn toàn trong mã lệnh Chỉ dẫn đây đủ về thanh ghi tích luỹ — Lệnh: Push ACC — Mã lệnh C0 E0... Các thanh ghi - P
Trang 1Câu trúc bộ VĐK 8051
Giới thiệu vê lập trình hợp ngữ
Bal 2
Bo mon TB Khoa KTDK
Trang 3— Các thông số vê thời gian
- Các yêu câu vê dòng điện và điện áp
Trang 4
cho người thiệt kê phân
NE VREG
LI | VOL TAGE
Trang 5cho người thiệt kê phân
cứng
Tạo nguôn điện áp 5V từ nguôn 12V
Trang 6
cho người thiệt kê phân
5V
X1 C3
Trang 7Tổng quan cho người lập trình-
Tập thanh ghi
‹ồ Các thanh ghi
— A, B, từ R0 đến R7: là các thanh ghi 8 bit
— DPTTE: [DPH:DPL] thanh ghi 16 bịt
— PC: Bộ đêm chương trình (16 bit)
— 4 bộ thanh ghi từ R0 đến R7
— Con trỏ ngăn xếp SP
— PSW: thanh ghi từ trạng thái chương trình
— SFR: Thanh ghi chức năng đặc biệt
° Điều khiển các thiết bị ngoại vi trên board
Trang 8Tập thanh ghi- [ hanh ghi tích luỹ
— Thanh ghi tích luỹ được giải mã hoàn toàn trong mã lệnh
Chỉ dẫn đây đủ về thanh ghi tích luỹ
— Lệnh: Push ACC
— Mã lệnh C0 E0
Trang 9
Tập thanh ghi- [hanh ghi B
° Thường được sử dụng như là thanh ghi tạm thời, giỗng như thanh ghi thứ 9
°Ò Được sử dụng bởi 2 mã lệnh
— mul AB, div AB
¢ Thanh ghi gi toán hạng thứ 2 và sẽ giữ
một phân của kêt quả
- 8 bit cao của kết quả phép tính nhân
— S6 du trong phép tính chia
Trang 10
Các thanh ghi - PC
PC là bộ đêm chương trình
Được xem như con trỏ lệnh trong các bộ VXL
khác
PC luôn trỏ tới lệnh kê tiếp của chương trình
Sau khi nạp một lệnh (1 hoặc nhiễu byte), PC
được tự động tăng đề trỏ tới lệnh kế tiệp Không thé thao tác trực tiễp tới PC (ngoại trừ
câu lệnh JMP)
Không thé đọc trực tiêp nội dung của PC (trừ một số thủ thuật)
Trang 11
Tập thanh ghi — EO tới E/
Một bộ 8 thanh ghi RO, R1, R7, mỗi thanh ghi
8 bit
Phân lớn được sử dụng như các thanh ghi tạm
Có sẵn trong 4 băng (bank) (Thực tê như là các
thanh ghi 4x8)
Băng được lựa chọn bằng cách thiệt lập các bit ES1:ES0 trong thanh ghi từ trạng thái chương trình PSW
Băng mặc định (lúc bật nguồn) là bank 0
Trang 12
Các thanh ghi - PSW
Từ trạng thái chương trình là thanh ghi 8 bit có thể địa
chi hoá theo bit, thanh ghi này có các cờ:
Trang 13
RSO PSW.3 ; Bit = 0 chon bang thanh ghi
OV PSW.2 ; Cờ tràn PSW.1 ; Bit danh cho người dùng định ngh1a
P PSW.0 ; CO chan, lẻ Thiết lạp/xoá bằng phần cứng
RSI RS0 Băng thanh ghi Địa chỉ
Trang 14Minh hoa vê các cờ
Trang 15Các thanh ghi - DPTR
Thanh ghi 16 bit, được gọi là con trỏ dữ liệu Được sử dụng bởi các lệnh truy cập bộ nhớ
ngoài
Cũng được sử dụng để lưu các giá trị 16 bit
mov DPTR, #data†16; bạt DPTR với địachỉ ngoài 16 bịt
DPTR được sử dụng cho các thao tác với chuỗi,
LUT (look up table)
Trang 16
Các thanh ghi - SP
SP là con trỏ ngăn xếp
SP trỏ tới vị trí cuôi cùng đã sử dụng của ngăn xêp
— Thao tác nạp trước tiên sẽ tăng SP và sau đó copy dữ liệu
— Thao tác lây trước tiên sẽ copy dữ liệu sau đó giảm SP
Ở 8051, ngăn xếp được phát triển theo chiều tang (tu vung nhớ thấp tới vùng nhớ cao) và có thé chi la RAM trong
Khi bật nguôn, SP có vị trí 07H
Cac bang thanh ghi 2,3,4 (08H toi 1FH) la vung ngan xép
mac dinh Ngăn xêp có thê định vi trí lại băng cách đặt SP tới vùng
bộ nhớ cao từ 30H tới /Fh
Trang 18tu dia chi OOOOH trong
Trang 19
Tập lệnh của 8051
Chuyên dữ liệu
— Chuyễn/copy dữ liệu tà vị trí này tới vị trí khác
— mov, movc, movx, push, pop
Lệnh lôgIc
— Thực hiện các phép tính lôgic trên dữ liệu
— anl, orl, xrl, clr, cpl, rl, ric, rr, rre, swap
Lệnh số học
— Thực hiện các phép tính số học trên dữ liệu
— add, addc, subb, inc, dec, mul, div
Điều khiển chương trình
— Điều khiên luồng chương trình
— jmp, ajmp, ljmp, sjmp, jc, jnc, jb, jnb, jc, jz, jnz, acall, Icall
— cjne, djnz, ret, ret NOP
J
Trang 20
Giới thiệu hợp ngữ của 8051
¢ Cau trúc lệnh hợp ngữ
[Nhãn:] Mã lệnh [toán hạng] [;giải thích]
°ỒỎ Vị dụ
start: mov A, #DOH; ma bat dau tu day
¢ Chi dan hop ngit
— ORG xxxxH - origin, bat dau hợp dich từ địa chỉ xxxxH
— EQU : ding nghĩa hằng số
¢ Count EQU 25
*® DATAI: DB 28
— END : báo cho trình hợp dich biết kết thúc tệp nguôn
Trang 21
Cơ sở về lập trình hợp ngữ
Định dạng hợp ngữ của Intel
Thực hiện đích nguôn : giải thích
Giá trị được đặt trước bởi dâu #
— nhớ) (Không có # được coi như nạp giá trị lưu tại Ô
Trang 22Các bước xây dựng chương
trinh hợp ngữ
Trxnh so”n thfo
Trang 23Ví dụ về chương trình hợp ngữ
© Dich la hé phat trién
8051 trong băng thanh ghi với một vài số Chương trình làm đày 4 thanh ghi
Thiết bị 8051 chuẩn
2K ROM on-chip để
và tìm tông của chúng
ORG 0x30 ;skip the IVT area
chạy chương trình Start: mov ive SA "
giám sát mov Rt,
32K RAM bén ngoai & mov R2, #1 địa chỉ Ox0000 tới mov RS, #0x20
lệnh và dữ liệu add A R2
VỊ trí đâu tiên 0x30 add A, R3
của RAM ngoài đề bỏ mov R4,A :store sum in R4
qua bảng vectơ ngắt mov DPTR, #7FFF
(IVT-Interrupt Vector movx @DPTR, A ;store in ext mem
Table) Done: sjmp done ;loop here forever
END
Trang 24
Vi du Demo21.A52
} } Chuong trinh copy 5 byte du lieu tu d/c 31h sang d/c60h - |
}
org Oh sjmp_ start org 30H start mov A, #1
L1:
mov R4, #5 mov RO, #31H mov @RO0,A inc A
INC RO dịnz R4, L1 mov R1,#60h mov R2,#5 mov RO0,#31h LOOP: nop
mov A,#00 mov A,@RO mov @R1,A inc RO inc R1 djnz R2,LOOP
sjmp $
nop END
,chuong trinh bat dau tu o 0h
, Nap gia tri dau tien vao 31h
; nap con tro , chuyen 1,2,3, 4, 5 vao 5 o nho 31, 32, 33, 34, 35
,con tro dich (destination) ,so byte can chuyen (so vong lap) ,con tro nguon (source)
:xoa thanh chua ACC chuyen 1 byte tro boi RO vaoA
;chuyen tu A vao dich
‘tang co tro nguon tang con tro dịch kiem tra so vong lap