3_admd2

19
1 ST7 MICROCONTROLLER TRAINING ST7 MICROCONTROLLER TRAINING 1. INTRODUCTION 2. CORE 3. ADRESSING MODES 4. PERIPHERALS 5. ST7 SOFTWARE TOOLS 6. ST7 HARDWARE TOOLS 7. STVD7

Upload: safasaba

Post on 07-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

stm8

TRANSCRIPT

  • 1ST7 MICROCONTROLLER TRAININGST7 MICROCONTROLLER TRAINING

    1. INTRODUCTION2. CORE 3. ADRESSING MODES4. PERIPHERALS5. ST7 SOFTWARE TOOLS6. ST7 HARDWARE TOOLS7. STVD7

  • 2SOFTWARE DESCRIPTIONSource Program Format

    SOFTWARE DESCRIPTIONSource Program Format

    z A program is made up of lines. Each assembler line consists of up to 4 fields The label field: it is an identifying label The operation field: it contains a word which specifies the action to be

    performed by the assembly process The operand field: it is constitued of quantity (number or register) on

    which the operation is performed The comment field: for any comment concerning the line

    substract sub A, #$22 ; substract $22 to the value hold by A

    LabelOperation

    OperandComment

  • 3INHERENTINHERENT

    z The OP code fully specify all required information for the cputo process the operation (The inherent instructions are single byte long).

    z Example

    RCF - Reset Carry Flag ; RSP - Reset Stack Pointer HALT ; WFI - Low consumption modes TRAP - Enter software interrupt RET - Return ; IRET -Interrupt Return SIM - Set Interrupt Mask ; RIM - Reset Interrupt Mask PUSH A ; POP Y - Stack operation

  • 4IMMEDIATE ADDRESSING MODEIMMEDIATE ADDRESSING MODE

    BCP A, #$FF XOR A, #%01001110 LD X, #255

    z Example

    LD A, #$55

    Before Completion After Completion

    A = Previous value A = $55

  • 5SHORT DIRECT ADDRESSING MODESHORT DIRECT ADDRESSING MODE

    z ADDRESSABLE SPACE: 00 to FF INC variable NEG variable SRA variable

    z Example

    If label is an 8 bit symbol defined as $86

    INC label

    Before Completion After Completion

    $086 5A $086 5B

  • 6ADD A, LABEL

    Before Completion After Completion

    $F1D6 0A

    A = $C1 A = $CB

    LONG DIRECT ADDRESSING MODELONG DIRECT ADDRESSING MODE

    z ADDRESSABLE SPACE: 0000 to FFFF CP Y, VARIABLE SBC A, VARIABLE

    z Example

    If label is an 16 bit symbol defined as $F1D6

  • 7NO OFFSET INDEXED ADDRESSING MODENO OFFSET INDEXED ADDRESSING MODE

    z ADDRESSABLE SPACE: 00 to FF CPL (X) DEC (Y) OR A, (X)

    z Example

    CPL (X)

    Before Completion After Completion

    $D4 0A

    X = $D4

    $D4 F5

  • 8RRC (label, X)

    Before Completion After CompletionX = 03 and C=1

    $90 0A$91$92$93

    1EF6A8

    C=0

    $90 0A$91$92$93

    1EF6D4

    SHORT INDEXED ADDRESSING MODESHORT INDEXED ADDRESSING MODE

    z ADDRESSABLE SPACE : 000 to 1FE RRC (variable, X) SWAP (variable, Y)

    z Example

    If label is an 8 bit symbol defined as $90

  • 9LD X, (LABEL, X)

    Before CompletionX = 02

    $2E6D 0A$2E6E$2E6F$2E70

    1E2FA8

    After CompletionX = $2F

    LONG INDEXED ADDRESSING MODELONG INDEXED ADDRESSING MODE

    z ADDRESSABLE SPACE: 0000 to FFFF ADD A, (variable, Y) XOR A, (variable, X)

    z Example

    If label is an 16 bit symbol defined as $2E6D

  • 10

    SHORT INDIRECT ADDRESSING MODESHORT INDIRECT ADDRESSING MODE

    z ADDRESSABLE SPACE: 00 to FF TNZ [variable] CLR [variable]

    z Example

    If label is an 8 bit symbol defined as $4BBefore Completion After Completion

    SWAP [label]$20

    $4B 20

    D4 $20

    $4B 20

    4D

  • 11

    LD A, [label.w]

    Before Completion After Completion

    $40

    $42E5 11

    42E5$41 A = $11

    LONG INDIRECT ADDRESSING MODELONG INDIRECT ADDRESSING MODE

    z ADDRESSABLE SPACE: 0000 to FFFF ADC A, [variable.w] BCP A, [variable.w]

    z Example

    If label is an 8 bit symbol defined as $40

  • 12

    CLR ([label], X)

    Before Completion After CompletionX = 04

    $0FE 0A$0FF$100$101

    1EF6A8B3$102

    FE$0C8

    $0FE 0A$0FF$100$101

    1EF6A800$102

    FE$0C8

    SHORT INDIRECT INDEXEDSHORT INDIRECT INDEXED

    z ADDRESSABLE SPACE: 000 to 1FE RLC ([variable], Y) LD X, ([variable], X)

    z Example If label is an 8 bit symbol defined as $C8

  • 13

    LD A, ([label.w],X,)

    Before Completion After Completion

    A = $84

    X = 01$40

    $42E5 11

    42E5$41

    84

    LONG INDIRECT INDEXEDLONG INDIRECT INDEXED

    z ADDRESSABLE SPACE : 0000 to FFFF SUB A, ([variable.w], X) AND A, ([variable.w], Y)

    z Example If label is an 8 bit symbol defined as $40

  • 14

    RELATIVE ADDRESSING MODERELATIVE ADDRESSING MODE

    z DIRECT ADDRESSABLE SPACE: PC-128 to PC+127 JRUGE label CALLR label

    z INDIRECT ADDRESSABLE SPACE: PC-128 to PC+127 JRNC [label] JRH [label]

    JRMI [label]

    .PC + 40PC

    .label 40

    JRMI label

    .label

    PC

  • 15

    BIT MANIPULATIONBIT MANIPULATION

    z DIRECT ADDRESSABLE SPACE: 00 to FF

    z INDIRECT ADDRESSABLE SPACE: 00 to FF

    BRES [variable], #7

    variable = $86

    $86$86

    0 01 0 0 0001 01 0 0 000

    BSET variable, #2variable variable

    1 01 0 0 0011 01 0 0 000

  • 16

    RELATIVE JUMP ON BIT TESTRELATIVE JUMP ON BIT TEST

    z DIRECT ADDRESSABLE SPACE: 00 to FF

    z INDIRECT ADDRESSABLE SPACE: 00 to FF

    variable = $4B

    BTJF [variable], #7, label$20

    $4B 20

    D4

    Relative jump to label in range PC-128 to PC+127

    Execute next instruction

    variable = $85

    BTJT variable, #3, label$85 F8

  • 17

    SHIFT AND ROTATE INSTRUCTIONSSHIFT AND ROTATE INSTRUCTIONS

    z RLC

    z RRC

    z SLA and SLL

    z SRA

    z SRL

    7 6 5 4 3 2 1 0C

    0

    7 6 5 4 3 2 1 0

    7 6 5 4 3 2 1 0

    7 6 5 4 3 2 1 0

    7 6 5 4 3 2 1 0

    C

    C

    C

    C

    0

  • 18

    ADDRESSING MODES SummaryADDRESSING MODES Summary

    A D D R E S S IN G M O D E S Y N T A X E X A M P L E S A D D R E S S R A N G E Inherent R C F ; M U L X ,A ; S W A P A ; C LR X ; W FI N ot applicable Im m ediate B C P A , #$0FF ; X O R A , #% 01001110 N ot applicable S hort D irect IN C variable ; N EG variable ; S R A variable 00...FF Long D irect C P Y, V A R IA B LE ; S B C A , V A R IA B LE 0000...FFFF N o offset Indexed C P L (X ) ; D EC (Y) ; O R A , (X ) 00...FF S hort Indexed R R C (variable, X ) ; S W A P (variable, Y) 000...1FE Long Indexed A D D A , (V A R IA B LE, Y) 0000...FFFF S hort Indirect TN Z [variable] 00...FF Long Indirect A D C A , [variable.w ] 0000...FFFF S hort Indirect Indexed R LC ([variable], Y) ; LD X , ([variable], X ) 000...1FE Long Indirect Indexed S U B A , ([variable.w ], X ) 0000...FFFF R elative D irect JR U G E label ; C A LLR label P C -128/+127 R elative Indirect JR N C [label] ; JR H [label] P C -128/+128 B it D irect B R ES variable, #7 00...FF B it Indirect B S ET [variable], #7 00...FF R elative B it D irect B TJT variable, #3, label 00...FFR elative B it Indirect B TJF [variable], #7, label 00...FF

  • 19

    EXERCICES ON ADDRESSING MODESEXERCICES ON ADDRESSING MODES

    z What is the content of the registers X,Y and Aafter the execution of the 3 instructions ?

    X = ?Y = ?A = ?

    X = 03 and Y = 04

    LD X,(Label,X)LD Y,([Label],Y)LD A,([Label2.w],Y)

    Before Completion

    After Completion

    M em o ry A d d ress M em o ry C o n ten tL ab el2: $009F O O

    $00A 0 A 6$00A 1 53

    L ab el: $00A 2 A 0$00A 3 B 8$00A 4 O 1$00A 5 O 4$00A 6 D 3$00A 7 61