More Related Content
More from Nattawut Kathaisong
More from Nattawut Kathaisong (15)
บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
- 3. ชุดคำสั่งไมโครคอนโทรลเลอร์สำมำรถแบ่งออกได้เป็น 5 กลุ่มดังนี้
กลุ่มที่ 1. กลุ่มคาสั่งการโอนย้ายข้อมูล (Data Transfer Instructions)
กลุ่มที่ 2. กลุ่มคาสั่งทางคณิตศาสตร์ (Arithmetic Instructions)
กลุ่มที่ 3. กลุ่มคาสั่งทางลอจิก (Logical Instructions)
กลุ่มที่ 4. กลุ่มคาสั่งกระทาข้อมูลระดับบิต (Bit Manipulated
Instructions)
กลุ่มที่ 5. กลุ่มคาสั่งกระโดด (Jump Instructions)
- 7. MOV 20H,#05H ;(20H)=05H
MOV R0,#20H ;(R0)=20H
MOV A,@Rn ;(A)=((R0))=(20)=05H
MOV A,@Rn หมายถึง การโอนย้ายข้อมูลใน
ตาแหน่งที่รีจีสเตอร์ R0 หรือ R1 ชี้อยู่มาเก็บไว้ในรีจีสเตอร์ A
ตัวอย่าง
22H
R0 05H A=05H
21H
20H
1FH
Address Data
กำรโอนย้ำยข้อมูลของคำสั่ง MOV A,@R0
- 8. MOV Rn,#data
หมำยถึง กำรโอนย้ำยข้อมูล data มำเก็บไว้ในรีจีสเตอร์ R0-R7
ตัวอย่ำง
MOV R5,#23H;(R5)=23H
หมำยถึง กำรโอนย้ำยข้อมูล 23H มำเก็บไว้ในรีจีสเตอร์ R5
MOV Rn,A
หมำยถึง กำรโอนย้ำยข้อมูลจำกรีจีสเตอร์ A มำเก็บไว้ในรีจีสเตอร์ R0-R7
- 16. 0081H
A = 67 H
67 H
R1 0080H
007FH
External RAM
กำรโอนย้ำยข้อมูลของคำสั่ง MOV @R1,A
- 18. External ROM
3002H A = 15 H
DPTR + 2
DPTR
15 H
43 H
00 H
FF H
3001H
3000H
2FFFH
DPTR + 1
แสดงกำรทำงำนของคำสั่ง MOVC A,@A+DPTR
- 19. SP + 1 34 H
12 H
0AH
POP R2
POP R3
PUSH R1
PUSH R0
09H
08H
07H
06H
SP + 2
SP
กำรใช้งำนคำสั่ง PUSH และ POP
- 21. Rotate Accumulator Left Through The Carry Flag
BIT 7 BIT 4
BIT 5
BIT 6 BIT 3 BIT 2 BIT 1 BIT 0
C
การทางานของคาสั่ง RLC
- 23. Rotate Accumulator Right Through The Carry Flag
BIT 7 BIT 4
BIT 5
BIT 6 BIT 3 BIT 2 BIT 1 BIT 0
C
การทางานของคาสั่ง RRC
- 24. Swap Middles With in The Accumulator
BIT 7 BIT 4
BIT 5
BIT 6 BIT 3 BIT 2 BIT 1 BIT 0
การทางานของคาสั่ง SWAP
- 27. ไฟล์ .LST ของตัวอย่ำงที่ 3.1
8051 Cross-Assembler(1.3) (C) 1987,1989 Binary Technology
Page 1
SJMP.ASM
8100 1 ORG 8100H
8100 7455 2 MOV A,#55H ;A=55H
8102 F590 3 OUTP1: MOV P1,A ;P1=A
8104 F4 4 CPL A ;A=/A
8105 80FB 5 SJMP OUTP1 ;Jump OUTP1
0000= 6 END
- 31. ไฟล์. LST ของตัวอย่างที่ 3.2
8051 Cross-Assembler(1.3) (C) 1987,1989 Binary Technology
Page 1
AJMP.ASM
8100 1 ORG 8100H
8100 7455 2 MOV A,#55H ;A=55H
8102 F590 3 OUTP1: MOV P1,A ;P1=A
8104 F4 4 CPL A ;A=/A
8105 2102 5 AJMP OUTP1 ;Jump OUTP1
0000= 6 END
- 34. ไฟล์ .LST ของตัวอย่ำงที่ 3.3
8051 Cross-Assembler(1.3) (C) 1987,1989 Binary Technology
Page 1
LJMP.ASM
8100 1 ORG 8100H
8100 7455 2 MOV A,#55H ;A=55H
8102 F590 3 OUTP1: MOV P1,A ;P1=A
8104 F4 4 CPL A ;A=/A
8105 028102 5 LJMP OUTP1 ;Jump OUTP1
0000= 6 END
- 38. ไฟล์ .LST ของตัวอย่ำงที่ 3.4
8051 Cross-Assembler (1.3) (C) 1987, 1989 Binary Technology
djnz.asm
8100 1 ORG 8100H
8100 7400 2 MOV A,#00H ;(A)=00H
8102 A909 3 MOV R1,09H ;(R1)=09H
8104 29 4 Adder: ADD A,R1 ;A=A+R1
8105 D9FD 5 DJNZ R1,Adder ;R1=R1-1 and Jump if R1<>0
0000= 6 END
- 40. START
END
A = 00 H
R1 = 09 H
A = A + R1
R1 = R1 - 1
R1= 0
Yes
No
โฟลว์ชำร์ตกำรทำงำนของคำสั่ง DJNZ
- 42. กำรเรียกใช้โปรแกรมย่อย
0000 1 ORG 0000H
0000 7455 2 MOV A,#55H ;(A)=55H
0002 F590 3 OUTP1: MOV P1,A ;P1=A
0004 F4 4 CPL A ;A=/A
0005 12000A 5 LCALL DELAY ;Call DELAY
0008 0102 6 AJMP OUTP1 ;Jump OUTP1
7 ;Sub Routine Delay
000A 7905 8 DELAY: MOV R1,#05H
000C 7AFF 9 D1: MOV R2,#0FFH
000E 7BFF 10 D2: MOV R3,#0FFH
0010 DBFE 11 D3: DJNZ R3,D3
0012 DAFA 12 DJNZ R2,D2
0014 D9F6 13 DJNZ R1,D1
0016 22 14 RET ;Return to Main Program
0000= 15 END
- 44. MOV A,55H
AJMP OUTP1
ACALL Delay
OUTP1: MOV P1,A
CPL A
;Sub Routine Delay
Delay:MOV R1,#05H
D1: MOV R2,#0FFH
D2: MOV R3,#0FFH
D3: DJNZ R3,D3
DJNZ R2,D2
DJNZ R1,D1
RET