Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
223,16 KB
Nội dung
1
1. Giới thiệu
2. Sơ đồ khối và chân
3. Tổ chức bộ nhớ
4. Các thanh ghi chức năng đặc biệt
5. Dao động và hoạt động reset
6. Tập lệnh (Instruction Set)
7. Các mode định địa chỉ
8. Lập trình IO
9. Tạo trễ
10.Lập trình Timer/Counter
11.Giao tiếp nối tiếp
12.Lập trình ngắt
13.Lập trình hợp ngữ
2
MOV dest, source ; dest = source
MOV A, #72H ;A=72H
MOV R4, #62H ;R4=62H
MOV A, R4 ;A=62H
MOV B, 7EH
MOV P1, A ;mov A to port 1
Chú ý 1:
MOV A,#72H ≠ MOV A,72H
8086
8051
MOV AL,72H MOV A,#72H
MOV BX,72H
MOV AL,[BX] MOV A,72H
Chú ý 2:
MOV A,R3 ≡ MOV A,3
MOV DPTR, #7634H
MOV DPL, #34H
MOV DPH, #76H
MOV DPTR, A
MOV Rm, Rn
3
ADD A, Source ;A=A+Source
ADD A,#6 ;A=A+6
ADD A,R6 ;A=A+R6
ADD A,6 ;A=A+[6] or A=A+R6
ADDC A, source ;A=A+source+CY
SETB C ;CY=1
ADDC A,R5 ;A=A+R5+1
SUBB A, source ;A=A-source-CY
SETB C ;CY=1
SUBB A,R5 ;A=A-R5-1
4
SETB bit ; bit=1
CLR bit ; bit=0
SETB C ; CY=1
SETB P0.0 ;bit 0 from port 0 =1
SETB P3.7 ;bit 7 from port 3 =1
SETB ACC.2 ;bit 2 from Accumulator =1
SETB 05
Chú ý:
Lệnh xóa bit CLR tương tự lệnh set bit SETB
CLR C ;CY=0
Song tồn tại 1 ngoạilệ câu lệnh sau đây chỉ cho CLR
CLR A ;A=0
;set bit địa chỉ 05h (tại RAM có địa chỉ byte 20h)
5
DEC byte ;byte=byte-1
INC byte ;byte=byte+1
INC R7
DEC A
DEC 40H ; [40]=[40]-1
CPL A ;1’s complement
MOV A,#55H ;A=01010101 B
L01: CPL A
MOV P1,A
ACALL DELAY
SJMP L01
6
ANL - ORL – XRL dest, source
vd:
MOV R5,#89H
ANL R5,#08H
RR A
RL A
RRC A
RLC A
NOP & RET & RETI
Giống như các lệnh của 8086
7
MUL AB ;B|A = A*B
MOV A,#25H
MOV B,#65H
MUL AB ;25H*65H=0E99
;B=0EH, A=99H
DIV AB
;A = A/B, B = A mod B
MOV A,#25
MOV B,#10
DIV AB ;A=2, B=5
8
JZ rel Jump if A=0
JNZ rel
Jump if A≠0
DJNZ byte, rel
Decrement & jump if A≠0
CJNE dest, source, rel
Jump if dest ≠ source
JC rel Jump if CY=1
JNC rel Jump if CY=0
JB bit, rel Jump if bit=1
JNB bit, rel Jump if bit=0
JBC bit, rel Jump if bit=1 & clear bit
Các lệnh nhảy có điều kiện:
9
¾ DJNZ byte, rel-addr
Viết chương trình xóa thanh ghi A, sau đócộng 3 vào A mười
lần?
Æ
MOV A, #0;
MOV R2, #10
AGAIN: ADD A, #03
DJNZ R2, AGAIN ;repeat until R2=0 (10 lần)
MOV R5, A
10
CJNE <dest-byte>, <src-byte>, rel
• So sánh và nhảy nếu không bằng. CJNE so sánh 2 giá trị đầu
tiên và rẽ nhánh nếu các giá trị của 2 toán hạng không bằng
nhau
•C được set bằng 1 nếu giá trị nguyên không dấu của <dest-
byte> nhỏ hơn của <src-byte>. Ngược lại, C = 0
•Cả 2 toán hạng không bịảnh hưởng sau khi thực thi lệnh
[...]... a a a a A10-A8 & A7-A0 của địa chỉ đích LJMP addr 16 Là lệnh nhảy không điều kiện (3 bytes) Byte đầu tiên là opcode, byte 2 & 3 chứa địa chỉ đích 16- bit Tầm nhảy từ 0000 FFFFH 14 CALL 1 lệnh chuyển điều khiển khác là CALL, dùng để gọi 1 chương trình con (subroutine) LCALL Là lệnh 3 bytes LCALL dùng để gọi chương trình con nằm bất kỳ đâu trong khoảng 64 K byte không gian địa chỉ của 8051 0 0 0 1 0 0 1... 1234H trong bộ nhớ chương trình Tại 0123H thực hiện: LCALL Subroutine Mô tả hoạt động sau khi thực hiện lệnh trên? RAM RAM RAM 0BH 0BH 0BH 0AH 0AH 0AH 09H 09H 09H 01H 08H 08H 08H 26H Start SP=07H 26H SP=08H 12H 34H PC SP=09H 16 ACALL Là lệnh 2-byte Chương trình con phải ở trong phạm vi 2K của bộ nhớ chương trình so với byte đầu tiên của lệnh theo sau ACALL a a a 1 0 0 0 1 a a a a a a a a A10-A8 & A7-A0 . DPTR, # 763 4H
MOV DPL, #34H
MOV DPH, #76H
MOV DPTR, A
MOV Rm, Rn
3
ADD A, Source ;A=A+Source
ADD A, #6 ;A=A +6
ADD A,R6 ;A=A+R6
ADD A ,6 ;A=A+ [6] or A=A+R6
ADDC. hiện lệnh trên?
26H 26H
0BH
0AH
09H
08H
Start SP=07H
0BH
0AH
09H
08H
SP=08H
01H
0BH
0AH
09H
08H
SP=09H
RAM RAM RAM
34H12H
PC
17
ACALL
Là lệnh 2-byte. Chương