các tập lệnh cơ bản trong vi điều khiển 8051

44 1.5K 36
các tập lệnh cơ bản trong vi điều khiển 8051

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

GV LÊ TIẾN DŨNG Bộ môn Tự ñộng hóa – Khoa ðiện Trường ðại học Bách khoa – ðại học ðà Nẵng Email: ltdung@udn.vn CHƯƠNG 3: TÓM TẮT TẬP LỆNH NỘI DUNG CHƯƠNG 3.1 Mở ñầu 3.2 Các kiểu ñịnh ñịa 3.3 Các loại lệnh GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu - Chương trình chuỗi lệnh mà MC phải xử lý, thực - Lập chương trình soạn thảo lệnh ngôn ngữ lập trình ñể thực algorith (thuật toán) cụ thể Chương trình = Thuật toán + Cơ sở liệu - Chương trình dịch: Ví dụ Assembler, thực dịch từ mã ngữ sang mã máy - Hệ lệnh MC: Là tập lệnh mà người lập trình sử dụng ñể lập trình, người lập trình sử dụng lệnh hệ lệnh mà - Mỗi họ MC có tập lệnh riêng, chương trình viết cho MC họ chạy cho họ ñó GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu - Ngôn ngữ lập trình: + Bậc cao: C, Pascal, C++ + Bậc thấp: * Mã máy: Mỗi lệnh tương ứng với mã nhị phân gọi mã lệnh, nhà sản xuất quy ñịnh MC hiểu ñược lệnh dạng mã máy Các lệnh chiếm byte, byte byte * Mã ngữ: Các lệnh ñược mô tả dạng biểu trưng (Symbol) Symbol từ viết tắt MOV, ADD, ký hiệu khối chức dạng Graphic GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu Các chữ viết tắt dùng tập lệnh Rn : ðịnh ñịa ghi sử dụng R0 - R7 direct : ðịa trực tiếp bit RAM nội (00H-FFH) @Ri : ðịnh ñịa gián tiếp sử dụng ghi R0 R1 source : Toán hạng nguồn, Rn, direct @Ri dest : Toán hạng ñích, Rn, direct @Ri GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu Các chữ viết tắt dùng tập lệnh #data : Hằng số bit chứa lệnh #data16: Hằng số 16 bit bit : ðịa trực tiếp (8 bit) bit rel : offset 8-bit có dấu addr11 : ðịa 11 bit trang hành ddr16 : ðịa 16 bit GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu CÁCH VIẾT SỐ - Số Binary (nhị phân): Số nhị phân viết cần thêm phía sau giá trị kí tự "B" Các số phải số nhị phân bit Khi giá trị cần thiết lập giá trị cần cho bit byte dùng cách biểu diễn số nhị phân Ví dụ: 01010101B GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu CÁCH VIẾT SỐ - Số Hexa: Số hex viết cần thêm phía sau giá trị kí tự "H" Nếu sô hex bắt ñầu A,B,C,D,E,F cần thêm số "0" phía trước ñể trình biên dịch nhận biết ñược ñó số Hex, không lầm giá trị số với kí tự chữ khác Số hex cách viết ngắn gọn số nhị phân Ví dụ: 69H, 0A3H Cách viết khác: 0x69, 0xA3; GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.1 Mở ñầu CÁCH VIẾT SỐ - Số thập phân: Số thập phân viết không cần cần thêm kí tự thêm sau giá trị kí tự "D" Khi tính toán: cộng trừ nhân chia, sử dụng số nhị phân số hex gây khó khăn cho người viết chương trình, trường hợp số thập phân ñược sử dụng Ví dụ: 45, 27, 68D GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.2 Các kiểu ñịnh ñịa -Khi lệnh ñược thực thi lệnh yêu cầu liệu, câu hỏi ñược ñặt "Dữ liệu chứa ñâu?" Câu trả lời cho câu hỏi tạo kiểu (mode) ñịnh ñịa 8051 - Các kiểu ñịnh ñịa cho phép ta xác ñịnh rõ nguồn ñích liệu theo nhiều cách khác phụ thuộc vào tình lập trình GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh Logic LỆNH MÔ TẢ CLR A Xóa A CPL A Lấy bù A RL A Quay trái A RLC A Quay trái A kể cờ nhớ RR A Quay phải A RRC A Quay phải A kể cờ nhớ SWAP A Hoán ñổi nibble (2 nửa 4-bit) A GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh di chuyển liệu LỆNH MOV A,source MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV dest,A MOV Rn,A MOV direct,A MOV @Ri,A MÔ TẢ Di chuyển toán hạng nguồn ñến ñích GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh di chuyển liệu LỆNH MOV dest,source MOV Rn,direct MOV Rn,#data MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,direct MOV @Ri,#data MÔ TẢ Di chuyển toán hạng nguồn ñến ñích GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh di chuyển liệu LỆNH MOV dest,source MOV Rn,direct MOV Rn,#data MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,direct MOV @Ri,#data MÔ TẢ Di chuyển toán hạng nguồn ñến ñích MOV DPTR,#data16 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh di chuyển liệu LỆNH MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A MÔ TẢ Di chuyển nhớ loại ñịa chỉ: ñịa gián tiếp 8-bit (R0 R1) ñịa 16-bit GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh di chuyển liệu LỆNH MÔ TẢ MOVC A,@A+DPTR MOVC A,@A+PC Bảng nhảy PUSH direct POP direct Cất vào lấy liệu từ stack GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh xử lý Bit LỆNH CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit (not bit) ORL C,bit ORL C,/bit (not bit) MOV C,bit MOV bit,C MÔ TẢ Xóa bit Set bit Lấy bù bit AND bit với C AND NOT bit với C OR bit với C OR NOT bit với C Di chuyển bit ñến bit GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH MÔ TẢ ACALL addr11 LCALL addr16 Gọi không ñiều kiện chương trình ñặt ñịa ñược lệnh RET Quay trở từ chương trình RETI Quay từ trình phục vụ ngắt GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH MÔ TẢ AJMP addr11 LJMP addr16 Nhảy (chuyển việc thực thi chương trình) không ñiều kiện ñến ñịa ñược lệnh SJMP rel Nhảy ngắn, rẽ nhánh không ñiều kiện JMP @A+DPTR Nhảy gián tiếp GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH MÔ TẢ JZ rel Nhảy ñến ñịa chỉ(hoặc nhãn) lệnh nêú nội dung A Jump if A Zero JNZ rel Nhảy ñến ñịa chỉ(hoặc nhãn) lệnh nêú nội dung A khác Jump if A Not Zero JB bit,rel Nếu bit ñược lệnh ñược set 1, nhảy ñến ñịa ñược lệnh Ngược lại, thực lệnh GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH MÔ TẢ JNB bit,rel Nếu bit ñược lệnh 0, nhảy ñến ñịa ñược lệnh Ngược lại, thực lệnh JBC bit,rel Nếu bit ñược lệnh 1, xóa bit nhảy ñến ñịa ñược lệnh Ngược lại, thực lệnh GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH CJNE dest,source,rel CJNE A,direct,rel CJNE A,#data,rel CJNE @Ri,#data,rel CJNE Rn,#data,rel MÔ TẢ So sánh nhảy ñến ñịa (hoặc label) ñược lệnh dest source không Nếu nhau, thực lệnh Compare and jump if not equal GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh Nhóm lệnh ñiều khiển rẽ nhánh LỆNH DJNZ Rn,rel DJNZ direct,rel MÔ TẢ Giảm byte toán hạng ñầu tiên lệnh rẽ nhánh ñến ñịa ñược kết sau giảm khác Nếu kết sau giảm thực lệnh Decrease and Jump if Not Zero NOP GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 Không làm CHƯƠNG 3: TÓM TẮT TẬP LỆNH Bài tập chương GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 THANK YOU ! SEE YOU IN NEXT CHAPTER GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 [...]... 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ố GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh 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ử... TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 1 Nhóm lệnh số học LỆNH DEC A DEC Rn DEC direct DEC @Ri MÔ TẢ (source) ← (source) - 1 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 1 Nhóm lệnh số học 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... TẬP LỆNH 3.3 Tập lệnh nh 1 Nhóm lệnh số học LỆNH MÔ TẢ ADDC A,source ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data 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 (A) ← (A) + (C) + (Source) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh. .. ñối chỉ ñược sử dụng với các lệnh ACALL và AJMP ðây là các lệnh 2-byte cho phép rẽ nhánh chương trình trong trang 2K hiện hành của bộ nhớ chương trình - Kiểu ñịnh ñịa chỉ dài chỉ ñược dùng cho các lệnh LCALL và LJMP Các lệnh 3 byte này chứa ñịa chỉ ñích 16-bit GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.2 Các kiểu ñịnh ñịa chỉ +... TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 2 Nhóm lệnh Logic LỆNH ANL des,source ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL 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 (des) ← (des) AND (source) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh... 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 3 Nhóm lệnh di chuyển dữ liệu LỆNH MOV A,source MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV dest,A MOV Rn,A MOV direct,A MOV @Ri,A MÔ TẢ Di chuyển toán hạng nguồn ñến ñích GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 3 Nhóm lệnh di chuyển dữ liệu LỆNH MOV dest,source... 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 A Hiệu chỉnh thập phân nội dung của thanh chứa ñối với phép cộng GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 1 Nhóm lệnh số học Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu trên thanh ghi Rn Cú pháp: ADD A,Rn Lệnh. .. TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 3 Nhóm lệnh di chuyển dữ liệu LỆNH MOV dest,source MOV Rn,direct MOV Rn,#data MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV direct,#data MOV @Ri,direct MOV @Ri,#data MÔ TẢ Di chuyển toán hạng nguồn ñến ñích MOV DPTR,#data16 GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 3 Nhóm lệnh di... nh 1 Nhóm lệnh số học LỆNH SUBB A,source SUBB A,Rn SUBBA,direct SUBBA,@Ri SUBBA,#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 (A) ← (A) - (C) - (source) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 1 Nhóm lệnh số học LỆNH INC source... Nhóm lệnh Logic LỆNH ORL des,source ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data ORL 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 (des) ← (des) OR (source) GV Lê Tiến Dũng Automation Department, Faculty of Electrical Engineering – DUT / 2007 CHƯƠNG 3: TÓM TẮT TẬP LỆNH 3.3 Tập lệnh nh 2 Nhóm lệnh Logic LỆNH XRL

Ngày đăng: 30/10/2015, 18:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan