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

Kỹ thuật vi điều khiển-p4 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 (1.74 MB, 19 trang )

Xung & Hoi1
1.Giớithiệu
2.Sơđồ khốivàchân
3.Tổchứcbộnhớ
4.
4.
C
C
á
á
c
c
thanh
thanh
ghi
ghi
ch
ch


c
c
năng
năng
đ
đ


c
c
bi


bi


t
t
(SFR)
(SFR)
5.Dao độngvàhoạt độngreset
6.Tậplệnh
7.Cácmode định địachỉ
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
XêmthêmHình2.6 trang26
SFRs
Xung & Hoi3
CPU registers:
-ACC: Accumulator.
-B: B register.
-PSW: Program Status Word.
-SP: Stack Pointer.
-DPTR: Data Pointer (DPH, DPL).
Interrupt control:
-IE: Interrupt Enable.
-IP: Interrupt Priority.
I/O Ports:

-P0: Port 0.
-P1: Port 1.
-P2: Port 2.
-P3: Port 3.
Xung & Hoi4
TImers:
-TMOD: Timer mode.
-TCON: Timer control.
-TH0: Timer 0 high byte.
-TL0: Timer 0 low byte.
-TH1: Timer 1 high byte.
-TL1: Timer 1 low byte.
Serial I/O:
-SCON: Serial port control.
-SBUF: Serial data registers.
Other:
-PCON: Power control & misc.
Xung & Hoi5
4-1. ThanhghiPSW
•ThanhghiPSW (bit addressable)
C AC F0 RS1 OVRS0 P
RS1RS0Register BankByte Address of R0-R7
0 0000H-07H
0 1108H-0FH
1 0210H-17H
1 1318H-1FH
CPSW.7Cờ nhớ
ACPSW.6Cờ nhớ phụ
PSW.5Available to user for general purpose
RS1PSW.4Bit chọndãythanhghi1

RS0PSW.3Bit chọndãythanhghi0
OVPSW.2Cờ tràn
PSW.1Dự trữ - User define bit
PPSW.0Cờ chẵnlẻ
Địachỉ bit
D0D1D2D3D4D5D6D7
Xung & Hoi6
•C(carry flag) -Cờnhớ
– Đượcset bằng1 nếucósốnhớ từ phépcộngbit 7 hay cósố
mượnmang đếnbit 7
•MOVA,#FFH
•ADD A,#1
–Còn đượcdùngnhư 1 thanhghi1 bit đốivớicáclệnhlogic
thaotáctrêncácbit
•ANLC,25H
•AC (auxiliary carry) –Cờnhớ phụ
– Đượcset bằng1 nếucósốnhớ từ bit 3 sang bit 4
•RS1, RS0 - Cácbit chọndãy(bank) thanhghi
–Dùng để xác địnhdãythanhghitíchcực
–Chúng đượcxóakhireset
MOVA,R7SETBRS0
SETB RS1 º SETB 0D4H
Xung & Hoi7
•OV (overflow flag) -Cờtràn
–Set bằng1 sauphéptoáncộnghoặctrừ nếucóxuấthiện1
trànsốhọc. Khicácsốcódấuđượccộnghoặctrừ, phần
mềmcóthể kiểmtrabit trànOV để xác địnhKQ cónằm
trongtầmhay không
–Vớicácsốcódấu, KQ nhỏ hơn-128 hoặclớnhơn+127 sẽ
set cờ OV = 1. Vớicácsốkhôngdấu, OV=1 khiKQ vượt

quá255
–VD:
•0Fthậpphân15
•+7F+127
•_________
•8E142
•8EH biễudiễn-114 không đúngvớiKQ mongmuốnlà
142 nênOV = 1
Xung & Hoi8
•P (parity) -Cờchẵnlẻ
–KiểmtrachẵnlẻchothanhchứaA
–Sốcácbit 1 trongthanhchứaA cộngvớibit P luônluôn
chẵn
•MOV A,#10101101B
• àP=1
–Bit chẵnlẻđượcsửdụngkếthợpvớicácchươngtrình
xuất/nhậpnốitiếptrướckhitruyềndữliệuhoặc để kiểmtra
chẵnlẻsaukhinhậndữliệu
VD4: MOVA,#FFH
ADDA,#1
VD3: MOVA,#38H
ADDA,#2FH
VD2: MOVA,#9CH
ADDA,#64H
VD1: MOVA,#88H
ADDA,#93H
Xung & Hoi9
VD:
MOVA,#38H
ADDA,#2FH

3800111000
+2F+00101111

67 01100111
C=0 AC=1P=1
VD:
MOVA,#88H
ADDA,#93H
88 10001000
+93 +10010011

11B 00011011
C=1 AC=0 P=0
VD:
MOVA,#9CH
ADDA,#64H
9C 10011100
+64 +01100100

100 00000000
C=1 AC=1P=0
VD:
MOVA,#FFH
ADDA,#1
A=00H;C=1;AC=1;
Xung & Hoi10
Nhữnglệnh ảnhhưởng đếncácbit cờ
X cóthể là1
hoặc0
Xung & Hoi11

•B đượcdùngvớithanhchứaA trongcácphéptoánnhân,
chia
•MULA,B ; nhân2 số 8-bit khôngdấuchứatrongA
& B, KQ 16-bit chứavàocặpthanhghi
B:A (B chứabyte cao)
•DIVAB ; chiaA bởiB, thươngsốcấttrongA, dư
cấttrongB
•B còn đượcxửlýnhư thanhghinháp
•B được định địachỉ bit
4-2. ThanhghiB
F0F1F2F3F4F5F6F7
Xung & Hoi12
4-3. Con trỏ ngănxếp(SP)
•SP chứa địachỉ củadữliệuhiện đang ởđỉnhcủastack
•Cáclệnhliênquan đếnstack baogồmlệnhcấtdữliệuvào
stack (làmtăngSP trướckhighidữliệu) vàlệnhlấydữliệu
khỏistack (giảmSP)
•Muốnstack bắt đầu ở 60H:
–MOVSP,#5FH
–Thìvùngstack sẽ là32 byte trên8051 vì địachỉ caonhất
củaRAM nộilà7FH
–5FH đượcdùngvìSP tănglên60H trướckhithaotáccất
vàostack đầutiên đượcthựcthi
Địachỉ
byte 81
Xung & Hoi13
•Nếukhôngkhởi độngSP, nộidung mặc địnhlà07H (để duy
trìsựtươngthíchvới8048) à thaotáccấtvàostack đầutiên
sẽ lưudữliệuvàovịtrínhớ có địachỉ 08H
•Trongtrườnghợpnày, nếuphầnmềmứngdụngkhôngkhởi

độngSP, dãythanhghi1 (vàcólẽ2, 3) sẽ khôngcònhợplệvì
chúng đượcsửdụnglàmstack
•PUSH & POP cấtdữliệuvàostack vàlấydữliệutừstack
•ACALL, LCALL, RET, RETI cấtvàphụchồibộđếmchương
trìnhPC
Xung & Hoi14
VD:MOVR6,#25H
MOVR1,#12H
MOVR4,#0F3H
PUSH6
PUSH1
PUSH4
0BH
0AH
09H
08H
Start SP=07H
25
0BH
0AH
09H
08H
SP=08H
F3
12
25
0BH
0AH
09H
08H

SP=0AH
12
25
0BH
0AH
09H
08H
SP=09H
Xung & Hoi15
4-4. Con trỏ dữ liệu (DPTR)
•DPTR đượcdùng để truyxuấtbộnhớ chươngtrìnhngoàihoặc
bộ nhớ dữ liệungoài
•VD:
MOVA,#55H
MOVDPTR,#1000H
MOVX@DPTR,A
DPH
DPL
83H
82H
Xung & Hoi16
4-5. CácthanhghiI/O port: P0, P1, P2, P3
•Tấtcảport đều được định địachỉ bit
•VD: (điềukhiểnmotor nốibit P1.0)
SETBP1.0
CLRP1.0
• Đoạnchươngtrìnhkiểmtratrạngthái BUSY của
thiếtbị:
WAIT: JB P1.5, WAIT
Xung & Hoi17

4-6. Cácthanhghi địnhthời
•8051 có 2 bộđếm/địnhthời16-bit đểđịnhcáckhoảngthời
gianhoặc đếmcácsựkiện
•Hoạt độngcủabộđịnhthời đượcthiếtlậpbởi:
–TMOD (Timer Mode Register)
–TCON (Timer Control Register)
Xung & Hoi18
4-7. Cácthanhghicủaport nốitiếp
•8051 có1 port nốitiếp để truyềnthôngvớicácthiếtbịnốitiếp
•SBUF (Serial Data Buffer): lưutrữ dữ liệutruyềnvànhận
•SCON (Serial Port Control Register): chọnchếđộ hoạt động
Xung & Hoi19
4-8. Cácthanhghingắt
•IE (interrupt enable)
•IP (interrupt priority)

×