1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Lập trình cho 8051: Số học và p lôgic docx

22 393 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phép tính số học có dấu và không dấu
Thể loại Bài giảng
Định dạng
Số trang 22
Dung lượng 177,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các chủ đê Phép tính số học có dau và không dâu Số nhị phân và mã BCD Lệnh cộng Lệnh trừ... Lệnh da chỉ thực hiện với lệnh cộng ADD.. Với các lệnh khác Inc, sub vv..., thì việc làm chí

Trang 1

Lập trình cho 8051: S6 hoc va

logic

Bai 4

Bo mon TD Khoa KTDK

Trang 2

Các chủ đê

Phép tính số học có dau và không dâu

Số nhị phân và mã BCD

Lệnh cộng Lệnh trừ

Trang 3

Phép cộng không dâu

Add A, source ; A=A+source

Có nhớ thì bit nhớ được lưu vào cờ CY mov A, #0F5H

Phép cộng số 16 bít

— Addc A, source ; A=A+source+CY

— Cộng các byte thấp sử dụng lệnh add

— Ghi kêt quả

— cộng các byte cao hơn sử dụng addc

Trang 4

Phép cộng không dâu

°- Ví dụ về phép cộng l6 Bít

¢ Cong UUVV va PPQQ

clr C mov A, QQ add A, VV mov r6, A mov A, PP addc A, UU movr/,A

° _ Kết quả 16 bít cuỗi cụng trong r7:r6 và cờ CY

Trang 5

Phep cong BCD BCD - sé thap phân được mã hoá bởi số nhị phân

—_ 4 bIt được sử dụng đê biêu diên sô thập phân từ 0-9

Hai sô trong mã BCD được biểu diễn trong 1 byte

— 17PBCD=17D=11H

Phép cộng sô BCD có thê không tạo ra sỐ BCD hợp lệ Do vậy

phải dùng lệnh chuân hoá sô BC) (da A) đê làm chính xác nó

Sau khi cộng 2 số BCD gọi lệnh da để chuẩn hoá số PBCD

mov A, #47H : số BCD đâu tiên = 47d mov B, #25H : số BCD thứ hai = 25d add A, B : A=óCh (kết quả cộng nhị phân của 47H

và 25H)

Trang 6

- Nếu phân cao lớn hơn 9 hoặc CY=I] thì cộng 6 vào phân cao

°Ò Lệnh da chỉ thực hiện với lệnh cộng ADD Với các lệnh khác (Inc, sub vv ), thì việc làm chính xác nó

được thực hiện thủ công (băng tay)

Trang 7

— Nếu cờ CY được thiết lập sau khi thực hiện phép trừ, thì kết

quả là một sô âm và đưa ra kêt quả là sô bù hai

‹_ lệnh subb thực hiện trừ có mượn nêu CY được thiết lập trước lệnh call Được sử dụng đề thực hiện phép

trừ sô 16 bit

— Đề thực hiện phép trừ đơn giản, xoá CY trước khi gọi lệnh

subb

ii)

Trang 8

inc A ; by complementing A and adding 1 to it

done: mov R1,A ‘ final result in R14

¢ Tru 16 bit 2762H-1296H

clr C ; clear Cy mov A, #62H subb A, #96H ; 62H — 96H — CCH and CY-1 mov R7,A ; store the lower byte of the result in R7 mov A, #27H ; now subtract the upper bytes

subb A, #12H 2/H—12H—- 1= 14H mov R6, A ; store upper byte of result in R6

‘ Final 16bit result is in R6:R7

Trang 9

Phép nhân và phép chia

© MUL AB; AxB, dat két qua vao BA

mov A, #25H ; operand1: 25H mov B, #65H ; operand2: 65H mul AB ; 20H * 65H = E99H

;B =0EH, A = 99H

© DIV AB; A/B, Thương số đặt vào A và số dư chứa trong B

mov A, #95H mov B, #10

div AB ; A =9 (quotient), B=5 remance am

Trang 10

Phép tính SỐ học có dâu - Nội dung

°® GIỚI thiệu vê sô có dâu

- Sử dụng một bit làm bit dâu

— Bit cao nhất MSB được gán cho bit dau

— Cac bit con lai biéu dién gia tri

¢ 8051 chi co cac thanh ghi 8 bit

—~Cac s6 có dâu có thể chỉ có 7 bít giá trị

- Các sô dương trong 8051 = 0 tới +127 (7 bit)

—- Các sô âm từ -12§ đến -I

Trang 11

¢ Cac vi du

Phép tính sô học có dâu — Các s

°Ò Biêu diện sô âm với sô có dâu

— Bit dau (bit cao nhat) là 1

— Gia tri biéu dién dudi dang số bù 2

y IAN

Represent —5

5 =00000101 Cpl = 1111 1010

Cpl = 1100 1011 +1 =11001100

Hex = CCH Hence -34H = CCH

Represent -128

128 = 1000 0000 Cpl=0111 1111 +1 =1000 0000

Hex = 80H Hence -128 = 80H

Range

-128 = 80H -127 =81H

-1 =FFH

0 = 00H

1 = 01H +127 =7FH

Trang 12

Các sô có dâu — Cách dùng

° Dữ liệu đựoc tạp trung và lưu lại như một

mang của các sô có dâu

— Một sô phân tử trong mang co thể là âm, còn các phân tử khác có thể la duong

— Việc xác định các SỐ dương thông qua MSB Nếu MSB = 1, số đó là số âm

« Giống như các phép toán số học (ađ, sub, mul, div .) có thể cân phải thực hiện trên các phan tir mang, va kết quả có thể là âm hoặc dương

Trang 13

