Kiến trúc vi điều khiển 8051

16 209 0
Kiến trúc 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

1 Kiến trúc vi điều khiển 8051 1.3 Truy xuất địa 8051 có kiểu truy xuất địa khác nhau: • • • • • • • • Thanh ghi (Register) Trực tiếp (Direct) Gián tiếp (Indirect) Tức thời (Immediate) Tương đối (Relative) Tuyệt đối (Absolute) Dài (Long) Chỉ số (Indexed) Truy xuất địa ghi 8051 cho phép truy xuất ghi “làm việc”, đánh số từ R0 → R7 Các lệnh sử dụng kiểu định địa ghi mã hóa dùng bit thấp opcode( lệnh) để ghi bên không gian địa logic Vậy : mã chức + địa toán hạng → lệnh ngắn byte Truy xuất địa kiểu trực tiếp Kiểu định địa trực tiếp sử dụng để truy xuất biến nhớ ghi chip Một byte thêm vào opcode dùng để xác định địa Trong 8051 có 128 byte nhớ RAM Bộ nhớ RAM gán địa từ 00H đến FFH phân chia sau: • • • Các ngăn nhớ từ 00H đến 1FH gán cho băng ghi ngăn xếp Các ngăn nhớ từ 20H đến 2FH dành cho không gian định địa bít để lưu liệu theo bit Các ngăn nhớ từ 30H đến 7FH không gian để lưu liệu có kích thước byte Chế độ định địa trực tiếp truy cập toàn không gian nhớ RAM Tuy nhiên, chế độ thường dùng để truy cập ngăn nhớ RAM từ 30H đến 7FH, thực tế không gian nhớ danh cho băng ghi truy cập tên ghi R0- R7 chế độ định địa trực tiếp , địa ngăn nhớ RAM chứa liệu toán hạng lệnh Ví dụ: MOV R0, 40 ; nội dung ngăn nhớ 40H RAM vào R0 MOV R4, 7FH ; chuyển nội dung ngăn nhớ 7FH vào R4 Một ứng dụng quan trọng chế độ định địa trực tiếp ngăn xếp Trong họ 8051, có chế độ định địa trực tiếp phép cất lấy liệu từ ngăn xếp Truy xuất địa kiểu gián tiếp Ở chế độ này, ghi dùng để trỏ đến liệu có nhớ Nếu liệu có chip CPU ghi R0 R1 sử dụng, có nghĩa dùng ghi R2-R7 để trỏ đến địa toán hạng chế độ định địa Nếu R0 R1 dùng làm trỏ, nghĩa chúng lưu địa ngăn nhớ RAM trước ghi cần đặt dấu " @" ví dụ sau: MOV A, @R0 MOV @R1, B ; chuyển ngăn nhớ RAM có địa R0 vào A ; chuyển B vào ngăn nhớ RAM có địa R1 Chú ý: R0 R1 có dấu "@" đứng trước Nếu dấu "@" đứng trước lệnh chuyển nội dung ghi R0 R1 liệu ngăn nhớ có địa R0 R1 Một ưu diểm chế độ định địa gián tiếp cho phép truy cập liệu linh hoạt so với chế độ định địa trực tiếp Tuy nhiên R0 R1 ghi bit, nên chúng phép truy cập đến ngăn nhớ RAM trong, từ địa 30H đến 7FH ghi SFR Trong thực tế, có nhiều trường hợp cần truy cập liệu cất RAM không gian ROM chip Trong trường hợp cần sử dụng ghi 16 bit DPTR Truy xuất địa kiểu tức thời Khi toán hạng số thay biến, số đưa vào lệnh byte liệu tức thời Trong hợp ngữ, toàn hạng tức thời nhận biết nhờ vào ký tự ‘# ‘ đặt trước chúng Toán hạng số học, biến biểu thức số học sử dụng số, ký hiệu toán tử Trình dịch hợp ngữ tính giá trị thay liệu tức thời vào lệnh Ví dụ lệnh : MOV A, #12 ;Nạp giá trị 12(OCH) vào chứa A Tất lệnh sử dụng kiểu định địa tức thời sử dụng liệu bit làm liệu tức thời Có ngoại lệ ta khởi động trỏ liệu 16-bit DPTR, địa 16 bit cần đến Truy xuất địa kiểu tương đối Kiểu định địa tương đối sử dụng cho lệnh nhảy Một địa tương đối giá trị bit có dấu Giá trị cộng với đếm chương trình để tạo địa lệnh cần thực thi Định địa tương đối có điểm lợi cung cấp cho ta mã không phụ thuộc vào vị trí, lại có điểm bất lợi đích nhảy bị giới hạn tầm Truy xuất địa kiểu tuyệt đối Kiểu định địa sử dụng với lệnh ACAll AJMP Đây lệnh byte cho phép rẽ nhánh chương trình trang 2k hành nhớ chương trình cách cung cấp 11 bit thấp địa đích Trong có bit cao (A8-A10) bit thấp (A0-A7) thành lập byte thứ lệnh Truy xuất địa kiểu dài Kiểu định địa dài dùng cho lệnh LCALL LJMP Các lệnh byte chứa địa đích 16 bit Lợi ích kiểu định địa sử dụng hết toàn không gian nhớ chương trình 64K, lại có điểm bất lợi lệnh dài đến 3-byte phụ thuộc vào vị trí Truy xuất địa kiểu số Chế độ định địa chỉ số sử dụng rộng rãi truy cập phần tử liệu bảng không gian ROM chương trình 8051 Lệnh dùng cho mục đích "MOVC A, @A+DPTR" Thanh ghi 16 bit DPTR ghi A dùng để tạo địa phần tử liệu lưu ROM chip lệnh này, nội dung A cộng với nội dung ghi 16- bit DPTR để tạo địa 16 bit Kiến trúc vi điều khiển 8051 1.4 Các loại lệnh Các lệnh số học Các lệnh logic Các lệnh di chuyển liệu Các lệnh xử lý bit Các lệnh rẽ nhánh Các lệnh dịch quay Các lệnh làm việc với ngăn xếp 2.1.1 Điều khiển bật tắt led Đầu tiên học thực hành điều khiển led sáng tối thật đơn giản Mạch điện điều khiển bao gồm led điện trở nối tiếp Bài học áp dụng cho vi điều khiển 89S51 nhiên hoàn toàn áp dụng cho vi điều khiển khác thuộc họ 8051 Bài thực hành điều khiển việc cho phép dòng điện chạy qua led làm led sáng tối Bước 1: Thiết kế mạch ứng dụng cho vi điều khiển hình 2.1.1 Trong chân P0.0 nối với Ka-tốt led Nếu P0.0 = led không sáng, P0.0 = led sáng Hình 2.1.1 Sơ đồ nguyên lý mạch điều khiển led Bước 2: Lập trình điều khiển Led theo ngôn ngữ lập trình Assembly (có thể dùng chương trình Reads51) Nội dung chương trình: =============================================================== org 0h ; không sử dụng ngắt start: Clr P0.0 ; Bật led sáng call delay; Gọi hàm trễ Setb P0.0 ; Tắt led call delay; Gọi hàm trễ sjmp start; Quay trở ban đầu ;============================================= ;subroutine delay created to rise delay time ;============================================= delay: mov R1,#255 del1: mov R2,#255 del2: djnz R2,del2 Chờ đến R2 giảm djnz R1,del1 Chờ đến R1 giảm ret end =============================================================== Bước 3: Biên dịch chương trình chương trình biên dịch chuyên dụng cho vi điều khiển Reads51 Sau biên dịch, chươn trình tạo file mã máy mà vi điều khiển dựa vào để hoạt động Thông thường file có dạng tên_file.hex Việc đặt tên file người dùng tự đặt Bước Nạp file mã máy mà chương trình biên dịch vừa tạo công cụ mạch nạp trang web hướng dẫn làm như: mạch nạp 89xxxx, mạch nạp 89Cxx, mạch nạp 89Sxxxx, mạch nạp 89Sxx AVR Sau nạp file mã máy vào vi điều khiển 89S51 Gắn vi điều khiển vào mạch ứng dụng, thấy kết q2.2.1 Điều khiển bật tắt led nhấn công tắc Trong công nghiệp nhấn phím điều khiển hệ thống, nhu cầu hiển thị tác động người vận hành xem tác động chưa quan trọng Giải pháp dùng led để hiển thị sử dụng nhiều Phần mô tả giải pháp dùng vi điều khiển để điều khiển việc hiển thị tác động nhấn công tắc Bước 1: Xây dựng mạch điều khiển mô tả hình 2.2.1 Trong ví dụ này, chân P2.0 đến chân P2.7 vi điều khiển nối với phím bấm nháy chân P0.0 đến P0.7 nối với Katốt led Nhiệm vụ nhấn phím chân P2.x led nối với chân P0.x tương ứng sáng Hình 2.2.1 Sơ đồ nguyên lý hoạt động giao tiếp với công tắc Bước 2: Lập trình điều khiển Led theo ngôn ngữ lập trình Assembly (có thể dùng chương trình Reads51) Nội dung chương trình: =============================================================== org 0h start: mov A,P2 ; Đọc liệu từ cổng P2, lưu vào ghi ACC mov P0,A ; Đưa liệu cổng P0 sjmp start; Quay ban đầu end =============================================================== Bước 3: Biên dịch chương trình chương trình biên dịch chuyên dụng cho vi điều khiển Reads51 Sau biên dịch, chươn trình tạo file mã máy mà vi điều khiển dựa vào để hoạt động Thông thường file có dạng tên_file.hex Việc đặt tên file người dùng tự đặt Bước Nạp file mã máy mà chương trình biên dịch vừa tạo công cụ mạch nạp trang web hướng dẫn làm như: mạch nạp 89xxxx, mạch nạp 89Cxx, mạch nạp 89Sxxxx, mạch nạp 89Sxx AVR Sau nạp file mã máy vào vi điều khiển 89S51 Gắn vi điều khiển vào mạch ứng dụng, thấy kết học uả học 2.2.2 Điều khiển led chạy nhấn công tắc Trong phần này, nội dung học điều khiển led sáng dịch chuyển nhấn công tắc Cụ thể led sáng chuyển động sang trái nhấn phím nối với chân P2.0 chuyển động sang phải nhấn phím nối với chân P2.1 Bước 1: Xây dựng mạch điều khiển mô tả hình 2.2.2 Trong ví dụ này, chân P2.0 đến chân P2.7 vi điều khiển nối với phím bấm nháy chân P0.0 đến P0.7 nối với Katốt led Nhiệm vụ nhấn phím chân P2.0 led sáng chuyển động sang trái, nhấn phím nối với chân P2.1 led sáng chuyển động sang phải Hình 2.2.2 Sơ đồ nguyên lý hoạt động giao tiếp với công tắc Bước 2: Lập trình điều khiển Led theo ngôn ngữ lập trình Assembly (có thể dùng chương trình Reads51) Nội dung chương trình: =============================================================== org 0h CekP20: JB P2.0,CekP21 ; kiểm tra P2.0 call RLeft ; gọi hàm điều khiển led -> trái sjmp CekP20 ; trở CekP20 CekP21: JB P2.1,CekP20 ; kiểm tra P2.1 call RRight ; gọi hàm điều khiển led -> trái sjmp CekP20 ; trở CekP2.0 ;=============================================== ;this subroutine is used to move LED to the left ;================================================ RLeft: mov A,#11111110b;Khởi tạo cho led P0.0 sáng RLeft1: mov P0,A ;P0.0 sáng call delay ;gọi hàm trễ JB P2.0,RLeft2 ;kiểm tra P2.0 sjmp EndRLeft ;không nhấn phím P2.0, kết thúc RLeft2: RL A ; dịch ghi A -> trái sjmp RLeft1 EndRLeft: ret ; ;================================================= ;this subroutine is used to move LED to the right ;================================================= RRight: mov A,#01111111b RRight1:mov P0,A call delay JB P2.0,RRight2 sjmp EndRRight RRight2:RL A sjmp RRight1 EndRRight: ret ;============================================= ;subroutine delay created to rise delay time ;============================================= delay: mov R1,#255 del1: mov R2,#255 del2: djnz R2,del2 djnz R1,del1 ret end =============================================================== Bước 3: Biên dịch chương trình chương trình biên dịch chuyên dụng cho vi điều khiển Reads51 Sau biên dịch, chươn trình tạo file mã máy mà vi điều khiển dựa vào để hoạt động Thông thường file có dạng tên_file.hex Việc đặt tên file người dùng tự đặt Bước Nạp file mã máy mà chương trình biên dịch vừa tạo công cụ mạch nạp trang web hướng dẫn làm như: mạch nạp 89xxxx, mạch nạp 89Cxx, mạch nạp 89Sxxxx, mạch nạp 89Sxx AVR Sau nạp file mã máy vào vi điều khiển 89S51 Gắn vi điều khiển vào mạch ứng dụng, thấy kết học ... giải pháp dùng vi điều khiển để điều khiển vi c hiển thị tác động nhấn công tắc Bước 1: Xây dựng mạch điều khiển mô tả hình 2.2.1 Trong ví dụ này, chân P2.0 đến chân P2.7 vi điều khiển nối với... Sau nạp file mã máy vào vi điều khiển 89S51 Gắn vi điều khiển vào mạch ứng dụng, thấy kết q2.2.1 Điều khiển bật tắt led nhấn công tắc Trong công nghiệp nhấn phím điều khiển hệ thống, nhu cầu... hoàn toàn áp dụng cho vi điều khiển khác thuộc họ 8051 Bài thực hành điều khiển vi c cho phép dòng điện chạy qua led làm led sáng tối Bước 1: Thiết kế mạch ứng dụng cho vi điều khiển hình 2.1.1 Trong

