Lp trình ASM cho 8051
TP LNH ASM THƯỜNG DÙNG CHO 8051
Người báo cáo: Mai Thành Phương
Email:maigiapy@yahoo.com
1.MOV Rn, DIRECT
2.MOV @Rn,#DATA
3.MOV Rn,#DATA
4.CLR
5.SETB
6.RET
7.RETI
8.JMP
9.JB BIT,REL
10.JNB BIT,REL
11.INC
12.DEC
13.CJNE Rn,#Data,REL
14.ADD A,Rn
15.SUBB A,Rn
16.MULL A,B
17.DIV A,B
18.RLC
Chú gii:
Rn: Viết tt cho các thanh ghi t R0-R7
DIRECT: địa ch ca ô nh d liu
1.Ly d liu ct DIRECT b vào trong thanh ghi Rn. VD Mov r1,21h
21h là địa ch Ram trên Chíp.Địa ch thường viết dưới dng s Hex, ch h sau ch s Hex, ch B
ch s nh phân, không có ch theo sau là s nguyên.
2.Nhp 1 s nguyên vào địa ch mà Rn đang nm gi.
Vd: mov r0,#21h
Mov @R0,#55
2 lnh trên s nhp s 55 vào địa ch 21h, lnh thay thế 2 lnh trên: Mov 21h,#55
3.Nhp 1 s nguyên vào Rn
Hoc có th viết Mov r7,#11111111b. 255 h thp phân tương đương vi 1111111b h nh phân
4.Xóa 1 bít, xóa 1 ô nh
VD1: mov 21h,#11111111b
Clr 21h.0
Mov a,21h
Vi 3 lnh trên thì thanh ghi A s cha s 11111110B
VD2.CLR P1.0 lnh này làm cho đin áp trên chân s 1 ca chíp AT89C51 xung 0 vôn
5.Ngược li vi Clr
VD Setb p1.0, kết qu làm đin áp trên chân s 1 lên 5 vôn
6.Quay li ch mà chương trình r nhánh
Nếu không gp các lnh r nhánh thì chương trình s thc hin theo th t t trên xung dưới.
7.quay li ch mà chương trình b ngt
VD gia ch đang k câu chuyn v đứa con gái ca ông ta, ti đon “Con tôi khóc nhiu nên mt đã
b mù” bng chuông đin thoi reo. Sau khi nghe xong đin thoi quay li câu chuyn, thay vì phi
hi “tôi k ti đâu ri” RETI là câu tr li.
8. lnh nhy, lnh r nhánh không điu kin.
lnh cùng chc năng SJMP
9.Lnh kim tra 1 bít, Nếu bít đó bng 1 thì r nhánh
VD Jb p0.0,xuong0
Setb p1.0
Xuong0:
Clr p1.0
Ret
Các lnh trên s kim tra 1 nút nhn ni Mass, nếu nhn xung thì đèn sáng, nếu th thì đèn tt
10. Lnh kim tra bít, nếu bít =0 thì r nhánh
11.Lnh tăng ô nh lên 1 đơn v
VD mov r2,#1
Inc r2
Lúc này trong thanh ghi r2 s cha s 2
12. Lnh gim 1 đơn v
13.Lnh kim tra thanh ghi Rn , nếu khác Data thì r nhánh
VD chương trình đếm s người đi qua cng, đủ 5 người thì đổ chuông, cm biến gn vào chân s 1
ca chíp
Mov r0,#0
Jnb p1.0,tang_so_nguoi
Ret
Tang_so_nguoi:
Inc r0 ;tăng biến đếm lên 1
ĐV
Cjne r0,#5,quaylai ; nếu khác 5 thì quay li đếm người
Call do_chuong ; gi hàm đổ chuông
Quaylai:
Ret
Do_chuong:
Setb p1.1 ; chuông ni vi chân s 2 ca chíp
Ret
14. Lnh cng, kết qu lưu vào A
VD mov A,#1
Mov R3,#4
Add a,r3
Kết qu: A=4
15. Lnh tr
16. nhân
17.chia
18. lnh quay dch
VD mov r1,#01110011B
Setb CF
RLC r1
Kết qu: r1=11100111B, CF=0
Nếu thêm 1 lnh RLC r1 na thì
Kq: r1=11001110, CF=1
II: TP LNH ĐẦY ĐỦ
1. NHÓM LNH DI CHUYN D LiU:
1. Lnh di chuyn d liu trc tiếp:
- Cú pháp: MOV <ĐÍCH>,
Trong đó:
. <ĐÍCH>: có th là thanh ghi, địa ch ô nh trong vùng RAM ni
. : có th là thanh ghi, địa ch ô nh trong vùng RAM ni hoc #
- Thc hin: di chuyn ni dung vào <ĐÍCH>
- Ví d:
MOV A, 120
MOV B, #24
MOV 120,#10110010B
MOV R3, A
MOV P3,#3EH