Sunteți pe pagina 1din 46

SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 1

1. SISTEM DE DEZVOLTARE CU
MICROCONTROLLER 80C552

Acest sistem de dezvoltare este realizat pe baza microcontroller-ului 80C552, realizat
n tehnologie CMOS de firma PHILIPS, compatibil software cu familia de procesoare 8051,
fiind astfel conceput nct permite dezvoltarea rapid a aplica 111L1 11 LL1L111 L1NL1>L -
L1L111/ ri industriale, aparate de m sur . 11LL>111L L>L1 , medicin , industria auto-
mobilelor, domeniul casnic, etc. Utilizarea tehnologiei CMOS l recomand jL111L j11L 111L
L1L 1LLL>11 L1 LL1>L1 1LLL> LL L1L1U1L >1 L1e necesit imunitate ridicat 1 jL11L11 11.
1L L1 >L zut de cost l recomand 11 jL111L j1LLL>L1L LL >L11L. L1 >1 jL111L j1L1L11jL11 >1
unicate.
n figura 1.1 este prezentat sistemul de dezvoltare, iar n figura 1.2 sunt prezentate
conectoarele de in1L1LL1L?1L1L 1L >1>1L1L1L1 LL LL/NL111L >1 L11L1 LL 111L1LL1L?1L1L LL L1
sistem de calcul de tip PC.
Sistemul de dezvoltare este destinat n principal dezvolt rii de programe. Hardware-ul
suplimentar utilizat - LL L?L1j1L 1>11L1. 11>|L1 LL L11>11L lichide, etc. - permite unificarea
din punct de vedere constructiv a diferitelor produse. Acest proces de unificare hardware
L11LL 1L1L/ L1L11L1 LL j1L1LL11L >j1L j1LU11L LL j11L 1L.
Acest sistem de dezvoltare bazat pe microcontroller-ul 80C552 acoper din punct de
vedere hardware >1 software j11L 111L LL/NL111L LL 11L1Lj1LLL>L1L1L \VO. \VOZ >1 11L
j1LLL>L1L L11 11111 \. jL11L 11 1L1L>11 1 LL/NL111L LL j11L 11 LL LL>1L j1LLL>L1L.

1.1 RESURSELE SISTEMULUI DE DEZVOLTARE

Sistemul de dezvoltare realizat dispune de urm toarele resurse hardware >1
caracteristici tehnice:
microcontroller PCB80C552 (f r memorie intern LL j1LU11. 1LL11L 1
L 11LLNL1 maxim a ceasului de 16MHz;
11LLNL1 LL>L1L1 >1>1L1L1ui de dezvoltare 11,059200 MHz;
1L1L11 LL L1L >111L L?1L11 DATA MEMORY. 11j1L1L111 LL L1
circuit KM62256, realizat n tehnologie CMOS, cu capacitatea de 32
bLL1L 1 >1 L1L1L11/1 LL L1 111j LL LLL> LL O1>. `j 1L1 LL L1L>1L
LLLj1 LL 1L1L11 LL L1L L>1L LLj111> 1111L \\\ >1 .
1L1L11 LL j1LU11 L?1L11 PROGRAM MEMORY. 11j1L1L111 LL
un circuit EPROM de tip 27C256, realizat n tehnologie CMOS, cu
LjL111L LL OZ bLL1L 1 >1 L1L1L11/1 LL L1 111j LL LLL> LL \1>.
`j 1L1 LL L1L>L LLLj1 LL 1L1L11 LL j1LU11 L?1L11 L>1L LLj111> 1111L
\\\\ >1 . 1L1L11 L?1L11 LL j1LU11 LL1 11L L1 j1LU11
1L111L1. LL>1111 LL/NL11 111 LL j1LU11L LL j11L 1L.
111L11 >L111 LL1j11111 RS-232 LL 11L N11L/ . 1L11 LLj1L?.
bus serial I
2
C (bus multimaster cu arbitrare LL j11L111 1 >1 N11L/ 11L LL
111>11>1L. 11LLNL1 1?11 LL>L1L1 >L111 L>1L \\b/. L>111 1
j111L1j1 L>1L LL1L11L 1 LL L11LL11L 111LU11L >L LL111L11L1-L. j1LN /L1L
LL 111L11 I
2
C. 111L 11 LLL>1 L1L> .
memorie EEPROM >L111 . 11j1L1L11 LL L1 L11LL11 LL 11j ST24C04,
realizat n tehnologie CMOS. LL LjL111L LL Z LL1L 1 >1 LL1LL11 1
111L11 I
2
C;
2 jL11L11 j11L1L LL 1L>11L LL 8 11 1.
1 port paralel de intrare de 8 11 1.
8 1111 11 1L111j1L?1L 1 L1 LL1NL11L1 11LU-L1U111 LL 1L/L1L 1 LL \ 11 1.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 2
implementat n structura microcontroller-L1L1 \VZ >1 L1L1L11/1 LL L1
111j LL LL1NL1>1L LL \ L1L1L11 1>11 .
8 1L>111 LLLLL111L1L LL >L1LL 1L jL11L11.

Tabelul 1.1 - `j 1L1 LL L1L>L jL111L >L1LL 111L LL jL11L11.

Liniile de adrese A
0
A
15
,HLUH Adresa
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
DCD (HEXA)
0 X X X X X X 1 0 0 0 X X X X X S
0
/ 100H..11FH
0 X X X X X X 1 0 0 1 X X X X X S
1
/ 120H..13FH
0 X X X X X X 1 0 1 0 X X X X X S
2
/ 140H..15FH
0 X X X X X X 1 0 1 1 X X X X X S
3
/ 160H..17FH
0 X X X X X X 1 1 0 0 X X X X X S
4
/ 180H..19FH
0 X X X X X X 1 1 0 1 X X X X X S
5
/ 1A0H..1BFH
0 X X X X X X 1 1 1 0 X X X X X S
6
/ 1C0H..1DFH
0 X X X X X X 1 1 1 1 X X X X X S
7
/ 1E0H..1FFH
MOV P
2
,#1
MOV R
0
,#A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
B
MOV @R
0
,A


Dintre cele 8 semnale de decodificare porturi ocup L1 >j 1L LL L1L>L
LL L11L1>1L1L LL . > LLj LL1 1L1L>L L11 11L1L1 j1L/L111 11L11L1.
1111L LL1L >L111L LL >L1LL 1L >111L11/1L. 11 >11LL1L1 >1>1L1L1L1 LL
LL/NL111L >L11 L1111/1L LL1 H. >1 1L1L.
S
0
- >L111 LL >L1LL 1L jL111L 11>|L1 Lu cristale lichide LCD;
S
1
- >L111 LL >L1LL 1L jL111L jL11L1 LL 1L>11L 11 jL 11 >L11111-
cativ;
S
2
- >L111 LL >L1LL 1L jL111L jL11L1 LL 1L>11L 11 >L1111icativ;
S
3
- >L111 LL >L1LL 1L jL111L jL11L1 LL 11111L.
S
4
S
7
- neutilizate (disponibile pentru extensii hardware).
?111LL1L 1L1 1L1L1 LL jL11L11 LL 11111L-1L>11L jL1L 11 1 LL1 11L j111
L1111/1L >L111L1L1 LL >L1LL 1L L1>jL11111L. LLL LL LL1LLLL 1 11L 1L1L
magistralei interne a sistemului de dezvoltare, fie prin subdecodificarea
liniilor inferioare de adrese neutilizate A
4
A
0
>1 1L111j1L?1L. 1L>jLL11N
LL1L111j1L?1L. 1111 111L1. 1L>jLL11N 1L>1111L1. jL11L1L1 LL 11111L.
respectiv a por1L1L1 LL 1L>11L 11 jL 11 >L11111L11N. 1LLL>L1 LL
1L111j1L?1L >L 1L11/L/ 1/1 jL L11LL11L LL 1L>111 LL 11j three-state,
111111/1L LLL1 1L1 1L1 LL 1L>L1>L hardware suplimentare necesare.
2 1L>111 11LU1LL LL 8 11 1 1LLL11L 11 LL11 . 111 111LU11L 1L1 >L jL1
L1 11L LLL LL1NL11L1L L1U111-analogice de 8 11 1.
3 1L1 1 1L1L LL 11j 111L1/LLL11L1;
1 watchdog j1LU11111 11|1LL LL L1LLL11LL1L 11 L/L1 L?LLL 1L1 L1L-
11L j1LU11L1L1. L1L111 jL11L11 111L1 >L 111L11L1L1 L1L1.
15 linii de ntreruperi, dintre care 6 linii externe;
reset la punerea sub tensiune;
LL1LL11L L11LL1 L1L1 11>| cu cristale lichide.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 3

1 LL1111L1L. L>1L LL1111 LL111UL1 1 j1111L1 LL1LL1L1L1L1 >1>1L1L1L1 LL LL/NL111L
cu microcontroller 80C552.






X14 X15 X16 XD1
74LS374
7
4
L
S
3
7
3
74LS374
7
4
L
S
2
4
4
7
4
L
S
0
4
7
4
L
S
0
8
MAX232
7
4
L
S
1
3
8
U7
U6
CD3
CD1
CD4
U13 U10
R9
R10
C2
C3
Q1
PCB80C552
X10
X12
X
1
1
X
1
3
U12 U11 U1
KM
62256
27C256
R2
R3
R4
R5 R8
R7
X1
CX3
CX1
CX5
CD5
+
+
+
+
+
+
+
CX2
CX4
PB1
CD6 C4
R6
R1 C1
C5
X4
JP1
XA1
CD2
GND
VCC
D5
X7
X
5
X
6
X
2
U5
U6
ST24C04
X3
U2
OUT 0..7
CONNECTOR
OUT 8..15
CONNECTOR
C 80C552
ALE
AD0 .. AD7
AD0 .. AD7 AD0 .. AD7
AD0 .. AD7
PSEN
IN 0..7
CONNECTOR
A8 .. A15
A8 .. A15
PWM 0..1
IN ADC 0..7
IN/OUT 0..7
SDA
SCL
RESET
RS-232
MAX232
EEPROM
ST24C04
TxD
RxD
Q
11,0592 MHz
LCD
CONNECTOR
A0.. A7
A0 .. A15 A0 .. A15
S0 S1 S2 S3
LATCH
74HCT373
LATCH
74HCT374
LATCH
74HCT374
BUFFER
74HCT244
RD
WR
DCD
A8
A15
S4
S5
S6
S7
74HCT08
74HCT08
74HCT138
G1
G2A
G2B
A5
.
.
A7
A..C
I C Bus
2
XTAL1 XTAL2
P5.0 .. P5.7
P4.0 .. P4.7
To PC
X14 X15 X16 XD1
RAM
WR
RD
DATA
ADR
KM62256
CS
EPROM
RD
DATA
ADR
27C256
CS
A15 A15 A15
A0 ..A14 A0 ..A14
LE OE
LE LE OE OE OE
MICRO-
CONTROLLER
0
1
2
3
4
5
6
7
DATA
MEMORY
- RAM -
(EXTERNAL)
32 Kbytes
PROGRAM
MEMORY
- EPROM -
(EXTERNAL)
32 Kbytes
FFFF H
8000 H
7FFF H
0000 H
Figura 1.1 - Structura sistemului de dezvoltare cu microcontroller 80C552.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 4



CONECTOR X1 (SERIAL_LINK)
1 NC 2 TXD
3 RXD 4 NC
5 GND 6 NC
7 NC 8 NC
9 NC
CONECTOR X2 (DECODE)
1 VCC 2 S0/
3 VCC 4 S1/
5 VCC 6 S2/
7 NC 8 S3/
9 NC 10 S4/
11 GND 12 S5/
13 GND 14 S6/
15 GND 16 S7/
CONECTOR X3 (I2C_LINK)
1 SDA 2 SCL
CONECTOR X4 (INTERNAL_MEM)
1 VCC 2 EA/
3 GND 4 EA/
CONECTOR X5 (ROM_SEL)
1 PSEN/ 2 CE_P
3 RD/ 4 CE_P
CONECTOR X6(ROM_EN)
1 VCC_P 2 VCC
3 GND 4 NC
CONECTOR X7 (MAIN_SUPPLY)
1 GND 2 VCC
CONECTOR X8 (JP1)
1 EW/ 2 GND
CONECTOR X9 (SW1_RESET)
1 R6_VCC 2 R1_GND
CONECTOR X10 (C)
1 CMSR2 2 CMSR4
3 CMSR0 4 CMSR1
5 PWM1 6 EW/
7 STAD 8 PWM1
9 ADC0 10 VCC
11 ADC2 12 ADC1
13 ADC4 14 ADC3
15 ADC6 16 ADC5
17 AVDD 18 ADC7
CONECTOR X11 (C)
1 CMSR4 2 CMSR3
3 CMT2 4 CMSR5
5 RST 6 CMT1
7 CT1I 8 CT0I
9 CT3I 10 CT2I
11 RT2 12 T2
13 PSDA 14 PSCL
15 PTXD 16 PRXD
17 T0 18 INT0
CONECTOR X12 (C)
1 T0 2 INT1
3 WR/ 4 T1
5 NC 6 RD/
7 XT2 8 NC
9 GND 10 XT1
11 NC 12 GND
13 A9 14 A8
15 A11 16 A10
17 A14 18 A12
CONECTOR X13 (C)
1 AVSS 2 ADC7
3 AVREF- 4 AVREF+
5 AD1 6 AD0
7 AD3 8 AD2
9 AD5 10 AD4
11 AD7 12 AD6
13 ALE 14 EA/
15 A15 16 PSEN/
17 A13 18 A14
CONECTOR X14 (OUT_HIGH)
1 AX8 2 VCC
3 AX9 4 VCC
5 AX10 6 NC
7 AX11 8 NC
9 AX12 10 NC
11 AX13 12 NC
13 AX14 14 GND
15 AX15 16 GND
CONECTOR X15 (OUT_LOW)
1 AX0 2 VCC
3 AX1 4 VCC
5 AX2 6 NC
7 AX3 8 NC
9 AX4 10 NC
11 AX5 12 NC
13 AX6 14 GND
15 AX7 16 GND
CONECTOR X16 (INPUT)
1 IX0 2 VCC
3 IX1 4 VCC
5 IX2 6 NC
7 IX3 8 NC
9 IX4 10 NC
11 IX5 12 NC
13 IX6 14 GND
15 IX7 16 GND
CONECTOR XA1 (SUPPLY)
1 VCC 2 GND
CONECTOR XD1 (LCD)
1 VSS 2 VDD
3 V0 4 RS
5 R/W 6 EN
7 D0 8 D1
9 D2 10 D3
11 D4 12 D5
13 D6 14 D7
1 5
6 9
( V e d e r e d i n s p r e
t e r m i n a l e )
( V e d e r e d i n s p r e
t e r m i n a l e )
1 1 3
1 4 2 5
Cupla CANNON (mama) 9 pini
catre sistemul de dezvoltare cu
microcontroller 80C552
Cupla CANNON (mama) 25 pini
catre sistemul de calcul (PC)
TxD (2)
RxD (3)
GND (5)
(2) TxD
(3) RxD
(7) GND
(4) RTS
(5) CTS
(6) DSR
(8) DCD
(20) DTR

Figura 1.2 - Interconexiunile sistemului de dezvoltare cu exteriorul.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 5
CONECTOR X1 (SERIAL_LINK)
1 NC 2 TXD
3 RXD 4 NC
5 GND 6 NC
7 NC 8 NC
9 NC
CONECTOR X2 (DECODE)
1 VCC 2 S0/
3 VCC 4 S1/
5 VCC 6 S2/
7 NC 8 S3/
9 NC 10 S4/
11 GND 12 S5/
13 GND 14 S6/
15 GND 16 S7/
CONECTOR X3 (I2C_LINK)
1 SDA 2 SCL
CONECTOR X4 (INTERNAL_MEM)
1 VCC 2 EA/
3 GND 4 EA/
CONECTOR X5 (ROM_SEL)
1 PSEN/ 2 CE_P
3 RD/ 4 CE_P
CONECTOR X6(ROM_EN)
1 VCC_P 2 VCC
3 GND 4 NC
CONECTOR X7 (MAIN_SUPPLY)
1 GND 2 VCC
CONECTOR X8 (JP1)
1 EW/ 2 GND
CONECTOR X9 (SW1_RESET)
1 R6_VCC 2 R1_GND
CONECTOR X10 (PC)
1 CMSR2 2 CMSR4
3 CMSR0 4 CMSR1
5 PWM1 6 EW/
7 STAD 8 PWM1
9 ADC0 10 VCC
11 ADC2 12 ADC1
13 ADC4 14 ADC3
15 ADC6 16 ADC5
17 AVDD 18 ADC7
CONECTOR X11 (PC)
1 CMSR4 2 CMSR3
3 CMT2 4 CMSR5
5 RST 6 CMT1
7 CT1I 8 CT0I
9 CT3I 10 CT2I
11 RT2 12 T2
13 PSDA 14 PSCL
15 PTXD 16 PRXD
17 T0 18 INT0
CONECTOR X12 (PC)
1 T0 2 INT1
3 WR/ 4 T1
5 NC 6 RD/
7 XT2 8 NC
9 GND 10 XT1
11 NC 12 GND
13 A9 14 A8
15 A11 16 A10
17 A14 18 A12
CONECTOR X13 (PC)
1 AVSS 2 ADC7
3 AVREF- 4 AVREF+
5 AD1 6 AD0
7 AD3 8 AD2
9 AD5 10 AD4
11 AD7 12 AD6
13 ALE 14 EA/
15 A15 16 PSEN/
17 A13 18 A14
CONECTOR X14 (OUT_HIGH)
1 AX8 2 VCC
3 AX9 4 VCC
5 AX10 6 NC
7 AX11 8 NC
9 AX12 10 NC
11 AX13 12 NC
13 AX14 14 GND
15 AX15 16 GND
CONECTOR X15 (OUT_LOW)
1 AX0 2 VCC
3 AX1 4 VCC
5 AX2 6 NC
7 AX3 8 NC
9 AX4 10 NC
11 AX5 12 NC
13 AX6 14 GND
15 AX7 16 GND
CONECTOR X16 (INPUT)
1 IX0 2 VCC
3 IX1 4 VCC
5 IX2 6 NC
7 IX3 8 NC
9 IX4 10 NC
11 IX5 12 NC
13 IX6 14 GND
15 IX7 16 GND
CONECTOR XA1 (SUPPLY)
1 VCC 2 GND
CONECTOR XD1 (LCD)
1 VSS 2 VDD
3 V0 4 RS
5 R/W 6 EN
7 D0 8 D1
9 D2 10 D3
11 D4 12 D5
13 D6 14 D7


SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 6
2. 35(=(17$5(*(1(5$/ A
MICROCONTROLLER-ULUI 80C552

2.1 0(025,$,17(51 $0,CROCONTROLLER-ULUI 80C552

2.1.1 MEMORIA DE PROGRAM (PROGRAM MEMORY)

1111 .VZ LL1 11L bLL1L 1 LL 1L1L11L LL j1LU11 11j1L1L111 111L11.
1L1L11L LL jL1L 11 L?111> 1 !H bLL1L 1 j111 L1111/1L L1L1 1L1L111 TV1 L?1L11 11UL1
Z.. /1L1L1 L1L j11L1 / L>1L 1L1 1 1 11NL1 11L1L1. 11L1LLL111L11L1-L1 L11L>1L 11>11LL 1L111L
(ciclu de fetch L11 1L1L11 111L11 LL j1LU11 LL L1L> LL>1L1 L>1L 111L11L1 N1L111
1. LL 111L LL L1L>L LLj111>L 1111L Z\\\ >1 LL1L>jL1L 1L1L11L1 L?1L11L LL
j1LU11. /1L1L1 L1L j11L1 / L>1L 1L1 1 1 11NL1 LL1L11. 1L1L L1L1L111L LL fetch (ciclurile de
L1111L 11>11LL 1L111 >L11 L?LLL11L L11 1L1L11 L?1L11 LL j1LU11. LL 111L LL 1L1L11L LL
j1LU11 LL L1L>L1L \\\O >1 \\\ >L11 L1111/1L LL 1L111L1L LL 1111L 1111L1LjL111L1.


2.1.2 MEMORIA DE DATE (DATA MEMORY)

11L1Lj1LLL>L1L1 LL1 11L L 1L1L11L 111L11 LL L1111L/>L11Lre cu adrese cuprinse ntre
\\ >1 . /LL>1 L>1L L1U11/1 jL 11L1 >LL 1L11.
/L1 111L11L1 1L1L11L1 LL L1L. LL LjL111L LL Z LL1L 1. N1L
L1L>L LLj111>L 1111L \\ >1 . /L1L>1L LL>1L1 /L1L /L1L LL 1L1L11L
se poate face direct sau indirect;
/L1 >LjL11L1 1L1L11L1 LL L1L. LL LjL111L LL Z LL1L 1. /LL>1
/L1 LL 1L1L11L jL1L 11 L1L>1 1L11 11L11LL1.
/L1 1LU1>11L1L1 LL>1111L 1L1L 111L1 >jLL11L. LL LjL111L LL Z LL1L 1.
VL1 Z LL1L 1 1 /L1L1 111L11L1L 1L1L11L1 LL L1L >L11 L1U11/ 1 >11L1.
j11111 OZ LL LL1L 1 LL L1L>L LLj111>L 1111L \\ >1 >L11 11j 1 1 1 11 H
11LL11 LL L 1L LL1L 1 1L111L >1 1LU1>11L UL1L11L >1 L1L jL1 11 jL11L 11
11>11LL 1L11 L T
0
-R
7
. Selectarea unuia dintre bancuri la un moment dat se
1L11/L/ LL |L1L1L1 LL1 11 1 L11 LLN11L1 LL >11L 1 j1LU1L1L1 `.
PROGRAM MEMORY
INTERNAL EXTERNAL
EXTERNAL
( = 1) EA ( = 0) EA
INTERNAL DATA MEMORY EXTERNAL DATA MEMORY
00 h
7F h
FF h
INTERNAL
DATA RAM
SFR
0000 h
1FFF h
2000 h
FFFF h
0000 h
FFFF h
OVERLAPPED
MEMORY SPACE

Figura 2.1 - Memoria microcontroller-ului 80C552.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 7
/LL>1L 1LU1>11L jL1 11 LLL>1L >1 1 11NL1 LL 111.
! LL1L 1 LL L1L>L LLj111>L 1111L Z\ >1 Z. L1L jL1 11 L1L> 1 >1 L L1
>j 1L LL Z LL 11 1 LL L1L>L LLj111>L 1111L \\ >1 .
ZL1 >LjL11L1 LL 1L1L11L >1 /L1 1LU1>11L1L1 LL>1111L 1L1L 111L1 >jLL11L 11j11
LL1>1 >j 1L 1 L1L>L1L1 LL 1L1L11L LLj111>L 1111L \ >1 . LL>1 L1L >L11 L1111 1 11/1LL
L1>111L1L. iL 1L 1 LL1 Z LL1L 1 1 /L1L1 1LU1>11L1L1 LL 1L1L 11 >jLL11L >L11 11j1L1L11 1 11/1L.
TLU1>11L1L LL>1111L 1L1L 111L1 >jLL11L 1L L 1L1 L1L>L >L 1L1111 11 \ >L jL1 11 L1L>1L
>1 1 11NL1 LL 111.
L 11U LL1 Z! LL LL1L 1 LL L1L 1 1L1L1L1 111L11L. 11L1Lj1LLL>L1L1 jL1L L1L> >1
j1 1 !H LL1L 1 LL 1L1L11L L?1L11 LL L1L. /L1L>L1L 1L1L11L1 LL L1L L?1L11 jL11L>L 1L1
LL 1 \\\\. /L1L> jL111L 1L1L11 L?1L11 jL1L 11 jL L1 LL1L1 >L jL LL1 LL1L 1. 11111L
portului de intrare-1L>11L
0
>L 1L1L>L>L 1L111j1L?1 jL111L L1 11L LL1L1L1 111L11L1 l adresei
de memorie, respectiv octetul de date citit/scris n memorie. n cazul n care adresa de
1L1L11L L>1L LL L1 LL1L1 LL1L1 LL1 11L1 1111-unul din registrele generale ale bancului de
1LU1>11L L11N. LL>1 >L jL1L 1L1L>1 11 LL1|L1L 1L LL L1 1L1 1 LL 11111 1L jL11L1L1 LL 11111L-
1L>11L
2
L1L jU11L/ 1L1L11. L L1L> L>1L jL LL1 LL1L 1. LL>1 L>1L LL1 11L1 11
1LU1>11L1 LL>1111 1L1L 111L1 >jLL11L T. 11 L1L>1L 1L1L11L1 >L 1L11/L/ 1L1L>11L LL1L
16 linii ale porturilor de intrare-1L>11L
0
>1
2
.

2.1.3 REGISTRELE CU FUNC II SPECIALE

Cele mai multe dintre cele 56 de registre speciale se folosesc pentru controlul
hardware-ului de periferice aflat pe cip. Altele sunt registre aritmetice (ACC, B, PSW),
indicator al stivei (SP), indicatoare de date (DPH, DPL). 16 dintre aceste registre pot fi
adresate la nivel de bit. 1 LL1111L1L NL1 11 j1L/L111L 1LU1>11L1L LL 1L1L 11 >jLL11L LL1L 11
des folosite.
Acumulatorul - L>1L 1LU1>11L1 11j11L11 jL111L 1L11L 11>11LL 1L11. n cadrul unei
11>11LL 1Lni este apelet cu numele A. /L1L> > L11LL1 L>1L \. L1L 11 L1L>1 >1 1
11NL1 LL 111. VL1 11L1L1 > L LLN11L \\ 1 1L>L11L 11L1Lj1LLL>L1L1L1.
Registrul B - L>1L L1111/1 L111U1L11L 11 11>11LL 1L111L LL 111L1 11L >1 11j 1 11L.
Poate fi folosi1 >1 11 11L 11>11LL 1L11. /L1L> L11LL1 L>1L \. L1L 11 L1L>1 >1 1
11NL1 LL 111. VL1 11L1L1 > L LLN11L \\ 1 1L>L11L 11L1Lj1LLL>L1L1L1.
Cuvntul de stare al programului (PSW) - LL1 11L 111L11 1 LL >11L.
L1L11111L >1 >L11111L 111L LL1L1 11 1 1 PSW sunt date mai jos:

(MSB) (LSB)
CY AC F0 RS
1
RS
0
OV - P

CY (PSW.7) - indicatorul de transport din bitul cel mai semnificativ al
LL1L11L1L1L1. 11 L/L1 11>11LL 1L111L1 1111L11LL.
AC (PSW.6) - indicatorul de transport auxiliar. Se folosL>1L jL111L LjL1 11
n BCD;
F
0
(PSW.5) - indicatorul 0 folosit de utilizator;
RS
1
(PSW.4 >1 RS
2
(PSW.3) - 1L1L>1 1 jL111L >L1LL 1 11LL1L1 L11N 1
1LU1>11L1L1 UL1L11L. `L11 >L1 1 >L 1L>L1 1 j111 j1LU11 jL111L >L1LL1
bancul dorit;
OV (PSW.2) - indica1L1L1 LL LLj >11L.
P (PSW.0) - indicatorul de paritate. Este setat sau resetat prin hardware la
11LL1L L1L1L LL 11>11LL 1L1L jL111L 11L1L 1L1 1L1 LL j1 >L 11j1
din acumulator.
/L1L> L11LL1 ` L>1L \.
,QGLFDWRUXO GH VWLY (SP) - este un reU1>11L LL 11 1. >1L 11L1L1L111 11111L
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 8
LL L?LLL 1 L1L1 11>11LL 1L11 \` >L V/. >1L LLL1L1L111 LLj L?LLL 1 L1L1
11>11LL 1L11 V >L T. 1L>L11L 11L1Lj1LLL>L1L1L1 L>1L 111 111/1 1 N1L1L
\. LLL1 >11N 11LLjL LL 1 L1L> \. L1L 11 11L 1L1 j111 j1LU11. LLL1 >11N
jL1L 11LLjL LL 1 L11LL L1L> . /L1L> L11LL1 L>1L .
Indicatorul pentru date (DPTR) - L>1L 1L111 L11 LL1 LL1L 1. LL1 LL L1L> 11
11L 1111L jL11 L . 11 LL1 LL L1L> 11 11L 1111L jL11 L . 1 j >11L/
L L1L> LL ! 11 1 jL111L jL11L 1L1L11L1 T/1 L?1L11L LL LL>1 L?1>1 . L1L
11 11LN11 L L1 >11UL1 1LU1>11L LL ! 11 1 >L L LLL 1LU1>11L LL 11 1. /L1L>
L11LL1 L>1L Z.
Registrele porturi P
0
yP
5
- sunt registrele latch pentru porturile de intrare-1L>11L
P
0
. V1L >L >L11L L 111L11 1L 1111-un bit al unui registru, aceasta apare la pinul de
intrare-1L>11L LL1L>jL1/ 1L1. V1L >L L11L>1L 111L11 1 LL 1 L1 jL11 LL 11111L-1L>11L.
LL>1 L>1L 1L1L11 11 1LU1>11L1 jL11 LL1L>jL1/ 1L1. La resetarea microprocesorului
registele P
0
la P
4
>L11 111 111/1L LL N1L1L \\. /L1L>L1L L11LL1L 1L LL>1L1 1LU1>11L
sunt: P
0
- 80H, P
1
- 90H, P
2
- A0H, P
3
- B0H, P
4
- C0H, P
5
- C4H. Registrele P
0
P
3
sunt
L1L>111L >1 1 11NL1 LL 111.
Buffer serial de date (S
0
BUF) - L>1L LL1jL> LL 1j1 L11 LLL 1LU1>11L >Lj11L
LL 11 1 N1L LLL>1 L1L> L11LL1 . L1L1 jL111L 111>11>1L >1 11L1 jL111L 1LLLj 1L.
1L1L>11L jL111L 111L11 >L111 `1V
0
. Cnd un octet de date este scris n S
0
BUF, acesta
este introdus n buffer-L1 jL111L 111>11>1L >1 LL11>L/ 11LLjL1L1 111>11>1L1 >L111L
LL>1L1. V1L >L 1L11/L/ L L1111L L11 `
0
\. >L L11L>1L LL1 11L1L1 buffer-ului de
1LLLj 1L. /L1L> L11LL1 L>1L ``.
Registrele de control - L?11 11 1L11L >11L1 LL 1LU1>11L L1L LL1 11 11 1 LL
LL111L1 >1 LL >11L jL111L 1111L1LjL11. 1L1jL11/1L1L/1L1 1 1L1L >1 jL11L11 >L111L. 1L
NL1 11 LL>L11>L 1 1L1L 1L111L LL1L>jL1/ 1L1L.
Registrele de temporizare - L?1>1 11L1 jL1LL11 LL 1LU1>11L LL L1L 11 1
0
(TH
0
,
TL
0
), T
1
(TH
1
, TL
1
), T
2
(TMH
2
, TML
2
1L1 1 1L1L jL ! 11 1. >1 L1 1LU1>11L 1L1 1 1L1
jL 11 1
3
. T
3
este folosit ca watchdog jL111L 1L111 111/1L >1>1L1L1L1 LLj L1
anumit interval de timp convenabil ales, n cazul cnd acesta s- 11LL1 >1 1L jL1L1 11
1L11L 1L1 1L1jL11/1L1L1
3
.

Tabelul 2.1 - Registrele microcontroller-ului 80C552.

Simbol Descriere
Adresa
directa
Adresa bit, simbol sau functie alternativa port
Valoare
RESET
ACC Accumulator E0 H E7 E6 E5 E4 E3 E2 E1 E0 00 H
ADCH A/D converter High C6 H A/D.9 A/D.8 A/D.7 A/D.6 A/D.5 A/D.4 A/D.3 A/D.2 xxxxxxxx B
ADCON A/D control C5 H A/D.1 A/D.0 ADEX ADCI ADCS ADR2 ADR1 ADR0 xx000000 B
B B register F0 H F7 F6 F5 F4 F3 F2 F1 F0 00 H
CTCON Capture control EB H CTN3 CTP3 CTN2 CTP2 CNT1 CNP1 CNT0 CNP0 00 H
CTH3 Capture 3 High CF H xxxxxxxx B
CTH2 Capture 2 High CE H xxxxxxxx B
CTH1 Capture 1 High CD H xxxxxxxx B
CTH0 Capture 0 High CC H xxxxxxxx B
CMH2 Compare 2 High CB H 00 H
CMH1 Compare 1 High CA H 00 H
CMH0 Compare 0 High C9 H 00 H
CTL3 Capture 3 Low AF H xxxxxxxx B
CTL2 Capture 2 Low AE H xxxxxxxx B
CTL1 Capture 1 Low AD H xxxxxxxx B
CTL0 Capture 0 Low AC H xxxxxxxx B
CML2 Compare 2 Low AB H 00 H
CML1 Compare 1 Low AA H 00 H
CML0 Compare 0 Low A9 H 00 H
DPTR:
DPH
Data pointer
Data pointer High

83 H

00 H
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 9
DPL Data pointer Low 82 H 00 H
IEN0 Interrupt enable 0 A8 H AF AE AD AC AB AA A9 A8 00 H
EA EAD ES1 ES0 ET1 EX1 ET0 ET1
IEN1 Interrupt enable 1 E8 H EF EE ED EC EB EA E9 E8 00 H
ET2 EMC2 EMC1 EMC0 ECT3 ECT2 ECT1 ECT0
IP0 Interrupt priority 0 B8 H BF BE BD BC BB BA B9 B8 x0000000 B
-- PAD PS1 PS0 PT1 PX1 PT0 PX0
IP1 Interrupt priority 1 F8 H FF FE FD FC FB FA F9 F8 00 H
PT2 PCM2 PCM1 PCM0 PCT3 PCT2 PCT1 PCT0
P5 Port 5 C4 H ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 xxxxxxxx B
P4 Port 4 C0 H C7 C6 C5 C4 C3 C2 C1 C0 FF H
CMT1 CMT0 MSR5 MSR4 MSR3 MSR2 MSR1 MSR0
P3 Port 3 B0 H B7 B6 B5 B4 B3 B2 B1 B0 FF H
RD WR T1 T0 INT1 INT0 TXD RXD
P2 Port 2 A0 H A7 A6 A5 A4 A3 A2 A1 A0 FF H
A15 A14 A13 A12 A11 A10 A9 A8
P1 Port 1 90 H 97 96 95 94 93 92 91 90 FF H
SDA SCL RT2 T2 CT3I CT2I CT1I CT0I
P0 Port 0 80 H 87 86 85 84 83 82 81 80 FF H
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
PCON Power control 87 H SMOD -- -- WLE GF1 GF0 PD IDL 00xx0000 B
PSW Program status word D0 H D7 D6 D5 D4 D3 D2 D1 D0 00 H
CY AC F0 RS1 RS0 OV F1 P
PWMP PWM prescaler FE H 00 H
PWM1 PWM 1 register FD H 00 H
PWM0 PWM 0 register FC H 00 H
RTE Reset/toggle enable EF H TP47 TP46 RP45 RP44 RP43 RP42 RP41 RP40 00 H
SP Stack pointer 81 H 07 H
S0BUF Serial 0 data buffer 99 H
S0CON Serial 0 control 98 H 9F 9E 9D 9C 9B 9A 99 98 00 H
SM0 SM1 SM2 REN TB8 RB8 TI RI
S1ADR Serial 1 address DB H SLAVE ADDRESS GC 00 H
SIDAT Serial 1 data DA H 00 H
S1STA Serial 1 status D9 H SC4 SC3 SC3 SC1 SC0 0 0 0 F8 H
SICON Serial 1 control D8 H DF DE DD DC DB DA D9 D8 00 H
CR2 ENS1 STA STO SI AA CR1 CR0
STE Set enable EE H TG47 TG46 SP45 SP44 SP43 SP42 SP41 SP40 C0 H
TH1 Timer 1 High 8D H 00 H
TH0 Timer 0 High 8C H 00 H
TL1 Timer 1 Low 8B H 00 H
TL0 Timer 0 Low 8A H 00 H
TMH2 Timer 2 High ED H 00 H
TML2 Timer 2 Low EC H 00 H
TMOD Timer mode 89 H GATE C/T M1 M0 GATE C/T M1 M0 00 H
TCON Timer control 88 H 8F 8E 8D 8C 8B 8A 89 88 00 H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TM2CON Timer 2 control EA H T2IS1 T2IS0 T2ER T2B0 T2P1 T2P0 T2MS
1
T2MS
0
00 H
TM2IR T2 interrupt flag
register
C8 H CF CE CD CC CB CA C9 C8 00 H
T20V CMI2 CMI0 CMI0 CTI3 CTI2 CTI1 CTI0
T3 Timer 3 FF H 00 H

2.2 STRUCTURA I LUCRUL CU PORTURILE DE INTRARE-IEIRE

1 11UL1 Z.Z L>1L j1L/L111 >11LL1L1 11L1LLL111L11L1-L1L1 \VZ. `L11111L 111L
LL1111L 1L jL11L111L1 >L11 j1L/L111L 11 LL1L LL L11L/ .
S
I
S
T
E
M

D
E

D
E
Z
V
O
L
T
A
R
E

C
U

M
I
C
R
O
C
O
N
T
R
O
L
L
E
R

8
0
C
5
5
2

1
0


Timer 0
Timer 1
(16 bit)
Serial
UART
Port
8 bit
Port
Four
16 bit
Capture
Latches
Timer
T2
Watchdog
Timer
T3
16 bit
Comparators
with
Registers
Comparator
Outputs
Selection
UCP
Program
Memory
(8kytes)
Data
Memory
(256 bytes)
Dual
PWM
MUX
&
ADC
I C
BUS
2
8051 Core
without ROM/RAM
T0 T1 INT0 INT1 PWM0 PWM1 SDA SCL
8 bit Internal BUS
P0 P1 P2 P3 TxD RxD T2 RT2 P4 RST EW CMSR0 .. CMSR5
CMT0, CMT1
CT0I .. CT3I
ADC0
..
ADC7 STADC
Reference
XTAL1
XTAL2
EA
PSEN
RD
WR
ALE
Parallel I/O
Ports
&
External Bus
AD0..AD7
A8..A15
ALTERNATIVE FUNCTIONS OF PORT P0 ALTERNATIVE FUNCTIONS OF PORT P1 ALTERNATIVE FUNCTIONS OF PORT P2
ALTERNATIVE FUNCTIONS OF PORT P4 ALTERNATIVE FUNCTIONS OF PORT P3 ALTERNATIVE FUNCTIONS OF PORT P5

F
i
g
u
r
a

2
.
2

-

S
t
r
u
c
t
u
r
a

m
i
c
r
o
c
o
n
t
r
o
l
l
e
r
-
u
l
u
i

8
0
C
5
5
2
.

SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 11
Portul P
0
- L>1L L1 jL11 11L11LL 1L11 LL L1L1 11 UL1 LL 11 1. L >L >L11L 11 L1
tr1/1>1L1L1 LL 1L>11L L>1L 11LL1 >1 1L>11L L>1L 11 >11L LL 11jLL1 11L1L1 . n cazul folosirii
unei memorii externe (de program - ROM sau de date - RAM), pinii portului P
0
sunt
1L111j1L? 1 1111L LL1L1L1 111L11L1 LL L1L> A
0
A
7
>1 LL1L1L1 LL L1L L1111 >L >L11> L11 >L 11
1L1L11L. L1L 11 LLL>1 >1 1 11NL1 LL j11 L
0.0
P
0.7
.
Portul P
1
- L>1L L1 jL11 11L11LL 1L11 LL 11 1. 1111
1.0
P
1.5
>L11 j1LN /L 1 LL 1L/1>1L1
111L11 LL jL11-Lj. 11 11 11
1.6
>1
1.7
sunt cu drena n gol. Pinii acestL1 jL11 jL1 11LLj1111 >1
L11 1L1L1L 1L1L 11 11L1111NL.
P
1.0
P
1.3
jL1 11 >1 V\1VO1. L1L >L111L LL 11111L jL111L 1L1jL11/1L1L1
2
n
1LLL1 Lj1L1 NL/1 1L1L 1L11L 111L1-ului T
2
);
P
1.4
jL1L 11 >1 11111L L?1L11 LL 1L1 11L 1L1jL11/1L1L1L1
2
. 1L111 L111
2
;
P
1.5
jL1L 11 >1 11111L LL 1L>L1 1L1jL11/1L1L1L1
2
. L1L T
2
;
P
1.6
jL1L 11 `V. L1L >L111 LL LL> jL111L 111L11 >L111 `1V
1
;
P
1.7
jL1L 11 `/. L1L 1111 LL L1L 111L11L L1 >L111L `1V
1
.
Portul P
2
- este un port de 8 b1 1. 11L11LL 1L11. LL 1L/1>1L1 L 111L11L LL jL11-up. n
L/L1 L1L> 111 L1L1 1L1L111 L?1L11L. LL1 11L LL1L1L1 >LjL11L1 1 L1L>L1 /
8
A
15
.
Portul P
3
- L>1L L1 jL11 11L11LL 1L11 LL 11 1. LL 1L/1>1L1 L 111L11L LL jL11-up.
/11L1111N j1111 > 1 jL1 11LLj1111 L11 1L1L1L 1L1L 11.
P
3.0
jL1L 11 T?. L1L 11111L LL L1L jL111L 111L11 >L111 . 1L11 LLj1L?. `1V
0
;
P
3.1
jL1L 11 ?. L1L 1L>11L LL L1L jL111L `1V
0
;
P
3.2
poate fi INT0\. L1L j111 1111L1LjL1L L?1L11 .
P
3.3
poate fi INT
1
\. L1L LLL 1111L1LjL1L L?1L11 .
P
3.4
poate fi T
0
. L1L 11111L LL 1L1 11L L?1L11 jL111L 1L1jL11/1L1L1
0
;
P
3.5
poate fi T
1
. L1L 11111L LL 1L1 11L L?1L11 jL111L 1L1jL11/1L1L1
1
;
P
3.6
poate fi WR\. L1L >L111L1 LL LL11L >L11L111 11 1L1L11 LL L1L T/1
L?1L11 .
P
3.7
poate fi RD\. L1L >L111L1 LL LL11L L111111 L11 1L1L11 L?1L11 LL L1L
(RAM).
Portul P
4
- L>1L L1 jL11 11L11LL 1L11 LL 11 1. LL 1L/1>1L1 L 111L11L LL jL11-up.
Portul P
5
- L>1L L1 jL11 LL 11 1 1L11 LL 11111L. 1111 LL>1L1 jL11 jL1 11 >1
ADC
0
ADC
7
. L1L L11L 11LU1LL LL 11111L 1L LL1NL11L1L1L1 11LU1L-numeric
incorporat.
2SHUD LXQHD GH FLWLUH-modificare-scrire la un port. \1L1L 11>11LL 1L11 L1L L11L>L L1
jL11. L11L>L 1LU1>1L1 jL111L 1L1L 11 >jLL11L LL1L>jL1/ 1L1. 11 11L1L L11L>L L11LL1 >11L 1
1L1L11L1 1L>jLL11N j11L1L1. 11>1LL 1L111L L1L L11L>L 1LU1>11L1 >L11 LL1L L1L L11L>L L
N1L1L jL L1L LNL11L1 L 1LL111L >1 jL1 L >L11L L11 1LL 11 1LU1>11L. /LL>1L >L 1L1L>L
11>11LL 1L11 L11L>1L-1LL111L ->L11L. \11 1L1L1L 11>11LL 1L11 L 1L1L/ >Lj1 1LU1>11L1L1
jL111L 1L1L 11 >jLL11L LL1L>jL1/ 1L1. 1L1L1 L1L 11 L1L j1L 1L1L1L L1L1 jL11 LL 11111L-
1L>11L. /i. VT. .T. JV. V. 1iV. V. JiZ. 1V ...V >L11L 11 111L1 1
portului X transportul (CARRY), CLR PX.Y (scrie 0 n bitul Y al portului X), SET PX.Y
>L11L 11 111L1 1 jL11L1L1 .. iL L>1L 1L11L LN1LL11 L L1111L1L O 11>11LL 1L11 LL 11 >L>
>L11 LL 11jL1 L11L>1L-1LL111L ->L11L. L1 L1L >L11 LLL1LLL L?LLL 1 1L1 LL1>1 11 L1111L
tuturor celor 11 1 1 1LU1>11L1L1. 1LL111L1L LL1L>jL1/ 1L1L 111L1L1 LL111 >1 1L>L11L1L
1L/L111L1L1 11 1LU1>11L. /LL>1 1LL1L >L 1L11/L/ >11L1. jL111L L . LL >-ar citi valoarea
>L111L1L1 1 j11 L1L LL 1j1 1Lj1L/111 N1L1L 111L1L1 LL1L>jL1/ 1L1 1 1LU1>11L1L1 jL111L
1L1L 11 >jLL11L >LL11 jL11L1L1. L11 LL/ L11LL11L1L1 LL11L1L 11NL1L1 LL 1L1>1L1L 1 jL1L
> 1L 11L LL1 LL1L>jL1/ 1L1 LL L?L1j1L LL j11L1 LL11L 11 1/ L1 111/11L1 L1L 1L
L111L1L1 1 1> . 11 111L1 LL1L>jL1/ 1L1 L11 1LU1>11L 1 11 . 1L1>1L1L jL j11 1 11 LU1 LL
1L1>1L1L L1L1 |L1L 1L11 pn jL111/1 L11LL1. L1L \.!-\. NL1 1. L1L LN1LL11 1L L>1L L1 11NL1
LL1L>jL1/ 1L1 1L1 .

SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 12
2.2.1 PROGRAMAREA I UTILIZAREA TEMPORIZATOARELOR

/> LL1 >- >jL> 11 j1U11L1 1L111N 1 1LU1>11L1L jL111L 1L1L 11 >jLL11L.
11L1Lj1LLL>L1L1 \Z 1L H 1LU1>11L 1L1jL11/1L1L / 1L1 1 1L1L. 1L >L11 LL>L11>L 11
continuare.
Temporizatorul 0 >1 temporizatorul 1 /11L1L jL1 11 LL111UL11L > 1L1L 1L1L/L L
1L1jL11/1L1L >L L 1L1 1 1L1L LL LNL111L11L. VL111UL11L L>1L 1L11/1 LL |L1L1L1
1LU1>11L1L1 LL LL111L1 1LLL1L1 1V L1 1L L1L> L11LL1 `. > LL1 L>1L 11L1L1 11
jos:

(MSB) (LSB)
gate C/T M
1
M
0
gate C/T M
1
M
0

Temporizator 0 Temporizator 1

unde:
gate - 1L1jL11/1L1L1/1L1 1 1L1L1 ? L>1L L11N1 1L11 LL 111L1 T
x
din
1LU1>11L1 LL LL111L1 VVi 1L N1L1L >1 LL>1 111 1L N1L1L \ >L
semnalul de pe pinul INT
x
/ are valoarea 1 (vezi portul de intrare-1L>11L
3
);
C/T - cnd acest bit are valoarea 0 regist1L1 1L1L 1L1L/ L 1L1jL11/1L1. 11
>L111L1 LL 1L1 11L L>1L L1 LL L>L111L1L1 11L1Lj1LLL>L1L1L1 L1N1/1 LL Z. L1L
>11L1 11L1L1L11L/ 1LU1>11L1 LL1L>jL1/ 1L1 1 11LL1L L1L1L 1>11 . L LL>1 111
1L N1L1L 1LU1>11L1 1L1L 1L1L/ L 1L1 1 1L1. 1111L 11L1L1L111 1 11LL1L
111/1 1L L11 \ 11 >L111L1L1 LL jL j11L1
0
sau T
1
(vezi portul de intrare
1L>11L
3
. `L111L1 LL jL LL>1 j11 L>1L 1L>11 L L1 jL111L 11LL1L L1L1L 1>11 11
starea S
5
faza P
2
a ciclu1L1. L1 1L1 1 1L1L1 L>1L efectiv incrementat abia n starea
S
3
faza P
1
L1L1L1L1 L11 1L1 LL1L1L1 L1L LL1LL11 111/1 1 -0 a semnalului T
1
. De
LLL 11LLNL1 1?11 LL 1L1 11L L>1L /ZH L11 11LLNL1 L>L111L1L1L1
11L1Lj1LLL>L1L1L1. L111L jL1L 11 LL1LL11 111/1 1. >L111L1 11L1L1L > >1L 11
\ L LL11 LL1 jL 11 LU1 LL L1L1L1L1 1>11 L1L Z jL11LLL 1L
oscilatorului);
M
1
, M
0
- >L1LL1L/ L1L1 L1L1 L11 LL1L j11L 1LLL11 jL>1111L LL LjL11L LL>L11>L 11
continuare.
Modul 0. Este atunci cnd M
1
\ >1 1
0
=0. El este identic pentru ambele
temporizatoare. 1 LL>1 1LL LL1L LLL 1L1 1 1L1L jL 11 1
x
>1
x
sunt
LL1LL11L 11 L>LL . L1
x
1L1L 1L1L/ L L1 1L1 1 1L1 jL L11L1 11 1 LLL1
un divizor cu 32), folosindu->L 1L11 j11111 11 1 1 LL>1L1. V1L
1L1 1 1L1L1 11LLL L11 >11L 11 L1L 1L 1 11 11 >L11 jL 11 >11L L1L 1L 1 11 11
>L11 jL /L1L. >L >L1L/ 11L1L1L1L1 LL 1111L1LjL1L
x
din registrul de control
TCON (TCON.7 pentru TF
1
>1 VVi. jL111L
0
);
Modul 1. Este atunci cnd M
1
\ >1 1
0
=1. Este identic cu modul 0, doar
L
x
>L 1L1L>L>1L L 1L1 1 1L1 jL 11 1 >L L1 11L LLL1 L1 1L1 1 1L1 jL !
11 1. 1 L>1L 1LL111L jL111L 1L1jL11/1L1L1L \ >1 .
Modul 2. Este atunci cnd M
1
>1 1
0
=0. Este identic pentru ambele
temporizatoare. 1 LL>1 1LL >L 1L1L>L>1L 1L11 1LU1>11L1
x
L L1 1L1 1 1L1
jL 11 1 LL 1L11L 1L1L L1L11 . VL1 11L1L1 LL>1L1 11LLL L11 11 \\. >L
>L1L/
x
>1 >L 11L1L 11
x
LL1 11L1L1 1L1
x
. 1 1 11 1LL11 LL1 11L1L1
lui TH
x
. TH
x
poate fi ncarcat prin program;
Modul 3. Este atunci cnd M
1
>1 1
0
=1. n acest mod temporizatorul
1>1 Lj1L>1L 1L1 11L. LL1>L1N1LL->1 LL1 11L1L1. >1L L >1 L1L T
1
ar fi
LU1 LL \. L1jL11/1L1L1 \ 1LL 1L1L/ L LLL 1L1 1 1L1L LL 11 1
independente. TH
0
este incrementat de semnalul oscilatorului microproceso-
1L1L1 L1N1/1 LL Z. LL T
1
. 11LLL1L LL1 11L1L1L1 1L1 LL 1 N1L1L
la 00H este setat TF
1
. TL
0
poate fi incrementat fie de semnalul de la oscilator
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 13
LL V/\. 11L LL >L111L1 j11L1 1a pinul T
1
LL V/. 11Lrementarea are
1LL LL T
1
>1 U1L\ >L 1i
0
/. >L11111L LL1 11L1L1L1 LL 1
valoarea FFH la 00H este setat TF
0
.
L1L 1L11L LL1L1 LLL 1L1jL11/1L1L L>1L LL111L11 LL 1LU1>11L1 VVi.
VL111UL1 1 LL>1L1 L>1L L1 11 continuare:

(MSB) (LSB)
TF
1
TR
1
TF
0
TR
0
IE
1
IT
1
IE
0
IT
0


TF
1
>1 TF
0
>L11 >L11L > LL1 >- 1 11 11 >L>. >1 >L11 1L>L11L j111 hardware
1L1L1 j1LLL>L1L1 1111 11 1L111 LL 1111L1LjL1L.
TR
1
>1 TR
0
11111 L1L >L11 LU1L LL \ >L jL1111 1L1 11L L1L >L11 LU1L LL
1L1jL11/1L1L1L1 LL1L>jL1/ 1L1. `L11 >L11L >L 1L>L11L j111 j1LU11.

2.2.2 INTERFA $6(5,$/ 6,2
0


/LL>1 L>1L L 111L11 1L11-LLj1L?. L1L jL1L 111>111L >1 1LLLj 1L1 L1L >11L111.
Are buffer 1 1LLLj 1L. LLL1 jL1L 11LLjL 1LLLj1L11L L1L1 1LL LL1L1 LL L1L 1111L L LL1 LL|
1LLLj 1L11 > 11L j1L1L1. /> LL1 >- 1L1 1L11 11 j1U11L1 1L1L111L1 1 1LU1>11L1L LL 1L1L 11
>jLL11L NL/1 1LU1>11L1 `\. L >L11L1L 11 `\ 11L1L 1LU1>11L1 jL111L 111>11>1 L1L1L1.
iar citirea din SBUF se face d11 1LU1>11L1 LL 1LLLj 1L L1L1L1. >Lj11 11/1L LL LL1 111>11>1L.
111L11 >L111 `1V
0
jL1L 1LL1 11 H 1LLL11 jL>1111L. /LL>1L >L11 L11 1L1L1L.
Modul 0. Este atunci cnd SM
0
\ >1 `1
1
\ 11 11 1L>jLL11N ! L11 1LU1>11L1 LL
LL111L1 1 111L11L L1 `VVi - L1L1 L11 1LU1>11L1L jL111L 1L1L 11 >jLL11L. n acest mod
111L11 >L111 1L1L 1L1L/ >L11LLj1L?. `L 111>111 L1L 11 1. L 1111 T?
3.0
) se
L111 >1 >L 1LLLj 1L1L/ L1L. `L111L1 LL LL> 1 111>11>1L1/1LLLj 1L1 >L 111>11-
1L/1LLLj 1L1L/ je linia TxD (P
3.1
. 11>11>1 L>1L 111 11 j111 >L11L1L L1L1 LL1L1 LL
L1L 11 1LU1>11L1 `\. VL>L1 jL111L 111>11>1L 1L L 11LLNL1 LU1 LL /Z L11
11LLNL1 L>L111L1L1L1. >11>11L1 111>11>1L1 LL1L1 11 1 LL L1L >L >L1L/ 111L1 LL
1111L1LjL1L 1 111L1 L11 `VVi. L1L jL1 11L1L1L >1L1> j111 j1LU11. TLLLj 1 L>1L
N11L1 1L1L1 L1L 111L1 Ti 111L1 H L11 `VVi L>1L L1 L>1L >L11 >1 1L>L11 j111
j1LU11 >1 111L1 LL 1111L1LjL1L jL111L 1LLLj 1L T1 111L1 \ L11 `VVi L>1L \ L1 L>1L
treLL1 11 1 >11>11L1 1LLLj 1L1 111 LL1L1 11 1 LL L1L >1 11L1L1L 11LLL1 11 /L1L j111
j1LU11. 1L1L >L11 L11>L 11LLj1L LL 111L1 LL1 11 jL 11 >L11111L11N.
Modul 1. Este atunci cnd SM
0
\ >1 `1
1
=1. n acest mod transmisia este
>11L1L1 jL \ 11 1. L1 111 LL >111 N1L N1L1L \. 11 1 LL L1L j111L1 L>1L LL1 11
jL 11 >L11111L11N >1 L1 111 LL >1Lj N1L N1L1L . 1L1L >L11 L11>L jL 1111 ?
>1 1LLLj 1L11L jL 1111 T?. TLLLj 1 L>1L 111 11 1 LL1LL11L L1L1 111/1 11 L11 11 \
a linie1 T?. LL 111L1 Ti. VL1L1L1 LL L1L L>1L 11L 1L1 11 `\. 11 111L1 LL
>1Lj L>1L 1111LLL> 11 T L1L 111L1 Z L11 `VVi >1 jL/1 1L1L/ 11 111L1 LL
1111L1LjL1L jL111L 1LLLj 1L T1 L1>LL11 1 1LLL1 /L1L LL LL>1 L1 \. >1 LL `1
2
=0
111L1 L11 `VVi. >L11 >L 1L>L11 j111 j1LU11 >L 111L1 LL >1Lj 1LLLj 1L11 L>1L .
T1 111>11>1L1 L>1L L1 LL >L111L1 LL LLj >11L 1 1L1jL11/1L1L1L1 .
11>11>1 L>1L 111 11 j111 >L11L1L L1L1 LL1L1 LL L1L 11 `\. n momentul
transmisiei bitulL1 LL >1Lj >L jL/1 1L1L/ 11 111L1 LL 1111L1LjL1L 1 111>11>1L `1.
TLLLj 1 L>1L 111 11 11 L11 LL1LL 1L1 L1L1 111/1 11 -0 pe linia RxD.
Modul 2. Este atunci cnd SM
0
>1 `1
1
=0. n acest mod tramsmisia este full
duplex, a>11L1L1 . LL 11 1 111>11>1 jL 1111 ? >1 1LLLj 1L1 1 jL 1111 T?.
>11L1. L1 111 LL >111 LU1 LL \. 11 1 LL L1L j111L1 L>1L LL1 11 jL 11 >L11111L11N.
L1 1 1LL1L 111 LL L1L j1LU11111 >1 L1 111 LL >1Lj LU1 LL . VL1 LL 1 1LL1L 111 LL
date n cazul transmisiL1 1Lj1L/111 LL1 11L1L1 1L1 111L1 O L11 `VVi. 11 11 L/L1
1LLLj 1L1 L>1L 1111LLL> 11 T
8
. 11>11>1 L>1L 111 11 j111 >L11L1L L1L1 LL1L1 LL L1L
n SBUF. 1 111jL1 111>11>1L1 111L1L1 LL >1Lj L>1L >L11 1. TLLLj 1 L>1L 1LL111L LL
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 14
LL L11 1LLL1 . 1L11 L 11 T
8
>L 1111LLLLL 1 1LL 1L 111 LL L1L. 1L 1L1L
L1L1L1 1LLLj 1L11L 11 `\ >1 T
8
>1 >L11L 1L1 T1 L>1L N11L1 1L11 LL T1\ >1.
SM
2
\ >L 1 1LL 1L 111 LL L1L L>1L . /111L1 LL1L1L1 LL L1L 1LLLj 1L11 >L j1L1LL.
Rata de tran>11>1L jL1L /OZ L11 11LLNL1 L>L111L1L1L1 LL `1V 111L1 L11
1LU1>11L1 jL111L 1L1L 11 >jLL11L VVi >L /!H L11 11LLNL1 LL>1L1 LL `1V\.
Modul 3. Este atunci cnd SM
0
>1 `1
0
=1. El este identic cu modul 2, cu
>11UL1 LLL>L111L L 11 111>11>1L1 LL >L111L1 LL LLj >11L
1
al timerului T
1
.

OBSERVA IE: 1 L/L1 1LLL111L1 >1 O L1L L>1L 1L1L>11 1L1jL11/1L1L1 jL111L
11?1L 11L1 LL 111>11>1L. 1111L1LjL1L LL>1L1 11L1L1L LL/L11N1 . 1 jL1L 11 1L1L>11 L
temporizator sau num 1 1L1 11 L11L1L L11 LL1L O 1LLL11 jL>1111L LL 1L1L 1L11L. L
L11LL1 L>1L 1L1L>11 L 1L1jL11/1L1 11 1LLL1 Z LL L1L11L 1L1L. n acest caz rata de
111>11>1L >L L1LL1L/ LL 1L11L1.

( ) [ ]
2
32 12 256 1
SMOD
OSC
f
TH


(2.1)

2.2.3 PRINCIPIUL DE FUNC IONARE AL INTERFE EI I
2
C

L111L L?j1L1 >1111111 11L L1L L?1>1 11 j1L1LL1L1L >1 LL11j1L11L1L j1L1LL11L LL
L1NL1>1 L1111/1L11. L >1 jL111L 1?111/1L L11L1L1 L1 hardware-L1L1 >1 jL111L >11j1111L1L
j1L1LL1 111 L11LL11L1L1. 1L>1 LL/NL111 L 1U1>111 11L11LL 1L11 jL LLL 111L. LL >LLjL1
L11L1L111/ 111 LL111L1L1L1 111L1LL1LL1 111 L11LL11L1L1 111LU11L. /LL>1 1U1>111 >L 1L1L>1L
INTER IC sau I
2
C. 1 j1L/L11. LL>1 1U1>111 jL1111L LLj11L 11 1L11 LL \ LL
11jL11 LL L11LL11L 111LU11L. 1L11/1L 11 1L11L1LU1L V1V` >L 11jL11 . 1L11/1L 1L1L 11 11
domeniul controlului inteligent, a circuitelor integrate de uz dedicat (driver-L jL111L 11>|L LL
cristale lichide, porturi de intrare-1L>11L. 1L1L111 T/1 >1 TV1. LL1NL11L1L >1
circuitelor orientate jL j11L 11 j1LLL>1L LL >L111L jL111L >1>1L1L 1L1L >1 N1LLL.
generatoare DTFM pentru telefoane, etc.). Toate circuitele compatibile I
2
C 11LL1jL1L/ L
111L11 L1L jL1111L 111L1LL1L11L 1 1j1L j111 111L11LL1L1 LL>1L1 11j LL 1U1>111 .
Dintre caracteristicile generale ale magistralei I
2
C jL1L1 1L1 1L1.
1U1>111 LL1 11L LL1 LLL 11111. L 1111L >L111 LL L1L SDA >1 L 1111L LL
clock serial (SCL);
11LL1L L1>jL/111N LL1LL11 1 1U1>111 L>1L >L1L>111 j111 software, avnd
L L1L> L11L . jL magistrala I
2
C >L 1111L>1 . 1 L11LL 1L1L11 LL 111j. L
1L1 1L LL 11j 1>1L1-slave;
magistrala I
2
C L>1L L 1U1>111 1L111-1>1L1. 11L1L/1L LL1LL 1 LL1111L-
1L1L1 >1 111111L LL>1L1. jL111L j1LNL11 11L11L 111L11 1L1 LL LLL
>L 11 1L11L L1>jL/111NL 1>1L1 111 1/ 111>1L1L11 >11L111L.
111>1L1L111L 11L11LL 1L11L LL L1L. LL 1L1U111 LL 11 1. jL1 11 L1LL1L1L LL
11L LL 111>1L1 LL \\ b11 1 jL >LLL1L . 11 1LLL1 >11L1L. >L LL 1?11
H\\ b11 1 jL >LLL1L . n modul rapid;
rejectarea impul>L111L1 >LL11L. j1/11L. LL jL 1U1>111 . L>1L >1UL11 LL
L11LL11L1L LL 111111L 11j1L1L111L 11 11LL1L L1>jL/111N LLj11 1 1U1>111 .
TL|LL 1 LL>1L1 11jL1>L11 >1UL1 j >111L 111LU111 11 L1L1L1.
1L1 1L1 LL L1>jL/111NL LLj1111L jL LLL>1 1U1>111 I
2
C este limitat doar
LL LjL111L 1?11 >LjL111 LL LL>1 >1 L1L L>1L LL H\\ j.
Circuitele integrate compatibile cu magistrala I
2
C jL1111 LL/NL111L 1j1L
j1L1LL1 111 LL 1 L >L1L1 11LL 1L1L 1L11 1 j1L1L11j. >1UL11L j1L1LL11 11L1 L >L11L 1111LU
de avantaje:
>11LL1L1 L?11L1 LL >11j1 1U1>111L1 Z 111L 111111/L/ 111L1LL-
nexiunile cu exteriorul;
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 15
protocolul complet integrat al magistralei I
2
C elimin 1L1L>1111 LLLLL111L-
1L1L1L1 LL L1L>L >1 a unei logici externe, suplimentare;
capabilit 11L LL 1L1111>1L1 1L 1U1>111L1 I
2
C permite testarea rapid >1
alinierea utilizatorilor, prin utilizarea unor conexiuni externe, la un sistem
de calcul;
disponibilitatea circuitelor integrate I
2
C sub amprente de tip SO (Small
Outline), VSO (Very Small OL1111L >1 DIL (Dual In Line) reduce
necesit 11L LL >j 1L.

2.2.3.1 SPECIFICA IILE INTERFE EI I
2
C

L111L j11L 11 LL LL111L1 11LL>1111 jL 11 1. L1L 1LLL>11 utilizarea unor microcon-
troller-e, pot fi stabilite a priori anumite criterii de proiectare:
L1 >11L1 LL >1>1L1 L>1L LL1jL> L11 LL1 jL 11 L1 11L1LLL111L11L1 >1 L11 11L
L1>jL/111NL jL111L11LL. L LL j11L 1L1L111 >1 L11LL11L LL 11111L-1L>11L.
criteriul principal de proiectare const n minimizarea costului de interco-
nectare a diferitL1L1 L1>jL/111NL L11 LL1jL1L1 >1>1L1L1L1.
un sistem care asigur L 1L1L 1L LL 1LU11L LL111L1 1111-un proces nu
1LLL>11 rate mari ale transferurilor de date;
L11L1L1 U1L11 a sistemului depinde de natura circuitelor L1111/1L >1 LL
structura magistralei de interconectare a acestora.
Pentru a satisface aceste criterii, este necesar L1111/1L L1L1 1U1>111L >L111L. L1L
LL>1 1L jL1111L 11L LL 111>1L1 111L11 111L1 11 LL 111 L L 1U1>111 de interconectare
de tip paralel, asigur minimizarea num 1L1L1 111L1L1 >1 j1111L1 LL 111L1LL1LL11L 1111L L1NL1>L1L
circuite utilizate n proiect.
Dispozitivele care intercomunic prin intermediul unei magistrale seriale necesit
utilizarea unor protocoale care au rolul de L11111 L1L111L. j1L1LL111L LL 111L11 11 >1
LL1111L1L1L jL 1U1>111 >1 LL >L1L1L. jL>1111111L L L1L1L L1>jL/111NL 1j1LL > poat
comunica cu dispozitive lente. Este necesar ca sistemul s poat 1L1L 1L1 11LLjL1LL11 LL
1L1 rul de dispozitive nglobate n structura sa, sau cu alte cuvinte, ad ugarea de dipozitive
n structura sistemului s 1L 1LL1L/L 1L1L 1L11L LL>1L1.

2.2.3.2 CONCEPTUL DE MAGISTRAL I
2
C

Magistrala I
2
C permite cuplarea unor circuite compatibile n structura sistemului,
indiferent dL 1L11L1LU1 LL 1111L 1L LL>1L1. i1V`. V1V` >L 11jL11 . Magistrala
const n dou linii: o linie serial de date (SDA >1 L 1111L LL LL> >L111 SCL), ce
manipuleaz 111L11 111L 1111L L11L1L LLL dispozitive cuplate la magistral . Orice dispozitiv
este recunoscut prin intermediul unei adrese unice asociate, indiferent dac L>1L NL11 LL L1
11L1Lj1LLL>L1. L1>j1N LL L11>11L 11L11LL. 111L11 de tastatur . L1L.. >1 jL1L 1L1L 1L1 L
L11 1L1 >L 1LLLj1L1. LLj11/1L LL 1L1L 1 1L11/1 de acesta. O clasificare suplimentar a
dispozitivelor cuplate la magistrala I
2
C const n dispozitive master, respectiv slave. Un
dispozitiv master L>1L LL1 L1L jL1L 111 1 L1 111>1L1 LL L1L jL 1U1>111 >1 L1L
UL1L1L/ semnalul de ceas ce coordoneaz transferul. n tot acest timp, orice alt dispozitiv
adresat este privit ca slave.
Magistrala I
2
C este o magistral de tip multi-master. Aceasta nseamn c mai multe
dispozitice care pot controla magistrala pot fi cuplate la aceasta. Posibilitatea de a cupla mai
mult de un dispozitiv master la magistral nseamn c mai mult de un singur dispozitiv poate
ncerca s ini 1L/L L1 111>1L1 jL 1U1>111 . 1 LL1>1 1L1L11 LL 111j. L111L >L LN11
LL>1 >11L 1L LL 11LL1111LL11L. 1L>1 L11L11 o procedur de arbitrare a priorit 11L1. 1/1
pe conectarea de tip `I-cablat a tuturor dispozitivelor la magistral . Semnalele de ceas pe
durata arbitr rii de priorit 1 1Lj1L/111 rezultatul sincroniz rii semnalelor de ceas generate de
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 16
cele dou dispozitive master j111 L1111/1L 1L1L 1L1 LL 11j `I-cablat a liniilor SCL. Generarea
semnalelor de ceas pe magistral revine ntotdeauna n sarcina dispozitivelor master; fiecare
dispozitiv master genereaz propriul s u semnal de ceas pe durata transferului de date pe
magistrala sistemului. Semnalele de ceas de pe magistral pot fi doar alterate doar dac un
dispozitiv slave lent for L/ linia de ceas la nivel logic LOW sau de un alt dispozitiv master,
pe durata arbitr rii priorit 111L1.
Ambele linii, SDA >1 SCL. >L11 11L11LL 1L11L >1 LL1LL11L j11111-L 1L/1>1L1 de pull-
up la tensiunea de alimentare. Atunci cnd magistrala este liber . 11L1L 11111 >L11 11 >11L
1V. 1|L1 LL 1L>11L 1 L1>jL/111NL1L1 LL1LL11 1 1U1>11 trebuie s fie de tip open-drain
sau open-collector jL111L >L 1L11/ 1L1L 1 `I-cablat. Pe magistrala I
2
C, transferurile de date
pot fi efectuate cu rate dL 1?11 \\ b11 1/> 11 1LLL1 >11L1L >L 1?11 H\\ b11 1/> 11
1LLL1 1j1L. iL1 rul de dispozitive cuplabile la magistrala I
2
C este limitat doar de
nc rcarea capacitiv (maxim 400 pF) a liniilor magistralei.

2.2.3.3 TRANSFERURILE PE MAGISTRALA I
2
C

Datorit diversit 11 1L11L1LU111L1 LL 11j1L1L111L L11LL11L1L1 LLj1111L 1 111111L
111L11L L1 I
2
C. 11NL1L1L 1LU1LL 1L >L11 11?1L >1 LLj11L LL N1L1L 1L1>1L111 LL 111L111L
DD
.
Pentru transferul fiec rui bit este generat cte un impuls de ceas.

2.2.3.3.1 VALIDITATEA DATELOR

Datele vehiculate pe linia SDA trebuie s fie stabile pe durata HIGH a impulsului de
ceas. Modific rile st rii liniei SDA trebuie s se produc doar atunci cnd semnalul de ceas
este LOW.

2.2.3.3.2 CONDI IILE START I STOP

Printre procedurile implementate pe magistrala I
2
C, situa 11 LL L?LLj 1L >L11
LL1>1LL11L LL1L1 111L LL `/T >1 `V.
V 111/1 1L L11 >11L 1V 11 >11L V 1111L1 SDA, pe durata c reia linia SCL
este HIGH, este interpretat L L LL1L1 1L LL `/T.
V 111/1 1L L11 >11L V 11 >11L 1V 1111L1 SDA, pe durata c reia linia SCL
este HIGH, este interpretat L L LL1L1 1L LL `V.
VL1L1 111L LL `/T >1 LL `V >L11 UL1L11L 111L1LLL1 LL L1 L1>jL/111N master.
Dup UL1L11L L1L1 LL1L1 11 LL `/T >L LL1>1LL1 c magistrala este ocupat . Magistrala
este considerat din nou ca fiind neutilizat dup j11 1 L1L1 LL1L1 11 LL `V.
L1LL11L LL1L1 111L1 LL `/T > L1 LL `V LL L tre dispozitivele slave cuplate la
magistral este foarte facil dac acestea nglobeaz hardware-L1 >jLL111/1 LL 111L11 1L.
Pentru dispozitivele care nu dispun de acest hardware specializat, se impune ca linia SDA s
11L L>111L11 de dou ori pe durata unei perioade de ceas, pentru ca aceast 111/1 1L > poat
fi detectat .

2.2.3.3.3 TRANSFERURILE DE DATE PE MAGISTRAL

a) Transferurile de date sub form de cuvnt
Orice cuvnt de date transferat pe magistral trebuie s aib 1L1U11L LL 11 1. n
schimb, num 1L1 LL LL1L 1 LL jL1 11 111>1L1 1 jL 1111 SDA este practic nelimitat. Fiecare
octet transferat trebuie s fie urmat de un bit de confirmare (acknowledge). Transferurile de
date ncep ntotdeauna cu bitul cel mai semnificativ al octetului respectiv. Dac L1 L1>jL/111N
1LLLj1L1 1L jL1L LLLj1 L1 11 LL1L1 LL L1L 11111L LL 1L11/ L 1L1L 1L >jLL11 cum ar fi
de pild tratare L1L1 1111L1LjL11 111L11L. LL>1 jL1L 1L1 1111 LL LL>. SCL, la nivel LOW
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 17
jL111L 1L1 L L11 torul s intre n stare de WAIT. Transferul de date poate continua atunci
cnd receptorul elibereaz linia SCL.
n anumite cazuri, este posibil utilizarea unui alt format pentru transferul pe
magistral . Un mesaj care ncepe cu o astfel de adres jL1L 11 1L11111 j111 L1111/1L L1L1
LL1L1 11 LL `V. L111 11 111jL1 111>111L111 L1L1 LL1L1 LL 111L11 1L. n aceast >11L 1L 1L
>L UL1L1L/ bitul de confirmare.

b) Bitul de confirmare
Transferurile de date cu confirmare sunt obligatorii pentru a se asigura integritatea
datelor pe magistral . Semnalul de ceas asociat bitului de confirmare este generat de
dispozitivul master. Pe durata acestui impuls de ceas, disozitivul emitent elibereaz linia SDA
(nivelul acesteia este HIGH).
Dispozitivul de recep 1L 11L1L1L > 1L1 L/L 1111 SDA la nivel cobort pe durata
impulsului de ceas de confirmare, astfel acest nivel cobort s r mn stabil pe durata HIGH a
impulsului de ceas de confirmare.
1 1LL L11>1L11. L1 L1>jL/111N LL 1L11/L/ 1L1L 1 LL 1LLLj 1L 1Lsaj trebuie s emit
cte un semnal de confirmare dup 11LL1L LL1L1 1LLLj 1L11. /1L1L1 L1L L1 L1>jL/111N slave
LL 1L1L 1L LL 1LLLj 1L 1L LL11111 adresa asociat (de exemplu, ecest dispozitiv nu este
capabil s r spund deoarece efectueaz un set de ope1 11 11 111j 1L1. 1111 LL L1L 11L1L1L
1 sat neutilizat (HIGH) de c tre dispozitivul slave. n aceast >11L 1L. L1>jL/111NL1 master
jL1L UL1L1 L LL1L1 1L LL `V jL111L 1L1111 111>1L1L1. L dispozitivul slave ce
realizeaz 1L1L 1 LL 1LLLj 1L confirm adresa asociat L1 11 j1LLL>L1 LL 111>1L1 L1terior nu
11 jL1L 1LLLj 1L1 LL1L 1. L>1L. LL >L1L1L. 1LLL>1 L L1>jL/111NL1 master s termine
transferul. Acest fapt este indicat prin faptul c receptorul nu confirm 1LLLj 1L11L
L11 torului octet, las linia SDA pe nivel HIGH, iar dispozitivul master genereaz LL1L1 1 LL
STOP.
Dac n procesul de transfer este implicat un dispozitiv master ce realizeaz 1L1L 1 LL
1LLLj 1L. LL>1 L1>jL/111N 111L1L > >L1111/L/L >11>11L1 111>1L1L1L1 j111 1LLL111111L
L1111L1L1 LL1L1 1LLLj 1L11 LL 1 slave. Dispozitivul slave trebuie s elibereze linia SDA pentru
ca dispozitivul master s poat 111>111L L LL1L1 1L LL `V.

2.2.3.4 ARBITRAREA PRIORIT ILOR I GENERAREA CEASULUI

a) Sincronizarea pe magistrala I
2
C
Toate dispozitivele master genereaz propriul semnal de ceas pe linia SCL pentru a
transmite mesaje pe magistrala I
2
C. Datele sunt valide doar pe durata HIGH a impulsurilor de
LL>. 1L/L1 L1L1 >L111 LL LL> jL 1U1>111 este necesar pentru procedura de arbitrare
bit cu bit.
Sincronizarea ceasului este asigurat prin utilizarea conexiunii de tip `1-cablat a
111L11L L1L1 LL 1U1>111 la linia SCL. Aceasta nseamn c L 111/1 1L L11 1V 11 V jL
linia SCL va determina dispozitivele cuplate la magistral s 1>1 11LLj procesul de
contorizare a perioadelor LOW odat LL >L111L1 LL LL> 1 L1L1 L1>jL/111N LLNL111 V.
>L N 1L1 11L 1111 SCL n aceast stare pn >L111L1 LL LL> LLN11L L11 1LL 1V. L1L>1.
111/1 1 L11 >11L V 11 >11L 1VH nu va determina schimbarea st rii liniei de ceas dac
un alt semnal de ceas cuplat la linia de ceas a magistralei se afl n stare LOW. Durata ct
timp linia SCL N 11 1L1 11L1 n stare LOW va fi determinat de dispozitivul care este
caracterizat de cea mai mare durat a nivelului cobort al ceasului. Celelalte dispozitive,
caracterizate de o durat mai mic a palierului st rii LOW a semnalului de ceas, trec n stare
de WAIT cu semnalul de ceas la nivel ridicat.
Atunci cnd, toate dispozitivele, implicate n procesul de comunicare pe magistral , >1-
au ncheiat LL11L11/1L jL11LLL1 V >L111L1L1 LL LL>. 1111 1L>jLL11N va fi eliberat >1
va trece n stare HIGH. 1 LL>1 1LL. 1L NL1 11 L?1>1 L11L1L1 L 1111L >L111L1L LL LL> 1L
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 18
L1>jL/111NL1L1 >1 >11L 1111L LL LL> 1U1>111L1. 1L1L L1>jL/111NL1L 11LLj1LL->1
LL11L11/1L LL11L1L1 1V 1L >L111L1L1 LL LL>. 111L1 L1>jL/111N L1L 1>1 11L1L1L
jL11LL 1V >L111L1L1 LL LL> N 1L1 1111 SCL din nou la nivel LOW.
Semnalul de ceas de pe linia SCL este astfel sincronizat, avnd durata de nivel cobort
determinat de dispozitivul caracterizat de cea mai lung perioad V >L111L1L1 LL LL>
>1 LL11 LL 11NL1 11L1L1 LL1L11111 de dispozitivul caracterizat de cea mai scurt perioad
HIGH a semnalului de ceas.

b) Arbitrarea priorit 11L1
Un dispozitiv master jL1L 111 1 L1 111>1L1 LL L1L LL1 LL magistrala este liber .
Dou sau mai multe dispozitive master de magistral jL1 UL1L1 L LL1L1 1L LL `/T jL
LL11 111jL1L1 LL V L11 LL1L1 1 LL `/T. /111111L 1L 1LL j111 1ntermediul liniei de
date, SDA, pe durata ct linia de ceas, SCL, este pe nivel HIGH. Astfel, unul dintre
dispozitivele master transmite un nivel HIGH pe magistral , n timp ce cel 111. L1L 111>111L
L1 11NL1 V. 1>1 N LL/L11N L1|L1 LL 1L>11L LLL1Lce nivelul logic de pe magistral nu
corespunde cu nivelul logic transmis de c 11L LL>1. /111111L jL1L LL1111L jL111L 11
1L1 1 11 1. 111 L1j const 11 LL1j11L 11 11L1 LL L1L> . Dac dou dispozitive master
ncearc s L1L>L/L LL1>1 L1>jL/itiv slave, arbitrarea continu LL LL1j11L L1L1L1.
LL1LLL L1L>L1L >1 L1L1L >L11 L1111/1L jL111L 111111L 1U1>111L1. >L LL1>11 c nu exist
j1L1LL11 LL 111L11 1L jL 111111L 1U1>111L1 jL LL11 LL>1L1 j1LLL>.
Un dispozitiv master care pierde arbitrarea poate genera impulsuri de ceas pn la
ncheierea procesului de transmitere a octetului n cursul c ruia a pierdut arbitrarea.

2.2.4 IEIRILE MODULATE N DURAT

Microcontroller-ul 80C552 posed dou L11L LL 1L>11L 1LLL11L 11 LL11 . /LL>1L
1L>iri genereaz impulsuri ale c 1L1 LL11L >1 1L1L11 LL L1j1L1L jL1 11 j1LU111L. 1LLNL1
LL 1LjL11 1L 11jL1>L111L1 L>1L LL111L1111 j111 111L11LL1L1 1LU1>11L1L1 1.N1L
1L1U11L LL 11 1. ?j1L>1 11LLNL1 L1 11jL1>L111L1 LL 1L>11L L>1L L1 de urm 1L1L LLL 1L.

( )
f
f
PWMP
PWM
OSC
=
+ 2 1 255
(2.2)
Registrul PWMP asigur semnalul de ceas pentru un num r 1L1. 11 1LU1>11L1 1.
L1 >1 1L1 r 1L1L1 1111L LL1L1L jL111L 11L1L L11L LL 1L>11L. iL1 r 1L1L1 1L1L 1L1L/
1LLL1L Z. 1L1L LL 11 1 1L1 r torului este comparat cu dou 1LU1>11L. 1\ >1
1. >LL11L 11LL1L L1L L1L1 L11 LL 1L>11L. L LL1 11L1L1 LL>1L1 1LU1>11L L>1L 11
11L LLL1 N1L1L LL1L11 a num r 1L1L1L1. 1L1L1 >L111L1L LL 1L>11L >L11 1L1 1L 1 11NL1
cobort. n schimb, dac LL1 11L1L1 LL>1L1 1LU1>11L L>1L 11 11L. >L LL1 jL 11 LU1. LL
N1L1L LL1L11 a num r 1L1L1L1. 1L1L1 >L111L1L LL 1L>11L >L11 1L1 1L 1 11NL1 11L1L1 -
1V. V L111L. LL11L1L 11jL1>L111L1 LL 1L>11L >L11 LL1L11111L LL LL1 11L1L1 1LU1>11L1L1
1\ >1 1. LL1L111L >1 1LU1>11L LL j1L>L11L.
111 111LU11L >L111L1L1 LL 1 1L>1111L 1LLL11L 11 LL11 >L jL1L L1 11L L1
convertor digital-analog dual.
nc rcarea registrelor de prescalare cu valorile 00H sau FFH determin L 1L>1111L
L11L1L1 > r mn constante la nivel ridicat sau cobort.
Reprogramarea registrelor de prescalare determin modificarea imediat 1L>1111L1
1LLL11L. 1L1111L 1LNL1L > >L >1Lj1L j1 la terminarea perioadei curente.
L1L1L1 LL L1j1L1L 1 11jL1>L111L1 LL 1 1L>11L rezult ca fiind:
=

PWM
PWM 255
(2.3)

n figura 2.3 esteprezentat L1U11 1L1L 1L11 a celor dou L11L LL 1L>11L
1LLL11L 11 LL11 .
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 19


2.2.5 SEC IUNEA ANALOGIC A MICROCONTROLLER-ULUI

`LL 1L1L 11LU1L este reprezentat LL L1 1L111j1L?L1 11LU1L >1 LL L1 LL1NL11L1
analog-L1U111 LL j1L?11 11 >LLLL>1NL. LL 1L/L1L 1 LL \ 11 1. LL 1L111/L/ rezultatul n cod
binar direct (figura 2.4).
L1>1L1L LL 1L1L111 a convertorului analog-digital se aplic structurii prin
intermediul unui pin dedicat acestei manipul ri.
Un ciclu de conversie dureaz \ LL L1L111 1>11 , ceea ce nseamn aproximativ 50 s
jL111L 11LLNL1 LL>L1L1 LL .\`Z 1/. VLLL1 1111 LL 1L>11L 1u prezint discontinuit 1 11
1L1L 1 LL 111>1L1 LL1NL11L1L1L1 11LU-digital.
Att intr 111L 1L111j1L?L1L1L1 11LU1L. L1 >1 11111L LL1NL11L1L1L1 11LU-digital
LLLj1 tensiuni de intrare n gama (0 +5)V.
Conversia analog-digital este efectuat j111 1L1LL j1L?11 111L1 >LLLL>1NL. 11
figura 2.5 sunt reprezentate elementele componente ale convertorului analog-digital cu
j1L?11 11 >LLLL>1NL. `11LL1L1 LL1 11L L1 LL1NL11L1 L1U111-11LU1L /V L1L LL1NL11L>1L
LL1 11L1L1 1LU1>11L1L1 LL j1L?11 11 >LLLL>1NL 1111-o tensiune V
DAC
. Aceast tensiune este
comparat cu tensiunea de intrare, V
in
. 1L>11L LL1j11L1L1L1 L>1L 1L111/1 circuitului de
comand 1LU1>11L1L1 LL j1L?11 11 >LLLL>1NL. L1L LL111L1L/ 1L1L 1L11L LL>1L1.
O conversie este 111 11 prin setarea bitului ADCS (ADC Start) din registrul ADCON
(A/D Control). Acest bit poate fi modificat att prin software. L1 >1 j111 hardware sau
combinat.
LL11>1L L1L1 LL1NL1>11 11LU-digitale exclusiv prin mijloace software se poate
face doar atunci cnd bitul ADCON.5 (ADEX) este setat la 0; nceperea unui ciclu de
conversie se efectueaz j111 >L11L 111L1L1 LL LL111L1 /V`. 111 1L1L j111 >L11\1L L1L1
LL1NL1>11. LL>1 L>1L LL111 1 11LLjL1L1 L1L1L1L1 1>11 care urmeaz celui n care a fost
setat bitul ADCS.
LL11>1L L1L1 Lonversii analog-digitale prin mijloace combinate software-hardware
>L jL1L 1LL LL1 1L1L1 L1L 111L1 /VVi. . 111 1L1L L1L1 L1L1L LL LL1NL1>1L jL1L 11
L1LL1L1 fie la fel ca n cazul precedent, prin setarea bitului de start (ADCS), fie prin aplicarea
unui front cresc tor pinului extern STADC. n aceast ultim >11L 1L. 11L11L1 j11L1 11L1L1L
j1LLL11 LL L1 11NL1 1LU1L LL1L11. L1L > LL1L/L 11111L1 L1 L1L1L 1>11 , respectiv urmat
de un nive1 1LU1L 11L1L1. LL LL11 LL 11111L1 L1 L1L1L 1>11 . 11/1 1 j11L1 pinului
STADC este recunoscut 1 >11>11L1 L1L1L1L1 1>11 LL1L11. 11 LL1NL1>1 L>1L 111 11 la
nceputul urm 1L1L1L1 L1L1L 1>11 .
PWM0
PWM1
8-Bit Comparator
8-Bit Counter PWMP
Output Buffer
PWM0
PWM1
8-Bit Comparator Output Buffer 1:2
f
O S C
I
n
t
e
r
n
a
l

B
U
S

Figura 2.3 - Structura ieirilor modulate n durat.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 20
Urm toarele dou L1L1L11 1>11 sunt folosite pL111L 111 111/1L LL1NL11L1L1L1
analog-L1U111. >11>11L1 j111L1L1 L1L1L. >L L11L>1L 11L1L1L1L1 LL >11L /V`. LL
indicatorul este citit pe durata efectu rii unei conversii, rezultatul citirii acestui indicator
const 11 jL/1 1L11L LL>1L1 11 . >11>11L1 LL1L1 LL-1 LL11L L1L1L 1>11 11LLpe
L>111L11L >L111L1L1 LL 11111L.


Pe durata urm 1L1L1L1 L1L1L11 1>11 L>1L L>111L11 tensiunea de intrare aplicat
pinului, anterior selectat, al portului P
5
. Aceast tensiune trebuie s r mn stabil pe aceast
durat jL111L >L L1 11L L1 1L/L111 LL1LL1. `L L111L L N11L/ LL N11 1L 1L1>1L111
L>111L11L LL LL1 1L11 \/1>.
n continuare, se efectueaz conversia analog-digital propriu-zis . Aceasta se
desf >L1 prin setarea bitului cel mai semnificativ la 1, de c 11L L11LL11L1 LL LL111L1 1
1LU1>11L1L1 LL j1L?11 11 >LLLL>1NL. 1L>11L 1LU1>11L1L1 `/T L>1L LL1NL1111 ntr-o tensiune
propL1 1L11 >1 LL1j11 cu tensiunea de intrare. Dac aceasta este mai mare, bitul MSB
r mne setat la 1; n caz contrar, acest bit este resetat. Procesul continu n ordine invers
11jL111 L1 11 11L1. j1 L1L 1L 1 LL1 /LLL 11 1 L 1L>1 1L>1 1. n acest moment, rezultatul
LL1NL1>1L1 L>1L LL1 11L1 11 1LU1>11L LL j1L?11 11 >LLLL>1Ne.
`11>11L1 LL1NL1>1L1 11LU-L1U111L jL \ 11 1 L>1L >L1111/1 j111 >L11L 111L1L1
/V1 /VVi.H 11 LL1L1 1LU1>11L1L1 LL LL1L1/1 >1 >11L. VL1 11 >L11111L11N1 11 1 1
1L/L111L1L1 >L11 1L1L1 1 11 1LU1>11L1 /V. VL1 11 jL 11 >L11111L11N1 LL1 11 1 >L11
1L1L1 1 11 11 11 /VVi. >1 /VVi.! 1 1LU1>11L1L1 LL LL1L1/1 >1 >11L. \1111/1L1L1 jL1L
1U1L1 LL1 11 jL 11 >L11111L11N1 LL1 11 1 1 1L/L111L1L1 >1 jL1L L1111/ LL1 LL1 11
>L11111L11N1 11 1. 1L1L1 1 11 1LU1>11L1 /V.

ADCH ADCON
MUX
10-Bit A/D Converter
ADC0
ADC1
ADC6
ADC4
ADC5
ADC2
ADC7
ADC3
STADC
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
8
D
9
A
D
E
X
A
D
C
I
A
D
C
S
A
D
R
0
A
D
R
1
A
D
R
2
Internal Bus
AVREF- AVREF+ AVDD AVSS

Figura 2.4 - Seciunea analogic a microcontroller-ului 80C552.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 21

Figura 2.6 ilustreaz desf >L11L j1LLL>L1L1 LL LL1NL1>1L 11LU-L1U111 LL
j1L?11 11 >LLLL>1NL.
n oricL >11L 1L. LL11 L1L1 LL1NL1>11 L>1L LL \ L1L111 1>11 . 11L1 LL >11>11 LL
LL1NL1>1L. /V1. L>1L >L11. 11 111L1 LL >111 LL1NL1>1L. /V`. L>1L 1L>L11 LLj \ LL L1L1L11
1>11 LL 1 jL/1 1L11L jL 11NL1 11L1L1 1 LL>1L1 L11 L11 .
1 11 LL LL111L1 /VVi.\. /VVi. >1 /VVi.Z >L11 L1111/ 1 jL111L LL11L
1111 111L1 LL >L1LL 1L 1L 1L111j1L?L1L1L1 11LU1L. LL tip 8:1.
STOP START
DAC
V
V
Succesive
Approximation
Control Logic
Succesive
Approximation
Register
+
_
Comp
IN
DAC
V
0
0
1
1
2 3 4 5 6
1
2
3
4
7
8
15
16
29
32
59
64
V
t/
DAC
IN

Figura 2.5 - Convertorul analog-digital.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 22

O rutin de conversie aflat n desf >urare nu este afectat de o comand de start,
indiferent de natura sa (hardware sau software).
TL/L111L1 L1 11L1 1 11L1L1L1L L1L1 j1LLL> LL LL1NL1>1L 1 11L 1L1LL11. LL 111L1
/V1 jL/1 1L11 jL . L111 LL se comand intrarea n modul inactiv (idle).
La intrarea n modul de lucru idle sau power-down al microcontroller-ului, o
conversie analog-digital aflat n plin proces de desf >L11L L>1L 1111L1Lj1 . TL/L111L1L
j1 11L L1 11L1L j1 acum sunt iremediabil pierdute, nefiind transferate n registrele rezultat
>1/>L 11 1LU1>11L1 LL LL1L1/1 >1 >11L.
Convertorul analog-digital dispune de pini proprii de alimentare (AV
DD
>1 /
SS
>1 LL
LL1 j111 jL111L 1L1>1L1L LL 1L1L111 extern (V
ref+
>1
ref-
). Rezultatul conversiei poate fi
0 1
End of Conversion
Start of Conversion
END
END
SOC
Reset SAR
[Bit Pointer] = MSB
[Bit] = 1
n
Conversion Time
Test
Complete
[Bit] = 0
n
[Bit Pointer] +1
Test Bit
Pointer
EOC

Figura 2.6 - Organigrama de desfurare a unei conversii.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 23
calculat prin utilizarea urm toarei caracteristici de transfer:
N = = 2 1024
10

+
V V
V V
V V
V V
IN REF
REF REF
IN REF
REF REF
(2.4)
111 L1111/1L 1L11 LL1L1 11 >L11111L11N1 11 1 1 1L/L111L1L1. LL1 11L 1 11
registrul ADCH, caracteristica de transfer devine:
N = = 2 256
8

+
V V
V V
V V
V V
IN REF
REF REF
IN REF
REF REF
(2.5)

2.2.6 M SURAREA INTERVALELOR DE TIMP PRIN UTILIZAREA
REGISTRELOR DE CAPTARE A EVENIMENTELOR

Atunci cnd un eveniment extern recursiv este reprezentat sub forma unui front
cresc tor sau descrec tor care este aplicat unuia dintre cei patru pini de captare a
evenimentelor, intervalul de timp dintre dou evenimente poate fi m surat folosind
temporizatorul T
2
>1 L1L1 L1111L LL1L j11L 1LU1>11L1L LL Lj11L LNL111L11L1L1. V\. CT1,
VZ >L VO. j11 1 L1L1 LNL111L11. LL1 11L1L1 111L1-ului T
2
este transferat n registrul
LL Lj11L LNL111L11L1L1 >L1LL11 >1 L>1L UL1L11 L1 >L111 LL 1111L1LjL1L >jLL111L LL>1L1
1LU1>11L. V\1. V1. VZ1 >L VO1. 11L1L1L111 LL >11L 11L11L1 1L1 1L1 1 1Lj1L/111 j11L
L1111L LL1 11 1 1 1LU1>11L1L1 LL 1L1L 11 >jLL11L. LL1L111 1Z1T.
Aceast rutin de ntrerupere poate fi folosit pentru calcularea intervalului de timp
corespunz tor, dac >L LL1L>1L N1L1L 11L11L1 111L1-ului Z. L111L L 11LLNL1 a
ceasului de 12 MHz programarea timer-ului poate fi f cut astfel nct acesta s 1L111/L/L
11L1L 11 LL LLj >11L 1 11LL1L ZH 1>. L intervalul de timp dintre dou evenimente
succesive este mai scurt de 524 ms, atunci calculul intervalului de timp este foarte simpu,
rutina de ntrerupere fiind mult mai scurt . Pentru intervale de timp mai mari de 524ms,
trebuie utilizat o extensie a timer-ului T
2
.
Timer-ul T
2
este conectat la patru registre de 16 bi 1. 1L1 1L11L 11L11L1 >1. Le
>L1L1L 1 11L1 1LU1>11L LL LL1j11L. LL 1L1U11L LL ! 11 1 11UL1 Z.. TLU1>11L1L LL
LL1j11L jL111 1L1L>11L jL111L >L1. 1L>L1 >L LL1L1 j1111 LL 1L>11L 1 jL11L1L1
4
la
anumite intervale preprogramate de timp.
1 LL1111L1L >L11 j1L/L111L 1LU1>11L1L L1111/1L 11 >LL 1L1L LL Lj11L
LNL111L11L1L1 >1 LL LL1j11L. L1L>L1L 1L1. j1LLL1 >1 >L11111L 1 11LL 1L1 L1111L 11 11
j1 111L LL>1L1 1LU1>11L.

Registrul TM2CON (EAH) - valoare la reset 00 H
(MSB) (LSB)
T2IS1 T2IS0 T2ER T2B0 T2P1 T2P0 T2MS1 T2MS0
0 0 - Timer T2 oprit;
0 1 - ceas = fOSC:12;
1 0 - mod test;
1 1 - ceas extern (T2).
0 0 - ceas : 1 (intern sau extern);
0 1 - ceas : 2 (intern sau extern);
1 0 - ceas : 4 (intern sau extern);
1 1 - ceas : 8 (intern sau extern).
Indicator intrerupere depasire pe 8 biti Timer T2
activare reset extern Timer T2; daca este 1, T2 poate fi resetat cu un front crescator
pe pinul RT2 (P1.5).
selectare intrerupere de depasire pe 8 biti Timer T2
selectare intrerupere de depasire pe 16 biti Timer T2

SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 24
Registrul IEN1 (E8H) - valoare la reset 00 H
(MSB) (LSB)
ET2 ECM2 ECM1 ECM1 ECT3 ECT2 ECT1 ECT0
activare
intrerupere
registru
captare 0
activare intrerupere
registru captare 1
activare intrerupere registru captare 2
activare intrerupere registru captare 3
activare intrerupere comparator 0 timer T2
activare intrerupere comparator 1 timer T2
activare intrerupere comparator 2 timer T2
activare intrerupere depasire timer T2

Registrul CTCON (EBH) - valoare la reset 00 H
(MSB) (LSB)
CTN3 CTP3 CTN2 CTP2 CTN1 CTP1 CTN0 CTP0
captare pe
front al
CT0I
captare pe front al CT0I
captare pe front al CT1I
captare pe front al CT1I
captare pe front al CT2I
captare pe front al CT2I
captare pe front al CT3I
captare pe front al CT3I

Registrul RTE (EFH) - valoare la reset 00 H
(MSB) (LSB)
TP4.7 TP4.6 RP4.5 RP4.4 RP4.3 RP4.2 RP4.1 RP4.0
daca e 1,
P4.0 e rese-
tat la egalita-
tea CM1 si
T2
daca e 1, P4.1 e resetat la
egalitatea CM1 si T2
daca e 1, P4.2 e resetat la egalitatea CM1
si T2
daca e 1, P4.3 e resetat la egalitatea CM1 si T2
daca e 1, P4.4 e resetat la egalitatea CM1 si T2
daca e 1, P4.5 e resetat la egalitatea CM1 si T2
daca e 1, P4.6 basculeaza la egalitatea CM2 si T2
daca e 1, P4.7 basculeaza la egalitatea CM2 si T2

Registrul STE (EEH) - valoare la reset 00 H
(MSB) (LSB)
TG4.7 TG4.6 SP4.5 SP4.4 SP4.3 SP4.2 SP4.1 SP4.0
daca e 1,
P4.0 e setat
la egalitatea
CM0 si T2
daca e 1, P4.1 e setat la
egalitatea CM0 si T2
daca e 1, P4.2 e setat la egalitatea CM0 si
T2
daca e 1, P4.3 e setat la egalitatea CM0 si T2
daca e 1, P4.4 e setat la egalitatea CM0 si T2
daca e 1, P4.5 e setat la egalitatea CM0 si T2
basculare bistabil
basculare bistabil

Registrul TM2IR (C8H) - valoare la reset 00 H
(MSB) (LSB)
T2OV CM2 CM1 CMO CTI3 CTI2 CTI1 CTI0
indicator
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 25
intrerupere
CTI0
indicator intrerupere CTI1
indicator intrerupere CTI2
indicator intrerupere CTI3
indicator intrerupere CM0
indicator intrerupere CM1
indicator intrerupere CM2
indicator depasire pe 16 biti a timer-ului T2

Registrul IP1 (F8H) - valoare la reset 00 H
(MSB) (LSB)
PT2 PCM2 PCM1 PCM0 PCT3 PCT2 PCT1 PCT0
nivel de
prioritate al
intreruperii
asociate
registrului de
captare 0
nivel de prioritate al
intreruperii asociate
registrului de captare 1
nivel de prioritate al intreruperii asociate
registrului de captare 2
nivel de prioritate al intreruperii asociate registrului de
captare 3
nivel de prioritate al intreruperii asociate comparatorului 1
nivel de prioritate al intreruperii asociate comparatorului 1
nivel de prioritate al intreruperii asociate comparatorului 2
nivel de prioritate al intreruperii asociate depasirii timer-ului T2

CT1 CT2 CT3
CT1I CT2I CT3I
INT INT INT
Comparator Comparator Comparator
CM0 (Set) CM1 (Reset) CM2 (Toggle)
Timer T2 Prescaler
CT0I CT1I CT2I CT3I INT INT INT INT
off
T2
RT2
T2ER
16-bit overflow interrupt
8-bit overflow interrupt
f
O S C
External reset enable
CT0I
CT0
1:12

Figura 2.7 - Seciunea de captare a evenimentelor i comparare a microcontroller-ului 80C552.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 26
3. PREZENTAREA SETULUI DE INSTRUC IUNI AL
MICROCONTROLLER-ULUI 80C51

3.1 ACALL addr11
L1L 1. Absolute Call
Descriere: Apeleaz 1LLL1L1 1L11 L >L11L111 localizat la adresa indicat .
11>11LL 1L1L 11L1L1L11L/ contorul programului de dou L11. jL111L
L1 11L L1L> L11 1L1L1 11>11LL 1L11. jL1 11L1L n stiv 1L/L111L1 jL
! 11 1 j111L1 LL1L1 L>1L LL1 11 jL 11 >L11111L11N >1 11L1L1L11L/
pointerul stivei de dou ori. /L1L> LL>111 1L L L1 11L1 prin conca-
tenarea succesiv LL1L1 11 1 11 >L11111L11N1 1 LL11L1L1L1
j1LU11L1L1. LLj 11L1L1L111L. 11 11 1 LLLL1L1 LjL1 1L1 >1 LL1L1L1
1 LL11L 1 11>11LL 1L111. `L11L111 jL11 trebuie s nceap 11 LL1>1
11LL LL L11L1>1L1L Z bLL1L 1 1 1L1L11L1 LL j1LU11 L >1 j111L1
LL1L1 1 11>11LL 1L111 L1L L11L/ 11>11LL 1L111 /V/. iL >L 1LL1L/
11L1L1L111 LL LL1L1 1L.
Exemplu: 111 11 1LU1>11L1 jL111L1 LL >11N . `. LL1 11L N1L1L \. 11L1L1
SUBRTN e localizat n memorie la adresa 0345H. Dup L?LLL 1
11>11LL 1L111.
ACALL SUBRTN
1 1LL11 \ZO. ` N LL1 11L N1L1L \`. 1LL 111L 111L11L T/1
\ >1 \` NL1 LL1 11L Z >1. 1L>jLL11N \. 11 V N LL1111L
0345H.
VL1L 1. 2
V1L111 1>11 : 2

Codare:

a
10
a
9
a
8
1

0 0 0 1



a
7
a
6
a
5
a
4


a
3
a
2
a
1
a
0

VjL1 11. ACALL
(PC) (PC)+2
(SP) (SP)+1
(SP) (PC
70
)
(SP) (SP)+1
(SP) (PC
158
)
(PC
100
) adresa blocului

3.2 ADD A, <scr-byte>
L1L 1. Adunare
Descriere: 11>11LL 1L1L / LL1 acumulatorul cu octetul indicat, l >1L
1L/L111L1 11 LL1L11L1. 11L1L1L111 LL 111>jL11 >1 LL 111>jL11 L?1111
>L11 >L1 1. 1L>jLL11N LL exist L1 111>jL11 LL 1 111L1 >L LL 1 111L1
O. >1 >L11 1L>L1 1 LL nu exist transport. Cnd se adun ntregi f r
semn, indicatorul de transport indic dep >11L. 11L1L1L1L1 LL LLj >11L.
V. L>1L >L11 LL este un transport la bitul 6, dar nu mai departe de
bitul 7, sau un transport de la bitul 7, dar nu provenit de la bitul 6. n
LL1L111L >11L 11. V L>1L 1Lsetat. Cnd se adun ntregi cu semn,
indicatorul OV semnalizeaz un num r negativ ca sum a doi operanzi
pozitivi, sau o sum pozitiv ca rezultat a adun rii a doi operanzi
negativi. Sunt permise 4 moduri de adresare a operandului surs :
adresare prin registru, adresare direct , adresare indirect prin registru
sau adresare imediat .
Exemplu: Acumulatorul con 11L N1L1L \VO \\\\ 11 1LU1>11L1 \
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 27
LL1 11L \// \\\\. 11>11LL 1L1L.
ADD A, R
0

N LL1L1111 L N1L1L LL1 11L1 de acumulator s 11L !
\\\. LL 11L1L1L1L1 /V 1L>L11 >1 11 11L1L1L1L1 LL 111>jL11.
L1 >1 V. >L11L 1 .
ADD A, Rn
VL1L 1. 1
C1L1L11 1>11 : 1
VjL1 11. ADD
(A) (A) + (Rn)
ADD A, direct
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ADD
(A) (A) + (direct)
ADD A, @Ri
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. ADD
(A) (A) + ((Ri))
ADD A, #data
VL1L 1. 2
Ciclu11 1>11 : 1
VjL1 11. ADD
(A) (A) + #data

3.3 ADDC A, <scr-byte>
L1L 1. Adunare cu indicatorul de transport
Descriere: 11>11LL 1L1L /V LL1 LL1L11L1L1 LL LL1L1L1 11L1L1 >1 LL
11L1L1L1L1 LL 111>jL11. 1 snd rezultatul n acumulator. Indicatorii de
111>jL11 >1 LL 111>jL11 L?1111 >L11 >L1 1. 1L>jLL11N LL exist L1
111>jL11 LL 1 111L1 >L LL 1 111L1 O. >1 >L11 1L>L1 1 LL nu exist
transport. Cnd se adun ntregi f r semn, indicatorul de transport
indic dep >11L. 11L1L1L1L1 de dep >11L. V. L>1L >L11 LL este un
transport la bitul 6, dar nu mai departe de bitul 7, sau un transport de la
bitul 7, dar nu provenit de la bitul 6. 1 LL1L111L >11L 11. V L>1L 1L>L11.
V1L >L LL1 ntregi cu semn, indicatorul OV semnalizeaz un num r
negativ ca sum a doi operanzi pozitivi, sau o sum pozitiv ca rezultat
a adun rii a doi operanzi negativi. Sunt permise 4 moduri de adresare a
operandului surs : adresare prin registru, adresare direct , adresare
indirect prin registru sau adresare imediat .
Exemplu: Acumulatorul con 11L \VO \\\\ >1 1LU1>11L1 \ LL1 11L \//
\\\\ LL >L11L 11L1L1L1L1L1 LL 111>jL11. 11>11LL 1L1L.
ADDC A, R0
va determina ca acumulatorul s LL1 11 N1L1L ! \\\. LL
indicatorul AC resetat, iar indicatorul LL 111>jL11 >1 V setate la 1.
ADDC A, Rn
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. ADDC
(A) (A) + (C) + (Rn)

SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 28
ADDC A, direct
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ADDC
(A) (A) + (C) + (direct)
ADDC A, @Ri
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. ADDC
(A) (A) + (C) + ((Ri))
ADDC A, #data
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ADDC
(A) (A) + (C) + #data

3.4 AJMP addr11
L1L 1. Absolute Jump
Descrierea: AJMP transfer L?LLL 1 j1LU11L1L1 1 L1L> 11L1L1 , care este
format la momentul rul rii prin concate11L LL1L1 11 1 11
>L11111L11N1 1 LL11L1L1L1 j1LU11L1L1. V. LLj incrementarea de
dou L11 LL>1L1. 11 11 LL LLL 1 LjL1 1L1 >1 1 LL11L LL1L1 1
11>11LL 1L111. L>111 1 11L1L1L > 11L 11 LL1>1 11LL LL Z bLL1L 1 L11
1L1L11 LL j1LU11 L j111L1 LL1L1 1 11>11LL 1L111 L11 1L1L
11>11LL 1L111 /J1.
Exemplu: Eticheta JMPADR e situat 1 1LL 1 LL 1L1L11L \ZO. 11>11LL 1L1L
AJMP JMPADR
este situat 1 1LL 1 \OH >1 N 11L1L LL11L1L1 j1LU11L1L1. V. LL
0123H.
OL1L 1. 2
Cicluri 1>11 : 2
VjL1 11. AJMP
(PC) (PC) + 2
(PC
100
) adresa de pagin

3.5 ANL <dest-byte>, <scr-byte>
L1L 1. `I LOGIC ntre variabile de tip octet
Descriere: ANL efectueaz LjL1 1 LL `1 VV1V 1111L N11111L1L LL 11j LL1L1
11L1L1L >1 11L1L rezult1L1 11 N11111 LL>111 1L. iL 1LL1L/ 11L1 L1
11L1L1L1 LL LL1L1 1L. VL1 LL1 LjL11/1 jL1111 ! LL1111 11 LL 1LLL11 LL
L1L>1L. V1L LL>111 1 L>1L LL1L11L1L1. >L1> jL1L 11 L1L>1 prin
registru, direct, indirect prin registru sau imediat; cnd LL>111 1 L>1L L
L1L> direct , sursa poate fi acumulatorul sau o dat imediat .
Not : Cnd aceast 11>11LL 1L1L L>1L L1111/1 jL111L 1LL111L L1 jL11
LL 1L>11L. N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L. 1L LL
la pinii de intrare.
Exemplu: Dac LL1L11L1L1 LL1 11L N1L1L \VO \\\\ >1 1LU1>11L1 \
LL1 11L N1L1L \\\\ 1L1L1 11>11LL 1L1L
ANL A, R0
va determina ca acumulatorul s LL1 11 N1L1L H. V1L LL>111 1
este un octet direct adre>111. LL>1 inst1LL 1L1L N 1L>L1 LL1111 111L
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 29
LL 11 1 L11 L11LL 1LL 1L T/1 >L 1LU1>11L 11L\1L. VL1L1L1 1>L1 L1L
LL1L1111 1L>L11L 11 11L1 N 11 L LL1>111 LL1 11L1 11 11>11LL 1L1L
>L L N1L1L L1L1 11 LL1L11L1 1 1L11L. 11>11LL 1L1L
ANL P1, #0111001B
N 1L>L1 11 11 . O >1 Z 1 jL11L1L1 LL 1L>11L .
ANL A, Rn
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. ANL
(A) (A) (Rn)
ANL A, direct
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ANL
(A) (A) (direct)
ANL A, @Ri
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. ANL
(A) (A) ((Ri))
ANL A, #data
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ANL
(A) (A) #data
ANL direct, A
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. ANL
(direct) (direct) (A)
ANL direct, #data
VL1L 1. 3
V1L1L11 1>11 : 2
VjL1 11. ANL
(direct) (direct) #data

3.6 ANL C, <scr-bit>
L1L 1. `I LOGIC ntre variabile de tip bit
Descriere: Dac valoarea boolean a bitului surs este un 0 logic, atunci reseteaz
indicatorul de transport; altfel acest indicator r mne n starea curent .
Simbolul ('/') precedind operandul, n limbaj de asamblare, indic faptul
c complementul logic al bitului adresat e utilizat ca valoare surs , f r
ns ca bitul surs s fie afectat. Pentru operandul surs este permis
numai adresarea direct .
Exemplu: Seteaza indicatorul de transport dac >1 1L11 LL .\. /VV. >1
OV=0:
MOV C, P1.0 ; incarca carry cu bitul 0 al portului 1
ANL C, ACC.7 ; SI cu bitul 7 al acumulatorului
ANL C, /OV ; SI cu negatul indicatorului de depasire.
ANL C, bit
Octe 1. 2
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 30
V1L1L11 1>11 : 2
VjL1 11. ANL
(C) (C) (bit)
ANL C, /bit
VL1L 1. 2
V1L1L11 1>11 : 2
VjL1 11. ANL
(C) (C) (bit)

3.7 CJNE <dest-byte>, <scr-byte>,rel
L1L 1. VL1j1 1L >1 >11 LL nu este egalitate
Descriere: 11>11LL 1L1L VJi LL1j1 LL1 LL1 LjL11/1 >1 LL1L1111 un salt n
L?LLL 1 j1LU11L1L1 LL valorile lor nu sunt egale. Destinatia saltului
este compus j111 LL11L LLj1>111 1L111NL LL >L11. 11 L1111L1 LL1L1
1 11>11LL 1L111. LL LL1 11L1L1 LL11L1L1L1 j1LU11L1L1. V. LLj
incrementarea acestuia la adresa de start a urm 1L1L1 11>11LL 1L11.
11L1L1L1L1 LL 111>jL11 L >L11 LL valoarea ntregului f r >L11
LL1L1L1L1 LL>111 1L L 11 11L dect valoarea ntregului f r >L11
<scr-1N1L-. 111L1. 11L1L1L1L1 LL 111>jL11 L 1L>L11. 11>11LL 1L1L 1L
1LL1L/ nici un LjL11L. VL1 LL1 LjL11/1 jL1111 H LL1111 11 LL
moduri de adresare: acumulatorul poate fi comparat cu orice octet direct
>L 11LL11 L1L>111. LL L11LL 1LL 1L 11L11LL1 LL T/1 >L 1LU1>1111 LL
lucru pot f1 LL1j1 1 LL L LL1>111 imediat .
Exemplu: ALL1L11L1L1 LL1 11L N1L1L OH. TLU1>11L1 LL1 11L N1L1L !.
111 11>11LL 1L1L L11 >LLNL1 .
CJNE R7, #60H, NOT_EQ
R7=60H
NOT_EQ: JC REQ_LOW
seteaz 11L1L1L1L1 LL 111>jL11 >1 >1L 1 11>11LL 1L1L LL L11L1L1
NOT_EQ. Prin testarea indicatorului de transport, aceast 11>11LL 1L1L
LL1L1111 dac registrul R7 e mai mare sau mai mic dect 60H.
Dac data care a fost prezent 1 jL11L1 L>1L OH . 1L1L1 11>11LL 1L1L
WAIT: CJNE A, P1, WAIT
reseteaz 11L1L1L1L1 LL 111>jL11 >1 LL1111L cu urm toarea 11>11LL 1L1L
L11 >LLNL1 , pn cnd acumulatorul se egaleaz cu data citit din
portul P1. Dac n portul P1 au fost introduse alte valori, programul va
bucla n acest punct pn cnd data din portul P1 va deveni 34H.
CJNE A, direct, rel
VL1L 1. 3
Ciclu11 1>11 : 2
VjL1 11. (PC) (PC) + 3
IF (A) < > (direct)
THEN
(PC) (PC) + offset relativ
IF (A) < (direct)
THEN
(C) 1
ELSE
(C) 0
CJNE A, #data, rel
VL1L 1. 3
V1L1L11 1>11 : 2
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 31
VjL1 11. (PC) (PC) + 3
IF (A) < > #data
THEN
(PC) (PC) + offset relativ
IF (A) < #data
THEN
(C) 1
ELSE
(C) 0
CJNE Rn, #data, rel
VL1L 1. 3
V1L1L11 1>11 : 2
VjL1 11. (PC) (PC) + 3
IF (Rn) < > #data
THEN
(PC) (PC) + offset relativ
IF (Rn) < #data
THEN
(C) 1
ELSE
(C) 0
CJNE @Ri, #data, rel
VL1L 1. 3
CiL1L11 1>11 : 2
VjL1 11. (PC) (PC) + 3
IF ((Ri)) < > #data
THEN
(PC) (PC) + offset relativ
IF ((Ri)) < #data
THEN
(C) 1
ELSE
(C) 0

3.8 CLR A
L1L 1. TL>L1L/ 111 111/L/ ) acumulatorul
Descriere: /LL1L11L1L1 L>1L 1L>L11 1L11 11 11 >L11 \. iL L>1L 1LL11 11L1 L1
11L1L1L1 LL LL1L1 1L.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L V \\\\. 11>11LL 1L1L.
CLR A
N LL1L1111 LL1 11L1L1 LL1L11L1L1L1 > fie 00H (00000000B).

VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. CLR
(A) 0
3.9 CLR bit
L1L 1. Reseteaz bitul
Descriere: 11L1 >jLL111L1 L>1L 1L>L11 jL/1 1L11 1 \. i1L1 L1 11 11L1L1L1 LL
LL1L1 1L 1L L>1L 1LL11. 11>11LL 1L1L CLR bit poate opera asupra
indicatorului de transport sau asupra oric rui bit direct adresabil.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 32
Exemplu: L11L1 1L>1 11>L11> LL N1L1L \\\. 11>11LL 1L1L
CLR P1,2
va l sa portul P1 setat la valoarea 59H (01011001B).
CLR C
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. CLR
(C) 0
CLR bit
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. CLR
(bit) 0

3.10 CPL A
L1L 1. Complementarea acumulatorului
Descriere: 1LL1L 111 1 LL1L11L1L1L1 L>1L LL1j1L1L111 1LU1L LL1j1L1L11 1
LL . 1 11 L1L 11L11L1 L1L LLN11 \. >1 11NL1>. i1L1 L1 11L1L1L1 LL
LL1L1 11 1L L>1L 1LL11.
Exemplu: AcumulatorL1 LL1 11L N1L1L V \\\\. 11>11LL 1L1L.
CPL A
va determina ca acumulatorul s LL1 11 valoarea 0A3H (10100011B).
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. CPL
(A) (A)

3.11 CPL bit
L1L 1. Complementeaz o variabil de tip bit
Descriere: I1>11LL 1L1L L1LL1LL/ LL1j1L1L11L1 N11111L1 LL 11j 111 >jLL111L1L.
\1 111 L1L L1 LLN11L \. >1 11NL1>. iL >L11 1LL1 1 11L1L1L111 LL LL1-
L1 11.VT jL1L LjL1 >Lj1 111L1L1 LL 111>jL11 >L >Lj1 L11L rui alt
bit direct adresabil.
Not : Cnd in>11LL 1L1L L>1L L1111/1 jL111L 1LL111L L1 111 LL
1L>11L. N1L1L L1111/1 ca dat original va fi citit ca dat LL 1L>11L >1
nu de la intrare.
Exemplu: L11L1 1L>1 11>L11> 11L11L1 LL N1L1L \\\.`LLNL1
LL 11>11LL 1L11.
CPL P1,1
CPL P1,2
va determina ca portul s fie setat la valoarea 5BH (01011011B).
CPL C
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. CPL
(C) (C)
CPL bit
VL1L 1. 2
V1L1L11 1>11 : 1
VjL1 11. CPL
(bit) (bit)
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 33

3.12 DA A
Functia: Ajustarea zecimal a acumulatorului
Descriere: 11>11LL 1L1L / / |L>1L/ N1L1L jL 11 1 L11 LL1L11L1. L
1L/L111 1 L1111L1 11>11LL 1L11 LL LL11L LLL variabile (reprezentate
n format BCD-mpachetat), producnd dou L111L LL L1L H 11 1. L111L
>L L1LL1L 11>11LL 1L1L LL LL11L L 1L>1 1L1L>11L 11>11LL 1L111L /
>L /V. L 11 11 O0 ai acumulatorului reprezint un num r mai
mare dect 9 (xxx1010xxx1111), sau dac indicatorul AC este setat, se
adun valoarea 6 la acumulator, producnd astfel un digit optimal n
format BCD. Aceast adunare intern va seta indicatorul de transport
daca s-a propagat o dep >11L LL 1 LL1 11 jL 11 >L11111L11N1 H 11 1 >j1L
11 11 11 >L11111L11N1. L1 111L1 1L N 1L>L1 11L1L1L1L1 LL 111>jL11.
L indicatorul de transport e set1 11 L11 LL>1L1 LjL1 11. >L LL
LL1 H 11 1 11 >L11111L11N1 1Lj1L/111 un num r mai mare dect 9
(1010xxx????. LL>11 11 1 >L11 11L1L1L11 1 LL !. j1LLLL1L
digitul optimal n format BCD. IndicatL1L1 LL 111>jL11 N 11L1L LL
suma celor dou N11111L V L11U111L L>1L 11 11L LLL1 \\.
jL111 1L >L11L /LL111 n precizie multipl . 11L1L1L1L1 V L>1L
1LL11. ?LLL 1 LL>1L1 11>11LL 1L11 LL1L/ un singur ciclu. Elemetul
de noutate este acela c aceast 11>11LL 1L1L jL1111L LL1NL1>1 zecimal
ad LU1L \\. \!. !\ >L !! 1 LL1 11L1L1 LL1L11L1L1L1.
Not . 11>11LL 1L1L / / 1L jL1L LL1NL111. jL1 >1 >11j1L. L1 1L1 1
1L?/LL111. LL1 11L1 11 LL1L11L1. 11 1L111 V.
Exemplu: Acumulatorul are valoarea 56H (01010110B) reprezentind L1U1 11 11
1L111 V 11jL1L11 1 1L1 1L1L1 /LL111 !. TLU1>11L1 TO LL1 11L
N1L1L ! \\\. 1Lj1L/L111L L1U1 11 11 1L111 V
mpachetat ai numarului 67. Indicatorul de transport este setat. Secventa
LL 11>11LL 1L11.
ADDC A,R3
DA A
va face o LL11L 11 LL1j1L1L11 1111 1 de doi, avnd ca rezultat
valoarea 24H (00100100B) indicnd n format BCD mpachetat
num rul zecimal 24, cele mai mici dou L111L 1L >L1L1 /LL111L 1111L
!. ! >1 111>jL11ul intern. Indicatorul de transport va fi setat, indicnd
c a ap 1L1 L LLj>11L /LL111 . Suma real 1111L !. ! >1 L>1L ZH.
11111L1L V jL1 11 11L1L1L111L >L LLL1L1L111L j111 L ugarea
lui 01H sau 99H. Dac 111 11 LL1L11L1L1 LL1 11L N1L1L O\.
>LLNL1 .
ADD A, #99H
DA A
va determina ca acumulatorul s LL1 11 N1L1L `` O\``Z`.
VL1L1L1 11 jL 11 >L11111L11N 1 >L1L1 jL1L 11 111L1j1L11 L 1111L.
30-1=29.
VL1L 1. 1
V1L1L11 1>11 : 1
VjL1 11. DA
IF [[(A
30
) > 9] [(AC)=1]]
THEN
(A
30
) (A
30
) + 6
AND
IF [[(A
74
) > 9] [(C)=1]]
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 34
THEN
(A
74
) (A
74
) + 6
3.13 DEC byte
L1L 1. Decrementare variabil de tip octet
Descriere: Variabilade tip octet indicat este decrementat cu 1. O valoare initial
de 00H va determina ca rezultatul s fie 0FFH. Nu afecteaz nici un
indicator. Sunt permise 4 moduri de adresare: acumulator, adresare prin
registru, adresare direct , adresare indirect prin registru.
Not . V1L 11>11LL 1L1L L>1L L1111/1 ca s 1LL111LL L1 jL11 LL 1L>11L.
valoarea L1111/1 ca dat original va fi citit de la iL>11L. >1 1L LL 1
intrare.
Exemplu: TLU1>11L1 T\ LL1 11L N1L1L \. LL 111L 111L11L
T/1 >1 LL1 11 N1L111L \\ >1 H\. 11>11LL 1L111L.
DEC @R0
DEC R0
DEC @R0
vor l > 1LU1>11L1 T\ >L11 1 N1L1L >1 1LL 111L 111L11L T/1
>1 LL1 111L \ >1 O.

3.14 DIV AB
L1L 1. mp 1 11L
Descrierea: 11>11LL 1L1L 1 / 11j11L 1111LU1L1 1 r >L11. jL 11 1. L11
LL1L11L1 1 1111LUL1. jL 11 1. 1 r semn din registrul B. Dup
L?LLL 1 11>11LL 1L111. LL1L11L1L1 N LL1 11L L1L1 11j 1 1111. 11
1LU1>11L1 1L>1L1. 11L1L1L1L1 LL 111>jL11 >1 V NL1 11 1L>L11L.
([FHS LH: Dac 1LU1>11L1 LL1 11L 111 11 N1L1L \\. N1L1L
1L1L111 11 LL1L11L1 >1 1LU1>11L1 NL1 11 >L1LL11111L >1 N 11 >L11
11L1L1L1L1 LL LLj >1re. Indicatorul de transport va fi resetat n orice
caz.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L /LL111 Z \ >L \ >1
1LU1>11L1 LL1 11L N1L1L Z >L \\\\\\. 11>11LL11L1L.
DIV AB
va determina ca acumulatorul s LL1 11 valoarea 13 (0DH sau
\\\\\ >1 N1L1L >L \\\\\\ 11 . /11 11L1L1L1L1
LL 111>jL11. L1 >1 11L1L1L1L1 V NL1 11 1111 1L>L1 1.

3.15 DJNZ <byte>, <rel-addr>
L1L 1. LL1L1L111L >1 >11 LL rezultatul nu este zero
Descriere: 11>11LL 1L1La DJNZ decrementeaz LL1L1L1 11L1L1 >1 LL1L1111 un salt
la adresa indicat de al doilea operand dac valoarea rezultat 1L L /L1L.
V N1L1L 111 11 00H va deveni 0FFH. Nu afecteaz 11L1L1L111 LL
LL1L1 11. L>111 1 >11L1L1 N 11 L1 11L1 prin ad ugarea valorii
deplas 111 1L111NL LL >L11. 11 L1111L1 LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1
V. LLj 11L1L1L111L LL>1L1 1 L1L> j111L1 LL1L1 1 11>11LL 1L111
L11 toare. Operandul decrementat poate fi un registru sau direct octetul
adresat.
Not : Atunci cnd aceast 11>11LL 1L1L L>1L L1111/1 ca s 1LL111LL L1
jL11 LL 1L>11L. N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L.
nu de la pinii de intrare.
Exemplu: LL 111L 111L11L T/1 H\. \. !\ LL1 11 1L>jLL11N N1L111L \.
\. . `LLNL1 LL 11>11LL 1L11.
DJNZ 40H, LABEL_1
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 35
DJNZ 50H, LABEL_2
DJNZ 60H, LABEL_3
N LL/ L1 >11 1 11>11LL 1L1L LL L11L1L1 /Z LL N1L111L \\.
! >1 11 LL1L O 1LL 11 T/1. 111L1 >11 1- 1L>1 1 cut, pentru c
rezultatul era 0.
Aceast 11>11LL 1Lne asigur o metod simpl de a executa o bucl de
program de un num r de ori, sau ad ugarea printr-o singur 11>11LL 1L1L
L1L1 1111/1L111 1111L Z >1 Z L1L11 1>11 ). Instructiunea:
MOV R2, #8
TOGGLE: CPL P1.7
DJNZ R2, TOGGLE
va schimba bitul P1.7 de L11. LL1L11111L j11 1 H 11jL1>L11 LL
1L>11L 1 111L1 1 jL11L1L1 LL 1L>11L . 1LL1L jL1> 11>L11 11L1
L1L1L11 1>11 . LL1 jL111L L?LLL 1 11>11LL 1L111 JiZ >1 L1L1 jL111L
modificarea bitului.

