Tải bản đầy đủ (.pdf) (8 trang)

Cơ sở ĐIện học - Thiết Bị Lập Trình part 18 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (145.54 KB, 8 trang )

8/13/2007
10
VÝ dô:
KÕt qu¶ thao t¸c:
Nhãm lÖnh xoay vµ lËt thanh ghi

Nhãm lÖnh lËt ph¶i, lËt tr¸i, xoay ph¶i, xoay
tr¸i.
LÖnh t¸c ®éng lªn 2 cê nhí
SM1.0: Cê kh«ng
SM1.1: Cê trµn

LÖnh lËt c¸c bit thanh ghi.
8/13/2007
11
Nhóm lệnh lật phải, lật trái, xoay phải, xoay trái:
SHR_B: Lật phải 1 byte SRB: Lật phải 1 byte
SHL_B: Lật trái 1 byte SLB: Lật trái 1 byte
ROR_B: Xoay phải 1 byte RRB: Xoay phải 1 byte
ROL_B: Xoay trái 1 byte RLB: Xoay trái 1 byte
Thao tác:
Với lệnh lật: Thay đổi nội dung thanh ghi hoặc ô nhớ
bằng cách dịch chuyển từng bít sang phải, hoặc sang trái
theo số lần đặt trớc N.
Với lệnh xoay:
Thay đổi nội dung thanh ghi bằng cách
dịch bít theo vòng kín sang phải, hoặc sang trái, theo số
lần đặt trớc N.
Chú ý:
Với lệnh lật: Sốlầnlậttốiđa củalệnhbằngkíchthớc
toán hạng.


Ví dụ: N > 8, lệnh làm việc với byte, số lần lật tối đa là 8
N>16, lệnh làm việc với word, số lần lật tối đa là 16
N>32, lệnh làm việc với DW, số lần lật tối đa là 32
Sau khi lật, nội dung thanh ghi có giá trị 0, thì cờ không
đợc set lên 1.
8/13/2007
12
Trớc khi lật
Cờ tràn
Cờ tràn
Cờ tràn
Cờ tràn
Lật lần 1
Lật lần 2
Lật lần 3
SLW VW200,3
Cờ tràn
Cờ không
Khi lật phải thì giá
trị LSB đợc ghi vào
cờ tràn, giá trị 0 đợc
ghi vào MSB.
Khi lật trái thì giá trị
MSB đợc ghi vào
cờ tràn, giá trị 0 đợc
ghi vào LSB.
Với lệnh xoay: Khi số lần đặt N lớn hơn kích thớc đối
số (toán hạng) thì PLC sẽ thực hiện khấu trừ, sao cho số
lần xoay nằm trong khoảng:
0 đến 7 đối với byte

0 đến 15 đối với word
0 đến 32 đối với double word
8/13/2007
13
RRW AC0, 2
Trớc khi xoay
Cờ tràn
Xoay lần 1
Xoay lần 2
Cờ tràn
Cờ tràn
Cờ tràn
Cờ không
Khi xoay phải thì
giá trị LSB bị đẩy
khỏi thanh ghi và
đợc gửi vào cờ
tràn trớc khi quay
lại đầu MSB
Khi xoay trái thì
giá trị MSB bị đẩy
khỏi thanh ghi và
đợc gửi vào cờ
tràn trớc khi quay
lại đầu LSB
Lệnh lật các bít thanh ghi:
Thao tác: Thay đổi nội
dung thanh ghi bằng
cách chuyển 1 bít bên
ngoài vào thanh ghi và

một bít trong thanh ghi
đợc lấy ra và ghi vào
cờ tràn SM1.1
8/13/2007
14

Số lần lật tối đa N = 64 (bít)

DATA: Xác định địa chỉ của bít cần ghi (nội dung của bít
này sẽ đợc chuyển vào thanh ghi).

S_Bit: Xác định địa chỉ bít ban đầu của thanh ghi (MSB.b)

N: Số bít cần lật
N > 0 lật theo chiều từ LSB đến MSB
N < 0 lật theo chiều từ MSB đến LSB
DATASM1.1 LSBMSB
DATA
SM1.1
LSBMSB
S_bit
S_bit
MSB.b
MSB.b
SHRB I0.3, V33.4, +(-)14
Địa chỉ MSB.b đợc xác định nh sau:
MSB.b = [(Byte of S_bit) + (N - 1+ (bit of S_bit))/8].phần d phép chia 8
V33.4
V35.1
N = -14

8/13/2007
15
V33.4
V35.1
N = 14
Nhãm lÖnh so
s¸nh néi dung
thanh ghi
8/13/2007
16
Thao tác đối với LAD:
== so sánh bằng: IN1 = IN2 :kín mạch
IN1 IN2 :hở mạch
<> so sánh khác: IN1 IN2 :kín mạch
IN1 = IN2 :hở mạch
>= so sánh lớn hơn IN1 IN2 : kín mạch
hoặc bằng IN1 < IN2 : hở mạch
<= so sánh nhỏ hơn IN1 IN2 : kín mạch
hoặc bằng IN1 > IN2 : hở mạch
> so sánh lớn hơn IN1 > IN2 : kín mạch
IN1 IN2 : hở mạch
< so sánh nhỏ hơn IN1 < IN2 : kín mạch
IN1 IN2 : hở mạch
Thao tác đối với STL:
Mỗi khi thoả mãn lệnh thì đỉnh ngăn xếp có giá trị lôgíc
bằng 1
8/13/2007
17
Chú ý:
So sánh byte là lệnh không dấu

So sánh số nguyên, double word, real là lệnh có dấu
Lệnh chuyển kiểu dữ liệu
Có thể chuyển từ:
Byte Integer; Integer Byte; Integer DInteger
Integer String; DInteger Integer; DInteger Real
DInteger String; Real String; Integer ASCII;
DInteger ASCII; Real ASCII; String Integer;
String DInteger; String Real; BCD Integer;
Integer BCD; Chuyển đổi mã bẩy đoạn.
Lệnh nhẩy
Khi lệnh JMP đợc
thực hiện, chơng
trình sẽ chuyển
điều khiển đến vị trí
khai báo label
(LBL) số thứ tự N.
Hai lệnh JMP và LBL
phải đợc đặt trong
cùng một kiểu
chơng trình.

×