Вы находитесь на странице: 1из 197

. ..

STMicroelectronics

2008



. ..

.., .., .., .., .,


.., .., ..


STMicroelectronics

.., ..

2008

627.03
: .., .., .., ..,
., .., .., ..
STMicroelectronics /
. .., .. - , . ..
, 2007. 197 .
ISBN 978-966-2982-32-9

8- STMicroelectronics (STM).
STM. ST7, ,
.
. ST7.
, , , ., ST7. , .
. 40 , 96, 27.
:
- ..., , ;
- ..., , .
:
-
.. ( 6 27
2008 ).


................................................................................. 6
............................................................................................ 7
. STMicroelectronics ..... 11
.1 STMicroelectronics................................... 11
.2 ....... 12
.3 .......................... 13
.4 ...................................................... 14
.5
............................................................................. 16
1. ST7 ........................................................... 18
1.1. ST7 ............................... 18
1.2. ST7 ........................................................ 20
1.3. ST7 ........................................................................ 21
1.3.1. ................................................................................ 21
1.3.2. .................................................. 22
1.3.3. ..................................................... 23
1.3.4. ............................................................ 26
1.3.5. ............................................................................. 27
1.4. .................................................................... 28
1.4.1. ....................................... 28
1.4.2. ... 28
1.4.3. ....................................... 29
1.4.4. .......................................................... 30
1.4.5. ......................................... 31
1.4.6. ..................................................... 33
1.4.7. ............................................. 35
1.5. ......................................................................... 36
1.6. ....................................................... 38
1.6.1. - ............................. 39
1.6.2. SCI ............................... 40
1.6.3. SPI.......................................... 40
1.6.4. .................................................................................. 42
1.6.5. 16- ..................................................... 44
1.6.6. ........................................................ 44
1.6.7. .......................................... 45
1.6.8. ...................................... 47
1.7. ................................................................. 48
....................................................................... 50
2. .............................. 51
2.1. ............................... 51
2.1.1. .................. 51
2.1.2.
............................................................................... 52
3

2.1.3. ............................................................ 53
2.1.4. ST7 ............................................................... 56
2.2.
ST7 Visual Developer.......................................................................... 66
2.2.1. ............................................................. 66
2.2.2. ........................................ 69
2.2.3. ....... 70
2.2.4. ................................ 73
2.2.5. ......................................................... 74
....................................................................... 82
3.

ST7 ............................................................................................... 83
3.1. ................................................................ 83
3.2.
.......................................... 84
3.2.1.
....................................................................................... 84
3.2.2. .
................................................................. 84
3.2.3. -
.................................................... 85
3.2.4.
.................................................................................. 90
3.2.5. ............................................ 90
3.3.

.
............................................................... 91
3.4.
. ......................................... 94
3.5.

. ......................................... 96
3.6. .... 108
..................................................................... 111
4.
ST7 ........ 112
4.1.
............................................................................. 112
4.2.
.
............................................................. 113
4.3.
........................ 119
4.4. .... 133
4

4.5. ....................................... 143


4.5.1. .......... 143
4.5.2.
.................................................................. 149
..................................................................... 150
.......................................................................................... 151
......................................................................................... 152
1. ST7 ..................... 152
2. ........................................................ 168
3. ST7................... 173
4. ST7............ 175
5.
......................................... 177
6.
. ............................................................................. 189
........................................................................................... 194


2006
, , , STMicroelectronics, ,
. , , , ,
, ,
.
2007
STMicroelectronics .
,
STMicroelectronics, , ST7. .
,
, .
:
- -,
;
- -, ,
;
- -, , , ,
,
, .
STMicroelectronics, , .
, .

STMicroelectronics 2007 7

ST7.
, 2-3
,
5 10 . .
2007

. 32- 2008 .

, STM .
ST7 .

,

. ,
. ,
ST7.
STMicroelectronics

- , [11, 22].

2007 . -
, ,
.
,

.
.

ST7 . . , - ,
, .
8

, , STMicroelectronics, .
on-line
http://st.4ua.info.

, STMicroelectronics. , ,

STMicroelectronics, STM.

ST7, .
ST7, , , .

.

STMicroelectronics
,
, ,
..
,
, ,
STMicroelectronics, (http://www.st.com).
. STMicroelectronics,
,
.
ST7, . .
STVD7.
.
. ST7.
9

.
. ,
., .., .
.., 2 - ..,
.. .., 3
.., .. ..,
4 ..
.., ..
STVD7,

STMicroelectronics .
, , , ( , ,
, .).
, :
, ;
;
, ,
;
,
.
,
STMicroelectronics
, , STDV7 IDE & ST7 in 10
Steps,
.., .., .. [30].
- ..
.. , ,
, :
61070, . , . , 17, , 503. :
(057) 707-45-03. e-mail: V.Kharchenko@khai.edu

10

.
STMicroelectronics
.1 STMicroelectronics
STMicroelectronics (STM) . . , , , , , , , .
STMicroelectronics 1987 SGS Microelectronica Thomson
Semiconducteurs
. , - , ,
. STM , , 1999 .
:
50000 , 16 , 39 , 17 78 36 .
- , . -
, ; - ,
. ,
, , - .
8 1994 , STM
, . 900 , 72.4% . STMicroelectronics
Holding 2 B.V., Cassa Depositi e Prestiti ,
Finmeccanica of Italy Areva of France.
STM 9.85 2006 , 12 2007 . , , STM
, 11

. , STM ,
-.
. STM
.
.2

, 3000 .
, ,
, , ,
.
: (38%), (17%), (16%), (15%)
(14%). STM
, ,
, , , .
, , , ,
STM
System-on-Chip (SoC - ), , .
STM . 200 Agrate Brianza (), Catania (), Crolles (), Phoenix (), Rousset
() . 300 STM , Crolles2. Wuxi
City() STM Hynix
Semiconductor - .
Crolles2 STM,
Freescale NXP - (CMOS).
12

, , , .
.3
STM - .
2006 1.667 , 16.9% .
607 2006 .
STM - . STM
, , ENIAC(European
Nanoelectronics Initiative Advisory Council)
Poles de Competitivite .
STM , , ,
.
, . , , STM

.
STM,
AST- (, ).
, 3-5-
STM. STM, , , .
STM
. 1991
70
, , .

,
, , ,
13

. STM (Corporate Responsibility),


, , ,
16- 4-
OHSAS 18001; ; , STMicroelectronics.
.4
STM , , , , .
.
STM ,
Alcatel, Bosh, Hewlett-Packard, Marelli, Nokia, Nortel, Pioneer,
Seagate, Siemens VDO, Thomson, Western Digital .
STM , ,

. STM
,
,
, .

, , .
1992 STM Philips -
Crolles(). 2003
Freescale Philips - ,
300 90- 32-. Crolles2, 300- , Crolles ()
.
14

STM . 2002 Texas Instruments,


.
, MIPI Alliance, STM, ARM, Nokia, Texas Instruments -. 92 ,
,
.

STM. STM Hynix NAND ( -) Flash . Intel
. , Frescale
- 90nm .
STM , Air Liquide, Applied Materials, ASM Lithography,
Axalto, Canon, Hewlett-Packard, KLA-Tencor, LAM Research, MemC
Teradyne. STM , , MEDEA+ ( ), ITEA2 (
) - , , , .
STM
: ENIAC (
), ,
ARTEMIS (
).
, STM
, , , .
1998 STM
Shenzhen (), STM SHIC ( Shenzhen).
2004 STM Hynix
Wuxi City ().
-
-. 200- , 2006 , 300-
(2007.).
15

.5

STM
, .
,
, ,
.

STM, .

.

STM :
LEcole Nationale Superieure des Mines de Saint-Etienne (-)
lEcole Centrale Marseille ().
,
, .
, , , , .
:
1: :
: .

: , .
:
,
, .
2: ,
, .
STMicroelectronics
:
- ;
16

- / ;
- , , ..

STM . STM ST7, , .
.
- .
,
STM, , .

,
( , , ..).
2007 STM , , , , .
, ,
STM .
, , ,
,
.

17

1. ST7
1.1. ST7
STMicroelectronics
( Intel, Samsung
Electronics, Toshiba Semiconductors Texas Instruments).
, . 1.1. (MIPS ).

. 1.1. STMicroelectronics
, 8-
40% , .
32- ,
8- . ,
8- -
.
STM 8-
ST6, ST7 ST9 (. 1.1).
STM75.
ST7 STMicroelectronics.
18

1.1
8- STMicroelectronics

, 1.2 8
ST6 ROM, , , , 5
,
ST7 256 3 RAM, 4 60 ROM, , SPI,
16- , 16
, , ST9 , DMA, 16 128
ROM, 256 RAM, 128
50 , :
1 2 , SPI SCI;
,
, 8 ( ) EEPROM
;
, : I2C, CAN, USB;
.

ST7Fox, ST7Lite, ST7226x, ST7232x ST7236x (. 1.2).

. 1.2.
19


ST7MCx,
( 1.3).
ST7LNBx ( DiSEqC
), USB (ST7SCR,
ST7263B, ST7265x, ST7267x, ST7268x), ST7256x ( CAN).

. 1.3.
ST7 low-end ,
. ST7 MC68HC05/08 Motorola, PIC16C Microchip
Technology 78K NEC.
1.2. ST7
ST7 ,
,
, ..
(). ST7
. 1.4.

20

ST72

254

/CCC

0
1
6
3

+25C
0 .. +70C
-40 .. +85C
-40..+125C

B
D
M
T

DIP (Dual In-Line Package)


DIP
SO (Small Outline Package)
QFP (Quad Flat Package)

1
2
4
6
7
9

4
8
16
32
48
64

Y
F
G
K
L
J
S
N
R
M
V
W

16
20
28
32
34
42
44
56
64
80
100
128

*
E
T
F,C
P

ROM ( )
EPROM
OTP
FLASH
FASTROM

. 1.4. ST7
1.3. ST7
1.3.1.
ST7 8- . - ,
8- - (), 6
, (. 1.5).
, , ,
.

21

. 1.5. ST72251
( ).
, ( , ..)
1.3.2.
ST7 - , ,
, /.
:
, , / ;
22

;

.
16- 65536 ,
ST7.

:
0 255 (0FFh)
;
8- ;
, 256 (80h) 65535 (0FFFFh), 16- .

, .
, / ST7 .
1.3.3.
ST7 : A, X, Y, PC, SP
CC (. 1.6).
A (accumulator) 8- , :
;
.
X Y 8- , :
;
.

. 1.6. ST7
23

PC (program counter) 16- , , . 8- PCL PCH.


PC
( ) FFFE-FFFFh. , ST7
64 .
SP (stack pointer) 16- . 1.3.4
CC (code condition) ,
.
5 , 1.2
1.2

7
1

6
1

5
1

H=1, ()

( 4
H

)

()

3
I
I=1

N=1, 2
N

Z=1, 1
Z

C=1,
0
C
()
8-
C ,
0FFh, 0h. 16- ( ) , 1 (
) 1 ( )
24

,
8- . / SCF RCF , JRC JRNC.
, /.
Z . , OR A, #0 AND
A,$FF : Z . JREQ JRNE.
N , (7-) 1.
JRMI JRPL.
I -
. CC .
I=1, , . RIM (), SIM () IRET ( ), JRM JRNM.
H () ( )
().
,
(, ).
JRH JRNH.

. 1.7.

. 1.7.
25

1.3.4.
( PC, CC, A, X) , ( PUSH POP). . 1.8.

. 1.8.
,
Y . Y, PUSH POP .
SP , . ,
.
, LD SP, A. ,
RSP.
, :
ST72254: 128 ( 0100h 017Fh);
ST72521: 256 ( 0100h 01FFh);
ST7FoxF1: 128 ( 0180h 01FFh);
ST7Lite0: 64 ( 00C0h 00FFh).

SP . SP , . , .
. 1.9 SP .
26

1.3.5.

. 1.9.
ST7
(. 1.10):
: /,
(TIM), (ADC), (WDG), SPI, I2C . .;
RAM ( );
: 128 256 ( );
EEPROM ( 256 );
;
.

. 1.10. ST7
27

ST7
: OTP, EPROM, FASTROM, ROM Flash.
1,5 60 . Flash , . ,
.
128 6,5 .
EEPROM 128 256
.
1.4.
1.4.1.
ST7
, , X
Y, . 17 , 7 :
, (inherent);
(immediate);
(direct);
(indexed);
(indirect);
(relative);
(bit operations).
. 16- , 8-. ,
64 ,

( 00..FF).
.
CLR, CPL, NEG, BSET, BRES, BTJT, BTJF, INC, DEC,
RLC, RRC, SLL, SRL, SRA, SWAP .
ST7.
1.4.2.
,
28

(. 1.3). ,
. 1 .
1.3
,

NOP

TRAP

(Wait For InterWFI
rupt)
HALT

RET

IRET

SIM

RIM

SCF

RCF

RSP

/
PUSH/POP

1.4.3.
8-
(. 1.4). # .
1.4
,

LD

LD A, #$3
CP

CP A, #%00001000
BCP

BCP A, #%01011010
AND, OR, XOR

AND A, #$D6
ADC, ADD, SUB,

ADD A,8
SBC

, . 1.11, $10, , .

29

A=$3

LD A, #$10

A=$10

. 1.11.
1.4.4.
8- ( ) 16-
( ) . 1.5 , .
1.5
,
-


LD

LD A,$55

CP

CP A,$55

BCP
BCP A,$55

AND, OR,

OR A, $55

XOR

ADC, ADD, ADC A, $55

SUB, SBC
CLR

CLR A

INC, DEC
INC addr

/
<=0
TNZ
TNZ A

(Test Negative or
Zero)
CPL, NEG
CPL label

/
BRES
BSET, BRES

ATCSR,#CMPIE

30

BTJT, BTJF

SLL, SRL,
SRA, RLC,

RRC

SWAP

,
CALL, JP

1.5
-


BTJT variable, #3,
label

SRL addr,#3

SWAP A

CALL subpr

, . 1.12, , $40.

. 1.12.
1.4.5.
(X Y) 8- 16 , .
X , Y . , ,
Y, 1 , , X.
8-, 00h-FFh.
1.6,
1.7.
31

1.6


0
00..FF
NEG (X)
(no offset)
SWAP
1
00..1FE
(variable, X)
(short offset)
OR A,
2
64
(long offset)
(variable, Y)
1.7
,
-


LD

LD A,(txtoff,X)

CP

CP A, (Y)

BCP

BCP A, (X)

AND, OR,
AND A, (Y)

XOR

ADC, ADD,

SUB A, (X)

SUB, SBC

CLR

CLR (Y)

INC, DEC
/
DEC (X)

TNZ
<=0
(Test Negative or
TNZ (Y)

Zero)
CPL, NEG CPL (Y)


BSET, BRES / BSET (X), #3

BTJT, BTJF
BTJF (X), #3,

label
SLL, SRL,

RLC
SRA, RLC,

(variable, Y)
RRC
SWAP

SWAP

(variable, Y)
CALL, JP
,

JP (X)

32

. 1.13 . ,
, Y.

. 1.13.
. 1.14
. , $2AA5, label=$2AA4
X=$01.

. 1.14.
1.4.6.
, , ,
().
. (
00..FF) ( 64 ) (. 1.8).
33

1.8
,
-


LD

LD A, [label.w]

CP

CP A, [label.w]

BCP

BCP A, [label.w]

AND, OR,

AND A, [label.w]

XOR

ADC, ADD, ADD A, [label.w]

SUB, SBC
CLR

CLR [label]

/
INC [variable]
INC, DEC


TNZ

<=0 (Test Nega- TNZ [variable]


tive or Zero)
CPL, NEG CPL [variable]

BSET,
/
BRES [variable],

BRES

#7
- BTJT [variable],
BTJT, BTJF


#3, label
SLL, SRL,

SRA,
- RLC [variable],#3

RLC, RRC

SWAP
SWAP [label]

, CALL, JP
CALL [label]


. 1.15
SWAP.
, label=$3C.

34

. 1.15.
1.4.7.
.
(PC) 8- .
( ) ( ,
) (. 1.9).
, 127
.
1.9
,

JRxx
JREQ timerb_exit
CALLR
CALL lcd_reg_write

1.10
.
1.10
ST7
-
(

-

NOP
+0

LD A,#$55
+1
35



.
.
.

.
.

1.10
-
(
-

)
LD A,$10
00..FF
+1
LD
0000..FF
+2
A,$1000
FF
+0
( X)
LD A,(X)
00..FF
+1
( Y)
LD
00..1FE
+1
A,($10,X)
LD
0000..FF
A,($1000,X
+2
FF
)
LD A,[$10] 00..FF

+2
LD
0000..FF

+2
FF
A,[$10.W]
LD
00..1FE

+2
A,([$10],X)
0000..FF
LD

+2
FF
JRNE
PC-128/
+1
LOOP
PC+127
JRNE
PC-128/

+2
[$10]
PC+127
BSET
00..FF
+1
$10,#7
BSET
00..FF

+2
[$10],#7
BTJT
$10,#7,LB 00..FF
+2
L
BTJT
[$10],#7,L 00..FF

+3
BL

1.5.
ST7 63 1 4 . , , 256- 8- .
36

(. 1.16):
;
;
(, ), ;
.
.

. 1.16.
1-
250 8 .
1.11 , . 1.
1.11
ST7

LD
PUSH

CLR
POP

INC

DEC

CP

TNZ

BCP

AND

OR

XOR

CPL

NEG

RSP

BSET BRES
BTJT

BTJF

ADC

ADD

SUB

SBC

MUL

SLL

SRL

SRA

RLC

RRC

JRA

JRT

JRF

JP

JRxx
TRAP

WFI

HALT IRET

SIM

RIM

SCF

37

RCF

SWAP

SLA

CALL CALLR NOP RET

1.12 ,
.

NOP

POP LD mem, CP X,
X
BRES PUSH LD mem, LD X,
Y
BSET
CP Y,

RCF
RET

BTJF
BTJT

IRET

MUL

HALT

PUSH POP


()

1.12

LD Y,

RIM CALLR
RSP
JR*
SCF
SIM
TRAP
WFI

1
(
)

CALL ADC
JP

NEG

MUL
RRC
CALL

10

11

1.6.
38

ADD

LD
AND
mem,A
BCP
CP
A,
LD A,
OR
SBC
SUB
XOR

14

15

(. 1.17):
- ( A, B, C);
SPI;
SCI, CAN, I2C, USB;
8- 16- ;
;
10- - ();
.
.

. 1.17.
1.6.1. -
/. ST7 /,

( ), ( ).

39

, . ST7 OR (Option Register)


DDR (Data Direction Registers).
,
/ , ,
SPI, . , , .
1.6.2. SCI
/
8 9 . 300 115200 .
SCI , UART-. (NRZ)
. 10 - 11 (1 -,
8 - 9 , 1 -). SCI : , .
1.6.3. SPI
SPI (Serial Peripheral Interface)
ST7 , , FLASH- , .
, .
- SPI
, .
,

, .
, (. 1.18).

MASTER

SLAVE
MISO

Master Input
Master Output

Slave Output
MOSI

Slave Input

SCLK
Serial Clock

Serial Clock

. 1.18. SPI
40

. 1.19 MASTER SLAVE.


SLAVE, MASTER , SS .

SCLK

SS

SLAVE
MOSI

MISO

MOSI

MISO

SCLK

SS

SLAVE
MOSI

MISO

SCLK

SS

SLAVE
MOSI

MISO

SCLK

5V
SS

MASTER

. 1.19. SLAVE
SPI
SPICR (SPI Control Register), . 1.13.
1.13
SPICR
7 6 5 4 3 2 1 0
SPIE SPE SPR2 MSTR CPOL CPHA SPR1 SPR0
SPICR:
SPIE (0 );
SPE (1 SPI );
MSTR MASTER SLAVE (1 MASTER);
CPOL ;
CPHA ;
SPR0, SPR1, SPR2 (. 1.14).

41

1.14

SPR2 SPR1 SPR0
FCPU / 4
1
0
0
FCPU / 8
0
0
0
FCPU / 16
0
0
1
FCPU / 32
1
1
0
FCPU / 64
0
1
0
FCPU / 128
0
1
1
SPI 8-
SPISR (SPI Status Register),
.
1.15
SPISR
7 6 5 4 3 2 1 0
SPIF WCOL OVR MODF
SOD
SPISR:
SPIF (1 == );
WCOL ;
SOD SPI ( SPI , SPE=1);
MODF ;
OVR SPI.
SPIF, WCOL, MODF, OVR .
SPI . 1.20. , , SPICR.
ld A, #$5c

;
;
;
;
;
;
ld SPICR, A ;

$5C=%01011100
SPI:
SPR0=SPR1=SPR2=0 (fcpu/8)
CPHA=1, CPOL=1
MSTR=1 ( MASTER)
SPE=1 (SPI )
SPI

. 1.20. SPI
1.6.4.
- ()
, .
ST7
:
42

,
;
10 ;
64 ;
1 LSB ( 0.12%);
/ .
ADCCSR (. 1.16).
1.16
ADCCSR
7 6 5 4 3 2 1 0
EOC SPEED ADON
CH2 CH1 CH0
ADCCSR :
EOC (1
ADCDRL ADCDRH);
SPEED (1 , 0
/2);
ADON (1 );
CH0, CH1, CH2 ,
(. 1.17).
1.17

CH2 CH1 CH0


AIN0/PB0
0
0
0
AIN1/PB1
0
0
1
AIN2/PB2
0
1
0
AIN3/PB3
0
1
1
AIN4/PB4
1
0
0
AIN5/PB5
1
0
1
AIN6/PB6
1
1
0
10- 8- ADCDRL ADCDRH.
ADON / .
.
30 .
ADCCSR .
EOC ADCDRL ADCDRH.
43

1.6.5. 16-
,
.
ST7 16- , .

, , . ,
2, 4 8. /.
, ,
ST72251 and ST72311.
16-
, CHR CLR.
, .
CHR CLR , FFFCh.
( FFFFh 0000h) TOF TSR.
.
.
. .
1.6.6.
,
, .
ST7 WDGCR, ( 6 7) 6 (. 1.21).

44

WGDCR
WGDA

T6

T5

T4

T3

T2

T1

T0

fCPU


(0 ==
)

. 1.21.
7 (WDGA) . ST7
1 , (, ST72251) .
6 0 .
1.6.7.
(, SPI) ( /). , ST7 ( TRAP). . 1.22
.

. 1.22.
45

(. 1.23)
:
( CC, A, X , PC) ;
I ;
;
;
;
( I).

. 1.23. ST7

(. 1.24).
46

. 1.24. ST7
1.6.8.
ST7 SPI, SCI, I2C, CAN USB. , STM
USB; . , , ST7261, ST7262
ST7263 USB-,
, . ST7265 ,
( , ).
, , MP3-,
/ Flash- ..
1.18 , ST7.
1.18
, ST7

SPI
SCI
I 2C
CAN
USB
ST7FOXU0

ST7FOXKx

ST7FOXF1
ST7LITEUxx
ST7LITESxxx

ST7LITE0xxx

ST7LIT1xxxx

ST7LITE2xxx

ST7LITE3xxx

ST7LITE49M

ST72260Gx

ST72262Gx

47


ST72264Gx
ST7232xKx
ST7256xxx
ST7GEME4
ST7SCRxxx
ST726xxx

SPI

SCI

1.18
IC
CAN
USB

1.7.
ST7
STM. ST7
, ,
.
, .
, ST7 MC68HC05/08 MOTOROLA , , . , ,
.
STM
, ,

.
. 1.19.
1.19
ST7

ST72254, ST72334,

ST72511, ST72521

ST72311
/
ST72141, ST72334

ST72389, ST72589


ST72314, ST72215

ST72314, ST72141

48

ST7255, ST72254,
ST72334

1.19

ST72T311, ST72254,

ST72314, ST72F65

ST72254

ST72254
ST72314, ST72334,

ST72311R,
ST72141

ST72334, ST72311R,

ST72254, ST72215

ST72C171

ST72321R
ST72141


ST72334, ST72254
ST72334, ST72311R,

ST7215, ST72216,
ST72104
ST72334, ST72311R,

ST72254

ST7FOX

ST7FOX

SMARTCARD


(PC,GSM...)
USB

()

ST72411, ST7262
ST72215, ST72311J
ST7261/62/63
ST7263, ST7262
ST7263, ST72215,
ST72311J

ST7 Logitech,
Microsoft, Netac, HP, Creative
(, , ,
/ ..). APC, Tripplite, Cyberpower, Delta ST7 (UPS), .
Whirlpool, Invensys, Electrolux, Moulinex . ST7 Schneider, Rockwell,
Agilent Tyco.
, ST7, 3 4.
49


1.


STM .
2. ST7.
3. .
4. ?
5. .
6. ?
7. .
8.
SPI.
9. .
10. ST7.

50

2.
() , . ,
.
.
, ,
, ,
: / .
,
/,
, , / .



(, C, ..).

,
.
,
. , -, (, C) ( , ,
..). -, (
),
, .
2.1.
2.1.1.
. , (
).
,
51

. ,
( , ,
..), .
, C.
,
.
( ), ( ) .
1. . . , ( ROM RAM, ,
..) (),
.
2. , ()
.
3. (), .

.
2.1.2.

, ,
: , (), .
,
. ,
(
, , / , ..).
,
() , .
,
,
( , ..). 52

.
, EPROM, , (ST7) .
2.1.3.
, .
( , ..).
ld X,#255
decr1:
dec X
jrne decr1

; X 255
; 1 X,
; X 0

255 X .
, :
() ;
,

.
, ,
, ,
.
2.1.3.1.
, ,
, .

(. 2.1):
, (*.obj);
,
, (*.lst);
,
: (*.err), (*.sym), ..

53

File.obj

File.asm

Assembler

File.lst

File.*

. 2.1.
2.1.3.2. (Linker)
( ), (*.obj), , . ( ).
, ,

.
-, ,
-, ,
,
.

( ..), .
ST7
STMicroelectronics
EXTERN PUBLIC.
EXTERN , (, ) .
PUBLIC , ()
.

2.2 2.3 .

54

. 2.2. ST7

. 2.3.
My_project.asm (. 2.3)
(library.inc), (function_library).
()
library.asm.
, (linker), :
(*.obj) ;
, ,
.

, (*.obj), , ,
.
55

, (*.abs *.cod), , EPROM .


(. 2.4):
(*.cod *.abs);
(*.sym);
(*.map).

. 2.4.
(*.sym)
(, ) (); ;
,
.
.
(*.map) (public) .
2.1.4. ST7
ST7 - (
, , ). , .

56

2.1.4.1.
, ST7 ASCII ,
. *.asm.
2.1.4.2.
, ST7 (. 4).
*.tab
, .. , (
st7.tab). *.tab ,
, ..
:
c:\program files\st7tools\asm\st7\


. ,
.
ST7
END ( 4), .
:
[[:]]<space>[]<space>[]<space>[;]

<space> SPACE ($20) TAB


($09);
.
, <space> , :
;
;
.
ST7 2.5.

. 2.5. ST7
57

: END (*.inc), (*.asm) .


,
,
JUMP . , , , ,
.
(. 2.5) ,

.
.


:
#INCLUDE "ST7Lite2.INC" ;
WORDS
;
segment 'rom'
;
...
;
.NEXT
;
LD (Table, X), A
;
DEC X
;
JRPL NEXT
;

(*.inc)
( 4)
(*.inc),
,
STM.
, ST7Lite2.inc ( )
ST7FLite29. ST7FLite29 2.6.

. 2.6. ST7FLite29
58

, , ST7Lite2.asm
ST7Lite2.inc .

, const.asm
variable.asm ,
, const.inc variable.inc .
PUBLIC, LOCAL EXTERN
, ..
, .. . , .

. 2.7. . PUBLIC, EXTREN.


(, .var_exp)
PUBLIC (. 2)
. EXTERN
(*.inc) (. 2.7).

, , .
,
( ),
.
. EQU. :
59

A_DOZEN EQU 12

, A_DOZEN , 12. ,
. , ,
-, ,
:
DISPLAY_WIDTH EQU 16

, DISPLAY_WIDTH
, 16 24 , .
:
DISPLAY_WIDTH EQU 24
DISPLAY_HEIGHT EQU 4
Total_Chars: DC.b (DISPLAY_WIDTH * DISPLAY_HEIGHT)

DISPLAY_WIDTH DISPLAY_HEIGHT
, Total_Chars
1 .
,

, .


, .
RAM ( ) DS.b DS.w (byte - 8 ) (word - 16 ) :
aByte: DS.B 1
aWord: DS.W 1
Array1: DS.B 20
Array2: DS.W 40

;
;
;
;

a
word 2
20
20

ST7 : .

(ROM), DC.b (byte),
DC.w (word). WORD DC.w , , BYTE
DC.b :
60

.PowerOf2 DC.b 1,2,4,8,16,32,64,128

; 2


.PowerOf2 X. 2 (A):
LD A, PowerOf2,(X)

STRING
,
:
Message: STRING "Hello"; Message Message2
Message2: STRING 48h, 45h, 4Ch, 4Ch, 4Fh

: DS. , ,
EQU, .
:

(ram0, .. 0 0FFh).
BYTES, WORDS segment
BYTES, WORDS 8 16
, . , BYTES

(RAM)
(0..0FFh). WORDS
, , RAM
, EEPROM , ,
ROM.
segment
. ,
.
, . .
, . ,
2.1.
, segment
- , , . .. ,
61

,
. .
2.1

()
ROM
(ROM) ,
RAM0
(RAM) ,
(0..0FFh)
RAM
(RAM) ,

STACK
(RAM),
IO
/
( )
: ()
segment, , ,
BYTES WORDS.
: WORDS . *.asm - *.inc.
: BYTES WORDS ,
. , 16- () (8- ) $100. , BYTES WORDS BYTE
WORD:
BYTES
segment 'ram0'
.count ds.w 1

; 0- RAM
; count word (2 )

WORDS
segment 'ram1'
.step ds.b 3
; 3
step
segment 'rom'
.rate dc.w 9600 ; rate word ROM
.tab dc.b $AA,%01010101 ; tab
;


.

, : 62

( ),
, ..
- , ( ).
ST7 , , .
:
wait:
ld X,#255
decr2:
ld Y,#255
decr1:
dec Y
jrne decr1
dec X
jrne decr2
ret

( ) ret ( ).
CALL _. :
call init_port
call wait

CALL
. ret
(PC)
. ,
( CALL).
,
(
),
PUBLIC EXTERN.

ST7FLite29 RESET, , , . , . (.
63

4), RESET main, , ,


(. . 3.7).

, .
, , ,
. .
. , .
,

- .
,
(. 2.7).

. 2.7.
,
, ( ) ,
. 64

:
( , X, , ) Y, .. ST7
, . , Y ( PUSH Y).

: IRET
(. 2.7).
, .
, Y, .
POP Y.
, 5- ( I).
(
0) .
.
(, ) I . IRET, ( )
. ,
I
(, ). , .. .

.
,
( ).
16-
, (. 4).
(/,
..) .
.
65

, RESET. RESET, .
2.2.
ST7 Visual Developer
2.2.1.
ST7
. STM (Toolset), :
ST7 Visual Developer (STVD7)
;
ST7 Visual Programmer (STVP7) .
ST7 Visual Developer
(STVD7 IDE), , :
Windows 98, Windows Me, Windows 2000
Windows XP;
64 (RAM) 40
;
USB, COM LPT ( ).
.
:
(. 2.8);
.

. 2.8.
66

,

(Development Kits).

,
,
.
ST7/ST5 training board
:
- (asm);
(lyn);
(obsend);
(lib).
( ST7, STVD7 ST ) STM (http://stm.com/mcu).
ST7 Toolset (Version 3.11) SofTec
Microsystems .
1. (. 2.9).

. 2.9. ST7 Toolset (Version 3.11)


2. (. 2.10).
ST7/ST5 training board

inDART-STX

.
67

. 2.10. ST7 toolset


3.
(. 2.11).

. 2.11.

68

4. (. 2.12).

. 2.12. ST7 Toolset SofTec Microsystems



.
2.2.2.
ST7 Visual Developer IDE
STM ( 2.13).

. 2.13. STVD7 IDE


69


(Workspace). , .
2.2.3.
:
1. ST7 Visual Developer IDE (. 2.14).

. 2.14. STVD7

->->SofTecMicrosystems->inDART-STX->ST7 STVD7 for inDART-STX . 2.14,
(2.15)

. 2.15. STVD7 IDE


70

2. () File New Workspace... (. 2.15).

. 2.16.
New Workspace (. 2.16) :
(Create workspace and project);
(Create empty Workspace);
(Create from Project);
(Wrap Executable);
(Wrap Makefile).
3. Create workspace and project.
(. 2.17)
(Workspace filename) ,
(Workspace location).
,
.

71

. 2.17.
4. , , (
ST7 Assembler Linker) (. 2.18).

. 2.18.
5. , (. 2.19).
72

. 2.19.

OK.
2.2.4.
STVD7
(. 2.20).

. 2.20. STVD7
73

STVD7
( , , , , ROM, RAM ..) .
2.2.5.
2.2.5.1. File ()
, : New, Open, Close, Close All, Save, Save as, Save All, Print
Recent ( 2.21).
New Workspace
Open Workspace , ,
( ) .

. 2.21.
2.2.5.2. Edit ()

. , . QuickWatch, 74

. ( 2.22).

. 2.22.
Undo/Redo
.
Cut, Copy, Paste
: , ,
.
Find, Find Next Replace
/
. Find
.

75

Go to
,
.
Find in Files
.
Breakpoints

,
.
Bookmarks
/ ,
.
Quick Watch
Quick Watch,
.
Refresh
.
Match Brace
, , .
Complete Word
.
Parameter Info
ST7.
2.2.5.3. View ()
,
Workspace, Output Instruction Breakpoint . , , , (. 2.23).

76

. 2.23.
2.2.5.4. Project ()
, .. (2.24).

. 2.24.
Set Active Project
,
.
Insert Files into Project
,
.
Dependencies...

.

77

Settings...
.
Export Makefile...
makefile-, gmake STVD7.
Insert Project into Workspace
,
.
Add New Project to Workspace
.
Remove Project from Workspace
.
2.2.5.5. Build ()
, , . ,
Compile Batch Build,
. Compile ,
. Batch Build
, Batch Build. ,
,
(. 2.25).

. 2.25.
2.2.5.6. Debug ()
(Run, Restart, Continue, Run to Cursor
Stop), (Step Into, Step Over, Step Out)
Go To PC Set PC (. 2.26). .
78

. 2.26.
2.2.5.7. Debug instrument ( )
, .
.
, :

. 2.27.
Target Settings
, USB Ethernet.
2.2.5.8. Tools ()

STVD7 (. 2.28).

79

. 2.28.
Customize
Tools.
Options
, :
;
;
/;
.
Programmer
,
.
2.2.5.9. Windows ()

(. 2.29).

. 2.29.
Next/Previous
.

80

Cascade/Tile

.
.
Arrange Icons
.
Status Bar
.
List of opened files
. .
, . .
2.2.5.10. Help ()
(.
2.30).

. 2.30.
Search
online-.
Help Home Page
online-.
About...
STVD7 .
Help On Instruction...
ST7.
ST7 Instruction Set Contents...
ST7.
81

Generate Support File


log-, .

STVD7 , . , .
.
.

1. ?
2. STM.
3. ST7.
4. (linker)?
5. ?
.
6. .
7. , , ?
8. ?
ST7FLite29.
9. PUBLIC, LOCAL EXTERN.
10. : ,
, , segment.

82

3.

ST7
3.1.
.
, .
. 3.1.
,
, .

. 3.1.
. .
,
.
,
,
.


83


, . ,
-
. ,
, ( )
, .
.

.
. ,
,
. ,
, .
3.2.

3.2.1.

3.2.1.1.
() : .
3.2.1.2. .
3.2.2. .

3.2.2.1. ()
.. .
3.2.2.2. .
3.2.2.3.


.
84

3.2.3. -
3.2.3.1.
3.2.3.1.1.
:
;
;
.
3.2.3.1.2. :
;
;
;

;
.
3.2.3.2.
3.2.3.2.1.


:
;
, ;

;

;
.
3.2.3.2.2.
:
1 - , ;
2 - , ;
3 - , ;
4 - , .
3.2.3.2.3.
85

( ) :
(5);
(10).
3.2.3.2.4. 0,5.
3.2.3.2.5.

120x120x120.
3.2.3.2.6. 15.
3.2.3.3. ,

3.2.3.3.1. 220 +/- 20% 50.
3.2.3.3.2. .
3.2.3.3.3.

.
3.2.3.3.4. .
3.2.3.3.5. , .
3.2.3.4.

3.2.3.4.1.

:
0 - +50.
90% +20.

3.2.3.5.
3.2.3.5.1. 5 .
3.2.3.5.2. 0,9.
3.2.3.6.
3.2.3.6.1. .
86

3.2.3.7. , ,
3.2.3.7.1.
, ..
3.2.3.7.2. - .
3.2.3.7.3.
.
3.2.3.7.4. .
3.2.3.7.5. :
;
;
.
3.2.3.7.6.
.
3.2.3.7.7. .
3.2.3.7.8.
. .
3.2.3.8.
3.2.3.8.1. -20 - +50 :
,
,
.
.
,
, ,
.
.
.
87

3.2.3.9.
3.2.3.9.1. (
12.1.004-91, 12.1.044-81) .
3.2.3.9.2.
( 12.2.007.0.-75) .
3.2.3.9.3. .
3.2.3.9.4.
, .
3.2.3.10.
3.2.3.10.1.
, , , .
3.2.3.10.2.
( ) .
3.2.3.11.
3.2.3.11.1.
.
3.2.3.11.2. .
3.2.3.11.3.

.
3.2.3.11.4. ,
.
3.2.3.12.
3.2.3.12.1. 0.5 .
3.2.3.12.2.
120120120.
3.2.3.12.3. 15.
3.2.3.12.4. 120120120.
3.2.3.12.5. ,
.
3.2.3.12.6. , 88

, .
3.2.3.12.7. .
3.2.3.12.8. , , .
3.2.3.13.
3.2.3.13.1. 100-240, ~500, 50-60.
3.2.3.13.2. / .
3.2.3.13.3.
.
3.2.3.13.4. , ,

.
3.2.3.13.5.
.
3.2.3.13.6. 50%.
3.2.3.13.7.
.
3.2.3.13.8.
.
3.2.3.13.9.
.
3.2.3.13.10. .
3.2.3.14.
3.2.3.14.1.
ST7 Microelectronics
SofTec STVD7 .
3.2.3.14.2. ,
89

,
8.
3.2.3.14.3.
SofTec STVD7 SofTec Microsystems
Toolset.
3.2.3.14.4. .
3.2.3.14.5.
.
3.2.4.
3.2.4.1. .
3.2.4.2. 5 .
3.2.5.
3.2.5.1. , ( 2.004-88).
3.2.5.2. :
.

.
.
.
.
.
.
.
.

90

3.3.

.

, . , ,
, .
:
-
;
- ;
- ;
- ().


,
, ,
, .
.

.
,
, . 3.2.

:
- , 220 28 (
), , ( +12),
, ( +5)
;
- ,
;
- ;

91

- ,
,
;
- , ST7FLITE29;
- ;
- ,
, ;
- , ,
;
-
;
- ;
- ;
- .

. 3.2.

92

,

.

, .
,
.

.

,
,
.
(. 3.3), .

6
?

. 3.3.
93

3.4.
.
28 50.
+40.

+12,
, +5,
.
,
,
, +12
+5 . ,
, +30 +20 . , +24 ( +45),
+12, +5, +12, , .3.4.
. ,
,
,
.
. ,
220 .
220, , 10F 400.
, , -.
. ,
,
.
94

. 3.4.

RC .
. .
, , ,
2 4 . , , .
, .
95

, , ,
. - .

.

.
3.5.

.

: , , .
. 3.5.

. 3.5.

28, 50, . 40. LM7805 LM7812 35. LM7824 ,
24. . . 3.6.
96

97
. 3.6.

,
.
. .
, 20 . ,
( 15611).
. 3.7.
HoneyWell,
. 5 .
. ,
90 .
, ,
5 10 , , ,
.

.
,
.

40.
0,1 /.

,
.

98

99
. 3.7.

, . 220 (50 ). ,
. ,
. , . . 3.8.
L817 DIP4, : - , 500 1 .
1 . ,
50
, ,
10 ( ) .

,
.

. RC-. , , ,
.
.

100

101
. 3.8.


. , 8 ,
, , .

RC , , .

RC . ,
. ,
.

.
.

. .
. 3.9.
: , ,
3.1 3.4 .
, , 40 , . , ,

0,5 , ,
.

, .
.

0,5 1000 ,
.

102

103
. 3.9.

3.1
.
1
2-5

50-35 2200 +20% -40% 50


SMD 0805 0.1 +20% -40% 50

.
1
4

VD1-VD4 IRL205

DA1
DA2
DA3

LM7824
LM7812
LM7805

1
1
1

XR1-XR3 TB5-2

.
.

.
.

. .
.

104

3.2
.

SMD 0805 +/- 5%

R1
R2,R3

100
4,7

1
2

1,2

SMD 0805 +20% -40% 50


0.1
2

DD1
15611
DA2,DA3 HOA 1875

1
2

XR1,XR2 TB5-2

.
.

.
.

. .
.

105

3.3
.
1-8

10-73
10 400 +20% -40%

.
8

VD1-VD8 521

DD1-DD8 FOD817A

XR1-XR8 TB5-2

.
.

. .
.

106

3.4
.
R1,R2
R3
R4
R5
R6

SMD 0805 +/- 5%


10
51
10
2
240

.
2
1
1
1
1

1
50-35 10 +20% -40% 16
2-8
SMD 0805 +20% -40% 50

VD1
IRL205
VD2-VD5 310

VT1,VT2 3117

1
7
1
4
2

DD1
ST7FLITE29
DD2-DD4 15611
DD5
K1554 14

1
3
1

BS-902AS 12V

XR1XR12
XR13

TB5-2

12

TB10-2

.
.

.
.

. .
.

107

3.6.
,

. 8- ST7
. ,
. , , . , .


.
, , .

.
.
ST7 Visual Developer,
, , . ST7.
. , ,
,
.
, , (. 3.10)
(. 3.11).
,
( 5).
(. 3.12 . 3.13) , . ,
, , , , .
108

. 3.10.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; : . .
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
main:
rsp
;
sim
;
clr
MCCSR
;
;
;
ld
A,
#$f0
;
; A
ld
PADDR,
A
; A
;
ld
PAOR,
A
; A
;
;
ld
A,
#$78
;
; B
ld
PBDDR,
A
; B
;
ld
PBOR,
A
; B
;
call values_nulling
;
ld
A,
#20
;

109

ld

diff_counter,

ld

A,

#$48

ld
PBDR,
clr
err
clr
f_oper
LBL_MAIN_LOOP:

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

call

watchdog_disable

call

check_state

cp

A,

jreq

LBL_MAIN_LOOP

call

relay_off

call

indication_error

ld

A,

#$48

ld
jp

PBDR,
LBL_MAIN_LOOP

#0




,
A
A 0 -



A
0

,




B

ret ; main

. 3.11.

. 3.12.

110

. 3.13.
, , - 8, , 256, 16 , , , . 1
.
, ,
.
, . , ,
,
, .

?

( )?
3. +24V?
4. ?
5. ?
6.
?
7. ?
8. ST7FLITE29?
9. ? ?
10. RESET?
1.
2.

111

4.

ST7
4.1.

. .
.4.1. (1, 2)
(1, 2) (1, 2). , , , , . 10 15 /.
~220
~24
0,1A

~24
0,1A

2
~220

U1

U2

. 4.1.
:
( ) ~24 ;
50 ;
0,1 .
:
0 +300;
2;
1;
3;
1;
112

. :
;
;
;
;
\ ;
( ).
. .
70 70 130 .
. ~220.
.
+0 +50,
85% (
+25).
.
.
4.2. .
- . (), ,
(.4.2). - (1,
2), (1, 2), (1, 2)
(). .
. 1 2
. 1
113

2 , .
:
( i T ) i ( i + T ) ,
(4.1)
i - ( i = 1,2 );
i - ;
T - .
-
( i T ) ,
,
.

, i ( i + T ) .
,
.

. 4.2.

, , .
[6, 10, 14].

.
[14], :
114

RT = R0 [ 1 + ( T T0 )] ,
(4.2)
- ;
R0 -
0 = 0C (273) ;
RT - C ;
- ().

( =5,4 10-3 -1 ) ( =3.9 10-3 -1 ). -260 +1300 [14].
, ,
, (. 4.3), .
UVcc

IVcc

R
U( t )

T,C

R+R

. 4.3.
R = 0 () U( t ) = 0 . R :

U R
U( t ) = Vcc
(4.3)
.
4 R + R

2
0,05%
. ,
, ,
.
, IVcc .
,
115

, ,
.
, , ,
, .
.
-
.
- 7/C 75/.
0 +2300 [6, 14].
-, [10]. (. 4.4),
0 ( ).
U( t )

. 4.4.

. -,
.
.
35 , -50 +180, (),
.
, , (1,2)
.

,
(~220 ) (1, 2).
, .
116

( ).
( ) [8,12]. . ,
,
,

.
, , .
:

;
, ;
, (
);
, ;

, ;


, .
.

, ,
. ,
, ( ),
.
() , , , ( 117

, ). ,

, .
,

(. 4.5).
~220
T1C
1

1
T2C

U1

U2

~220
U
~24

~24
1

2
U

U1
U
U2

~24
U


. 4.5.


-
(). 1 2 . . 1 2, , ( ) .
118

(),
~220 .
4.3.

.
. ().

( 300 ), ( 600 )
( 1800 ),
- [14].

. , ,
. ,
, () - () .
[10] . 4.1.
4.1.

-, ,
,
0

50

100

150

200

250

300

-200+1000

2,44

4,10

6,14

8,14

10,15

12,21

-50+600

4,10

6,90

10,62 14,57

18,69

22,88

, - () , () ,
.
,
.
119

- . - , .
: Analog Devices, Maxim, BurrBrown, STMicroelectronics, Hitachi, National Semiconductor, Texas Instruments . , ,
, , ,
.
() . 8 24. , , 2 n ,
n - . ,
, ,
.
.
: ( 100 ksps),
( 100 500 ksps), ( 500 ksps). .
.

, n - . , ,
, ().
, ,
.
. ,
.

.
, , . ,
,
(
120

). ,
. .
.
, ,
.
:
1) (. 4.6, );
2) (. 4.6, ).

0, 1 .

)
. 4.6.
, ( ), .
()
. : . .

121

, .
,
; ,
20 , .
, . .
, , . () : -, (), -,
20 .
,
- ,
. ()
MAX7219/MAX7221 MAXIM [34]. MAX7219/MAX7221
8- ( 8 ) .
, -
. MAX7221
SPI , .
, MAX7221, 3-
, , BT-N325RD [40].

. 4.7.
R . R = 9 ,53
40 . , , , , ,
. R = 10 . [34].

122

12

MAX7221
19

VCC

11

11

14

GND

DIN
13
CLK
12
CS

10

MOSI
SCK
I/O

Iset

10

18

11

16
20
23
21
15
17
22
7
3

3
10

K3
K2
12
K1
9

Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

Dig 0
Dig 1
Dig 2
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp
Dig 3
Dig 4
Dig 5

Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

BT-N325
K1
K2
K3

BT-N325

. 4.7.
SPI.
. .
.
, (, , , ..), , .
,
, , , .. ,
(. 4.8).
.
1...20
1
t

. 4.8.

123

(. 4.9, ), (. 4.9, )
, , (RC-) = RC .
U
R1

R2
&

R1

I\O

I\O

S1

S1

C1

&

. 4.9.
:
1) ;
2) .

. (.. , , ) .
, . (
), N . N 10 100.
, , , ,
.
120 \.

RC, .
. 4.10.
124

RC-. RC- . 4.10


.

. 4.10.

( )
S1...S3 t = 1 . RC-

t RC ,
(4.4)
RC = RC RC-.
R1 = R2 = R3 = 10 . (4.4) 1 = 2 = 3 1 10-7 .
1 = 2 = 3 = 0,1 .
.
8- , .

, . , . , , :
, MIPS (MIPS Million Instrutions per
Second );
/;
;
, M;
, /;
.

125

. , ( ). , , . ,
, ,
, , ..
.
, ,
.
,
.
\,
,
.
\. . \
1 2.
.
, 8 \ . , (. ), SPI; , ,
(EEPROM Electrically Erasable Programmable Read-Only Memory -
), 4 ( 2
).
.

T = 300C , - T = 1C . , -

126

, ,
:
T
N = .
(4.5)
T
[2]:
n = E [ log 2 ( N ) ] ,
(4.6)
E ( x) - .
(4.5), (4.6) n=9, , -
9.
8-
STMicroelectronics STF7LITE19.
[39]:
4 ;
256 ;
128 ;
\ 15;
10- (7 );
SPI;
8- 12- \;
8 ;
2,7 5,5 .
. MAX7221 +5 , (. . 4.5).
~220, U = +5 .
.
, () ,

U
5
max
I
= 3 = 3
= 1,5 .
R
10 103

0,1 , ~24 (
) 20 ( ). , PVT312 [38].
. 4.11.

127

. 4.11.
R1 R2
. .
min
= 2
I

[38].

min
I
= I
,

(4.7)

- ( = 1,5 3 ). = 2 ,
(4.7) I
= 5 .

[38],
, UVD = 1,2 .
min
( U = +5 ) U ."
1" 3,4 . ,
R1 ( R2 ) U R1( R2 ) = 2,2...3,8 . R1 ( R2 )