Phép tính sô học có dâu

8051 biểu diễn sô âm trong lệnh sub Nhưng

không đủ Khi cân sử dụng các số CO dau, người lập trình phải sử dụng phép tính sô học có dâu

Hiện tượng tràn phải được xử lý Cờ nhớlà | khong du boi vi chi co 7 bit mang giá trỊ của so

co dau

8051 dua ra mot co khac — OV (co tran) cho

muc dich nay

Trang 14

¢ Phép cộng

A+B A=0]1H B=FFH A=~+iB=-l

A= 0000 0001 B= 11111111 += 10000 0000 A+B =0H

~=11i1111101 A-B =FDH =-3

A-B A=01H B=FFH A-B A=FEH B=01H

A=+1,B=-1 A=-2,.B=+1 2's(B) = 0000 0000 +1 = 0000 0001 2's(B) = 1111 1110 +1 = 1111 1111

A = 00000001 A = 11111110 2's)= 00000001 2's(B)= 11111111 + =000000010 + =111111101 A-B=02H A-B =FDH = -3

—— ———————— 8u

Trang 15

Hiện tượng tràn

¢ Cờ tràn có thêxuât * Ví dụ

hiện từ các gia trị AB A=6/0E ĐeUVAGB

của các sô CO dau,

A=0110 0000

co nay co thé thay đôi bit dâu B=0100 0110

N trà + +=1010 0110 = AGH =-90

¢ Co tran dugc kiém (wrong)

tra dé phat hién 161 | OY"

Trang 16

Co OV

¢ Sau khi thuc hién cac phép tinh s6 hoc, OV duoc thiét

lap néu:

— Có nhớ từ Dó sang D7 nhưng không nhớ từ D7

— Nhớ từ Dó nhưng không nhớ từ D6 sang D7

— Trong các trường hợp trên chỉ thị một kết quả sai trong phép

tính

° _ Sau khi thực hiện phép tính số học với các số có dâu,

kiểm tra cờ OV đề xác định lỗi

— Sử dụng lệnh Jb PSW.2 hoặc Jnb PSW.2

— PSW.2=OV

Trang 17

AND Cac lénh logic

— Anl dest, source; dest=dest AND source

— Thường được sử dụng để che đi (đặt =0) một số bit trong toán hạng

OR

— Orl dest, source ; dest=dest OR source

— Thuong duoc st dung dé thiét lap mot sé bit trong toan hang

XOR

— Xrl dest, source ; dest=dest XOR source

— Thường được sử dụng để xoá một thanh ghi, kiểm tra nếu hai thanh ghi có giá trị giông nhau và đảo một số bit

Bu

— CplA > A=A’

Các lệnh trên không ảnh hưởng đến bất cứ cờ nào

Trang 18

— Cjle dest, source, dia chi

— So sanh dich va nguon và nhây tới địa chỉ chi ra nêu không

mà không thay dồi các toán hạng |“° ¬ lia nhung anh hưởng đến cờ CY NEQ: mcGREAIT

— dest < source => CY=1 GREATS RO > #80

Vi du

— Giam sát P] liên tp | Loop: mov A, Pl

va thoat néu P1=63 cjne A #63 loop

Trang 19

— RrA ; quay A sang phai rA ‘now A = 55H

— RIA ; quay A sang trai

Quay sang phai/trai với cờ nhớ ; Example for RL

— Dung CY trong so quay (quay 9 bit)

Trang 20

Các lệnh đơn bit

Thiết lập một bít

— Set bit name ; bit=1

Xoa mot bit

— Clr bit name ; bit=0

Lay bu mot bit

— Cpl bit name ; bit=bit’

Nhay có điêu kiện dựa trên giá trị của một bit

= Jb (nhảy nêu bit =1), jnb (nhảy nêu bit = 0), jbc

(nhảy nêu bit =1 va xoa bit do)

Trang 21

Các thanh ghi và bộ nhớ có thể địa

chỉ hoá bít (BAR)

Các công I/O (P0-P3), B, PSW, IP, IE, ACC, SCON và TCON

là các thanh ghi có thể địa chỉ hoá bit Các bit của các BAR có thể xem như số thứ tự bit của thanh ghi

(P0.1, PSW.2, IE.4 ) hoặc bởi chính địa chỉ bit cua chung

Đại chỉ bít là địa chỉ cơ sở của thanh ghi + số thứ tự bit

— Đại chỉ cơ sở của ACC là E0H, do đó AŒC.I = E1H, ACC.7=E7H

—_ P0 có địa chỉ cơ sở là 80H, do đó P0.0=80H, P0.5=§4H và sứ tiếp tục

xác định như vậy

16 byte của Ram trong là bit có thể địa chỉ hoá

— 20H tới 2FH có địa chỉ bit từ 00H tới 7FH

— Clró7h ; xoá bit 7ở vị trí 2CH trên RAM

— Setb 05H ; thiết lập bit 5 ở vị trí 20H trên RAM

Trang 22

Cac thao tac don bit vo1 co CY

© 8051 có các lệnh đặc biệt để can thiệp trực tiếp tỚI CỜ

CY

— Setb C; clr C; cpl C; mov b, C; mov C, b; jnc, jc, anl C, b; anl C, /b; orl C, b; orl C, /b

— Anl C, /b >; C=CY AND b’

¢ Vi du Bat quat (P2.2) va tat dén (P2.3)

Fan_on: setb C

oriC.P22 :;CY =CY OR P2.2

mov P2.2 C :turm on fan if not already ON

Light off clrC

anlC P23 -CY =CY AND P23

mov P2.3.C :turm off light if not already OFF

Ngày đăng: 23/12/2013, 20:15

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm