Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Tài liệu môn kỹ thuật vi điều khiển 3.ppt...

Tài liệu Tài liệu môn kỹ thuật vi điều khiển 3.ppt

.PPT
40
40
90

Mô tả:

3. TẬP LỆNH CỦA 8051 1. Các kiểu định địa chỉ. -Khi một lệnh được thực thi và lệnh này yêu cầu dữ liệu, một câu hỏi được đặt ra là "Dữ liệu chứa ở đâu?" Câu trả lời cho câu hỏi này tạo ra các kiểu (mode) định địa chỉ của 8051. - Các kiểu định địa chỉ cho phép ta xác định rõ nguồn và đích của dữ liệu theo nhiều cách khác nhau phụ thuộc vào tình huống lập trình. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] • Bộ nhớ dữ liệu: RAM – 128 Byte 7F 7E 7D 7C 7B 7A 79 78 … Byte address 7FH 2F 2E RAM đa mục đích 30H 2FH RAM định địa chỉ bit 20H 1FH 18H 17H 10H 0FH 08H 07H 00H Bank 3 Bank 2 Bank 1 (Stack) Default Register Bank for R0-R7 R7 R6 R5 R4 R3 R2 1F 17 0F 07 1E 1D 1C 1B 1A 16 15 14 13 12 0E 0D 0C 0B 0A 06 05 04 03 02 19 11 09 01 … 18 10 08 00 20 Bit address R1 R0 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Các kiểu định địa chỉ: + Tức thời (Immediate). + Thanh ghi (Register). + Trực tiếp (Direct). + Gián tiếp (Indirect). + Chỉ số (Indexed). Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Định địa chỉ tức thời (Immediate) - Khi toán hạng nguồn là một hằng số thay vì là một biến và đây là byte dữ liệu tức thời. - Trước dữ liệu phải có dấu # -Tất cả các lệnh sử dụng kiểu định địa chỉ tức thời đều sử dụng hằng dữ liệu 8-bit làm dữ liệu tức thời. -Có một ngoại lệ khi ta khởi động con trỏ dữ liệu 16-bit DPTR, hằng dữ liệu 16-bit được cần đến. Ví dụ: MOV MOV MOV MOV A,#65H R6,#55H DPTR,#2343H P1,#0FH Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Kiểu thanh ghi (Register) - Sử dụng thanh ghi làm việc để lưu dữ liệu cần thao tác Hợp ngữ của 8051 chỉ ra kiểu định địa chỉ thanh ghi bằng ký hiệu Rn, trong đó n có giá trị từ 0 đến 7. VD: ADD A,R7. - Thanh nguồn và đích phải phù hợp nhau về kích thước - Không được phép chuyển trực tiếp giữa các thanh ghi Rn với nhau Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Định địa chỉ trực tiếp (Direct) -Địa chỉ của dữ liệu được chỉ ra trực tiếp trong lệnh. -Chế độ định địa chỉ trực tiếp có thể dùng để truy cập toàn bộ không gian của bộ nhớ trong RAM. Tuy nhiên, thực tế chế độ này thường được dùng để truy cập các ngăn nhớ RAM từ địa chỉ 30H đến 7FH. -Cần phân biệt với chế độ định địa chỉ tức thời -Các thanh ghi R0 đến R7 có thể truy cập bằng 2 cách: Thanh ghi và trực tiếp -Ngăn xếp và chế độ định địa chỉ trực tiếp Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Định địa chỉ gián tiếp (Indirect) -Ở chế độ này, thanh ghi được dùng để trỏ đến dữ liệu có trong bộ nhớ. Nếu dữ liệu ở trên chip thì các thanh ghi R0 và R1 được sử dụng, hoạt động như những con trỏ (pointer). -Kiểu định địa chỉ gián tiếp được nhận biết dựa vào ký hiệu @. Ví dụ: dụ Ghi số 55H vào các ô nhớ từ 40H đến 44H trong RAM MOV MOV MOV INC MOV INC A,#55H R0,#40H @R0,A R0 @R0,A R0 ; Nạp vào A giá trị 55H ; Nạp vào con trỏ R0 = 40H ; Ghi A vào thanh ghi do R0 trỏ đến ; Tăng con trỏ. Bây giờ R0 = 41H ; Ghi A vào thanh ghi do R0 trỏ đến (41H) ; Tăng con trỏ. Bây giờ R0 = 42H Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] + Định địa chỉ chỉ số. - Sử dụng một thanh ghi nền (hoặc bộ đếm chương trình hoặc con trỏ dữ liệu) và một offset (thanh chứa A) tạo thành dạng địa chỉ hữu dụng cho lệnh JMP hoặc MOVC. - Trong nhiều ứng dụng, các bảng nhảy hoặc các bảng tìm kiếm được tạo ra dễ dàng bằng cách sử dụng kiểu định địa chỉ chỉ số. VD: Đọc giá trị từ x (0 đến 9) ở cổng P0 và xuất ra giá trị bình phương ra cổng P1 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] 2. Tập lệnh. lệnh Tập lệnh của 8051 được chia làm 5 nhóm + Nhóm lệnh số học. + Nhóm lệnh logic. + Nhóm lệnh di chuyển dữ liệu. + Nhóm lệnh xử lý bit. + Nhóm lệnh rẽ nhánh. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] 1. Nhóm lệnh số học LỆNH ADD ADD ADD ADD ADD A,source A,Rn A,direct A,@Ri A,#data MÔ TẢ Cộng toán hạng nguồn với A, kết quả chứa trong A. (A)  (A) + (source) Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Nhóm lệnh số học (tiếp) LỆNH ADDC ADDC ADDC ADDC ADDC A,source A,Rn A,direct A,@Ri A,#data MÔ TẢ Cộng đồng thời nội dung của một byte ở địa chỉ được chỉ ra trong lệnh với nội dung của thanh chứa và cờ nhớ. Kết quả đặt vào thanh chứa. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng (A)  (A) + (C) + (Source) [email protected] Nhóm lệnh số học (tiếp) LỆNH SUBB SUBB SUBB SUBB SUBB A,source A,Rn A,direct A,@Ri A,#data MÔ TẢ Trừ bớt nội dung của thanh chứa A bởi nội dung của toán hạng chỉ ra trong lệnh cùng với cờ nhớ và cất kết quả vào thanh chứa. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng (A)  (A) - (C) - (source) [email protected] Nhóm lệnh số học (tiếp) LỆNH INC INC INC INC INC INC source A Rn direct @Ri DPTR MÔ TẢ (source)  (source) + 1 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Nhóm lệnh số học (tiếp) LỆNH DEC DEC DEC DEC A Rn direct @Ri MÔ TẢ (source)  (source) - 1 Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] Nhóm lệnh số học (tiếp) LỆNH MÔ TẢ MUL AB Nhân các số nguyên không dấu 8-bit chứa trong A và B. Byte thấp của tích số 16-bit cất trong A, byte cao cất trong B. DIV AB Chia số nguyên không dấu 8-bit chứa trong A với số nguyên không dấu 8-bit chứa trong B. Thương số cất trong A, còn số dư cất trong B. DA Hiệu chỉnh thập phân nội dung của thanh chứa đối với phép cộng. A Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected] 2. Nhóm lệnh Logic LỆNH ANL ANL ANL ANL ANL ANL ANL des,source A,Rn A,direct A,@Ri A,#data direct,A direct,#data MÔ TẢ Thực hiện AND từng bit giữa 2 toán hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạng đích. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng (des)  (des) AND (source) [email protected] Nhóm lệnh Logic (tiếp) LỆNH ORL ORL ORL ORL ORL ORL ORL ORL des,source A,Rn A,direct A,@Ri A,#data direct,A direct,#data C,bit MÔ TẢ Thực hiện OR từng bit giữa 2 toán hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạng đích. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng (des)  (des) OR (source) [email protected] Nhóm lệnh Logic (tiếp) LỆNH XRL XRL XRL XRL XRL XRL A,Rn A,direct A,@Ri A,#data direct,A direct,#data MÔ TẢ Thực hiện XOR từng bit giữa 2 toán hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạng đích. Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng (des)  (des) XOR (source) [email protected] Nhóm lệnh Logic (tiếp) CLR LỆNH A Xóa A CPL A Lấy bù A RL A Quay trái A RLC A Quay trái A kể cả cờ nhớ RR A Quay phải A RRC A Quay phải A kể cả cờ nhớ SWAP A MÔ TẢ Hoán đổi 2 nibble (2 nửa 4-bit) của A Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng [email protected]
- Xem thêm -

Tài liệu liên quan