Professional Documents
Culture Documents
PRELAB1 1810179 L07 Phan Nguyên Nhật Huy
PRELAB1 1810179 L07 Phan Nguyên Nhật Huy
6.- Lệnh MOV là lệnh chuyển dữ liệu trong RAM nội và vùng SFR.
-Lệnh DJNZ dùng để thực hiện hoạt động vòng lặp trong 8051, có ý nghĩa là giảm và
nhảy nếu A#0, ,thanh ghi được giảm xuống, nếu nó không bằng không thì nó nhảy đến
địa chỉ đích được tham chiếu bởi nhãn.
7.- Nguyên lí tạo trễ dung dòng lặp lệnh: có 2 cách
+ Dùng lệnh NOP. Lệnh này thường được dùng chỉ để tiêu tốn 1 chu kỳ máy mà
không thực thi thao tác gì cả. Do đó, để tạo ra thời gian trễ ngắn, người lập trình
có thể dùng vài lệnh NOP.
+ Trong trường hợp thời gian tạo trễ dài, cần nhiều chu kỳ máy, người lập trình có
thể dùng vòng lặp để tạo trễ:
MOV R7, #n
DJNZ R7, $
Vòng lặp này sử dụng (2n+1) chu kỳ máy, với thời gian dài hơn, có thể lồng nhiều
vòng lặp vào nhau:
MOV R7, #n
LOOP: MOV R6, #n
DJNZ R6, $
DJNZ R7, LOOP
Vòng lặp này mất (2m+3)*n+1 chu kỳ máy, và tính gần đúng là 2mn chu kỳ.
-Lệnh MOV có thể tốn 1 hoặc 2 chu kỳ máy
Các lệnh MOV tốn 1 chu kỳ máy:
MOV A, Rn
MOV A, direct
MOV A, #data
MOV A, @Ri
MOV Rn, A
MOV Rn, #data
MOV direct, A
MOV @Ri, A
MOV @Ri, #data
Các lệnh MOV tốn 2 chu kỳ máy:
MOV Rn, direct
MOV direct, Rn
MOV direct1, direct2
MOV direct, @Ri
MOV direct, #data
MOV @Ri, direct
MOV DPTR, #data16
-Lệnh DJNZ tốn 2 chu kỳ máy:
DJNZ Rn, rel
DJNZ direct, rel