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

Kỹ thuật vi điều khiển-p8 ppsx

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 (328.96 KB, 35 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
5.Dao độngvàhoạt độngreset
6.Tậplệnh
7.Cácmode định địachỉ
8.LậptrìnhIO (IO Port Programming)
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
Port 1 đượckýhiệuP1
à Cácchân: P1.0 -P1.7
SửdụngP1 trongcácvídụsau đây để chỉ rahoạt động
củachúng
à P1 làcổngra–output (ghidữliệuCPU racácchân
bênngoài)
à P1 làcổngvào–input (đọcdữliệutừcácchânbên
ngoàivàoCPU bus)
Port 1 (chân1-8)
8-1. Cổng1 (Port 1)
Xung & Hoi3
8051 IC
DQ
ClkQ
Vcc
Read DFF


Read pin
Write to DFF
M1
P1.x
P1.x
TB1
TB2
Tải
Bus nội
8-2. CấutrúcphầncứngcủaP1.x
Xung & Hoi4
a.Bus nội: giaotiếpvớiCPU
b.BộchốtdữliệuDFF: lưutrữ giátrị củachân. Khi
“Write to DFF”= 1: ghidữliệuvàoDFF
c.Haibộđệm3 trạngthái(tri-state buffers):
-TB1: điềukhiểnbởi“Read pin”. Khi“Read pin”= 1:
đọcgiátrị tạichân ngoài
-TB2: điềukhiểnbởi“Read DFF”. Khi“Read DFF”=
1: đọcgiátrị từ DFF nội
d.Transistor M1
Xung & Hoi5
0
1
0 1
1
1
Bộđệm3 trạngthái(Tri-state Buffer)
OutputInput
Tri-state control
(kíchhoạt

mứccao)
0
Trở khángcao
(hở mạch)
Xung & Hoi6
8-3. Ghiracổngoutput
Vd:
MOV A, #55H
BACK: MOV P1, A
ACALLDELAY
CPL A
SJMP BACK
Xung & Hoi7
DQ
ClkQ
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.x
8051 IC
2. Chânralà
Vcc
1.ghi1
1
0
output 1
TB1

TB2
8-3-1. Ghi“1”rachânoutput P1.x
Bus nội
Tải
Xung & Hoi8
DQ
ClkQ
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.X
8051 IC
1. ghi0
0
1
output 0
TB1
TB2
Bus nội
8-3-2. Ghi“0”rachânoutput P1.x
Tải
2. Chânra
nối đất
Xung & Hoi9
8-4. Đọctừchâninput & bộ chốt
Khi đọcchân, cóhaikhả năngsau:
ØĐọctrạngtháicủachân input (bênngoài)

MOVA,Px
JNBP2.1,Label
JBP2.1,Label
ØĐọcdữliệubộchốtcủachân output (bêntrong)
ANLP1,A
ORLP1,A
INCP1
Đọc-Sửa đổi-Ghi
Xung & Hoi10
8-4-1. Đọctừchâninput
Để P1 làinput, P1 phải đượclậptrìnhbằngcáchghi“1”
vàotấtcảcácbit củaP1
MOV P1,#0FFH ; P1=11111111B
; P1 làinput
BACK:MOV A,P1
MOV P2,A
SJMP BACK
E tươngtựchoP0, P2, P3
Xung & Hoi11
DQ
ClkQ
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.x
8051 IC
2. MOV A,P1

Chânngoài=“1”
1.ghi1
MOV P1,#0FFH
1
0
3. Read pin=1
Read DFF=0
Write to DFF=0
1
TB1
TB2
Bus nội
Tải
Đọc“1”tạichâninput
Xung & Hoi12
DQ
ClkQ
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.x
P1.x
8051 IC
2. MOV A,P1
Chânngoài=“0”
1.Ghi1
MOV P1,#0FFH
1

0
3. Read pin=1
Read DFF=0
Write to DFF=0
0
TB1
TB2
Bus nội
Tải
Đọc“0”tạichâninput
Xung & Hoi13
Copy trạngtháichân
P2.4 vàoCY
MOV C,P2.4MOV C,PX.Y
NhảynếuP1.3 = 1JB P1.3,TARGETJB PX.Y,
NhảynếuP2.1 = 0JNB P2.1,TARGETJNB PX.Y,
ĐọcP2 vàoAMOV A,P2MOV A,PX
MôtảVídụLệnh
Cáclệnh đọcchâninput
Xung & Hoi14
8-4-2. Đọcchânouputtứcđọcbộchốt
MOVP1,#55H; P1=01010101
ORLP1,#0F0H;P1=11110101
Ø “Read DFF”kíchhoạtTB2 vàchuyểndữliệutừQ của
DFF vàoCPU à đọc đượcP1.7 = 0
Ø CPU thựchiệnOR dữ liệunàyvớibit 1 à được1
ØD củaDFF bị thay đổithành1
ØGhiKQ rachân à P1.7 = 1
Xung & Hoi15
DQ

ClkQ
Vcc
Read DFF
Read pin
Write to DFF
M1
P1.7
P1.7
8051 IC
4. P1.7 = 1
2. CPU tính(P1.7 OR 1 )
0
0
1.Read pin = 0
Read DFF = 1
Write to DFF = 0 (ban đầuP1.7=0)
1
TB1
TB2
3. GhiKQ vàoDFF
Read pin=0
Read DFF=0
Write to DFF=1
1
0
1
Bus nội
Tải
Đọcbộchốt
Xung & Hoi16

Đọc-Sửa đổi-Ghi
Đặc điểmnàybaogồm3 hành độngtrong1 lệnh đơn:
1.CPU đọcbộchốt
2.CPU thựchiệntínhtoán à sửa đổibộchốt
3.Ghirachân
Chúý:8 châncủaPort làmviệc độclậpnhau
Xung & Hoi17
Ví dụ
Lệnh
SETB P1.4SETB PX.Y
CLR P1.3CLR PX.Y
MOV P1.2,CMOV PX.Y,C
DJNZ P1,TARGETDJNZ PX, TARGET
INC P1INC
CPL P1.2CPL
JBC P1.1, TARGETJBC PX.Y, TARGET
XRL P1,AXRL
ORL P1,AORL
ANL P1,AANL
DEC P1DEC
Cáclệnhcó đặc điểm Đọc-Sửa đổi-Ghi
Xung & Hoi18
Tómlại
•1 chânlàoutput thìcóthể ghidữliệutrựctiếprachân
•1 chânlàoutput thì đọctrạngtháicủachânnghĩalà đọc
bộ chốttương ứngcủachân
•1 chânlàinput thìset nólên“1”trướckhithaotác
•1 chânlàinput thì đọctrạngtháitrựctiếptừchân
Xung & Hoi19
Câuhỏigợinhớ

Ø Cách ghi dữ liệurachân?
Ø Cách đọc dữ liệutừchân?
üĐọcgiátrị từ chânbênngoài
•Tạisaophảiset chântrướckhitiếnhành đọc?
üĐọcgiátrị từ bộ chốt
•Lệnhnhư thế nàogọilàcótínhchất Đọc-Sửa đổi-Ghi?
Xung & Hoi20
Bàitoán1: thaotácbit
Bàitoán:
1.Theo dõibit P1.2 cho đếnkhinhận được“1”
2.Khinhận được“1”, ghi45H raP0
3.& gửixung“High-to-Low”rachânP2.3
Xung & Hoi21
Giải đáp:
SETB P1.2 ;P1.2 làinput
MOV A,#45H ;A=45H
AGAIN:JNB P1.2,AGAIN;lặplạiđếnkhiP1.2=1
MOV P0,A ;xuấtA raP0
SETB P2.3 ;P2.3 = “High”
CLR P2.3 ;P2.3 = “Low”for H-to-L
Trong đó

1. JNB: jump if no bit (jump if P1.2 = 0)
2. Xung“H-to-L” đượctạobởichuỗilệnhSETB & CLR
Xung & Hoi22
ACóbacách để nháycácbit củaPort 1 liêntục
• Cách1: GửidữliệutớiP1 qua thanhchứaA
BACK: MOV A,#55H ;A=01010101B
MOV P1,A
ACALL DELAY

MOV A,#0AAH ;A=10101010B
MOV P1,A
ACALL DELAY
SJMP BACK
Bàitoán2: Ưu điểmkhisửdụngcâulệnhcó đặc
điểm Đọc-Sửa đổi-Ghi
Xung & Hoi23
• Cách2: Xuấtdữliệutrựctiếp
BACK: MOV P1,#55H ;P1=01010101B
ACALL DELAY
MOV P1,#0AAH ;P1=10101010B
ACALL DELAY
SJMP BACK
• Cách3: Dùnglệnhvớiđặc điểm Đọc-Sửa đổi-Ghi
MOV P1,#55H ;P1=01010101B
AGAIN: XRL P1,#0FFH
ACALL DELAY
SJMP AGAIN
Xung & Hoi24
8-5. Cáccổng(port) cònlại
ØP1, P2, P3 có điệntrở tảinội
ØP0 khôngcó điệntrở tảinội
ØPhíangườilậptrình: khôngcósựkhácbiệtnàogiữacác
cổng
Ø Tấtcảcáccổnglàoutput và ở mứclogic caokhiReset
Xung & Hoi25
CấutrúcphầncứngP0.x
DQ
ClkQ
Read DFF

Read pin
Write to DFF
M1
P0.X
P1.X
TB1
TB2
Bus nội

×