6. Các nhóm lệnh cơ bản của 8051, TS Nguyễn Hồng Quang

24 725 0
6. Các nhóm lệnh cơ bản của 8051, TS Nguyễn Hồng Quang

Đ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

6 Các nhóm lệnh 8051 TS Nguyễn Hồng Quang Electrical Engineering 6.1 Lập trình có cấu trúc • Lập trình (sequential programming) • Lập trình cấu trúc (structure programming) • Lập trình hướng đối tượng (object oriented programming) Electrical Engineering 6.2 Các đặc trưng lập trình cấu trúc • Dữ liệu + giải thuật = chương trình • Chương trình – Chương trình – Có loại cú pháp • Lệnh gán • Lệnh if then • Lệnh while Electrical Engineering 6.3 Các nhóm lệnh 8051 •6.3.1 Nhóm lệnh chuyển liệu •6.3.2 Nhóm lệnh số học •6.3.3 Nhóm lệnh logic •6.3.4 Nhóm lệnh xử lý bit •6.3.5 Nhóm lệnh rẽ nhánh •6.3.6 Ví dụ lệnh vòng lặp Electrical Engineering 6.3.1 Nhóm lệnh chuyển liệu Electrical Engineering 6.3.1 Truyền liệu với RAM Electrical Engineering 6.3.2 Lệnh xử lý lôgic Electrical Engineering 6.3.2 Ví dụ Electrical Engineering 6.3.2 Ví dụ XOR Electrical Engineering 6.3.2 Kiểm tra dùng XOR Đọc ọc kiểm ể ttraa cổng cổ g P1 xem e nóó có chứa c ứa giá g trị t ị A5H không? ô g? Nếu có gửi FFH đến cổng P2, không xoá Electrical Engineering 10 6.3.2 Ví dụ debounce XOR 11 Electrical Engineering 6.3.2 Lấy bù Electrical Engineering 12 6.3.2 Lệnh xử lý lôgic (tiếp) 13 Electrical Engineering 6.3.2 Ví dụ Electrical Engineering 14 6.3.2 Quay có nhớ Electrical Engineering 15 6.3.2 Nhân Chia số Electrical Engineering 16 6.3.2 Ví dụ Viết chương trình để tìm số số byte cho Electrical Engineering 17 6.3.2 Ví dụ ASCII - BCD Giả sử ghi A có số mã BCD viết chương trình để chuyển đổi mã BCD hai số ASCII đặt chúng vào R2 R6 Electrical Engineering 18 6.3.3 Lệnh làm việc với bit Electrical Engineering 19 6.3.3 Lệnh làm việc với bit Electrical Engineering 20 10 6.3.3 Ví dụ 21 Electrical Engineering 6.3.3 Ví dụ tiếp Trạng thái bít P1.2 P1.3 cổng vào/ra P1 phải lưu cất trước chúng thay đổi Hãy viết chương trình để lưu trạng thái P1.2 vào vị trí bít 06 trạng thái P1.3 vào vị trí bít 07 Electrical Engineering 22 11 6.3.3 Ví dụ với bit C Hãy viết chương trình để hiển thị (“New Message”) hình LCD bít 12H RAM có giá trị cao Nếu nóó có ó giá iá trịị thấp hấ hì LCD hiển hiể thị hị (“No (“N New N M Message”) ”) Electrical Engineering 23 6.3.4 Lệnh nhảy có điều kiện Electrical Engineering 24 12 6.3.4 Tính tổng Hãy tìm tổng giá trị 79H, F5H E2H Đặt vào ghi R0 (byte thấp) R5 (byte cao) 25 Electrical Engineering 6.3.4 Chuỗi ký tự Electrical Engineering 26 13 6.3.4 Các lệnh nhảy không điều kiện 27 Electrical Engineering 6.3.4 Ví dụ JMP Electrical Engineering 28 14 6.3.4 Lệnh làm việc với bảng liệu MOVC, nghĩa move constant Electrical Engineering 29 6.3.4 Ví dụ bảng tìm kiếm Electrical Engineering 30 15 6.3.4 Lệnh nhảy với cờ Electrical Engineering 31 6.3.5 Lưu ý với lệnh CJNE • Nếu tham số < tham số 2, bit nhớ C đặt lên • Nếu tham số > tham số 2, bit nhớ C xóa Electrical Engineering 32 16 6.3.5 Ví dụ 33 Electrical Engineering 6.3.5 Ví dụ lệnh if Giả sử P1 cổng đầu vào nối tới cảm biến nhiệt Hãy viết chương trình đọc nhiệt độ kiểm tra giá trị 75 Theo kết kiểm tra đặt giá trị nhiệt độ vào ghi định sau: Nếu T = 75 A = 75 Nếu T < 75 R1 = T Nếu T > 75 R2 = T Electrical Engineering 34 17 6.3.5 Phát biểu While/do • while [condition] Do • lệnh chương trình • • lệnh chương trình • while hil ( ) ( ) Electrical Engineering 35 6.3.5 Ví dụ tính tổng • Tính tổng dãy số • Chiều dài dãy số chứa ghi R7 • Địa bắt đầu dãy số ghi R0 Electrical Engineering 36 18 6.3.5 Ví dụ • [sum] = • WHILE (length > 0) Do – [sum = sum + @pointer] – [pointer = pointer + 1] – [[length g = length g – 1]] • End 37 Electrical Engineering 6.3.5 Ví dụ Electrical Engineering 38 19 6.3.5 Phát biểu case case [ expression] of 0: do0 1: do1 n: don d default: do_default End_case Electrical Engineering 39 6.3.5 Ví dụ case (tiếp) Call InChar CJNE A, #’0’, Skip1 Act0: JMP Exit Skip1: CJNE A, # ’1’, Skip2 Act1: JMP Exit Exit: DoN Electrical Engineering 40 20 6.3.5 Ví dụ T-bird light system 41 Electrical Engineering 6.3.5 Yêu cầu • • • • Brake bật LEDs LEDs Dừng tắt LEDs Rẽ trái bật LED trái Rẽ phải bật LED phải Electrical Engineering 42 21 6.3.6 Lệnh số học Electrical Engineering 43 6.3.6 Ví dụ lệnh cộng Cộng số 16-bit RAM 30h (high byte) 31h (low byte), byte) cộng với 1045h lưu tại32h (high byte) and 33h (lowbyte) Electrical Engineering 44 22 6.3.6 Sự khác ADD ADDC • Lệnh ADD tương đương với lệnh – CLR C – ADDC • Cờ OV xác định số có phải số âm không – Ví dụ: ụ 20h + 70h = 90 h ((tươngg đươngg -10h)) Electrical Engineering 45 6.3.6 Ví dụ MUL, DIV Electrical Engineering 46 23 6.3.6 Lệnh DA • Lệnh DA (Decimal Adjust for addition điều chỉnh thập phân phép cộng) 8051 để dùng hiệu chỉnh sai lệch nói liên quan đến phép cộng số BCD • • Nếu bít Nế bí thấp hấ lớn lớ h h ặ ế AC = hì nóó cộng 0110 vào bít thấp Nếu bit cao lớn cờ CY = cộng 0110 vào bit cao Electrical Engineering 47 24

Ngày đăng: 10/08/2016, 21:31

Từ khóa liên quan

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

Tài liệu liên quan