Texas Instruments MSC1210 User Manual

Page 7

Advertising
background image

Contents

v

Contents

16 8052 Assembly Language

16-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.1

Description

16-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.2

Syntax

16-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.3

Number Bases

16-4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.4

Expressions

16-4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.5

Operator Precedence

16-5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.6

Characters and Character Strings

16-5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.7

Changing Program Flow (LJMP, SJMP, AJMP)

16-6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.8

Subroutines (LCALL, ACALL, RET)

16-7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.9

Register Assignment (MOV)

16-8

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.10 Incrementing and Decrementing Registers (INC, DEC)

16-11

. . . . . . . . . . . . . . . . . . . . . . . .

16.11 Program Loops (DJNZ)

16-12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.12 Setting, Clearing, and Moving Bits (SETB, CLR, CPL, MOV)

16-13

. . . . . . . . . . . . . . . . . . .

16.13 Bit-Based Decisions and Branching (JB, JBC, JNB, JC, JNC)

16-15

. . . . . . . . . . . . . . . . . .

16.14 Value Comparison (CJNE)

16-16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.15 Less Than and Greater Than Comparison (CJNE)

16-17

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.16 Zero and Non-Zero Decisions (JZ/JNZ)

16-18

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.17 Performing Additions (ADD, ADDC)

16-18

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.18 Performing Subtractions (SUBB)

16-20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.19 Performing Multiplication (MUL)

16-21

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.20 Performing Division (DIV)

16-22

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.21 Shifting Bits (RR, RRC, RL, RLC)

16-23

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.22 Bit-Wise Logical Instructions (ANL, ORL, XRL)

16-24

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.23 Exchanging Register Values (XCH)

16-26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.24 Swapping Accumulator Nibbles (SWAP)

16-26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.25 Exchanging Nibbles Between Accumulator and Internal RAM (XCHD)

16-26

. . . . . . . . . . .

16.26 Adjusting Accumulator for BCD Addition (DA)

16-27

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.27 Using the Stack (PUSH/POP)

16-28

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.28 Setting the Data Pointer DPTR (MOV DPTR)

16-30

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.29 Reading and Writing External RAM/Data Memory (MOVX)

16-31

. . . . . . . . . . . . . . . . . . . . .

16.30 Reading Code Memory/Tables (MOVC)

16-32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.31 Using Jump Tables (JMP @A+DPTR)

16-34

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17 Keil Simulator

17-1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.1

Description

17-2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.2

Timers

17-4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.2.1 Timer 0 & 1 Example

17-5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.3

Timer 2

17-11

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.4

Watchdog Timer

17-12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.4.1 Watchdog Reset Facility Example

17-13

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.5

System Timer

17-16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.6

Clock Control

17-16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.7

Analog-to-Digital Converter

17-17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.8

Summation/Shifter

17-20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.8.1 ADC/Summation/Shifter Example

17-21

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.9

Interrupts

17-30

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.10 Ports

17-31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.11 Serial Peripheral Interface (SPI)

17-32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.11.1 SPI Sample Code

17-34

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.12 mVision 2 Debug Program Example

17-38

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.13 Serial Port I/O

17-40

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.13.1 Serial Port 0 Operation Mode 1 Example

17-42

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.13.2 Transmit Block Baud Rate Computation

17-43

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.13.3 Receive Block Baud Rate Computation

17-44

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17.14 Additional Resource

17-46

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Advertising