Chương
VI Điếu KHIấN 8051
2.1. TỔNG QUAN VỂ HỌ VI ĐIỂU KHIỂN 8051
2.1.1. Tóm tắt vể lịch sử của 8051
Năm 1981, hãng In te l giới thiệu bộ v i điều khiển 8051 Bộ vi
điều khiển này có 128 byte R A M , 4 kbyte R O M , hai bộ định ihời,
m ột cổng nối tiếp và bốn cổng vào/ra song song (độ rộng 8 bit) tất cả
đều được đạt trên m ột chip. 8051 là bộ xử lý 8 b it, có nghĩa ỉà CPU
chỉ có thể ỉàm việc với 8 b it dữ liệu tại m ột thời điểm . Dữ hệii lớn
hơn 8 b it được chia ra thành các dữ liệu 8 b it để xử lý.
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà san xuất
khác sản xuất và bán các dạng biến Ihể của 8051. Điều này dẫn đến sự ra
đời nhiều phiên bản của 8051 với các tốc dộ khác nhau và dung lượng
ROM trên chip khác nhau, nhưng tất cả các lệnh đều lương th^ch với
8051 ban đầu. Như vậy, nếu ta viết chương trình cho một phiên bản nào
của 8051 thì cũng chạy được với mọi phiên bản khác khống phi thuộc
vào hãng sản xuất.
B Ả N G 2 .1 . C Á C Đ Ặ C T ÍN H C Ủ A 8051 Đ Ầ U T IÊ N
Đ ặc tính
Số iượng
ROM
4 kbyte
RAM
128 byte
Bộ định thời
2
Chân vào/ra
32
Cổng nối tiếp
1
Nguồn ngắt
6
2.1.2. Các thành viên khác của họ 8051
Có hai bộ vi điều khiển là các thành viên khác của họ 8051 h 8052
và 8031.
1. Bộ vi đ iề u k h iể n 8052
Bộ v i điểu khiển 8052 là một thành viên của họ 8051, 8052 có tất
cả các đẫc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte R a M và
một bộ định thời nữa (bảng 2.2).
18
B Ả N G 2 .2 . S O S Á N H C Á C Đ Ặ C TÍNH
CỦA C ÁC T H À N H V IÊ N H Ọ 8051
Đặc tinh
8051
^52
8031
ROM trên chip
4 kbyte
8 k b y te
không có
RAM
128 byte
256 byte...
128 byte
Bộ định thởi
2
3
2
Chân vào/ra
32
32
31
Cổng nối tiếp
1
Nguồn ngắt
6
*
1
6
1
Như thấy lừ bảng 2.2 thì 8052 là nì(< rông cua Hih 1. Do vậy các chương
trìnli viêi clio 8051 đều chạy trên 8052 nhirnti diều ngược lại là không đúng.
2. Bộ vi diều
M ọl íliàiili vicn khác nửa của 80.^ 1 là chip 803ỉ. Chip này Ihường
được coi như là 8031 không có ROM ỉrcn chip. Để sử dụng chip này ta
phải bổ sung R O M ngoài cho nó, ROM ngoài phải chứa chương trình mà
8031 SC nạp và thực hiện. Với 8051, chương Iiình dược chứa trong ROM
trẽn chip bị giới hạn bởi 4 kbyte, còn ROM ngoài được gắn vào 8031 thì
có thổ lớn đến 64 kbyte. K hi sử dung ROM ngoài ta chỉ còn lại có hai
cổng dể sử dụng cho mục đích vào/ra. dể giải quyết vấn đề này ta có thể
lĩiở rộng cổng vào/ra cho 8031 bằng cách sử dung vi mạch PPĨ 8255.
2.1.3. Các phỉèn bản của 8051
Mặc dù 8051 là thành viên phổ biến nhủi của họ 8051 nhưiig chúng ta
sẽ gặp rất tihiều pliiên bản của nó với nlùmg lêii gọi khác nhau \uỳ thuộc vào
kiểu bộ nliớ chưiĩiig trình, cỏng nghé chế líio, tần sô ỉàm việc... V í dụ phiên
tón ciìa 8051 với bộ nhớ ư v - FROM đưạc ký hiệu là 875ỉ. Phiên bản
Flash ROM cũng được bán bcVi nhiểu liẫiig kỉiác nỉiau, chảng hạn của Atmel
với tên gọi là AT89C51 còn phiên ban NV - RAM của 8051 do Dalas
Semiconductor cung cấp thì được gọi ỉà DS5fX)0. Ngoài ra còn có phiên bản
OTP (lập trình được một lần) cũng dược sản xuất tò i rất nhiều hãng.
I. Bô ví điề u k h iể n 8751
Chip 8751 chỉ có 4kbyte bộ nhớ IJV - ÍÌPROM trẽn chip. Đổ sử
dụug chip này cần có bộ đốỉ PROM và bộ xoá u v - EFROM để xoá
nội dung của bộ nhớ ư v - EPROM bẽn trong 8751 trước khi ta có thể
lập trình lại nó. Do R O M trên chip dối với 8751 ỉà u v - EPROM nôn
cẩn phải mất 20 phúi để xoá 8751 trước khi nó có ihể được lạp trình irở
lại. V ì điểu này đã dẫn đến nhiéu nhà sán xuất giới ihiộu các phiên bản
19
Flash R O M và u v - R A M . Niioai ra c o n CÓ n hieu fliie n ban với các
lốc clộ khác nhau c ú a S751 lừ I i l i ĩ c u hãỉiíi kỉiac nhau.
2, B ô v i d i ê u k h i ê n A T 8 9 5Ỉ t ừ Ađ me l C o r p o r í t t i o n
AT8951 là phiên bản 8051 có R O M irciì c h i p ơ dạiig bộ nhớ ĩ-lash.
Phiẽn btUi này là Iv iư ở n g dối V Ớ I [ihĩnig phái tricu n h a n h vì bọ nhớ
Flash có ihể dược x oá t r o n g vài g iâv. Dùnig A1'89C.^1 dể phát trển rnột
hệ thống dưa trên bộ vi tỉiều k h iên vêu c ầ u inột b ộ cỉỏì R O M h6 trợ bộ
nhớ Flash, không y c u cáu bộ xo á R O M . ĩlãnsỊ A tm cl dã C Ỉ I O ra đời một
pliiên bản của A T 89 C51 cổ thê’ đ ư ơ c l â p irìn h qua c ổ n g tru yền t h ỏ n g
COM của ináy lính IB M l’C.
B Ả N G 2 .3 . C Á C P H IÊ N BẢN C Ủ A 8051 DO H Ã N G A T M E L C U N G C Ấ P
(F L A S H R O M )
Vcc
Đóng vò
5V
40 chân, 2 hàng
32
3V
40 chân, 2 hàng
64 byte
15
3V
20 chân, 2 hàng
2 kbyte
1 2 8 b y te
15
3V
20 chân, 2 hàng
AT89C52
8 kbyte
1 2 8 b y te
32
5V
40 chân, 2 hàng
AT89LV52
8 kbyte
1 2 8 b y te
32
3V
40 chân, 2 hàng
Chân HO \ Timer i Ngất
ROM
RAM
AT89C51
4 kbyte
1 2 8 b y te
32
AT89LV51
4 kbyte
1 2 8 b y te
AT89C1Ũ51
1 kbyte
AT89C2051
Kỷ hiệu
ỉ
2
6
AT89C2051 là bộ vi diéu khiển 8 bií được ché lụo Iheo công nghệ
CMOS, có thé hoạt dộng đưực ở dải điện áp lừ 2,7 V đến 6V. Bộ vi cìiéu
khiổn này được đóng gói DIP 20 chân, khá nliỏ gọn so với AT89S52
nhưng vản có đủ các lài nguyên Ihông dung như:
- Bộ nhớ: 2 kbyte Flasli có ihể ghi/xoá được KXX) lần; ỉ 28 X 8-bit RAM;
- Có thể hoạt động ử làn sô' Ihạcli anh lôn tới 24M Hz;
- l 5 chân xuất nhập;
- 2 bộ Tim er/Counter 16 bit;
- 6 nguồn ngát;
- 1 PORT nối tiếp:
- l bộ so sánh (Analog Comparator).
AT89C4051 có sơ íiồ chùn và cac lài nguyên giỏng AT89C2051.
ngoại trừ bộ nhớ ROM có dung lượng lớn hưn (4kbytc).
AT89S52 là mội bô vi điều khiển ihỏng dụng, giá rẻ có khá nhiều
chức aăng hay, đặc bi
4)
□ p r« 6 (AD5)
3)P^e(AD«)
5
7 (A 07)
JẸĨẦ/Sỉị>p
□ NWOG
Ij PSEN
“1P2.7 (A15)
□ P2.6 (A14)
I] P2.5 (A13)
3 P2.4 (A12)
DP2.3 (A11)
□ P2.2 (AlO)
□ P2.1 (A9)
3 P2.0 (A8)
e) 89C52/89S52 kiểu DIP 40 chân;
' V C Ọ O Ị v - Ọ
42 : ì P1.7 (SCK)
41 1 P1.6(M IS0)
40 J P1.5(M 0SI)
39 D P1-4
yHXÚ) P3.0
2
(ĨXD) P3.1 L 3
(INTO) P 3 . 2 Ĩ : 4
(INT1)P3.3 . 5
(TO) P3 4
6
(Ĩ1)P3,5;:_ 7
(WR) P 3 . 6 ' 8
38
37
36
35
34
J P1.3
! P1.2
1 P1.1 (T2EX)
1 P 1 .0 (T2)
12
13
14
15
31
30
29
28
ĩlP O .I
□ P0.2
D P0.3
□ P0 4
(A10) P2.2C 16
(A11)P2.3 í: 17
27
26
25
24
□ P0.5 (AD5)
□ P0.6 (AD6)
□ P0.7(AD7)
(RD) P3.7 z 9
XTAL2: 10
X ĨA L 1 . 11
GND '
PWRGND r
(A8) P2.0
(A9) P2.1 C
□ VDD
33 3 PWRVDD
32 J PO.O (ADO)
(A12) P 2 .4 f 18
(A13) P2.5C 19
(A14)P2.6C: 20
(A15) P 2 . 7 L 21
□ ẼAA/PP
23 3 ALE/PRÕỒ
22 □ PSEN
f) 89C52/89S52 kiểu DIP 42 chân;
lễ llli
nil
't n t>Ị — ọ
o ọ
— cvm
0 0 « - r \ Ị C Ọ
, ...Ì.Ì..U 1..I . J-1J1 - 11 ! H 1
w
(MOSI)PI 5C
(MíSO)PI 6L
(SCK)PI 7C
RSTC
(RXD) P3.0 C.
NCC
(ĨXD ) P3.1 l
(IWTO) P3.2 r
(líĩTt)P3.3C.
(TO) P3 4 1
Ơ I) PXS{
n :•
*n
n ri
38
37
36
35
34
33
32
31
30
í 5 8 K 8 i S a « R t 5 S ”
T T m T
LJ i.J t_J l J
J u
*_J u u
(D r>> «u •” O O 0 *“ «N n ^
f g
t
n n
7
a
9
10
11
12
13
14
15
16
II 3
(AD1)
(AD2)
(AD3)
(AD4)
□ PO 4 (A04)
J P0.5 (AD5)
:i f>n 6 (AD6)
3P0.7(AD7)
ỄẦA/PP
3NC
J A L E ^Ì KXÌ
J f»§ỀN
JP2.7(A15)
J P2.6(A14)
:i P2 5 (A l3 )
(M o s i)P i.s r
%
33 ■ P0.4 {A04)
32
P0.5 Ì a o s )
3t ^ p o .e ÌA o e i
(MlSOỉ P1 6 L 2
(SCk Ì p í 7C 3
nSTL 4
(RXĐ)P3 0 l S
NCÍ 6
ÍTX0)P3.1 C 7
(IMTO) P3 ĩ L e
30
29
?e
27
26
25
24
23
(íN ĩìíP a .s r s
fTO) P3 4 L to
(T í »P 35[- 11
'N C
IALE/PAỖ Ố
.. PS£N
^ P 2 .7 (A15)
r P 2 .6 íA l4 )
:P ? 5 (A 1 3 )
T T T r-T T rT T T T T T T rn rrT
" III i i
sĩ ĩs ị? ịr ị?
<. <
g) 89C52/89S52 kiểu PLCC;
: P0.7 (A07)
_ẼA/VPP
h) 89C52/89S52 kiểu PQ FP/TQ FP.
Hinh 2.3. Sơ đó chân của89C51/89S51. 89C52/89S52.
I . P o rt 0 (PO.O - P0.7)
Port 0 gồm 8 chân, ngoài chức năng x u ấ t nhập, Port 0 còn là bus
đa hợp dữ liệu và địa chỉ (A D 0 -A D 7 ), chức năng này sẽ được sử dụng
khi 8051 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi
mạch nhớ, mạch PIO ...
4VI0K ƯDA
25
A d dress tow/
Contro»
Read
Latch
Q p o X (1)
InlernHl
Bus
W rite 10
Laich
Hinh 2.4. cáu trúc của các chàn trên Port 0.
2. P o r t I ( P 1 . 0 - P 1 . 7 )
Dỏi với 8051, chức năng duy nhâl của Porl 1 là chức nàng xuâì nihãp,
cũng như các Port khác, Porl 1 có ihc xuâì nhập Ihco bií và íhco byle.
vcc
A lternate
O utput
Function
R ead
La!ch
Internal
Bus
W rite to
Latch
A lternate
Input
Function
Hinh 2.5. Càu trúc của các chân trên Port 1 và Port 3,
Riêng
dòng 89Sxx, ba
chân P1.5, 1^1.6, P1.7 dược
dìiiig dểinạp
ROM Iheo chuán ISI*; hai chân Pl .0 và P1.1 dược dùng cho bộ T im e r 2.
3. P o rt 2
Pori 2 ngoài chức năng
bytc cao cùa bus dịa chi khi
là cổng vào/ra như pori 0 và
sứ dụng bộ nhớ ngoài.
pori 1 còmlà
26
4 VIDK
nị.
9. X T A L l , X T A L 2
AT89S52 có một bộ dao động trên chip, nó thường được nối Với bộ
dao động thạch anh có tẩn số lớn nhất là 33MHz, thông thường là 12MFz.
10. Vcc, G N D
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đến 5,5V
được cấp qua chân 40 và 20.
2.2.3. Tô chức bộ nhớ
AT89S52 có bộ nhớ theo cấu trúc Harvard - có những vùng chiobộ
nhớ riêng biệl cho chương trình và dữ liệu. Như đã nói ở Irên, cá bộ ihớ
chương trình và dữ liệu có sẵn ở trên chip, tuy nhiên dung lượiig củ:a íác
bộ nhớ trên chip là hạn chế. K hi thiết kế các ứng dụng đòi hỏi bộ nh(ớ ớn
người ta có thể dùng bộ nhớ ngoài với dung lưíỊrng lên tới 64 kbyte chiobộ
nhớ chương trình và cho 64 kbyte bộ nhớ dữ liệu (hình 2.7).
OxFFFF
0)
n
't
tò
-A-
CODE
XDATA
OxFF
PDATA
IDATA
DATA
0x0000
Hình 2.7. Tổ chức bộ nhâ của AT89S52.
28
BDATA l.
REG
0X30
0x1 F
1. Bộ nhớ chương t r i n h
AT89vS52 có 8 kbyte Flash ROM ircn chip, khi chân /E A (chân sô'
31) đươc đặt ở mức logic cao (+5V), bô vi điều khiển sẽ thực hiện
chương trình trong bộ nhớ này bát dáu từ địa chỉ OOOOH. Số lần lập
trìiih (ghi) cho bộ nhớ này là khoáiìg 1000 lần.
K hi chân /E A được đặt ở mức logic (hấp, bộ vi điều khiển sẽ thực
hiện chương trình ở bộ nhớ chương irình ngoài (EPPOM ngoài), tuy
nhiên đc có dược điều này thi cần phải có một mạch phối ghép
AT89S52 với Flash/EPROM như trong hình 2.8. V i mạch chốt (La lch)
sẽ tácli riêng Bus đa hợp địa chỉ và dữ liệu A D 0 -A D 7 trôn port 0 của
8951, tuỳ theo dung lượng của EPROM sẽ có sô' đường địa chỉ tương
ứng được dùng. Tín hiệu điểu khiển đoc ROM là tín hiệu /PSEN.
Flash
AT89S52
EPROM
A 158
P2
ALE
PO
í>
Latch
A7.0
c > A7;0
í>
PSEN#
A15;8
D7:0
OE
Hình 2.8. Sơ đồ ghép nối AT89S52 vài EPROM.
2. lìô nhớ dữ liê u
AT89S52 có 256 byte R A M nội (bảng 2.7) được phân chia như sau:
* Các bank í hanh ghi có địa chỉ ĩừOOỈi ổến 1FH.
32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ
lộnh 8951 hỗ trợ 8 thanh ghi có tên là RO - R7 và theo mặc định sau
khi reset hô thống, các thanh ghi này có các địa chỉ từ OOH - 07H.
Các lệnh dùng các thanh ghi RO - R7 sẽ ngắn hơn và nhanh hơn so
với các iệnh có chức năng lương ứng dùng kiểu địa chỉ trực tiếp. Các dữ
liệu được dùng thường xuyên nên sử dụng một trong các thanh ghi này.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có m ột bank
thanh ghi được truy xuất bời các thanh ghi RO - R7, để chuyển đổi
việc truy xuất các bank thanh ghi ta phải thay đổi các bit chọn bank
trong thanh ghi trạng thái.
29
* RAM dịa chỉ Ììoá từng bit có dịa chỉ từ 20H cíến 2FỈÌ.
AT89S52 có 128 bit có chứa các byte dịnh địa chi theo b it từ 2()H
đến 2FH. Ý tưởng truy xuất từng bit bằng phần mém là các đặc tính
mạnh của các bộ vi điéu khiển nói chung. Các bit có thể đưực đặt, xóa
(A N D , O R )... với 1 lệnh đơn.
* RAM da dụng íừSOH dến FFỈỈ.
* Các llianh íịI iì chức năng đặc hiệt íừHOIỈ dến F F IỈ.
B Ả N G 2 .7 . B Ộ N H Ớ D Ữ L IỆ U T R Ê N C H IP C Ủ A A T 8 9 S 5 2
FF
7F
Vùng RAM đa dụng
30
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71
70
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61
60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21
20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11
21 OF OE OD
10
oc OB OA 09 08
20 07 06 05 04 03 02 01 00
1F
Bank 3
18
17
Bank 2
10
OF
Bank 1
08
07
Bank thanh ghi 0
00
(mậc định cho RO - R7)
.^0
80
Port 0
8051
EA
ALE
Port 2
RD
WR
D0-D7
74HC373
1
O
D
-y
A0-A7
RAM
G
A8-A15
OE
WE
Hinh 2.9. Sd đo ghép nòi 8051 với RAM ngoài.
31
Bộ Iihớ dử ỉiôu ngoài là bộ nìỉở RAM (!ưv;c đọc ỉioặc ghi bởi tín
hiệu /R D và A \ ’R Các RAM có ihc ^iao tiép NỚi .\ Í'89S52 urưng tự
cách thức như EPROM ngoai trừ chđn /Rl ) cùa AT8‘)S32 nối với chân
/O E (O utput Enable) cua RAM \à chân /\VR cua A'r89S32 nối với
chân /W E của R A M (hình 2.9).
Nếu có nhiều vi inạch
R O M và R A M cùng dược
ghép nối với AT89S52 í hì có
ihể dùng thêm vi mach giải
mã 74LS138 (hình 2.10).
Như đã nói ở trên, bộ nhớ
cliưcmg trình và bộ nhớ dữ liệu
của AT89S52 có thể trùng địa
chỉ, điều này cho phép người
thiết kế có ihể xây dựng một
bộ nhớ dữ liệu chứa chương
trình thực Ihi (bộ nhớ dữ liệu
đọc như bộ nhớ chương trình)
như hình 2.11.
Hỉnh 2.11. Bộ nhố dữ liệu dọc như bộ nhó
chương trình.
2.2.4. Các thanh ghi chức năng
1. T ừ t r a n g t h á i chương t r ì n h (PSW: ProỊịram Status Word)
Từ trạng thái chương trình ở dịa chỉ DOH được tóm tát như sau:
Bit
Ký hiệu
Dja chỉ (bit)
Mo ta
PSW.7
CY
D7H
Cary Flag
PSW .6
AC
D6H
Auxiliary Cary Flag
PSW .5
FO
D5H
Fjag 0
PSW .4
RSI
04H
Register Bank Select 1
PSW.3
RSO
D3H
Register Bank Select 0
00 = Bank 0, address 00H-; 07H
01 = Bank 1: address 08H-^0FH
10 = Bank 2, address 10H -17H
11 = Bank 3. address 18H^ 1FH
D2H
Overlow Flag
PSW.1
D1H
Reserved
PSW .0
DOH
Even Parity Fiag
PSW .2
32
ov
B A N G 2 .8 . Đ ỊA C H Ỉ VÀ GIÁ TRỊ KHI R E S E T
C Ủ A C Á C T H A N H G H I CHỬC NẲNG C Ù A A T 8 9 S 5 2
0F8H
OFOH
OFFH
B
oooooooo
0F7H
0E8H
OEOH
OEFH
ACC
oooooooo
0E7H
ODFH
ODBH
PSW
ODOH
00000000
0C 8H
00000000
7 2C O N
007 H
T2MOD
xxxxxxoo
RCAP2L
RCAP2H
00000000
00000000
TH2
TL2
0000000Ũ
OCFH
00000000
OCOH
0C 7H
IP
0B8H
xxoooooo
OBOH
1 11 11111
OBFH
P3
0A8H
IE
0X000000
OAOH
11111111
98H
00000000
90 H
PI
11111111
0B7H
OAFH
PZ
SC O N
TC O N
88H 00000000
eon
PO
11111111
AUXRI
W DTRST
xxxxxxxx
xxxxxxxo
0A7H
SB U F
9 FH
xxxxxxxx
97H
TM OD
TLO
TLl
00000000
00000000
00000000
SP
00000111
DPOL
00000000
DPOH
oooooooo
THI
THO
oooooooo
00000000
O P IL
DPIH
00000000
00000000
AUXR
8 FH
xxxooxxo
PC O N
oxxxoooo
87H
Chức năng từng hit của từ trạng thái chưmig trình:
- Cờ nhớ CY (Carry Flag): Cờ nhớ có lác dụng kép. Thông ỉhườiig
nó (lược dùng cho các lệnh toán học: c = 1 nếu phép toán cộng có sự
tràn hoặc phép trừ có mượn và ngược lại c = 0 nếu phép toán cộng
không tràn và phép trừ không có mượn.
- Cờ nhớ phụ A C (A u x ilia ry Carry Flag):
K hi cộng những giá trị BCD (Binary Code Decim al), cờ nhớ phụ
AC được thiết iập nếu kết quả 4 bit íhấp nằm trong phạm vi điểu khiển
OAH - OFH. Ngược lạ i AC = 0.
- Cờ 0 (Flag 0): Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứiig
dụng cùa người đùng.
5VK)k ƯDA
33
- Bit chọn bank lhanh ghi triỉV xuát RSU, R S l:
R Sl v à RSO quyô't địnli d ãy ihianh ịji! líc h circ C h ú n g đ ư ợ c xó a
sau khi r e s e t hệ thống V?1 được tliay điổi bừi pháii incm khi c ầ n ihìếl.
Tùy theo R S l, RSO - 00, 01, lCí, ] 1 sẽ dược chọn Bank tích cực
tương ứng là BankO, B ankl, Bank2, Bamk3.
RS1
- Cờ tràn
ov
RSO
BANK
(Over Flag):
Cờ tràn được thiết lập sau một hoat động cộng hoạc trừ nếu có sự
tràn toán học. K h i các sô có dấu đươc cộng hoạc trừ với nhau, phần
mểm có ihể kiểm tra bii này để xác đinh xem kếl quả có nằm irong
tầm xác định không. Khi các số khống có dấu được cộng, b it o v ttược
bỏ qua. Các kết quả ỉớn hơn +127 hoãc nhỏ hơn -128 thì bit o v = 1.
- Bit Parity (P):
B it tự động được thiết lập liav xóa (V mỗi chu kỳ máy để lập bit
chẵn lẻ (P arity) chán với thanh ghi A. Sư đếm các bit 1 trong ihanh glìi
A cộng với b it chẩn lỏ lu6n luôn chẵn. V í clụ A chứa 10101 lO lB thì bit
p đạt lên 1 để tổng số bit 1 trong A và p là chẫn.
Bit chẩn lẻ thường được (lùng trong sư kếi hợp với những thủ lục
của Port nối liế p đe tạo rẽ Int chấn lẻ ưước khi plìấl
bit chẵn lẻ sau kh i thu.
hoặc- kiểin Ua
2. T h a n h g h i B
Thanh ghi B ở dịa chì Ĩ-OỈỈ được dùng cùng với thanh ghi A trong
các phép toán nhân chia. Lệnh MUL. A B sẽ iihẠn những giá trị không
dấu 8 bit trong hai thanh ghi A và B, rồi trá vé kếí quá 16 b ìi trong A
(byte cao) và B (byte thấp). Lênh D IV A B láy A chia B, kêl quả phần
nguyên của phép chia đậi vào A, phần dư đật vào B.
Thanh ghi B cũng có ĩhê dược dùng như một thanh ghi trung giíin,
ihanh ghi này được định địa chỉ theo bit lừ FOH đến f'7FỈ.
34
SVIOK ƯGB
3. Con trỏ n g á n xếp SP (Stack Pointer)
Con trỏ ngăn xếp là m ộl thanh ghi 8 bii ỏ địa chỉ 81H dùng dể
chứa địa chỉ của đỉnh ngăn xcp. Các lệiilì thao lác vứi ngăn xếp bao
gồm các lệnh cấl dữ liệu vào ngăn xếp (PUSỈI) và lấy dữ liệu ra khỏi
ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ iàm tãng SP và lệnh
lấy ra khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của AT89S52 là 128
byte đầu của R A M nội.
4. Con trỏ dữ liê u D P T R ( D a t a Pointer)
Con :rỏ dữ liệu ( D I^ R ) được dùng dé’ truy x L iâ ì bộ nhớ ngoài. Con
trỏ dữ liệu ỉà một thanh ghi 16 bit ở địa chi 82H (DPL: byte thấp) và
83H (DPH: byte cao).
\ 'í dụ: 03 lộnh sau sẽ ghi 1211 vào RAM ngoài ở địa chí 1200H:
MOV A ,
- Xem thêm -