MC68HC908GP32
MC68HC908GP32 8- CPU08, Flash- 32 , 512 (. 1). CPU08 8- 90 . - : 8- A CCR, 16- H:X, SP PC.
:
CGM08;
SIM08;
LVI08;
BREAK08;
IRQ08;
COP08;
TBM08.
CGM08 , SIM08 . CGM08 .
SIM08 , . : CGM08, LVI08, IRQ08, BREAK08, COP08, , , .
. 1. MC68HC908GP32
BREAK08 .
IRQ08 , IRQ#, .
COP08 .
LVI08 .
TBM08 .
, . MC68HC908GP32 :
A, B, C, D, E ;
SCI08;
SPI08;
KBI08;
8- - ADC08;
TIM08.
A, B, C, D, E . A, B 8 , E 2 , C, D 5 8 , .
A, B, D, E KBI08, ADC08, TIM08-1, TIM08-2, SPI08, SCI08 (. 1). , , .
|
|
SCI08, SPI08 .
TIM08 , , , .
- ADC08 , 8 , 8- .
KBI08 , .
68HC08/908 64 ( $0000-FFFF). , , . . 2 MC68HC908GP32. , , . .
$0000 $003F | (64 ) |
$0040 $023F | (512 ) |
$0080 $7FFF | (32192 ) |
$8000 $FDFF | Flash- (32 256 ) |
$FE00 | SBSR ( BREAK08) |
$FE01 | SRSR ( ) |
$FE02 | |
$FE03 | SBFCR ( BREAK08) |
$FE04 | INT1 ( ) |
$FE05 | INT2 ( ) |
$FE06 | INT3 ( ) |
$FE07 | |
$FE08 | FLCR ( Flash-) |
$FE09 | BRKh ( BREAK08) |
$FE0A | BRKl ( BREAK08) |
$FE0B | BRKSCR( BREAK08) |
$FE0C | LVISR ( LVI08) |
$FE0D $FE1F | (19 ) |
$FE20 $FE52 | (307 ) |
$FE53 $FF7D | (43 ) |
$FF7E | FLBPR ( Flash- |
$FF7F $FFDB | (93 ) |
$FFDC $FFFF | (36 ) |
. 2. MC68HC908GP32.
64 ( $000$003F) (. 1). , 16- TCN, TMOD, TCHx : l, h.
, SP. () SP $00FF, .
|
|
TXS, SP H:X, 1. SP 1, . , . ( ) H:X TSX.
MC68HC908GP32 Flash-, . 10000 , 10 . , . Flash-. .
512 , $0040$023F. .
, -, , . - , .
.
1
Ft SIM08 , CGM08. MC68HC908GP32 , - Fq = 32,768 , ( ). Ft CGM08. і1 , .. Ft = 2,4576 .
SIM08. :
1. V.
2. RST# = 0.
3. COP08.
4. .
5. , .
6. LVI08 V.
:
, Ft = Fq, ;
PC ( PCh, PCl) $FFFE-FF (.2), , ;
SP $FF, ;
CCR I = 1, ;
.
MC68HC908GP32 :
|
|
,
,
,
.
(Wait mode) WAIT.
, . (. 2). ( IRQ# ). , . , PC , , PC (. 8).
(Stop mode) STOP. . BREAK08, IRQ08, KBI08. LVI08 TBM08 . , (. 2).
2
MC68HC908GP32
68908G32 | 15 | 4 | 3/300 | U=5,0 , Ft=4 |
4,5 | 1,7 | 2/200 | U=3,0 , Ft=4 |
RST# IRQ#, LVI08, BREAK08, KBI08, TBM08, . PC (. 8). WAIT STOP CCR I = 0, .
. 68HC08/908. . , , Flash-. , .
-, - . . IRQ# Vh = Vp + 2,5 . PTA0 A .
Flash-. , , (ISP In-System Programming).
.
|
|
-
U08 8- . - U8 (. 3):
8- ;
8- X , 16- :;
SP;
;
R.
. 3. - 08
8- , , .
: X, 64 . , X . , , . U8 , . X. 0, , 05. X.
SP 16- . , (ISR), . , . , . 8- 16- . 08 05, $00FF, . RSP ( ). , 08 . ($0000$00FF) . . SP $0000 $FFFF. :
ORG $B000 | ; $B000, |
sei | ; |
ldhx $0200 ¼ ¼ ¼ | ; :X $0200 |
txs | ; : S |
ORG $FFFC | ; |
DW $C817 | ; $817 |
ORG $FFFE | ; |
DW $B000 | ; $B000 |
. 4.
. 4.
$000. (SEI R) $200. 17 , . $1F0 $200. 16-, 08 64 .
16- , . . , $FFF ( ) $FFFF ( ). (. 2).
8- , . . U8 : , Z, N, V, , I. Z N .
|
|
(rr F1g) 1, . . U8 : L , S . .
Z (Z F1g) 1, , 0. .
N (Negative Flag) D7 , . . : D7
N = D7 = 0 ,
N = D7 = 1 .
(lt-rr F1g) 1 D D4 DD DD. , - (D binary coded decimal). DAA . .
V 1, , , . D6 D7 . . , , . :
;
;
( ) ;
( ) .
: , , :
,𝑉=𝐴7&𝑀7&,𝑅7..,𝐴7.&,𝑀7.&𝑅7.
BGT, BGE, BLE, BLT. V SL, SR, LSL, LSR, ROL, ROR. . .
I , 1 , SWI. , I = 0, , , X R, I 1 . , I = 1, . , I . RTI ( ) I 0 . U08 I: CLI , SEI . I 1, . ( I 0) CLI.
08
- 08, :
. , . , CLRA 0 , CLRX X, CLR mm mm;
08 . , , , . , LDA $0023 $23, LDA $81FF , $81FF.
908 ISC- (ISC Complicated Instruction Set Computer). , . 08 , ( ) . , , . , . , , . , . . , .
08 :
(INH Inherent);
(IMM Immediate);
(DIR Direct);
( Extended);
(IX Indexed);
1 (IX1 Indexed, 8 bit offset);
2 (IX2 Indexed, 16 bit offset);
(IX1+ Indexed with post incrementer);
1 (I+ Indexed, 8 bit offset with post incrementer);
1 (S1 Stack pointer, 8 bit offset);
2 (S2 Stack pointer, 16 bit offset);
(REL Relative).
(Inherent). . , INCA 1 , ASLX X, SEC . 1 . (, X, :) ( , I) ( S, WAIT).
(Immediate). 8- 16- , . , , , 8- 16- . , , .. . #r.
:
add #r | ; ADD |
lda #r | ; LDA |
lda #$F0 | ; $F0 |
add #3 | ; 3, |
ora #$0 | ; $0, |
ldhx #$2080 | ; 16- : $2080 |
(Direct). 2 . 8- , , 256 . $00, , $0000 $00FF. . 08 , . . Direct 1 Extended, . , Direct . , , . r.
:
add r | ; add |
lda $31 | ; $0031 |
add $31 | ; $0031, |
ora $0 | ; $000A, |
(Extended). 08 64 , 8-, 16- . 3 : , (MSB) (LS) . , , ( $0000 $00FF). ( ) , .
:
add r | ; add |
add $011 | ; $011, |
ldx $011 | ; X $011 |
(Indexed) , . , : . , , . 1 2 , , . , , : , . . .
, :. (SB) , (LS) X. . , , .
:
add,x | ; add |
lda,x | ; , : |
add,x | ; , : |
, . , .
8- (Indexed, 8 bit offset) , 8- . , 8- :. . i- n . 64 , 16- :. i- , , 256 .
, 16- .
:
add r, | ; add 1 |
add $80, | ; , (:)+128 |
lda $1, | ; , (:)+1 |
16- (Indexed, 16 bit offset) , 2 16- . :, . 16- (S), (LS). , 256 .
:
add r, | ; add 2 |
add $0100, | ; , (:X)+256 |
lda $01FF, | ; , (:)+511 |
(Indexed with post incrementer) mov cbeq. :. : 1.
:
V +,r | ; V |
V +,$68 | ; , : $68. 1 : |
Q +,rel | ; CQ |
Q +,m1 | ; , :. m1 . 1 : |
1 (Indexed, 8 bit offset with post incrementer) Q. :, . : , . . : 1.
:
EQ opr,+,rel | ; Q 1 |
Q $80,+,m1 | ; , (:)+128. m1 . 1 : |
S. , , . 16- S , . 8- 16-. , S :.
, $9. , , :.
8- (Stack pointer, 8 bit offset) S 8- . .
:
DD r,S | ; DD 1 |
DD $80,S | ; , (S)+128 |
LD $1,S | ; , (S)+1 |
16- (Stack pointer, 16 bit offset), S 16- . .
1 2 . . , r.
:
DD r,S | ; DD 2 |
DD $200, | ; , (S)+512 |
LD $03FF, | ; , (S)+1023 |
(Relative) , . . , . 128 +127. , , , . , .
. , .
:
JZ label_1 | ; label_1, 0 |