Tải bản đầy đủ (.pdf) (15 trang)

Kỹ thuật vi điều khiển-p7 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (176.48 KB, 15 trang )

Xung & Hoi1
1.Giớithiệu
2.Sơđồ khốivàchân
3.Tổchứcbộnhớ
4.Cácthanhghichứcnăng đặcbiệt(SFR)
5.Dao độngvàhoạt độngreset
6.Tậplệnh
7.
7.
C
C
á
á
c
c
mode
mode
đ
đ


nh
nh
đ
đ


a
a
ch
ch




(addressing modes)
(addressing modes)
8.LậptrìnhIO
9.Tạotrễ
10.LậptrìnhTimer/Counter
11.Lậptrìnhgiaotiếpnốitiếp
12.Lậptrìnhngắt
13.Lậptrìnhhợpngữ
Xung & Hoi2
•Dữliệuchứa ởđâukhithựcthi1 lệnh? à Nhiềulờigiải
tương ứngcáckiểu định địachỉ khácnhau
•Cáckiểu định địachỉ chophépxác địnhnguồnvà đíchcủa
dữliệutheonhiềucáchkhácnhautùytìnhhuốnglậptrình.
1.Tứcthời
2.Thanhghi
3.Trựctiếp
4.Giántiếp
5.Chỉ số
Xung & Hoi3
7-1. Định địachỉ tứcthời
MOVA,#65H
MOVR6,#65H
MOVDPTR,#2343H
MOVP1,#65H
VD :
NumEQU30

MOVR0, #Num

MOVDPTR, #data1

ORG100H
data1:db“BACHKHOA”
Xung & Hoi4
7-2. Định địachỉ thanhghi
MOVRn, A;n=0, ,7
ADDA, Rn
MOVDPL, R6
MOVDPTR, A
MOVRm, Rn
Xung & Hoi5
7-3. Định địachỉ trựctiếp
*
•Dùngtruyxuấtcácbiếnnhớ hoặccácthanhghitrênchip
•Mặcdầucóthể truycậpcả128 bytes RAM nộisửdụngkiểu định
địachỉ trựctiếp, song thôngthườngtachỉ dùngchovùngRAM
nội đamụcđích(có địachỉ từ 30 –7FH)
MOVR0, 40H
MOV56H, A
MOVA, 4; ≡ MOV A, R4
MOV6, 2; copy R2 to R6; MOV R6,R2 !
Thanhghichứcnăng đặcbiệt& địachỉ:
MOV0E0H, #66H; ≡ MOV A,#66H
MOV0F0H, R2; ≡ MOV B, R2
MOV80H,A; ≡ MOV P1,A
Xung & Hoi6
•Làmthế nàonhậnbiết1 biếnkhi địachỉ biến đã đượcxác
định, tínhtoánhoặcsửađổitrongkhi1 chươngtrình đang
chạy?

•Khiquảnlýcácvịtrínhớ liêntiếp. Các điểmnhập được định
chỉ số trongcácbảngchứatrongRAM (cácdãysốhay các
chuỗikýtự)
àGiảipháplàkiểu định địachỉ giántiếp
•Khinày, thanhghi đượcsửdụngnhư 1 con trỏ (pointer) đến
dữ liệu
•MOVA,@Ri ; copy dữ liệutrỏ bởiRivàoA (i=0 hay 1)
•MOV@R1,B
•Nóicáchkhác, nộidung củacácthanhghiR0 hay R1 cóthể là
nguồnhoặc đíchtrongcáclệnhMOV, ADD & SUBB
7-4. Định địachỉ giántiếp
Xung & Hoi7
AViếtchươngtrìnhcopy 10 bytes từ vùngRAM có địachỉ bắt đầu
là37H tớivùngRAM có địachỉ bắt đầulà59H
Giải đáp:
MOV R0,#37h; Con trỏ nguồn
MOV R1,#59h; Con trỏđích
MOV R2,#10; Bộđếm
L1: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,L1
Bàitoán7.1. Copy bytes trongRAM nội
Xung & Hoi8
AViếtchươngtrìnhxóaRAM nộitừ60H
à
7FH
Trả lời:
MOVR0,#60H

LOOP:MOV@R0,#0
INCR0
CJNER0,#80H,LOOP
Bàitoán7.2. XóaRAM nội
Xung & Hoi9
7-5. Định địachỉ chỉ số & truycậpROM nội
• Đượcsửdụngkhitruycậpcácthànhphầndữliệucủabảng
nhảy hoặc bảngtìmkiếm
MOVCA, @A+DPTR
A = nộidung tại địachỉ A+DPTR trongROM
Chúý:
•Cácthànhphầndữliệu đượclưutrongkhônggianbộnhớ
chươngtrìnhROM của8051, nênsửdụngMOVC thayvì
MOV. “C”: code.
PC (or DPTR) A PC (or DPTR)
+
=
Thanhghinền
Offset Địachỉ tác động
Xung & Hoi10
Bàitoán7.3. Copy bytes ROM à RAM
• VD: Giả sử khônggianbộnhớ ROM bắt đầutạiđịa
chỉ 250H chứa“ROBOCON”, viếtchươngtrình
truyềncácbytes trênvàovùngnhớ RAM bắt đầutại
địachỉ 40H
Xung & Hoi11
Giải đáp:
ORG0
MOVDPTR,#MYDATA
MOVR0,#40H

L1:CLRA
MOVCA,@A+DPTR
JZL2
MOV@R0,A
INCDPTR
INCR0
SJMPL1
L2:SJMPL2
;
ORG250H
MYDATA:DB“ROBOCON”,0
END
Xung & Hoi12
Bàitoán7.4. Đọcx & xuấtx
2
• Viếtchươngtrình đọcgiátrị x từ port 1 vàxuấtgiátrị x
2
ra
port 2 ?
Xung & Hoi13
Giải đáp:
ORG0
MOVDPTR, #TAB1
MOVA, #0FFH; chúý!
MOVP1, A
L01:
MOVA, P1
MOVCA, @A+DPTR
MOVP2, A
SJMPL01

;
ORG300H
TAB1:DB 0,1,4,9,16,25,36,49,64,81
END
Xung & Hoi14
•MOVC A,@A+PC ;hoạt độngtươngtự, ngoạitrừởđây, bộ
đếmchươngtrình PC đượcdùng để chứa địachỉ nền và bảng
đượctruyxuấtnhờ vàochươngtrìnhcon. Số của điểmnhập
(entry-number) yêucầuchovàothanhchứaA, sau đóchương
trìnhcon đượcgọi. Bảngphải được địnhnghĩangaysaulệnh
RET trongchươngtrình.
MOVA, entry-number
CALLTIM-KIEM


TIM-KIEM: INCA
MOVCA, @A+PC
RET
TABLE:DBdata1,data2,data3,…
Xung & Hoi15
Viếtchươngtrìnhcho2 vídụtrêndùng
MOVC A, @A+PC
thayvì
MOVC A, @A+DPTR?
Homework

×