3.16 INC <byte>
L1L 1. Incrementare octet
Descriere: 11>11LL 1L1L 1iV 11L1L1L11L/ cu 1 variabila octet indicat .V N1L1L
111 11 de 0FFH va deveni n urma increment rii 00H.Nu se afecteaz
11L1 L1 11L1L1L1LL LL1L1 11. `L11 jL111>L 11L1 1LLL11 LL adresare:
adresare prin registru, adresare direct , adresare indirect prin registru.
Not : Atunci cnd aceast 11>11LL 1L1L L>1L L1111/1 ca s 1LL111LL L1
jL11 LL 1L>11L. N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L >1
nu de la intrare.
Exemplu: TLU1>11L1 T\ LL1 11L N1L1L \\. LL 111L 111L11L
T/1 LL L1L>L1L >1 LL1 11 N1L111L \ >1 1L>jLL11N H\.
`LLNL1 LL 11>11LL 1L11.
INC @R0
INC R0
INC @R0
va l > 1LU1>11L1 T\ >L11 1 >1 1LL 111L 111L11L T/1 LL Lresele
>1 LL1 111L N1L111L \\ >1 H.

3.17 INC DPTR
L1L 1. Incrementarea pointer-ului de date
Descriere: 11>11LL 1L1L 11L1L1L11L/ LL jL111L1L1 LL L1L ! 11 1. >1L
L1111/1 L 11L1L1L111L jL ! 11 1. V LLj >11L 1 LL1L1L1 11 jL 11
semnificativ al pointerului (DPL), de la valoarea 0FFH la 00H, va
11L1L1L11 LL1L1L1 11 >L11111L11N . iL >L11 1LL1 1 11L1L1L111
LL LL1L1 11. `11UL1L1 1LU1>11L L1L jL1L 11 111jL11 LL LL>1
11>11LL 1L1L L>1L jL111L1L1 LL L1L. T.
Exemplu: TLU1>11L1L >1 LL1 11 N1L111L Z >1 1L>jLL11N \. `L1L1 LL
11>11LL 1L11.
INC DPTR
INC DPTR
INC DPTR
N >L1111 LL1 11L1L1 1LU1>11L1L1 >1 1 N1L111L O >1
respectiv 01H.

3.18 JB bit, rel
L1L 1. Salt dac bitul e setat la 1
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 36
Descriere: Dac bitul indicat e un 1 se efectueaz un salt n program la adresa
indicat . 111L1 >L 11LLL 1 L?LLL11L 11>11LL 1L111 L11 1L1L. L>111 1
>11L1L1 L>1L L1 11L1 prin adunarea deplas 111 1L111NL LL >L11. 11 1
11L11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1 LL11L1L1L1 LL j1LU1. V.
LLj inc1L1L111L V 1 N1L1L j111L1L1 LL1L1 1 11>11LL 1L111
L11 1L1L. 11L1 LL 1L>1 1L L>1L 1LL111L1 >1 1L >L 1LL1L/ nici un
indicator.
Exemplu: 1 LL 1 jL11L1 LL 11111L L \\\\. /LL1L11L1L1 LL1 11L
N1L1L !. `LLNL1 LL 11>11LL 1L11.
JB P1.2, LABEL1
JB ACC.2, LABEL2
N LL/ L1 >11 1 L?LLL 1L1 j1LU11L1L1 1 L11L1L1 /Z.

3.19 JBC bit, rel
L1L 1. Salt dac 111L1 L >L11 1 >1 >1L1UL 111L1
Descriere: Dac bitul indicat este 1, se efectueaz un salt la adresa indicat . Altfel,
>L 11LLL 1 L?LLL11L 11>11LL 1L111 L11 toare. Bitul nu va fi resetat dac
L>1L LL| \. L>111 1 >11L1L1 L>1L L1 11L1 prin adunarea deplas 111
1L111NL LL >L11. 11 1 11L11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1
LL11L1L1L1 LL j1LU1. V. LLj incrementarea PC la valoarea primului
LL1L1 1 11>11LL 1L111 L11 1L1L. i1L1 L1 11L1L1L1 LL LL1L1 11 1L L>1L
afectat.
Not . V1L 11>11LL 1L1L L>1L L1111/1 L > 1L>1L/L L1 j11 LL 1L>11L.
N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L. >1 1L LL la
intrare.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L ! \\\\. `L1L1 LL 11>11LL 1L11.
JBC ACC.3, LABEL 1
JBC ACC.2, LABEL 2
N 1LL L L?LLL 1 j1LU11L1L1 > LL1111LL LL 1 11>11LL 1L1L
1LL11111L1 prin eticheta LABEL2, cu acumulatorul modificat la
valoarea 52H (01010010B).

3.20 JC rel
L1L 1. Salt dac este setat indicatorul de transport
Descriere: Dac indicatorul de transport e setat, se efectueaz un salt n program, la
adresa indicat . /111L1. >L 11LLL 1 L?LLL11L 11>11LL 1L111 L11 toare.
L>111 1 >11L1L1 L>1L L1 11L1 prin adunarea deplas 111 1L111NL LL
>L11. 11 1 LL11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1 LL11L1L1L1 LL
j1LU1. V. LLj incrementarea PC de dou L11. iL >L11 1LL1 1
11L1L1L111 LL LL1L1 1L.
Exemplu: Indicatorul LL 111>jL11 L>1L 1L>L11 .`LLNL1 LL 11>11LL 1L11.
JC LABEL1
CPL C
JC LABEL2
N >L1 11L1L1L1L1 LL 111>jL11 >1 N 1LL L L?LLL 1 j1LU11L1L1 >
LL1111LL LL 11>11LL 1L1L LL 1 L11L1L1 /Z.

3.21 JMP @A+DPTR
L1L 1. Salt indirect
Descriere: In>11LL 1L1L LL1 LL1 11L1L1 jL 11 1. 1 r >L11. 1 LL1L11L1L1L1 LL
jL111L1L1 LL L1L jL ! 11 1 >1 11L1L suma rezultat 11 LL11L1L1
j1LU11L1L1. V. VL1 11L1L1 LL>1L1 N 1Lj1L/L11 L1L> 11>11LL 1L111
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 37
L11 1L1L. /LL11L jL ! 11 1 >L 1LL >11L1. 111>jL11L1 LL 1 LL1 11 1
11 jL 11 >L11111L11N1 >L j1LjU >j1L 11 11 11 >L11111L11N1. iL >L
1LL1L/ 11L1L1L111 >1 1L >L >L1111 LL1 11L1L1 LL1L11L1L1L1 >1 11L1
al pointerului de date.
Exemplu: n acumulator se afl un num r oarecare, de la 0 la 6.Urm 1L1L
>LLNL1 LL 11>11LL 1L11 N L1LL1L L1 >11 1 L1 L11 LL1L H 11>11LL 1L11
AJMP ncepnd de la JMP_TBL.
MOV DPTR, #JMP_TBL
JMP @A+DPTR
AJMP LABEL0
JMP_TBL: AJMP LABEL1
AJMP LABEL2
AJMP LABEL3
Dac LL1L11L1L1 LL1 11L \H L1L 11LLjL LLst >LLNL1 . L?LLL 1
N > ri la eticheta LABEL2. Amintim c /J1 L L 11>11LL 1L1L jL LL1
LL1L 1. LLL1 11>11LL 1L1L LL >11 N 11LLjL 1 L11LL 11 adres .

3.22 JNB bit, rel
L1L 1. Salt dac bitul nu e setat la 1
Descriere: Dac bitul indicat este 0, se efectueaz un salt la adresa indicat . /111L1.
>L 11LLL 1 L?LLL11L 11>11LL 1L111 L11 1L1L. L>111 1 >11L1L1 L>1L
L1 11L1 prin adunarea deplas 111 1L111NL LL >L11. 11 1 11L11L LL1L1 1
11>11LL 1L111. 1 LL1 11L1L1 LL11L1L1L1 LL j1LU1. V. Lup 11L1L1L1-
11L V 1 N1L1L j111L1L1 LL1L1 1 11>11LL 1L111 L11 1L1L. 11L1
1L>11 1L L>1L 1LL111L1. iL L>1L 1LL11 11L1 L1 11L1L1L1 LL LL1L1 11.
Exemplu: Data prezent 1 jL11L1 LL 11111L L>1L 11001010B. Acumulatorul
LL1 11L N1L1L ! \\\\. `LLNL1 LL 11>11LL 1L11.
JNB P1.3, LABEL1
JNB ACC.3, LABEL2
N 1LL L L?LLL 1 j1LU11L1L1 > LL1111LL LL 1 11>11LL 1L1L LL
eticheta LABEL2.