U R1( R2 )
R1 = R2 =
=440...760 .
I

R1 = R2 = 560 .
( , ),
I
= 2

max
U ."
1" UVD = 2 5 - 1,2 = 13,6 .
R
560

max
= 100
- I
[39], max
- I
+ = 500 [34].

, ,

128

max

max
max
+ I
+ I
+ I
I max = I
+ = 1,5 + 13,6 +100 +500 =615,1 .


. 4.12. , . L7805 [37] .

. 4.12.
II

I .II = I max = 2 615,1 =1230,2

U .II = ~ 7 ,5 ( ).

II

P.II = U .II I .II = 7 ,5 1230 ,2 = 9 ,23 . III ( )


P.III = U .III K I .III = 24 2 0 ,2 = 9 ,6 .
II I .II .
SB201,
2 35 ( ) [36].

14 L7805 [37].
R1 , VD2,
( ). . , , IVD = 10 . , , 1,8 - 1,9 . ,

129

U R1 = U (1,8 1,9) . IVD = 10 U = +5 , ,


R1 = 310 320 . ,
, R1 1,5-3
( ). R1 = 560
, .
-
,
.

. . 4.1 300 ( ) U max = 22,88 . , , n,
U
22 ,88
U = max =
= 22,3 . U
n
10
2
2
,
( ). , U U max , .
, ,
, . ST7FLITE19 U = +5 .


(. 4.13).

. 4.13.
. 4.14.
130

D2

10

11

K1
K2
K3
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

BT-N325

Dig 3
Dig 4
Dig 5
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

12

10

11

Dig 0
Dig 1
Dig 2
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

12

K1
K2
K3
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp

BT-N325

D1

R1 4,7

+5

D4

C1
D3
Dig 0
Dig 1
Dig 2
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp
Dig 3
Dig 4
Dig 5

2
11
6
14
16
20
23
21
15
17
22
7
3
10

0,1

MAX7221
+5

Dig 0
Dig 1
Dig 2
Seg a
Seg b
Seg c
Seg d
Seg e
Seg f
Seg g
Seg dp
Dig 3
Dig 4
Dig 5

VCC

C2 22
20

19

R4
Iset

CLK
CS
DIN

GND

ZQ1

19

C3

13

12

+5

R6

R7

10

10

10

0,1

Up

~220 B

PB3/MOSI

PA7
PA0/LTIC

PB0/SS

C6

S3

0,1

Enter

T1
S4

C5

S2

PB2/MISO

+5

R5

C4

PB1/SCK

18

S1

OSC2

22

11

+5

OSC1

10

18

10

RESET

0,1

Down

VD3

D9
L7805

F1

R12

II

C7 +
1 47

C8
0,1

~24 B

III

+5

3
2

C9 +
47

C10

560

0,1

VD4
307

. 4.14.
131


132

( ), AD621 [35].
( ) , ,

[23].
:
U
5
=
= 218,5 .
(4.8)
U max 22,88 10-3
AD621
Rg, [35]:
Rg =

200
.
5

(4.9)

(4.9) = 218,5 , Rg = 937 .


Rg = 1 . = 205 ,
(4.8).
\ B1 .
R8, R9 R12 .

F1

P
+ P .III
9,23 + 9 ,6
I F1 = .II
= 10
= 0 ,85 .
220
220
X1 \, X 2 , X 3 - ()
, .

, ZQ1 ,
10 .

133

4.4.
, ,


. \ 1, 2.
ST7FLITE19 .
. 4.15 -
. .6.
, 1 (T1H:T1L) , 2 (T2H:T2L) , ()
.
(. 4.16)
( .1 = 1 T ),
, , ( .1 = 1 + T ). , 1 2.
.
, , T = 3 C .

\.
, ,
. S 2 "Enter" (. . 4.14) . ,
.
S 2 "Enter"
.

134

\

SPI

\
1, 2


Enter?

. 4.15. -

135


:= .1
(T1onH:T1onL) := AK - T
:= .1
(T1offH:T1offL) := AK + T

. 4.16. -

\.
( )
1, 2 :
1
T
,
(4.10)
2F
F - .
, , 10 15 /. ,

15 -1
F =
c = 0,25 , ( 60
1
), (4.10) - T
= 2 .
2 0,25
-
, , . MAX7221
:
8 f osc
F =
,
(4.11)
N
fosc - MAX7221 ( fosc = 800 [34]);
N - .
N = 6 , (4.11):
1
F 1067 ( T =
0,94 ).
F

136

, ( , )
0,94 T 2 ,
(4.12)
T :
T = 10 .
: 2 LT2
( ).
2
( F = 5 10 [39]),
1 LT2 ( FLT 2 = 1 ) F32 = 32 . ,

N = T F = 0,01 5 106 =50000 . , 12- 2 . F32 = 32 N .
LT2 .
LT2
F
. 8- 2 32
. F = 5 ,

32
t . . =
( 28 1 ) = 1,6 , .
F
,
T = 10 2,
1 LT2 ( TLT 2 = 1 ).
, 10,

212 10 = 4086 = 0FF6h .
. ,
, ,
.

2 . 4.17 - 4.18.

137


AIN5

:= (ADCDRH:ADCDRL)

(T1onH:T1onL)

(T1offH:T1offL)

SPIDR :=
AIN6
1

. 4.17. - - 2 ()

138

:= (ADCDRH:ADCDRL)

(T2onH:T2onL)

(T2offH:T2offL)

SPIDR :=

. 4.18. - - 2 ()

.
300 22,88 (.
. 4.1).
300
300
=
=
= 0,064
= 64 .

22,8 205 22,8

139

S 2 "Enter" (. 4.19).

Enter?

0,2 .
StopIndFlag := 1

.1 .2


Up?

ChanelFlag := 1


Down?

ChanelFlag := 2


Enter?

tEnter

2 .?

. 4.19. -
140

, S1 "Up" S3 "Down" , ,
S 2 "Enter" (. 4.20 4.21).

Enter?

0,2 .
1


Up?

0,2 .

ChanelFlag = 1?

.1 := .1+1

.2 := .2+1

.1 .2

\

1, 2
2

. 4.20. -
()
, , , . .
141


Down?

0,2 .

ChanelFlag = 1?

.1 := .1-1

.2 := .2-1

.1 .2

\

1, 2


Enter?

. 4.21. -
()
S1 "Up" S3 "Down" .
S 2 "Enter" ,
2 c.
[2]. B1 .

142

4.5.

,
-,
( ). ,
, - ,
/ .
4.5.1.
,
(. 4.22),
, .
, , ,
, .
AIN0
1.6

1.55

U,

1.5

1.45

1.4

1.35

1.3
400

410

420

430

440

450

460

t, .

. 4.22.
(. 4.22) 100 115 (
).
143


Matlab, (. 4.23).

S=hex2dec('sig_AIN5.txt');
%
Kyc=205;
%
N=8;
%
fs=200;
%
t=400:1/fs:460;
%
f=0:fs/length(t):fs/2;
%
%-------------------------------------------------------------%
%-------------------------------------------------------------plot(t,S,'Color','black','LineWidth',1.0);
axis([400 460 1.3 1.6])
grid on;
title(' AIN5');
xlabel('t, .');
ylabel('U, ');
%-------------------------------------------------------------%
%-------------------------------------------------------------Sf=fft(S,length(f));
Asf=Sf.*conj(Sf)/length(f);
f1=fs*(0:length(Sf)/2-1)/length(Sf);
figure;
plot(f1,Asf(1:length(f1)),'Color','black','LineWidth',1.5);
axis([0,110,0,0.025]);
grid on;
title(' AIN5');
xlabel('f, ');
ylabel('S(f), /');
%-------------------------------------------------------------%
%-------------------------------------------------------------w=f./fs;
H=0.025*1/N*abs(sin(N*pi*w)./sin(pi*w));
hold on;
plot(f,H);
axis([0,110,0,0.025]);
grid on;
title(' ');
%-------------------------------------------------------------%
%-------------------------------------------------------------Num(1:N)=1/N;

144

Den=[1];
Y=filter(Num,Den,S);
figure;
plot(t,Y,'Color','black','LineWidth',1.0);
axis([400,460,1.3,1.6]);
grid on;
title(' ');
xlabel('t, .');
ylabel('U, ');

. 4.23.
,
Matlab . 4.24.
0.025

0.02

S(f), /

0.015

0.01

0.005

0
0

10

20

30

40

50

60

70

80

90

100

110

f,

. 4.24.
. 4.24, (
), ,
50 100 , .

[2].
, (. 4.25).

145

. 4.25. 8-
.
- () :
N f
sin

F
1

H( f ) =
,
f
N
F

(4.13)

f - ;
N - ( );
F - .
. 4.26 8- ( N = 8 ) . ,
nF
F N
N
N
( n = 1,2,..., - ).
2
,
. , N ,
N 1
N [2]. , ,
, :
N - , , N . , N 1
. N - , .

146

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

F
F
F
F
3
2
N
2
N
N
. 4.26. 8-
1
= 200
T
N = 8 .
- T = 5 . (4.12), ,
, T ,
5, ,
212 5 = 4091 = 0FFBh .
(. 4.22)
. 4.27 . 4.28, .
, , (. 4.22).

, F =

147


0.025

0.02

S(f), /

0.015

0.01

0.005

0
0

10

20

30

40

50

60

70

80

90

100

110

f,

. 4.27. (1) 8-
(2)


1.6

1.55

U,

1.5

1.45

1.4

1.35

1.3
400

410

420

430

440

450

t, .

. 4.28.

148

460

4.5.2.

. - (. 4.18)

.
. 4.29. , ( )
. .

Sum:= Sum (Uin[X]:Uin[X+1])

Uin[X] := ADCDRH

Uin[X+1] := ADCDRL

Sum:= Sum + (Uin[X]:Uin[X+1])

Uout := Sum/8

X :=X+1

X = 16 ?

X:= 0

. 4.29. -


149

, . , .
,
= 64 .

(. 4.28)
(. 4.22) 100 115 .
,
115 100
. =
= 75 .

1,57 1,37

, U = U = 5 ,

:
. U 75 5
.
=
=
= 0,3662
10
10
. .
2
2
. , 1
.

1. .
2. ?
3. ? .
4. .
5. -
ST7FLITE19.

150


,
STMicroelectronics
ST7 .
, ,
ST7, , ,
, ,

.
,
.
,
, .
(, , .), . , .
[2,4,5,10] .
8- ST7 ,
32 ARM Cortex M3.
. 16- .
, , ,
.

STM .
,
,
-
.
- , STM .

151

1.
ST7
. ST7
, , , , ,
, . ST7 MOTOROLA ( MC68HC05/08)
.
ST7 -, X Y, , , 64 , 16- ,
( 8
1). , 64 256
.
63 1
4 . ,
, 256- 8- . 1- 250 8 .
ST7
. :
:
1
2
3
4
5
6
s
w

(inherent);
(immediate);
(direct);
(indexed);
(indirect);
(relative);
(short);
(long);

:
H
I
N
Z
C

(half carry bit);


(interrupt mask);
(negative);
(zero);
(carry/borrow);

152

:
d
s
SP
PC
CC

(destination);
(source);
(stack pointer);
(program counter);
(conditional code register).

:
ADC
:
:
:
:
:
:
:
:

Add With Carry


adc d, s
d <= d + s + C

H, N, Z, C
2, 3, 4, 5, s, w
s
d

ADD
:
:
:
:
:
:
:
:
:

Add Without Carry


add d, s
d <= d + s

H, N, Z, C
2, 3, 4, 5, s, w
1
s d

AND
:
:
:
:
:
:
:
:

Logical AND
and d, s
d <= d AND s

N, Z
2, 3, 4, 5, s, w

d s
d
153

BCP
:
:
:
:
:
:
:
:

Bit compare A, mem


bcp s, d
(N, Z) <= s AND d

N, Z
2, 3, 4, 5, s, w

BRES
:
:
:
:
:
:
:
:

Bit Reset in d
bres d, b
d <= d AND (2b)

3, 4, 5, s
b d

BSET
:
:
:
:
:
:
:
:

Bit Set in d
bset d, b
d <= d OR (2b)

3, 4, 5, s
b d

BTJF
:
:
:
:
:
:
:
:

Bit Test Jump if bit is False (0)


btjf d, b, rel
IF (d AND (2b)) = 0, PC <= PC + rel

C
3, 4, 5, s
, b d
0

BTJT
:
:
:
:

Bit Test Jump if bit is True (1)


btjt d, b, rel
IF (d AND (2b)) 0, PC <= PC + rel

154

:
:
:
:

C
3, 4, 5, s
, b d 0

CALL
:
:
:
:
:
:

Direct Subroutine Call


call d

3, 4, 5, s, w
d; ,
call

CALLR
:
:
:
:
:
:
:

Call Subroutine Relative


callr d

3, 5, 6, s

(short) d

CLR
:
:
:
:
:
:
:
:

Clear d
clr d
d <= 0
,
,
N = 0, Z = 1
1, 3, 4, 5, s
d

CP
:
:
:
:
:
:
:

Arithmetic Compare
cp d, s
{ N, Z, C } = TEST(d - s)

N, Z, C
2, 3, 4, 5, s, w

155

: d s d s ( d )
CPL
:
:
:
:
:
:
:
:

Logical Complement of d
cpl d
d <= d XOR FF
,
,
N, Z, C = 1
1, 3, 4, 5, s
d

DEC
:
:
:
:
:
:
:
:

Decrement d
dec d
d <= d 1
,
,
N, Z
1, 3, 4, 5, s
d 1;
, d

HALT
:
:
:
:
:

Halt
halt
I=0
1

INC
:
:
:
:
:
:
:

Increment d
inc d
d <= d + 1
,
,
N, Z
1, 3, 4, 5, s
156

: d 1;
, d


IRET
:
:
:
:
:
:

Interrupt routine Return


iret
POP CC, A, X, PC
H, I, N, Z, C
1

JP
:
:
:
:
:
:
:

Absolute Jump
jp d
PC <= d

3, 4, 5, s, w
d

JRA
:
:
:
:
:
:
:

Jump Relative Always


jra d
PC <= PC + d

3, 5, 6

+ d

JRT
:
:
:
:
:
:
:

Jump Relative if True


jrt d
PC <= PC + d

3, 5, 6

157

JRF
:
:
:
:
:
:
:

Jump Relative if False (never jump)


jrf d
condition false

3, 5, 6

JRIH
:
:
:
:
:
:
:

Jump if Port INT pin = 1


jrih d
(no port interrupts)

3, 5, 6
b INT
pin = 1

JRIL
:
:
:
:
:
:
:

Jump if Port INT pin = 0


jril d
(port interrupt)

3, 5, 6
b INT
pin = 0

JRH
:
:
:
:
:
:
:
:

Jump if H = 1
jrh d
IF H = 1 ?

3, 5, 6
, H 1

JRNH
:
:
:
:
:
:

Jump if H = 0
jrnh d
IF H = 0 ?

3, 5, 6
158

: , H 0
JRM
:
:
:
:
:
:
:

Jump if I = 1
jrm d
IF I = 1 ?

3, 5, 6
, I 1

JRNM
:
:
:
:
:
:
:

Jump if I = 0
jrnm d
IF I = 0 ?

3, 5, 6
, I 0

JRMI
:
:
:
:
:
:
:

Jump if N = 1
jrmi d
IF N = 1 ? (minus)

3, 5, 6
, N 1

JRPL
:
:
:
:
:
:
:

Jump if N = 0
jrpl d
IF N = 0 ? (plus)

3, 5, 6
, N 0

JREQ
:
:
:
:
:
:
:

Jump if Z = 1
jreq d
IF Z = 1 ? (equal)

3, 5, 6
, Z 1
159

JRNE
:
:
:
:
:
:
:

Jump if Z = 0
jrne d
IF Z = 0 ? (not equal)

3, 5, 6
, Z 0

JRC
:
:
:
:
:
:
:

Jump if C = 1
jrc d
IF C = 1 ?

3, 5, 6
, C 1

JRNC
:
:
:
:
:
:
:

Jump if C = 0
jrnc d
IF C = 0 ?

3, 5, 6
, C 0

JRULT
:
:
:
:
:
:
:

Jump if C = 1
jrult d
Jmp IF unsigned <

3, 5, 6
, ()

JRUGE
:
:
:
:
:
:
:

Jump if C = 0
jruge d
Jmp IF unsigned

3, 5, 6
,
()

160

JRUGT
:
:
:
:
:
:
:

Jump if (C + Z = 0)
jrugt d
Jmp IF unsigned >

3, 5, 6
, ()

JRULE
:
:
:
:
:
:
:

Jump if (C + Z = 1)
jrule d
Jmp IF unsigned

3, 5, 6
,
()

LD
:
:
:
:
:
:
:
:

Load s in d
ld d, s
d <= s
,
,
N, Z
1, 2, 3, 4, 5, s, w

MUL
:
:
:
:
:
:
:
:

Multiply d by s
mul d, s
d:s <= d * s
X, Y, A ()
A (), X, Y
H = 0, C = 0
1
s d

NEG
:
:
:
:

Negate d (logical 2-complement)


neg d
d <= (d XOR FF) + 1, d <= 0 - d
,
161

: N, Z, C
: 1, 3, 4, 5, s
: d
NOP
:
:
:
:
:
:

No operation
nop

OR
:
:
:
:
:
:
:
:

Logical OR
or d, s
d <= d OR s

N, Z
2, 3, 4, 5, 6, s, w

d
s d

POP
:
:
:
:
:
:
:

Pop from the Stack


pop d
d <= (++SP)
, CC
H, I, N, Z, C
1

1, ,
,
d

PUSH
:
:
:
:
:
:

Push onto the Stack


push d
(SP--) <= d
, CC

162

: d
, , 1
RCF
:
:
:
:
:
:

Reset carry flag


rcf
C=0
C=0
1

RET
: Subroutine return
: ret
: MSB(PC) <= (++SP)
LSB(PC) <= (++SP)
:
: 1
: ,
RIM
:
:
:
:
:
:

Reset interrupt mask


rim
I=0
I=0
1

RLC
: Rotate Left through Carry
: rlc d
:
:
:
:
:

,
N, Z, C
1, 3, 4, 5, s
d
; C
,
C

163

RRC
: Rotate Right through Carry
: rrc d
:
:
:
:
:

,
N, Z, C
1, 3, 4, 5, s
d
; C
,
C

RSP
:
:
:
:
:
:

Reset Stack pointer


rsp
SP <= Reset Value

SBC
:
:
:
:
:
:
:
:

Subtract s from d with carry


sbc d, s
d <= d s - C

N, Z, C
2, 3, 4, 5, s, w
s d

SCF
:
:
:
:
:
:

Set carry flag


scf
C=1
C=1
1

SIM
:
:
:
:
:

Set interrupt mask


sim
I=1
I=1
1
164

:
SLA
: Shift left arithmetic (equal to SLL d = 1)
: sla d
:
:
:
:
:
:

,
N, Z, C
1, 3, 4, 5, s
d
; C,
0

SLL
: Shift left logical
: sll d
:
:
:
:
:
:

,
N, Z, C
1, 3, 4, 5, s
d
; C,
0

SRA
: Shift right arithmetic (equal to SLL one)
: sra d
:
:
:
:
:
:

,
N, Z, C
1, 3, 4, 5, s
d
;
,
C

SRL
: Shift right logical
: srl d
165

:
:
:
:
:
:

,
N = 0, Z, C
1, 3, 4, 5, s
d
;
0,
C

SUB
:
:
:
:
:
:
:
:

Subtract s from d
sub d, s
d <= d s

N, Z, C
2, 3, 4, 5, s, w
s d

SWAP
:
:
:
:
:
:
:

Swap nibbles
swap d
d(7:4) <=> d(3:0)
,
N, Z
1, 3, 4, 5, s
d

TNZ
:
:
:
:
:
:
:

Test for Neg & Zero


tnz d
{ N, Z } = TEST(d)
,
N, Z
1, 3, 4, 5, s
,
d ; d

TRAP
: Software trap
166

:
:
:
:

trap
I=1
1

WFI
:
:
:
:
:

Wait for interrupt


wfi
I=0
1

XOR
:
:
:
:
:
:
:
:

Exclusive OR (d with s)
xor d, s
d <= d XOR s

N, Z
2, 3, 4, 5, s, w
s d
d

167

2.

.
(. 2.1). ,
. ,
. . ,
,
, .

2.1

.BELL

.BELL

BYTE

BYTE <
>, [,<
>...]

BYTES

BYTES

CEQU

CEQU <>

.CTRL

.CTRL <>[,<>]...

DATE

DATE

DC.B

DC.B <
>, [,<
>]

DC.W

DC.W <>
[,<>...]

DC.L

DC.L <>
[,<>...]

168


: =



12 ASCII

()

()


#DEFINE

#DEFINE <_>
<>

DS.B

DS.B [
]

DS.W

DS.W [
]

DS.L

DS.L [
]

END

END

EQU

EQU <>

EXTERN

EXTERN

#ELSE

#ELSE

#ENDIF

#ENDIF

FCS

FCS <> |<>


[<> |<>]...

.FORM

.FORM <>

GROUP

GROUP <>

#IF

#IF <>

#IF1

#IF1

#IF2

#IF2

#IFB

#IFB <>

169

byte
word = 2

long = 4

ELSE





IF,

#1,

IF,

#2,


#IFDEF
#IFDEF <>

#IFLAB
#IFLAB <>
-

#INCLUDE
#INCLUDE <_>


INTEL
INTEL

Intel

.LALL
.LALL

(
.LIST
.LIST
)
#LOAD
#LOAD \_



LOCAL
LOCAL <>


LONG <>
LONG

[,<>...]

LONGS
LONGS
long
<macro> MACRO [-1]
MACRO
[,-2]...


MEND
MEND


MOTOROLA
MOTOROLA

Motorola

.NOCHANGE .NOCHANGE

#DEFINE
.NOLIST
.NOLIST


%OUT
%OUT

#IFIDN

#IFIDN <-1>
<-2>

170

.PAGE

.PAGE

PUBLIC

PUBLIC <>

REPEAT

REPEAT

.SALL

.SALL

SEGMENT

|<>|SEGMENT
<>
<> <class>
[cod]

.SETDP

.SETDP < >

SKIP

SKIP <
>,<>

STRING

STRING <
>,[,<

>...]

SUBTTL

SUBTTL < >

.TAB
TEXAS

TITLE

UNTIL
WORD
WORDS

.TAB <>, <Opcode>,


<>, <>


TEXAS
Texas
Instruments

TITLE < >

UNTIL <>

WORD <>

[, <>...]

WORDS
word

171

.XALL

.XALL

ZILOG

ZILOG


,

Zilog

172

ST7LITEUS5

128

ST7LITEU05

128

ST7LITEU09

128

ST7LITES2Y0

128

ST7LITES5Y0

128

ST7LITE02Y0

1.5

128

ST7LITE05Y0

1.5

128

ST7LITE09Y0

1.5

128

ST7LIT10BF0

256

ST7LIT10BY0

256

ST7LIT15BF0

256

ST7LIT15BY0

256

ST7LIT19BF0

256

128

ST7LIT19BY0

256

128

ST7LIT10BF1

256

ST7LIT10BY1

256

ST7LIT15BF1

256

ST7LIT15BY1

256

ST7LIT19BF1

256

128

ST7LIT19BY1

256

128

ST7DALIF2

384

256

ST7LITE30F2

384

ST7LITE35F2

384

Flash

10

1
5x10

5x10

128

5x10

1
1x12

1
1
1

5x8

1
1

128

5x8

5x8

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

7x10

173

1x12

1
1
2
2
2
2
2

2x12

2
2
2
2
2
2
2

1x12

2x12

2
2
2

128

ST7LITEUS2

8-

12/
16

E PROM

RAM,

ROM

3.
ST7

11

12

WDG,
RTC
WDG,
RTC
WDG,
RTC

2.4..5.5
2.4..5.5
2.4..5.5

WDG,
RTC

2.4..5.5

WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC

SPI/
DALI
SPI/
LINSCI

WDG,

SPI/

SPI

2.4..5.5

SPI

2.4..5.5

SPI

2.4..5.5

SPI

2.4..5.5

SPI

2.4..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5
2.4..5.5
2.7..5.5
2.7..5.5

11

RTC

LINSCI
SPI/
LINSCI

2.7..5.5

SPI

2.7..5.5

SPI

2.7..5.5

384

ST72260G1

256

ST72262G1

256

6x10

WDG,
RTC
WDG,
RTC
WDG,
RTC

ST72264G1

256

6x10

WDG,
RTC

ST7232AK1

384

ST72262G2

256

8x10

6x10

WDG,
RTC
WDG,
RTC

ST72264G2

256

ST72324BK2

384

ST72324LK2

384

ST7232AK2

384

ST72340K2

512

256

ST72344K2

512

256

ST72324BK4

16

512

ST72324LK4

16

512

ST72325K4

16

512

ST72340K4

16

1K

256

ST72344K4

16

1K

256

ST72321BK6

32

1K

ST72324BK6

32

1K

ST72324LK6

32

1K

ST72325K6

32

1K

8x10

ST72361K6

32

1K

6x10

ST72361K7

48

1K

ST72361K9

60

2K

ST7232AJ1

384

ST72324BJ2

384

ST72324LJ2

384

ST72324LS2

384

ST7LITE39F2

256

7x10

10

6x10

2x16

WDG,
RTC

8x10

8x10

8x10

WDG,
RTC
WDG,
RTC
WDG,
RTC
WWDG,
RTC

8x10

WWDG,
RTC

8x10

8x10

WDG,
RTC
WDG,
RTC
CSS,
WDG,
RTC
WWDG,
RTC

8x10

2x16

8x10

8x10

WWDG,
RTC
WWDG,
RTC

2x16

8x10

8x10

6x10

12x10

12x10

12x10

12x10

12x10

174

WDG,
RTC
WDG,
RTC

1x16

1
1

2x16

WDG,
RTC
CSS,
WDG,
RTC
WWDG,
RTC
WWDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC
WDG,
RTC

SPI/
SCI/
2
IC
SPI/
SCI
SPI
SPI/
SCI/
2
IC
SPI/
SCI
SPI/
SCI
SPI/
SCI
SPI/
SCI
SPI/
SCI/
2
IC
SPI/
SCI
SPI/
SCI
SPI/
SCI/
2
IC
SPI/
SCI
SPI/
SCI/
2
IC
SPI/
SCI/
2
IC
SPI/
SCI
SPI/
SCI
SPI/
SCI/
2
IC
SPI/
2xSCI
SPI/
2xSCI
SPI/
2xSCI
SPI/
SCI
SPI/
SCI
SPI/
SCI
SPI/
SCI

12

2.7..5.5
3.8..5.5
2.7..5.5
2.7..5.5
3.8..5.5
2.85..5.5
3.8..5.5
2.7..5.5

2.7..5.5

3.8..5.5
2.85..3.6
3.8..5.5
2.7..5.5
2.7..5.5

3.8..5.5
3.8..5.5
2.85..3.6
3.8..5.5

4.5..5.5
4.5..5.5
4.5..5.5
3.8..5.5
3.8..5.5
2.85..3.6
2.85..3.6

4.
ST7
ST7/
;***************************************************************
; :
; :
; :
;***************************************************************
TITLE "TEMPLATE.ASM"
; MOTOROLA , Intel, Zilog
; Texas.
MOTOROLA
;***************************************************************
; *.INC
;***************************************************************
;
;
; ST7Lite2.INC - ,
; ST7Lite2
#include "ST7Lite2.INC"
;--------------------------------------------------------------;***************************************************************
; ,
;***************************************************************
;***************************************************************
;
;***************************************************************
;--------------------------------------------------------------BYTES
segment byte 'ram0'
;***************************************************************
; 'ram0'
;***************************************************************
;--------------------------------------------------------------WORDS
segment byte 'rom'
;***************************************************************
; 'rom'
;***************************************************************

175

;--------------------------------------------------------------;***************************************************************
;
;***************************************************************
;--------------------------------------------------------------;***************************************************************
;
;***************************************************************
main:
rsp
sim
clr
MCCSR
LBL_MAIN_LOOP:
jp

;
;
;
;
;
;
;

LBL_MAIN_LOOP

ret ; main
;***************************************************************
;
;***************************************************************
dummy_rt: IRET ;
; .
;***************************************************************
;
;***************************************************************
segment 'vectit'
DC.W dummy_rt ; FFE0-FFE1h
SPI_it
DC.W dummy_rt ; FFE2-FFE3h
lt_RTC1_it
DC.W dummy_rt ; FFE4-FFE5h
lt_IC_it
DC.W dummy_rt ; FFE6-FFE7h
at_timerover_it
DC.W dummy_rt ; FFE8-FFE9h
at_timerOC_it
DC.W dummy_rt ; FFEA-FFEBh
AVD_it
DC.W dummy_rt ; FFEC-FFEDh
DC.W dummy_rt ; FFEE-FFEFh
lt_RTC2_it
DC.W dummy_rt ; FFF0-FFF1h
ext3_it
DC.W dummy_rt ; FFF2-FFF3h
ext2_it
DC.W dummy_rt ; FFF4-FFF5h
ext1_it
DC.W dummy_rt ; FFF6-FFF7h
ext0_it
DC.W dummy_rt ; FFF8-FFF9h
AWU_it
DC.W dummy_rt ; FFFA-FFFBh
softit
DC.W dummy_rt ; FFFC-FFFDh
reset
DC.W main
; FFFE-FFFFh
END
;***************************************************************

176

5.


st7/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
control.asm
;; :
.., ..
;;

;;
" "
;; :

;;

;;
( ST7)
;; :
1.0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TITLE "control.asm "
MOTOROLA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; (*.INC)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include "st7lite2.inc" ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC

watchdog_disable
relay_on
relay_off
values_nulling
wait
indication_on
indication_off
indication_error

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PORT A A0-A7
;; PORT B:
#define PORT_TRAILER
#0 ; (
; )

177

#define PORT_RESET
#define PORT_INDICATION
#define PORT_LED_ERROR_LOW

#1
#3
#4

#define PORT_LED_ERROR_HIGH

#5

#define PORT_RELAY

#6

;;
#define NO_ERROR
#define SHIFT_ERROR
#define UP_DOWN_ERROR

#0
#1
#2

;
;
;
;
;
;
;

( )
()
(
)
(
)
()

;
;
;
;

BYTES
segment byte 'ram0'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
f_oper
f_reset
diff_counter
counter1
counter2
err

ds.b
ds.b
ds.b
ds.b
ds.b
ds.b

1
1
1
1
1
1

;
;
;
;
;
;

= 1
= 1
= 1
= 1
= 1
= 1

WORDS
segment byte 'rom'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
watchdog_disable:
ld A,
#$fe ;
;
ld WDGCR, A
;
;
ret ; watchdog_disable
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

178

;; : . .
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
relay_on:
bset PBDR, PORT_RELAY ; relay -> 1
ret ; raley_on
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; : . .
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
relay_off:
bres PBDR, PORT_RELAY ; relay -> 0
ret ; relay_off
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
values_nulling:
clr counter1 ;
clr counter2 ;
clr f_reset
;
clr err
;
ret ; values_nulling
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; : ()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
wait:
ld
X, #255
; X -> 255
LBL_X_NOT_ZERO:
;
ld
Y, #255
; Y -> 255
LBL_ Y_NOT_ZERO:
;
dec
Y
; Y
jrne LBL_ X_NOT_ZERO ; Y 0
dec
X
; X
jrne LBL_ X_NOT_ZERO ; X 0
ret ; wait
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
indication_on:
bres PBDR,
PORT_INDICATION ; indication -> 1
ret ; indication_on
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
indication_off:
bset PBDR,
PORT_INDICATION ; indication -> 0
ret ; indication_off
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

179

indication_error:
bres PBDR,

PORT_LED_ERROR_HIGH

LBL_LOOP:
ld

A,

err

cp

A,

UP_DOWN_ERROR

jrne

LBL_SELECT_COUNTER_ERR

ld

A,

#$e7

and
ld

A,
PBDR,

PBDR
A

call

wait

ld

A,

#$10

or

A,

PBDR

ld

PBDR,

jp
LBL_END_INDICATION
LBL_SELECT_COUNTER_ERR:

ld

A,

counter1

cp

A,

counter2

jrult LBL_LED1

bset

PBDR,

PORT_LED_ERROR_LOW

jp
LBL_SET_LED_ERROR_END
LBL_LED1:
bres

PBDR,

PORT_LED_ERROR_LOW

180

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;


B

-



;
;
LBL_SET_LED_ERROR_END:
;
;
call indication_on
;
call wait
;
call indication_off
;
LBL_END_INDICATION:
;
call wait
;
btjt PBDR,
PORT_RESET, LBL_RESET ;
;
bset f_reset,
#0
;
;
jp
LBL_LOOP
;
;
LBL_RESET:
;
btjf f_reset,
#0, LBL_LOOP
;
;
;
;
bres f_reset,
#0
;
;
ld
A,
err
;
cp
A,
UP_DOWN_ERROR
;
;
;
jreq LBL_INDICATION_ERROR
;
ld
A,
diff_counter
;
;
add
A,
#4
;
;
;
ld
diff_counter, A
;
LBL_INDICATION_ERROR:
;
clr
err
;
clr
f_oper
;
ret ; indication_error

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
check_state:
btjf PBDR, PORT_TRAILER, LBL_NTRAILER ;
;
;
call values_nulling
;
;
;
;
LBL_NTRAILER:
;
;
ld
A,
counter1
;
;
cp
A,
counter2
;

181

jrult LBL_LESS_COUNTER1

sub

A,

jp

LBL_DIFF

counter2

LBL_LESS_COUNTER1:
ld

A,

counter2

sub

A,

counter1

LBL_DIFF:
cp
A,

jrule

diff_counter

LBL_READ_COUNTER1

ld

A,

jp

LBL_CHECK_STATE_END_ERROR

SHIFT_ERROR

LBL_READ_COUNTER1:
btjt

PADR,

#0,

LBL_COUNTER1

btjf

f_oper,

#1,

LBL_FOPER1

bset

f_oper,

#3

jp

LBL_READ_COUNTER2

LBL_FOPER1:
bset f_oper,
jp

#0

LBL_READ_COUNTER2

LBL_COUNTER1:

182

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

3



1

btjt

PADR,

#1,

LBL_COUNTER2

btjf

f_oper,

#0,

LBL_FOPER2

bset

f_oper,

#2

jp

LBL_READ_COUNTER2

LBL_FOPER2:
bset f_oper,
jp

#1

LBL_READ_COUNTER2

LBL_COUNTER2:
ld
A,

f_oper

and

A,

#$fc

ld

f_oper,

btjf

f_oper,

#2,

inc

counter1

jp
LBL_ONE_BYTE
LBL_OPER3:
btjf f_oper,
#3,

dec

counter1

jp

LBL_ONE_BYTE

LBL_OPER3

LBL_READ_COUNTER2

LBL_READ_COUNTER2:
btjt

PADR,

#2,

LBL_COUNTER3

btjf

f_oper,

#5,

LBL_FOPER4

bset

f_oper,

#7

jp

LBL_CHECK_STATE_END

LBL_FOPER4:
bset f_oper,
jp

#4

LBL_CHECK_STATE_END

183

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

2



2

1






0
1



3
3

;
;
LBL_COUNTER3:
;
;
btjt PADR,
#3, LBL_COUNTER4
;
;
;
btjf f_oper,
#4, LBL_FOPER5
;
;
;
;
bset f_oper,
#6
;
;
jp
LBL_CHECK_STATE_END
;
;
;
LBL_FOPER5:
;
bset f_oper,
#5
;
;
jp
LBL_CHECK_STATE_END
;
;
;
LBL_COUNTER4:
;
;
;
ld
A,
f_oper
;
;
and
A,
#$cf
;
;
ld
f_oper,
A
;
;
btjf f_oper,
#6, LBL_OPER6
;
;
;
inc
counter2
;
;
jp
LBL_ONE_BYTE
;
LBL_OPER6:
;
btjf f_oper,
#7, LBL_CHECK_STATE_END ;
;
;
dec
counter2
;
;
LBL_ONE_BYTE:
;
;
;
;
btjf f_oper,
#2, LBL_CHECK_F3
;
;
;
btjf f_oper,
#7, LBL_CHECK_COUNTERS ;
;
;
ld
A,
UP_DOWN_ERROR
;

184



4
5

2

6
7

2


7


jp

LBL_CHECK_STATE_END_ERROR

LBL_CHECK_COUNTERS:
ld

A,

counter1

cp

A,

counter2

jrult LBL_LESS_ST1

sub

A,

counter2

ld

counter1,

clr

counter2

jp

LBL_RESET_FLAGS

LBL_LESS_ST1:
ld

A,

counter2

sub

A,

counter1

ld

counter2,

clr

counter1

LBL_RESET_FLAGS:
ld
A,

f_oper

and

A,

#$33

ld

f_oper,

jp

LBL_CHECK_STATE_END

LBL_CHECK_F3:
btjf

f_oper,

#3,

LBL_CHECK_F6

btjf

f_oper,

#6,

LBL_INC_COUNTERS

185

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;




2
3


3

6

ld

A,

jp

LBL_CHECK_STATE_END_ERROR

UP_DOWN_ERROR

LBL_INC_COUNTERS:
inc

counter1

inc

counter2

jp

LBL_CHECK_COUNTERS

LBL_CHECK_F6:
btjt

f_oper,

#6, LBL_CHECK_COUNTERS

btjt

f_oper,

#7, LBL_INC_COUNTERS

jp

LBL_CHECK_STATE_END

LBL_CHECK_STATE_END:
ld
A,
NO_ERROR
LBL_CHECK_STATE_END_ERROR:
ld
err,
A
;
ret ; check_state

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

6

7

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; : . .
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
main:
rsp
;
sim
;
clr
MCCSR
;
;
;
ld
A,
#$f0
;
; A
ld
PADDR,
A
; A
;
ld
PAOR,
A
; A
;
;
ld
A,
#$78
;
; B
ld
PBDDR,
A
; B
;
ld
PBOR,
A
; B

186

call
ld

values_nulling
A,
#20

ld

diff_counter,

ld

A,

#$48

ld
PBDR,
clr
err
clr
f_oper
LBL_MAIN_LOOP:

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

call

watchdog_disable

call

check_state

cp

A,

jreq

LBL_MAIN_LOOP

call

relay_off

call

indication_error

ld

A,

#$48

ld
jp

PBDR,
LBL_MAIN_LOOP

#0




,
A
A 0 -



A
0

,




B

ret ; main
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; -
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
dummy_rt:

IRET

;
;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
segment 'vectit'

187

DC.W dummy_rt
lt_RTC1_it
DC.W dummy_rt
lt_IC_it
DC.W dummy_rt
at_timerover_it DC.W dummy_rt
at_timerOC_it
DC.W dummy_rt
AVD_it
DC.W dummy_rt
DC.W dummy_rt
lt_RTC2_it DC.W dummy_rt
ext3_it
DC.W dummy_rt
ext2_it
DC.W dummy_rt
ext1_it
DC.W dummy_rt
ext0_it
DC.W dummy_rt
AWU_it
DC.W dummy_rt
softit
DC.W dummy_rt
reset
DC.W main

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

END

188

FFE0-FFE1h
FFE4-FFE5h
FFE6-FFE7h
e FFE8-FFE9h
FFEA-FFEBh
FFEC-FFEDh
FFEE-FFEFh
FFF0-FFF1h
FFF2-FFF3h
FFF4-FFF5h
FFF6-FFF7h
FFF8-FFF9h
FFFA-FFFBh
FFFC-FFFDh
FFFE-FFFFh

6.

ST7/
;***********************************************************
; :
Main.asm
; : .., (almaz@xai.edu.ua)
;

;
" "
; :

;
( ST7)
; :
1.0
;***********************************************************
TITLE "Main.asm"
MOTOROLA
;***********************************************************
; (*.INC)
;***********************************************************
#include "ST7FLITE19.INC"
;
; ST7FLITE19
#include "MAX7221.INC"
;
;
; MAX7221
;***********************************************************
; ,
;***********************************************************

;***********************************************************
;
;***********************************************************

;***********************************************************
;
;***********************************************************
BYTES
segment byte 'ram0'
zero
ds.b 1
;
dT
ds.b 1
; d
KeyFlags ds.b 1
;
StpIndFlg ds.b 1
;
T1L
ds.b 1
; 1 ( )
T1H
ds.b 1
; 1 ( )
T2L
ds.b 1
; 2 ( )
T2H
ds.b 1
; 2 ( )
T1onL ds.b 1
; .1 ( )
T1onH ds.b 1
; .1 ( )
T2onL ds.b 1
; .2 ( )
T2onH ds.b 1
; .2 ( )

189

T1offL
T1offH
T2offL
T2offH
Uin
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b
ds.b

ds.b
ds.b
ds.b
ds.b
ds.b
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

;
;
;
;
;
Uin1
Uin2
Uin2
Uin3
Uin3
Uin4
Uin4
Uin5
Uin5
Uin6
Uin6
Uin7
Uin7
Uin8
Uin8

.1 ( )
.1 ( )
.2 ( )
.2 ( )
Uin1 ( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )

;***********************************************************
; ()
;***********************************************************
WORDS
segment byte 'rom'
;***********************************************************
;
;***********************************************************
;----------------------------------------------------------;
;----------------------------------------------------------init_val:
clr A
; zero
ld
zero,A
; zero
ld
StpIndFlg,A
; StpIndFl
ld
A,#3
; dT
ld
dT,A
; dT
ret
;----------------------------------------------------------;
;----------------------------------------------------------init_port:
ld
A,#%00011110
; :
ld
PADDR,A
; 1,2,3,4 . - ., .
ld
PAOR,A
; . - ., . -
ld
PBDDR,A
; 1,2,3,4 . - ., .
ld
PBOR,A
; . - ., . -
clr A
; .-
ld
PADR,A
; A
ld
PBDR,A
; B
ret

190

;----------------------------------------------------------; EEPROM
;----------------------------------------------------------read_T:
ld
A,$1000
; .1 (. )
ld
T1L,A
; .1 (. )
ld
A,$1001
; .1 (. )
ld
T1H,A
; .1 (. )
ld
A,$1002
; .2 (. )
ld
T2L,A
; .2 (. )
ld
A,$1003
; .2 (. )
ld
T2H,A
; .1 (. )
ret
;----------------------------------------------------------; 1
;----------------------------------------------------------thrshld1:
rcf
; (=0)
ld
A,T1L
;\;
sub A,dT
; |
ld
T1onL,A
; |.1=T1-dT
ld
A,T1H
; |
sbc A,dT
; |
ld
T1onH,A
;/;
rcf
; (=0)
ld
A,T1L
;\;
add A,dT
; |
ld
T1offL,A
; |.1=T1+dT
ld
A,T1H
; |
adc A,dT
; |
ld
T1offH,A
;/;
ret
;----------------------------------------------------------; 2
;----------------------------------------------------------thrshld2:
rcf
; (=0)
ld
A,T2L
;\;
sub A,dT
; |
ld
T2onL,A
; |.2=T1-dT
ld
A,T2H
; |
sbc A,dT
; |
ld
T2onH,A
;/;
rcf
; (=0)
ld
A,T2L
;\;
add A,dT
; |
ld
T2offL,A
; |.2=T1+dT
ld
A,T2H
; |
adc A,dT
; |
ld
T2offH,A
;/;
ret

;***********************************************************

191

;
;***********************************************************
main:
rsp
; c
clr MCCSR
;
clr KeyFlags
; KeyFlags
call init_val
;
call init_port
;
ld
A,#%00101010
; 2
ld
ATCSR,A
; T=1, .
ld
A,#$0f
; 1 2
ld
ATRH,A
; (.)
ld
A,#$f6
; 2 2
ld
ATRL,A
; (.)
ld
A,#%01100101
;
ld
ADCCSR,A
; f=f, ., AIN5
ld
A,#%01110000
; SPI
ld
SPICR,A
; fSPI=f/4, .SPI, .
call read_T
; 1 2
call thrshld1
; 1
call thrshld2
; 2
rim
;
work:
btjt KeyFlags,#1,menu
; "Enter" ;
jp
work
;
menu:
;--- ... ---; ,
;--- ... ---;
jp
work
;
;***********************************************************
; -
;***********************************************************
;----------------------------------------------------------; 2-
;----------------------------------------------------------ATOvrFlow:
;--- ... ---; , ,
;--- ... ---; ADCDRxK, Ton<ADCDRxK<Toff,
;--- ... ---; .\. ,
iret
;----------------------------------------------------------; o "Enter"
;----------------------------------------------------------key1scan: bset KeyFlags,#1
iret
;----------------------------------------------------------; o "Up"
;----------------------------------------------------------key2scan: bset KeyFlags,#2
iret
;-----------------------------------------------------------

192

; o "Down"
;----------------------------------------------------------key3scan: bset KeyFlags,#3
iret
;----------------------------------------------------------;
;----------------------------------------------------------dummy_rt: iret
;***********************************************************
;
;***********************************************************
segment 'vectit'
unused_int13
DC.W dummy_rt ; FFE0-FFE1h
SPI_int
DC.W dummy_rt ; FFE2-FFE3h
LT_RTC1_int
DC.W dummy_rt ; FFE4-FFE5h
LT_IntComp_int
DC.W dummy_rt ; FFE6-FFE7h
AT_Ovrflow_int DC.W ATOvrFlow
; FFE8-FFE9h
AT_OutComp_int
DC.W dummy_rt ; FFEA-FFEBh
AVD_int
DC.W dummy_rt ; FFEC-FFEDh
unused_int6
DC.W dummy_rt ; FFEE-FFEFh
LT_RTC2_int
DC.W dummy_rt ; FFF0-FFF1h
Ext3_int
DC.W key3scan ; FFF2-FFF3h
Ext2_int
DC.W dummy_rt ; FFF4-FFF5h
Ext1_int
DC.W key2scan ; FFF6-FFF7h
Ext0_int
DC.W key1scan ; FFF8-FFF9h
AWU_int
DC.W dummy_rt ; FFFA-FFFBh
Soft_int
DC.W dummy_rt ; FFFC-FFFDh
Reset
DC.W main
; FFFE-FFFFh
END

193


1. .., .., .. i.
// . .., ..
: . - . . -. 2002.
672 .
2. .., .., .. . 1.
, , , , 2006. 112 .
3. .

ARM

STMicroelectronics. // . 2007. 6.
4. .., .., .. . .
: . - . . -, 2005.
23 .
5. .., .., .. . .
ISA (PC104) : . : . - . . -, 2007. 71 .
6. : // . .., ..
: , 1995. 312 .
7. .., .. . :
. : . - .
. -. 2005. 127 .
8. .., .., .. . // . .: ,
1984. 311 c.
9. . STR910F. 32- ARM STMICROELECTRONICS // : . 2006. 6.
10. T.C., .. : . .: . . -, 1983. 320 .
11. . STMicroelectronics: . // , 2007. 7.
. 27-31.
12. .., .. .:
, 1981. 230 c.
13. .., .., .., ..
.: - ,
1987. 296 .
14. . 16- ST10
166 STMicroelectronics. // , 2007.
5. . 19-22.

194

15. .., .., ..


. :
. - . . -, 2007. 36 .
16. . . I. : , 2001. - 416 .
17. . . II. : , 2001. - 488 .
18. . STMicroelectronics. 1.
// , 2002. 5. . 74-78.
19. . STMicroelectronics. 2.
// , 2002. 7. . 98-100.
20. ., . STMicroelectronics
// CHIP News, 2001. 6.
21. .. : . , 1998. 503 .
22. .., ..
STMicroelectronics: . //
, 2007. 7. . 26.
23. ., . . 5-, . .: , 1998. 704 .
24. . 8- . // , 4, 2006. . 98-101.
25. ..
Motorola: . . ., 1998. 560 .
26. . STMICROELECTRONICS
ARM // , 2006. 3.
27. .
STMICROELECTRONICS ARM // . 2006. 6.
28. . STMICROELECTRONICS
// . 2006. 2.
29. Edouard-Alexandre Sabatier ST7 Microcontroller Training.
STM, , 2007. 101 .
30. Maurice Levansuu STDV7 IDE & ST7 in 10 Steps. STM,
, 2007. 189 .
31. http://www.st.com - ST7 8-bit MCU Family. User Guide
32. http://www.st.com - ST7 Family. Programming Manual
33. http://www.st.com - STMicroelectronics Company Presentation. August, 2007
34. http://datasheets.maxim-ic.com - MAX7219/MAX7221. Serially Interfaced, 8-Digit LED Display Drivers. Datasheet. Rev. 4; 7/03. Maxim
corp. 16 p.
35. http://www.analog.com - AD627. Micropower, Single- and DualSupply, Rail-to-Rail Instrumentation Amplifier. Datasheet. Rev. D,
11/07. Analog Devices, Inc. 16 p.
195

36. http://www.diotec-usa.com - 2 AMPS Silicon bridge rectifiers. Datasheet. No. BRSB-200-1C. Diotec Electronics corp. 2 p.
37. http://www.fairchildsemi.com - LM78XX/LM78XXA. 3-Terminal 1A
Positive Voltage Regulator. Datasheet. Rev. 1.0.1; 6/06. Fairchild
Semiconductor corp. 28 p.
38. http://www.irf.com - Series PVT312. Microelectronic Power IC. Datasheet. No. PD 10038D; 8/00. International Rectifier. 5 p.
39. http://www.st.com - ST7LITE1. Datasheet. Rev. 2.0; 12/04.
STMicroelectronics. 131 p.
40. http://www.ystone.com.tw - Three Digit LED Displays. Datasheet.
Yellow Stone corp. 1 p.

196