Ngày đăng: 26/10/2017, 15:26

Hình ảnh liên quan

Chế độ định địa chỉ chỉ số được sử dụng rộng rãi khi truy cập các phần tử dữ liệu của bảng trong không gian ROM chương trình của 8051 - Kiến trúc vi điều khiển 8051

h.

ế độ định địa chỉ chỉ số được sử dụng rộng rãi khi truy cập các phần tử dữ liệu của bảng trong không gian ROM chương trình của 8051 Xem tại trang 3 của tài liệu.
1. Kiến trúc vi điều khiển 8051 1.4 Các loại lệnh - Kiến trúc vi điều khiển 8051

1..

Kiến trúc vi điều khiển 8051 1.4 Các loại lệnh Xem tại trang 3 của tài liệu.
Thiết kế mạch ứng dụng cho vi điều khiển như hình 2.1.1. Trong đó chân P0.0 được nối với Ka-tốt của led - Kiến trúc vi điều khiển 8051

hi.

ết kế mạch ứng dụng cho vi điều khiển như hình 2.1.1. Trong đó chân P0.0 được nối với Ka-tốt của led Xem tại trang 11 của tài liệu.
Hình 2.1.1 Sơ đồ nguyên lý mạch điều khiển led - Kiến trúc vi điều khiển 8051

Hình 2.1.1.

Sơ đồ nguyên lý mạch điều khiển led Xem tại trang 11 của tài liệu.
Xây dựng mạch điều khiển mô tả như hình 2.2.1. Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với  Ka-tốt của led - Kiến trúc vi điều khiển 8051

y.

dựng mạch điều khiển mô tả như hình 2.2.1. Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với Ka-tốt của led Xem tại trang 12 của tài liệu.
Hình 2.2.1 Sơ đồ nguyên lý hoạt động giao tiếp với công tắc - Kiến trúc vi điều khiển 8051

Hình 2.2.1.

Sơ đồ nguyên lý hoạt động giao tiếp với công tắc Xem tại trang 13 của tài liệu.
Xây dựng mạch điều khiển mô tả như hình 2.2.2. Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với  Ka-tốt của led - Kiến trúc vi điều khiển 8051

y.

dựng mạch điều khiển mô tả như hình 2.2.2. Trong ví dụ này, các chân P2.0 đến chân P2.7 của vi điều khiển được nối với phím bấm nháy và các chân P0.0 đến P0.7 được nối với Ka-tốt của led Xem tại trang 14 của tài liệu.

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

Tài liệu liên quan