3.23 JNC rel
L1L 1. Salt dac indicatorul de transport nu este setat
Descriere: Dac indicatoru1 LL 111>jL11 L>1L \. >L >1L 11>11LL 1L1L LL 1 L1L>
11L1L1 . /111L1. >L 11LLL 1 L?LLL11L 11>11LL 1L111 L11 1L1L. L>111 1
>11L1L1 L>1L L1 11L1 prin adunarea deplas 111 1L111NL LL >L11. 11 1
dL11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1 LL11orului de progam, PC,
dup incrementarea PC de dou L11. jL111L >L |L1UL 1 L1L>
j111L1L1 LL1L1 1 11>11LL 1L111 L11 toare. Indicatorul de transport nu e
modificat.
Exemplu: 11L1L1L1L1 LL 111>jL11 L>1L >L11. `LLNL1 LL 11>11LL 1L11.
JNC LABEL1
CPL C
JNC LABEL2
N 1L>L1 11L1L1L1L1 LL 111>jL11 >1 N 1LL L L?LLL 1 j1LU11L1L1 >
LL1111LL LL 1 11>11LL 1L1L >jLL111L1 de eticheta LABEL2.

3.24 JNZ rel
L1L 1. Salt dac LL1 11L1L1 LL1L11L1L1L1 nu este 0
Descriere: Dac L1L1 L1111L 11 11 Lumulatorului este 1, se efectueaz un salt la
adresa indicat . Altfel, se continu LL L?LLL11L 11>11LL 1L111 L11 -
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 38
1L1L. L>111 1 >11L1L1 L>1L L1 11L1 prin adunarea deplas 111 1L111NL
LL >L11. 11 1 LL11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1 LL11Lrului de
progam, PC, dup incrementarea PC de dou ori .Acumulatorul nu se
modific >1 11L1 L1 11L1L1L1 LL LL1L1 11 1L L>1L 1LL11.
Exemplu: /LL1L11L1L1 1L N1L1L \\. 11>11LL 1L111L.
JNZ LABEL1
INC A
JNZ LABEL2
vor seta acumulatorul la valoarea 01H >1 NL1 LL1L1111 LL1111L1L
j1LU11L1L1 LL 1 11>11LL 1L1L LL L11L1L1 /Z.

3.25 JZ rel
L1L 1. Salt dac LL1 11L1L1 LL1L11L1L1L1 L>1L /L1L
Descriere: Dac 1L 1 11 11 L11 LL1L11L1 >L11 /L1L. >L L?LLL1 un salt la adresa
indicat . Altfel, se continu LL L?LLL 1 11>11LL 1L111 L11 1L1L.
L>111 1 >11L1L1 L>1L L1 11L1 prin adunarea deplas 111 1L111NL LL
>L11. 11 1 LL11L LL1L1 1 11>11LL 1L111. 1 LL1 11L1L1 LL11L1L1L1 LL
j1LU1. V. LLj incrementarea PC de dou ori. Acumulatorul nu se
modific >1 11L1 L1 11L1L1L1 LL LL1L1 11 1L L>1L 1LL11.
Exemplu: /LL1L11L1L1 LL1 11L 111 11 N1L1L \. `LLNL1 LL 11>11LL 1L11.
JZ LABEL1
DEC A
JZ LABEL2
va determina ca acumulatorul s LL1 11 N1L1L \\ >1 N 1LL L
L?LLL 1 j1LU11L1L1 > cont11LL LL 11>11LL 1L1L LL 1 /Z.

3.26 LCALL addr16
L1L 1. Long Call
Descriere: 11>11LL 1L1L V/ N jL1 L >L11L111 aflat la adresa indicat .
11>11LL 1L1L 11L1L1L11L/ cu trei contorul programului pentru a
genera adresa urm 1L1L1 11>11LL 1L11. >1 >1NL/ rezultatul (pe 16 biti)
n stiv 11 1111 LL1L1L1 11 jL 11 >L11111L11N. `L 11L1L1L11L/
jL111L1L1 >11NL1 LL Z. VL1L 11. 11 jL 11 >L11111L11N >1 11 >L11111L11N.
1 LL11L1L1L1 j1LU11L1L1. V. >L11 11L 1L 1 LL 1 LL11L >1 1 11L11L
LL1L1 1 11>11LL 1L111 V/. ?LLL 1 j1LU11L1L1 N LL1111L LL
11>11LL 1L1L LL 1 LL>1 adres . `L11L111 jL1L 11LLjL L11L1LL 11 LL1
!H bLL1L 1 1 >j11L1L1 LL 1L1L11L LL j1LU11. iL >L11 1LL1 1
11L1L1L111 LL LL1L1 1L.
Exemplu: 111 11. jL11terul stivei are valoarea 07H. Eticheta SUBRTN este
asociat 1LL 1L1 LL 1L1L11L LL j1LU11 LL L1L> ZOH. Lj
L?LLL 1 11>11LL 1L111.
LCALL SUBRTN
1 1LL 1 LL 1L1L11L LL L1L> \ZO. jL111L1L1 >11NL1 N LL1 11L
\`. 1LL 111L 111L11L T/1 LL L1L>L1L \ >1 \` NL1 LL1 11L Z! >1
\. 11 V N LL1 11L ZO.

3.27 LJMP addr16
L1L 1. Long Jump
Descriere: 11>11LL 1L1L J1 j1LLLLL L1 >11 1LLL1L1 1L11 1 L1L> 11L1L1 ,
prin nc 1L1L LL1L 11L1 11 jL 11 >L11111L11N >1 11 >L11111L11N 1
LL11L1L1L1 j1LU11L1L1. V. LL 1 LL11L >1 1 11L11L LL1L1 1 11>11LL-
1L111. L>111 1 jL1L 11 L11L1LL 11 >j 1L1 LL L1L>1L 1 1L1L11L1
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 39
j1LU11 LL !H bLL1L 1. iL >L 1LL1L/ 11L1L1L111 LL LL1L1 11.
Exemplu: Eticheta JMPADR e asociat 11>11LL 1L111 1LL11/1L 1 L1L> ZOH 11
1L1L11 LL j1LU11. 11>11LL 1L1L.
LJMP JMPADR
va nc rca contorul programului cu valoarea 1234H.

3.28 MOV <dest-byte>, <scr-byte>
L1L 1. Mut variabila surs . LL 11j LL1L1. 11 N11111 LL>111 1L. LL 11j LL1L1
Descriere: Variabila octet indicat prin al doilea operand este copiat 11 1LL 1
>jLL111L1 de primul operand. Octetul surs nu este afectat. Nu se
afecteaz 11L1 L1 1LU1>11L >L 11L1L1L1 LL LL1L1 11. >1L LL LLj11L LL
11 11L?1111 LjL1 1L1L. L1111L H LL1111 11 LL 1LLL11 LL L1L>1L
1L >L1>L1 >1 LL>11111L1.
Exemplu: LL 1 111L11 T/1 LL L1L> O\ LL1 11L N1L1L H\. LL 1
111L11 T/1 LL L1L> H\ LL1 11L N1L1L \. 1 LL 1 jL11L1 LL
intrarL L>1L \\\\ \V/. 11>11LL 1L111L.
MOV R0, #30H
MOV A, @R0
MOV R1, A
MOV B, @R1
MOV @R1, P1
MOV P2, P1
las N1L1L O\ 11 1LU1>11L1 T\. H\ 11 LL1L11L1 >1 1LU1>11L1 .
\ 11 1LU1>11L1 >1 \V/ \\\\ 11 1LL 1 T/1 LL L1L>
H\ >1 11 jL11L1 LL 1L>11L Z.

3.29 MOV <dest-bit>, <scr-bit>
L1L 1. Mut data de tip bit de la surs 1 LL>111 1L
Descriere: Variabila boolean indicat prin al doilea operand este copiat 1 1LL 1
>jLL111L1 de primul operand. Unul dintre operanzi trebuie s fie
indicatorul de transport, cel lalt poate fi orice bit adresabil direct. Nici
un alt registru sau indicator nu este afectat.
Exemplu: 11L1L1L1L1 LL 111>jL11 L>1L 111 11 >L11. 1 j1L/L11 la portul de
intrare P3 este 11000101B. Data nscris 11L11L1 11 jL11L1 LL 1L>11L
L>1L O \\\\. 11>11LL 1L111L.
MOV P1.3, C
MOV C, P3.3
MOV P1.2, C
vor l > 11L1L1L1L1 LL 111>jL11 1L>L11 >1 jL11L1 1 N1L1L O`
(00111001B).

3.30 MOV DPTR,#data16
L1L 1. ncarc pointerul de date cu o constant jL ! 11 1
Descriere: Pointerul de date este nc 1L1 LL LL1>111 jL ! 11 1 11L1L1 . Aceasta
se ncarc 11 1 LL11L >1 1 11L11L LL1L1 1 11>11LL 1L111. /1 LL11L LL1L1
L>1L LL1L1L1 11 >L11111L11N. 11 1 11L11L LL1L1 LL1 11L
LL1L1L1 11 jL 11 >L11111L11N 1 LL1>111L1 >jLL1ficate. Nu se afecteaz
11L1L1L111. >1L >11UL1 11>11LL 1L1L LL 1111L1 jL ! 11 1.
Exemplu: 11>11LL 1L1L.
MOV DPTR, #1234H
va nc 1L N1L1L ZOH 11 jL111L1L1 LL L1L. N LL1 11L Z >1
DPL va con 11L OH.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 40
3.31 MOVC A,@A+<base-reg>
L1L 1. Mut octetul de cod
Descriere: 11>11LL 1L1L 1VV 11L1L acumulatorul cu un octet de cod sau o
constant din memoria-program. Adresa octetului reprezint >L1
LL1 11L1L1L1. jL 11 1. 1 r >L11. 1 LL1L11L1L1L1 >1 LL1 11L1L1. jL !
11 1 1 1LU1>11L1L1 LL baz . L1L jL1L 11 jL111L1L1 LL L1L >L LL11L1L1
programului. In ultimul caz, PC este incrementat la adresa urmatoarei
11>11LL 1L11 L11111L >L1 rii cu acumulatorul. Altfel, registrul baz nu
e modificat. Adunarea pe 16 biti se face astfel nct un transport de la
LL1 11 1 11 jL 11 >L11111L11N1 > poat 11 j1LjU1 1 LL111 1. iL >L11
1LL1 1 11L1L1L111 LL LL1L1 11.
Exemplu: In acumulator se g >L>1L L N1L1L LLj111> 1111L \ >1 O. \11 1L1L1L
11>11LL 1L11 NL1 111>11 N1L1L L11 LL1L11L1 1nspre una din cele 4
valori definite la directiva DB (define byte):
REL_PC: INC A
MOVC A, @A+PC
RET
DB 66H
DB 77H
DB 88H
DB 99H
Dac subrutina este apelat LL LL1L11L1L1 N1L N1L1L \. N
returna 11 LL1L11L1. 11>11LL 1L1L 1iV / j1>1 naintea
11>11LL 1L111 1VV jL111> LLL111L 11>11LL 1L111 T L11 >LLNL1 .
Dac L 1N LL1L 1 LL LLL >Lj1 11LLjL1L1 LL 11>11LL 1L1L 1VV L11
>LLNL1 , num rul corespunzator va fi ad ugat la acumulator.

3.32 MOVX <dest-byte>,<scr-byte>
L1L 1. Mutare extern
Descriere: 11>11LL 1L1L 1V. 111>1L1 L1L 1111L LL1L11L1 >1 L1 LL1L1 1
1L1L11L1 L?1L11L. `L11 LLL 11jL11 LL 11>11LL 1L11 L11L111L. LLj cum se
furnizeaz o adresare indirect 1 T/1-ul exte11. jL >L jL ! 11 1. 11
j111L1 L/. LL1 11L1L1 1LU1>11L1L1 T\ >1 T 1L111/L/ o adres jL 11 1
1L111j1L?1 LL L1 L11 jL11L1 \. 11 1 >L11 >L11L1L1 1 jL111L LLLL-
L1L L?1L1>1L1 1/V L?1L11L jL L 11L LL T/1 11L . L111L L 11L 11
11L. j1111 jL11L111L1 jL1 11 L1111/11 jL111L 1L>11L 11 11L1 mai
semnificativi de adres . /LL>11 11 1 NL1 11 LL111L1 1 LL L11>11LL 1L1L LL
1L>11L L1L N L11 11>11LL 1L111 1V.. 11 1 LL11L L/. jL111L1L1 LL
L1L UL1L1L/ o adres jL ! 11 1. L11L1 Z N 11L 1L>11L LL1L1
11 1 >LjL11L11 LL L1L> LL1 11L1L1 11 jL11L1 \ N 1L111j1L? LL1
11 1 111L11L11 LL LL1 LL L1L. TLU1>11L1 1L1L 111L1 >jLL11L Z N
1L 11L LL1 11L1L1 11L11L1. 11 1L11L1L1 LL 1L>11L Z N L111L LL1 11L1L1
1L1 . /LL>1 formul e mai rapid >1 11 L11L1L11 cnd se
acceseaz /L1L LL L1L 1L11L 111 11 111 LL !H bLL1L 1. LLL1LLL
1L L>1L 1LNL1L LL 11>11LL 1L11 >Lj111L111L jL111L >L1 jL11L111L LL
1L>11L. >1L jL>1111 >1 LL1111 1 LL1L1 LLL 11jL11 LL 11>11LL 1L11
1V.. V /L1 extins LL 1L1L11L T/1 >1 111111L sale de adres LL
ordin superior, administrate de portul P2, pot fi adresate prin pointerul
LL L1L. 11 LLLL1 LL 1L>11L 1 11 11L1 >LjL11L11 LL L1L> 1 jL11L1L1 Z N
11 L111 LL L 11>11LL 1L1L 1V. L1111/1L 1LU1>11L1L T\ >L T.
Exemplu: O zon de memorie RAM extern . LL 1L1U11L LL Z! LL1L 1. L1111/1L
1L111j1L?1L 111111L1 LL L1L>L >1 LL L1L L>1L LL1LL11 la portul P0 al
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 41
microcontrollerului 8051. Portul P3 asigur liniile de control pentru
memoria RAM extern . L11L111L >1 Z >L11 L1111/1L pentru intr 111L
>1 1L>1111L 1L111L. TLU1>11L1L T\ >1 T LL1 11 N1L111L Z >1 1L>jLL11N
OH. LL 1 LL L1L> OH T/1 L?1L11 LL1 11L N1L1L !.
11>11LL 1L111L.
MOVX A,@R1
MOVX @R0,A
copiaz N1L1L ! 11 11 LL1L11L1. L1 >1 11 1LL 1 T/1 L?tern
cu adresa 12H.

3.33 MUL AB
L1L 1. 11L1 11L
Descriere: 11>11LL 1L1L 1\ / 111L1 L>1L 1111LU11 jL 11 1 L11 LL1L11L1 >1
L11 1LU1>11L1 . VL1L1L1 11 jL 11 >L11111L11N 1 j1LLL>L1L1 jL ! 11 1
L>1L 1 sat n acumulator, iar octetul mai semnificativ n registrul B. Dac
produsul e mai mare dec 255 (0FFH) indicatorul de dep >11L L>1L >L11.
altfel, este zero. Indicatorul de transport este ntotdeauna resetat.
Exemplu: 111 11. LL1L11L1L1 LL1 11L N1L1L \ \. 11 1LU1>11L1 . N1L-
1L !\ \/\. 11>11LL 1L1L
MUL AB
va furniza produsul, 12.800 (3200H), registrul B devine 32H
(00110010B) iar acumulatorul 00H. Indicatorul de dep >11L L>1L >L11.
iar cel de transport este zero.

3.34 NOP
Fu1L 1. N1L1 L LjL1 1L
Descriere: ?LLL 1 LL1tinu LL 11>11LL 1L1L L11 toare. In afara contorului de
program, PC, care este incrementat, nici un registru sau indicator nu
este afectat.
Exemplu: Este nevoie de producerea unui puls de dep >11L >LL11 jL 111L1 1
jL11L1L1 Z. LL11L L?L1 L1L1L11. V >LLNL1 `/VT N UL1L1 L1
jL1> LL LL11 LL L1 L1L1L. 1 L1L 11L1L1L LL111 1 1 j11L. L 11
>LLNL1 .
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7

3.35 ORL <dest-byte>, <scr-byte>
L1L 1. SAU LOGIC pentru variabile de tip octet
Descriere: 11>11LL 1L1ea ORL realizeaz 1L1L 1 `/\ VV1V 1111L N11111L1L LL
11j LL1L1 11L1L1L. 11L 1L1L 1L/L111L1 11 LL1L1L1 LL>111 1L. iL >L
1LL1L/ 11L1 L1 11L1L1L1 LL LL1L1 11. VL1 LL1 LjL11/1 jL1111 !
LL1111 11 1L 1LLL111L1 LL L1L>1L. V1L LL>111 1 L>1L
acumulatorul, sursa poate fi adresat L 1LU1>11L. L11LL1. 1LU1>11L-
11L11LL1 >L 11LL11. L1L LL>111 1 L>1L L L1L> direct , sursa poate fi
acumulatorul sau o data imediat .
Not : Atunci cnd aceast 11>11LL 1L1L L>1L L1111/1 ca s modifice un
port de 1L>11L. N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L >1
nu de la intrare.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 42
Exemplu: Dac LL1L11L1L1 LL1 11L N1L1L \VO \\\\ >1 1LU1>11L1 T\
N1L1L \\\\. 11>11LL 1L1L
ORL A,R0
va l sa n acumulator valoarea 0D7H(11010111B).
V1L LL>111 1 L>1L L1 LL1L1 L1L>1 L11LL1. 11>11LL 1L1L jL1L >L1
LL1111 11 LL 11 1 11 L11LL 1LL 1L T/1 >L 1LU1>11L 11L\1L. `11L1L1
11 11L1 L1L 11L1L1L >L1 1 L>1L LL1L11111 LL L1 LL1L1-1>L , care poate fi
o constant 11 11>11LL 1L1e sau o variabil creat 11 LL1L11L1 1 1L11L.
11>11LL 1L1L.
ORL P1, #00110010B
N >L1 11 11 . H >1 1 jL11L1L1 LL 1L>11L .

3.36 ORL C, <scr-bit>
L1L 1. SAU LOGIC pentru variabile de tip bit
Descriere: 11>11LL 1L1L VT V. 111 >L1L/ indicatorul de transport dac valoarea
boolean L L1 1LU1L. 11>11LL 1L1L 1L 1LL111L starea indicatorului de
transport. Simbolul (/) precednd operandul, n limbaj de asamblare,
indic faptul c se utilizeaz compementul logic al bitului adresat ca
valoare surs , f r ca bitul surs s fie afectat. Nici un alt indicator nu e
afectat.
Exemplu: `LLNL1 j1L/L111 seteaz indicatorul de transport dac >1 1L11 LL
P1.0=1, ACC.7=1, OV=0:
ORL C, P1.0
ORL C, ACC.7
ORL C, /OV

3.37 POP direct
L1L 1. Extragere din stiv
Descriere: 11>11LL 1L1L L11L>1L LL1 11L1L1 1LL11L1 111L11L T/1 L1L>1 prin
pointerul stivei, iar pointerul stivei este decrementat cu 1. Valoarea
citit este apoi transferat n octetul direct adresabil indicat. Nu se
afecteaz nici un ind1L1L1 LL LL1L1 11.
Exemplu: L111L1L1 >11NL1 LL1 11L 111 11 N1L1L OZ >1 1LL 111L 111L11L T/1 LL
L1L>L1L O\ j1 1 OZ LL1 11 N1L111L Z\. ZO. \. 11>11LL 1L111L.
POP DPH
POP DPL
las jL111L1L1 >11NL1 >L11 1 N1L1L O\ >1 jL111L1L1 LL L1 1 \ZO.
11 LL>1 jL1L1. 11>11LL 1L1L.
POP SP
va seta pointerul stivei la valoarea 20H. In acest caz special, pointerul
stivei a fost decrementat la valoarea 2FH nainte de nc rcarea cu
valoarea extras (20H).

3.38 PUSH direct
L1L 1. Salvare n stiv
Descriere: L111L1L1 >11NL1. `. L>1L 11L1L1L111 LL . VL1 11L1L1 N11111L1 11L1L1L
L LLj11 11 1LL 1 111L11 RAM adresat de pointerul stivei. Nici un alt
indicator nu este afectat.
Exemplu: Intrnd ntr-o rutin de ntrerupere, pointerul stivei. `. LL1 11L
N1L1L \`. L111L1L1 LL L1L LL1 11L N1L1L \ZO. 11>11LL 1L111L.
PUSH DPL
PUSH DPH
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 43
NL1 >L1 jL111L1L1 >11NL1 1 N1L1L \ >1 NL1 11L 1L ZO >1 \ 11
1LL 111L 111L11L T/1 LL L1L>L1L \/ >1 \.

3.39 RET
L1L 1. Revenire din subrutin
Descriere: 11>11LL 1L1L T L?11UL >LLLL>1N LL1L 11 11 >L11111L11N >1 11
jL 11 >L11111L11N 1 L1L>L1 L11 >11N . LLL1L1L1111L jL111L1L1 >11NL1 LL
Z. ?LLL 1 j1LU11L1L1 LL1111L de la adresa rezultat . 11 UL1L11
11>11LL 1L1L LL >LLLLL 11>11LL 1L111L /V/ >L V/. i1L1 L1
indicator nu este afectat.
Exemplu: L111L1L1 >11NL1 LL1 11L 111 11 N1L1L \. LL 111L 111L11L T/1 LL
L1L>L1L \/ >1 \ LL1 11 N1L111L ZO >1. 1L>jLL11N \.
I1>11LL 1L1L T N >L1 jL111L1L1 >11NL1 1 N1L1L \`. 11 L?LLL 1
j1LU11L1L1 N LL1111L LL 1 1LL 1 LL L1L> \ZO.

3.40 RETI
L1L 1. Revenire din rutina de tratare a unei ntreruperi
Descriere: 11>11LL 1L1L T1 L?11UL >LLLL>1N LL1L 11 11 >L11111L11N >1 11
jL 11 >L11111L11N 1 LL11orului programului, PC, din stiv >1
1LL11NL/ logica de ntreruperi s LLLj1L 1111L1LjL11 >Lj111L111L. LL
LL1>1 11NL1 LL j11L1111L L LL 1LL11 j1LLL>1 . Pointerul stivei e
decrementat prin 2. Nici un alt registru nu este afectat. Cuvntul de stare
a programului, PSW, nu este renc rcat automat cu starea sa anterioar
trat 111 1111L1LjL111. ?LLL 1 j1LU11L1L1 LL1111L de la adresa
rezultat . L1L L 11 UL1L11. 11>11LL 1L1L 11LL11 L11 toare celei dup
care a fost detectat apelarea ntreruperii. Dac o ntrerupere cu nivel de
prioritate mai mic sau egal a ap 1L1 11 111j LL >L L?LLL1 T1. LL
11>11LL 1L1L N 11 L?LLL11 naintea revenirii din ntrerupere.
Exemplu: L111L1L1 >11NL1 LL1 11L N1L1L 111111 0BH. O ntrerupere a fost
detectat 11 111jL1 11>11LL 1L111 L1L >L 1L1111 1 1LL 1 LL L1L>
\ZZ. LL 111L 111L11L T/1 LL L1L>L1L \/ >1 \ LL1 11 N1L111L
ZO >1 1L>jLL11N \. 11>11LL 1L1L.
RETI
va l > jL111L1L1 >11NL1 >L11 1 N1L1L \` >1 N LL1111L L?LLL 1
programului de la adresa 0123H.

3.41 RL A
L1L 1. RL1L>1L LL1L11L1L1 1 >11U
Descriere: VL1 11 1 1 LL1L11L1L1L1 >L11 1L11 LL L1 111 1 >11U. 11L1 |L1UL
11 jL/1 1 111L1L1 \. i1L1 L1 11L1L1L1 1L L 1LLtat.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L 111 11 \V \\\\. 11>11LL-
1L1L.
RL A
va determina ca acumulatorul s LL1 11 valoarea 8BH (10001011B),
f r a afecta indicatorul de transport.

3.42 RLC A
L1L 1. Rotirea acumulatorului la stnga prin indicatorul de transport
Descriere: Cei 8 bi 1 1 LL1L11L1L1L1 >1 11L1L1L1L1 LL 111>jL11 >L11 11LL1
1L11 1 LL L1 111 1 >11U. 11L1 |L1UL 11 11L1L1L1L1 LL 111>jL11. 11
LL>1 jL jL/1 1 111L1L1 \. iL 1LL1L/ 11L1 L1 11 11L1L1L1.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 44
Exemplu: /LL1L11L1L1 LL1 11L N1L1L 111 11 0C5H \\\\. >1
11L1L1L1L1 LL 111>jL11 L>1L \. 11>11LL 1L1L.
RLC A
va l sa n acumulator valoarea 8BH (10001010B), cu setarea
indicatorului de transport.

3.43 RR A
L1L 1L. Rotirea acumulatorului la dreapta
Descriere: VL1 11 1 1 LL1L11L1L1L1 >L11 1L11 1 LL L1 111 1 L1Lj1. 11L1 \
|L1UL 11 jL/1 1 111L1L1 . i1L1 L1 11L1L1L1 1L L 1LL11.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L \V \\\\. 11>11LL 1L1L.
RR A
va seta acumulatorul la valoarea 0E2H (11100010B), cu indicatorul de
transport neafectat.

3.44 RRC A
L1L 1. Rotirea acumulatorului la dreapta prin indicatorul de transport.
Descriere: VL1 11 1 1 LL1L11L1L1L1 >1 11L1L1L1L1 LL 111>jL11 >L11 1L11 1
11j1LL1 cu un bit la dreapta. Bitul 0 ajunge n indicatorul de transport,
11 LL>1 11 jL/1 1 111L1L1 . i1L1 L1 11 11L1L1L1 1L L>1L 1LL11.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L \V. 11 111>jL11L1 L>1L \.
11>11LL 1L1L.
RRC A
va determina ca acumulatorul s LL1 11 valoarea 62H (01100010B), cu
indicatorul de transport setat la 1.

3.45 SETB <bit>
L1L 1. Seteaz bitul specificat
Descriere: 11>11LL 1L1L ` >L1L/ bitul indicat la 1. SETB poate opera asupra
indicatorului de transport sau oric rui alt bit direct adresabil. Nu
afecteaz 1 1 11L1L1L11.
Exemplu: I1L1L1L1L1 LL 111>jL11 L>1L 1L>L11. L11L1 LL 1L>11L 1L>1 11>L11> LL
N1L1L OH \\\\\. 11>11LL 1L111L.
SETB C
SETB P1.0
NL1 >L1 11L1L1L1L1 LL 111>jL11 1 >1 L1 LL 1L>11L 1 jL11L1 N fi
35H (00110101B).

3.46 SJMP rel
L1L 1. Short Jump
Descriere: 11>11LL 1L1L `J1 LL1L1111 L1 >11 1LLL1L1 1L11 11 j1LU11. 1
L1L> 11L1L1 . L>111 1 >11L1L1 L>1L LL1jL> prin sumarea deplas 111
LL >L11. 11 1 LL11L LL1L1 1 11>11LL 1L111. LL LL1 11L1L1 LL11L1L1L1
j1LU11L1L1. V. LLj incrementarea PC de dou L11. `11L1 jL111> 1L
o valoare de la -Z LL LL1L 1 j1LLLLL1 1 11>11LL 1L111 `J1 1 Z
LL1L 1 L11 1L11 11>11LL 1L111 `J1.
Exemplu: Eticheta RELADR e asociat 11>11LL 1L111 LL 1 1LL 1 LL L1L>
\ZO. 11>11LL 1L1L.
SJMP RELADR
N LLLL 1 1LL 1 LL L1L> \\\. Lj LL 11>11LL 1L1L L>1L
L?LLL11 . V N LL1 11L N1L1L \ZO.
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 45

3.47 SUBB A, <src-byte>
L1L 1. Sc dere cu mprumut.
Descriere: 11>11LL 1L1L `\ N >L dea att variabila octet indicat . L1 >1
indicatorul de transport din acumulator, l snd rezultatul n acumulator.
SUBB seteaz indicatorul de transport (de mprumut) dac L>1L 1LNL1L
LL L1 11j1L1L1 jL111L 111L1 >1 >1L1UL 11L1L1L1L1 V 111L1 LL V
fos1 >L11 11111L L?LLL 1L1 11>11LL 1L111 `\. ceasta indic c a fost
necesar un mprumut la pasul anterior, ntr-o sc dere cu precizie
multipl , astfel nct transportul este sc zut din acumulator odat cu
operandul surs ). Indicatorul AC e setat dac 1L>1 1LLL>1 L1
11j1L1L1 jL111L 111L1 O >1 1L>Ltat n caz contrar. Indicatorul OV e setat
dac e necesar un mprumut la bitul 6, dar nu la bitul 7, sau la bitul 7,
dar nu la bitul6. La sc derea ntregilor cu semn, OV indic un num r
negativ cnd o valoare negativ e scazut dintr-o valoare pozitiv , sau
un rezultat pozitiv cnd un num r pozitiv e sc zut dintr-un num r
negativ. Operandul surs permite 4 moduri de adresare: prin registru,
direct , indirect prin registru, imediat .
Exemplu: Acumulatorul con 11L N1L1L \V` \\\\. 1LU1>11L1 TZ
LL1 11L N1L1L H \\\\\ >1 11L1L1L1L1 LL 111>jL11 L >L11.
11>11LL 1L1L.
SUBB A, R2
va determina valoarea 74H (01110100B) n Acumulator, cu indicatorul
LL 111>jL11 >1 /V 1L>L1 1. L1 11L1L1L1L1 V setat. Se observ c :
0C9H-54H =75H
11L1L1 1111L LL>1 1L/L111 >1 LL1 LL 11 >L> L>1L L1L11 1j1L1L1 L
11L1L1L1L1 LL 111>jL11 11j1L1L1 1L>1 >L11 11111L LjL1 1L1. L
starea indicatorului de transport nu e cunoscut nainte de nceperea
unei sc deri n precizie simpl sau multipl . N 11 11 1LL L?j11L11 1L>L11
LL L 11>11LL 1L1L.
CLR C.

3.48 SWAP A
L1L 1L. Interschimb intern n acumulator
Descriere: 11>11LL 1L1L `/ / 111L1>L1111 L1jL111L LL L1L H 11 1. 11
>L11111L11N >1 11 jL 11 >L11111L11N. 1L LL1L11L1L1L1 11 11 H >1
11 11 O\. VjL1 1 jL1L. LL >L1L1L. > fie gndit L L 11>11LL 1L1L
LL 1L1 1L jL H 11 1. i1L1 L1 11L1L1L1 1L L>1L 1LL11.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L \V \\\\. 11>11LL 1L1L:
SWAP A
determin n acumulator valoarea 5CH (01011100B).

3.49 XCH A, <byte>
L1L 1L. Schimb LL1 11L1L1 LL1L11L1L1L1 LL L N11111 de tip octet
Descriere: 11>11LL 1L1L .V 11L1L LL1L11L1L1 LL LL1 11L1L1 N11111L1
11L1L1L. >L1111L 11 LL1>1 111j LL1 11L1L1 L11U111 1 LL1L11L1L1L1 11
N11111 LL 11j LL1L1 11L1L1 . Operatorii surs >1 LL>111 1L jL1 1L1L>1
L1L>1L j111 1LU1>11L. L1L>1L L11LL1 sau indirect prin registru.
Exemplu: TLU1>11L1 T\ LL1 11L L1L> Z\. /LL1L11L1L1 LL1 11L N1L1L O
\\. LL 1 111L11 T/1 LL L1L> Z\ LL1 11L N1L1L
\\\. 11>11LL 1L1L.
XCH A,@R0
SISTEM DE DEZVOLTARE CU MICROCONTROLLER 80C552 46
N LL1L1111 L 1LL 1 T/1 LL L1L> Z\ > LL1 11 N1L1L O
\\ >1 \\\ 11 LL1L11L1.

3.50 XCHD A,@Ri
L1L 1. Schimb digit
Descriere: 11>11LL 1L1L .V >L1111 L1jL1 LL H 11 1 11 jL 11 >L11111L11N 1
LL1L11L1L1L1 11 11 O0), reprezentnd n general un digit hexazecimal
>L V. LL LL1 1 1LL 1L1 111L11L T/1 L1L>1 indirect prin
registrul specificat. V1jL1 LL H 11 1 11 >L11111L11N 11 11 4) ai
1LU1>11L1L1 1L >L11 1LL1 1. i1L1 L1 11L1L1L1 LL LL1L1 11 1L L>1L 1LL11.
Exemplu: TLU1>11L1 T\ LL1 11L L1L> Z\. /LL1L11L1L1 LL1 11L N1L1L O!
\\\\. LL 1 111L11 RAM cu adresa 20H con 11L N1L1L
\\\. 11>11LL 1L1L.
XCHD A, @R0
N LL1L1111 L 1LL 1 T/1 LL L1L> Z\ > LL1 11 N1L1L !
\\\ >1 LL1L11L1L1 O \\\\.

3.51 XRL <dest-byte>, <src-byte>
L1L 1L. SAU EXCLUSIV ntre variabile de tip octet
Descriere: 11>11LL 1L1L .T 1L11/L/ 1L1L 1 `/\ .V\`1 1 11NL1 LL 111
1111L N11111L1L LL1L1 11L1L1L. 11L 1L1L 1L/L111L1 11 LL1L1L1 LL>111 1L.
iL 1LL1L/ 11L1L1L111 LL LL1L1 11. VL1 LL1 LjL11/1 jL1111 !
LL1111 11 LL 1LLL11 LL L1L>1L. V1L LL>111 1 L>1L LL1L11L1L1.
>L1> jL1L 11 L1L>1 L 1LU1>11L. L11LL1. 1LU1>11L-indirect sau imediat;
L1L LL>111 1 L>1L L L1L> direct , sursa poate fi acumulatorul sau o
dat imediat .
Not : Atunci cnd aceast 11>11LL 1L1L L L1111/1 ca s modifice un port
LL 1L>11L. N1L1L L1111/1 ca dat 111 11 va fi citit LL 1 1L>11L. 1L LL
la intrare.
Exemplu: /LL1L11L1L1 LL1 11L N1L1L \VO \\\\ >1 1LU1>11L1 T\
LL1 11L N1L1L \// \\\\. 11>11LL11L1L.
XRL A, R0
va determina ca acumulatorul s LL1 11 valoarea 69H (01101001B).
V1L LL>111 1 L L1 LL1L1 L11LL1 L1L>111. LL>1 11>11LL 1L1L jL1L
11L 1L LL1j1L1L11L1L 1LU1LL 1L LL1111 111L1 LL 11 1 11 L11LL 1LL 1L
T/1 >L 1LU1>11L 11L\1L. `11L1L1 11 11L1 L1L NL1 11 LL1j1L1L11 1
L LL1L11111 LL L1 LL1L1 1>L , ce poate fi att o constant LL1 11L1 11
11>11LL 1L1L. L1 >1 L N11111 L1 11L1 n acumulator n timpul rul 111
j1LU11L1L1. 11>11LL 1L1L.
XRL P1, #00110001B
N LL1j1L1L11 11 11 . H >1 \ 1 jL11L1L1 LL 1L>11L P1.

S-ar putea să vă placă și