Danh mục

Bài giảng Vi điều khiển: Chapter 3 - Ngô Như Khoa

Số trang: 21      Loại file: pdf      Dung lượng: 192.75 KB      Lượt xem: 18      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: 8,000 VND Tải xuống file đầy đủ (21 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chapter 3 trình bày về ngôn ngữ lập trình Assembly cho vi điều khiển 8051. Các vấn đề cần làm rõ trong chương này gồm có: Mã máy - Machine code; các chế độ địa chỉ của 8051; các lệnh Jump, Loop và Call; thường trình con - Subroutines; các vòng trễ đơn giản.
Nội dung trích xuất từ tài liệu:
Bài giảng Vi điều khiển: Chapter 3 - Ngô Như Khoa Ngôn ngữ lập trình Assembly cho vi điều khiển 8051 Microcontroller Chapter 3 Ngo Nhu Khoa Department of Computer EngineeringDCE ThaiNguyen University of TechnologyCác vấn đềz Mã máy - Machine codez Các chế độ địa chỉ của 8051z Các lệnh Jump, Loop và Callz Thường trình con - Subroutinesz Các vòng trễ đơn giản 10/1/2005 2 DCE1. Mã đối tượng của 8051z Assembler chuyển đổi mã lệnh assembly thành mã máy/đối tượngz Sự chuyển đổi từ mã assembly sang mã đối tượng là duy nhất – Data sheet for 8051 lists the table of conversion – Manual assembly is cool !z Mã đối tượng là 1 chuỗi các lệnh máyz Mỗi lệnh máy có thể có độ dài 1 byte hoặc nhiều hơnz Các lệnh máy là 1 giá trị nhị phân và được viết ở hệ 16 10/1/2005 3 DCE1. Mã đối tượng của 8051 (…)z Assemblers tạo ra 1 file .lst trong quá trình dịch.z Instruction to m/c code translation on a line by line basis is listedInstruction Hex code #bytesnop 00 1inc R0 08 1mov A, #55H 74 55 2mov R0, #0AAH 78 AA 2mov R0, 0AAH A8 AA 2mov DPTR, #55AAH 90 55 AA 3 10/1/2005 4 DCE1. Mã đối tượng của 8051 (…)Hex Assembly Address Value 8000 790000: .equ cout, 0x0030 8001 610000: .equ cin, 0x0032 8002 780000: .equ esc, 0x004E 8003 1A 8004 E98000: .org 0x8000 8005 128000: 79 61 mov r1, #a 8006 008002: 78 1A mov r0, #26 8007 30 next_char: 8008 09 8009 D88004: E9 mov A, r1 800A F98005: 12 00 30 lcall cout 800B 128008: 09 inc r1 800C 00 800D 328009: D8 F9 djnz r0, next_char 800E 02800B: 12 00 32 lcall cin 800F 00800E: 02 00 00 ljmp 0x0000 8010 00 10/1/2005 5 DCE2. Các chế độ địa chỉ của 8051z CPU có thể truy xuất dữ liệu theo nhiều cách khác nhau – Chỉ định dữ liệu trực tiếp trong lệnh – Sử dụng các chế độ địa chỉ khác nhau đối với dữ liệu được lưu trữ trong bộ nhớ mã lệnh và bộ nhớ dữ liệuz 5 chế độ địa chỉ – Tức thì - Immediate – Thanh ghi - Register – Trực tiếp - Direct – Gián tiếp thanh ghi - Register Indirect – Chỉ số - Indexed 10/1/2005 6 DCE2.1. Chế độ địa chỉ tức thìz Toán hạng (dữ liệu) được chỉ định trực tiếp trong lệnh (mã lệnh)z Toán hạng là 1 hằng, được biết trong thời gian dịchz Dữ liệu tức thì phải có tiền tố là dấu “#”z Ví dụ: mov A, #25H ;A ← #0x25 mov DPTR, #1FFFH ;DPTR ← #0x1FFF temp EQU 40 ;assembler directive mov R1, #temp ;R1 ← 28H (40 decimal) 10/1/2005 7 DCE2.2. Chế độ địa chỉ thanh ghiz Yêu cầu phải sử dụng các thanh ghi để lưu giữ dữ liệuz Đặt toán hạng vào 1 thanh ghi và thao tác với nó bằng cách tham chiếu đến thanh ghi chứa (theo tên) trong lệnh mov A, R0 ;A ← contents (R0) mov R2, A ;R2 ← contents (A) ADD A, R1 ;A ← contents (A) + contents (R1)z Các thanh ghi nguồn và đích phải cùng kích thướcz Các lệnh dịch chuyển dữ liệu giữa các thanh ghi không thể áp dụng cho mọi trường hợp, cho mọi thanh ghi: mov R4, R7 ; invalid – Kiểm tra với danh sách lệnh trước khi sử dụng 10/1/2005 8 DCE2.3. Chế độ địa chỉ trực tiếpz Đối với dữ liệu được lưu trữ trên RAM và các thanh ghi – Tất cả các vùng nhớ đều các thể truy xuất bằng địa chỉ. – Như truy xuất đến tất cả các thanh ghi, các cổng, các thiết bị ngoại vi trong 8051.z Sử dụng địa chỉ của trực tiếp toán hạng trong lệnh. mov A, 40H ; A ← mem[40H] (note no # sign before 40H)z Chế độ địa chỉ thanh ghi tương tự như chế độ địa chỉ trực tiếp mov A, 4H ; 4H is the address for R4 mov A, R4 ; tương tự như trên. Cả 2 lệnh đều như nhau ...

Tài liệu được xem nhiều: