1
Electrical Engineering 1
Lp trình cho 8051
•Tp thanh ghi - Register Set
•Tp lnh - Instruction Set
•Qun lý b nh Memory map
Electrical Engineering 2
Tp thanh ghi
Các thanh ghi chính
A, B, R0 to R7 : 8 bit registers
DPTR : [DPH:DPL] 16 bit register
PC : Program Counter (Instruction Ptr) 16bits
–4 sets of R0-R7
Stack pointer SP
PSW Program Status Word (Flags)
Carry CY, Aux Carry AC, Reg Bank selector,
Overflow, Parity
Special Function Registers (SFRs)
Timers, Interrupt (enable, priority), Serial port,
power
2
Electrical Engineering 3
Hp ng – nét cơ bn nht
(assembly)
Intel Assembly format
Operation destination source ; comment
Giá tr luôn có du thăng đứng trước #
– #55, #32 etc
S Hex thì kết thúc bng ch H
– #55H, #32H
Thường khi vi s bt đầu bng ch #0FFH,
#0C1H, #0D2H
- Ví d lnh cơ bn nht : No operation : NOP !
Electrical Engineering 4
Thanh ghi A
S dng thường xuyên vi lnh mov
Ví d v lnh thường dùng nht
Instruction : mov A, R0
– Mã máy (Opcode) : E8
Ngoài ra trong thanh ghi có trong lnh khác nhưu
Instruction : push ACC
– Mã máy : C0 E0
3
Electrical Engineering 5
Thanh ghi A, B
ACC (Accumulator, Addresses E0h, Bit-
Addressable): Dùng lưu trcác giá trtrung gian
MOV A,#20h -> MOV E0h,#20h.
B (B Register, Addresses F0h, Bit-
Addressable): Sdng trong các phép nhân và
chia.
Electrical Engineering 6
Ví d
MUL AB, nhân 2 s8 bít trong A, B và lưu
kết qu16, A cha byte thp, B cha byte
cao
DIV AB, chia A bi B, kết qu lưu vào A,
dư lưu vào B
4
Electrical Engineering 7
Tp thanh ghi R0-R7
R0, R1, … R7 dùng làm thanh ghi trung
gian
•Có th có 4 banks
Chon Bank nào tùy thuc vào phn mm, c
th là s dùng bit RS1:RS0 bits trong PSW
•Ngm định là bank 0
Electrical Engineering 8
Thanh ghi DPTR (Data pointer)
Được dùng để truy xut bnhRAM ngoài
•Sdng 2 thanh ghi 8 bít để to địa ch16
bit
•Ch lnh tăng DPTR, không có lnh gim
82 H (DPL), 83H (DPH)
5
Electrical Engineering 9
Ví dDPTR
MOV A, #55 H
MOV DPTR, # 1000H
MOV @DPTR, A
•Chương trình chuyn sliu t thanh ghi A,
ra địa ch1000H
Electrical Engineering 10
Con tr chương trình (PC)
The Program Counter (PC) Con tr 2 byte để
ch chương trình tiếp theo lnh nào
PC = 0000h khi khi động
•PC tăng 1,2, 3 byte tùy theo lnh cth
Không th đọc trc tiếp giá trPC
Không th PC=2430h nhưng có ththc hin lnh
tương đương LJMP 2430h