Docstoc

Sample 0F Form 4010

Document Sample
Sample 0F Form 4010 Powered By Docstoc
					                                            Agenda



 1. Overview of 8051 Architecture, Timing, On-chip Resources, Instruction Set etc. Derivative products


 2. Programming the 8051: Basic techniques, tips & tricks.


 3. Development Support: Development Boards, Emulators, EPROM Programmers, Compilers, etc.


 4. I2C, a simple Multi-master 2-wire serial bus.


 5. ACCESS.Bus, an I2C-based protocol for connecting peripherals to workstations/PCs.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                       1
                                            The 8051

An 8-bit Microcontroller optimized for control applications.



A Microcontroller derivative family based on the 8051 core.



A Microcontroller because you can make a one-chip system with the one chip containing:


Program & Data Memory
I/O Ports
Serial Communication
Counters/Timers
Interrupt Control logic
A-to-D and D-to-A convertors
& so on ...




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                       2
                            Features of the 8051

                       - 8 Bit data path and ALU.

                       - Easy interfacing.


                       - 12 to 30 MHz versions available.
                           ( 1 µsec to 400 ns for single cycle
                           instructions).


                       - Full instruction set including:
                           Multiply and Divide.
                          Bit set, reset, and test (Boolean
                          instructions).

                       - Variety of addressing modes.



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   3
                        Features of the 8051 (cont'd)

                         - 4K X 8 ROM - Program memory.


                         - 128 x 8 RAM - Data memory.


                         - Special function registers.


                         - Serial I/O port.


                         - 32 I/O lines.


                         - Two 16-bit counter/timers.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   4
                                 8051 Logic Symbol

                                           VS S   VCC   RS T

                                                               P0.7
                                    XTAL1                      P0.6   P
                                                               P0.5   O   ADDRES S
                                                               P0.4   R   AND
                                    XTAL2                      P0.3       DATA BUS
                                                                      T
                                                               P0.2
                                                               P0.1   0
                                                               P0.0
                                    EA

                                    PS EN                      P1.7
                                                               P1.6   P
                                    ALE                        P1.5   O
                                                               P1.4   R
                                                               P1.3   T
                                                               P1.2   1
                                                               P1.1
                                                               P1.0

                      RxD           P3.7                       P2.7
                      TxD    P      P3.6                       P2.6   P    ADDRES S
      S E CO NDA RY   INT0          P3.5                       P2.5        BUS
                             O                                        O
      FUNCTIO NS                    P3.4                       P2.4
                      INT1   R                                        R
                      T0            P3.3                       P2.3
                             T      P3.2                              T
                      T1                                       P2.2
                             3      P3.1                       P2.1   2
                      WR
                      RD            P3.0                       P2.0




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                    5
                            80C51 Block Diagram
      External Interrupts



                              4k byte           128 byte           Timer 1   Counter
       Interrupt Control
                               ROM               RAM               Timer 0   Inputs




             CPU




                              Bus               I/O Ports           Serial
             OSC
                             Control                                 Port



                                                                   TXD RXD



                                          P0 P2          P1   P3
                                        (Address/Data)




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                     6
                             Addressing Space

                    - 64K X 8 ROM - Program memory.


                    - 64K x 8 RAM - External data memory.


                    - 256 x 8 RAM - Internal data memory.


                    - 128 x 8 Special function registers (SFRs).


                    - Bit addressing of 16 RAM locations
                       and 16 SFRs.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   7
                              Program Memory
                     - 16 bit Program Counter (PC).

                     - 16 bit Data Pointer (DPTR).


                     - 64K byte address space each for
                         Program & Data.

                     - Table lookup using relative addressing:
                          PC + ACC (Move).
                          DPTR + ACC (Move and jump).


                     - EA pin disables internal ROM and
                        activates external program memory
                        and addressing.



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   8
                           Internal Data Memory
                          - 128 bytes of RAM.


                          - Directly addressable range:
                                   00 to 7F hexadecimal.


                          - Indirectly addressable range:
                                   00 to FF hexadecimal.

                          - Bit addressable space:
                                   20 to 2F hexadecimal .


                          - Four register banks:
                                   00 to 1F hexadecimal.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   9
                              Internal Data Memory
                    7F                             END 8051 RAM
                    30
                    2F   FF . . . . . . . . . F8
                                                   BIT ADDRESSABLE
                    20   07 . . . . . . . . . 00
                    1F
                         REGISTER BANK 3
                    20
                    17
                         REGISTER BANK 2
                    18
                    0F
                         REGISTER BANK 1
                    08
                    07 R7
                         R6
                         R5
                         R4
                                                   REGISTER BANK 0
                         R3
                         R2
                         R1
                    00 R0




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   10
                           External Data Memory

                      - 64K byte address space.


                      - Indirectly addressable via R0 and R1
                              in 256 byte segments.

                      - Entire space is indirectly addressable
                              via the data pointer DPTR.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   11
                         External Bus Expansion
           8051
              PORT 2                      A15 - A8: High byte of address


              PORT 0                      AD7 - AD0: Data and low byte
                                              address
                   ALE                     ALE: Address latch enable

                  P3.7                    RD: Read strobe


                  P3.6                    WR: Write strobe


                  PSEN                    PSEN: Program store enable




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS         12
                                       8051 Timing
                  State 1   State 2 State 3     State 4   State 5   State 6 State 1   State 2
                  P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
        XTAL2



        ALE

        _____
        PSEN


        P0                  PCL out                       PCL out                     PCL out
                              Data                          Data                        Data
                            sampled                       sampled                     sampled

        P2                            PCH out                       PCH out




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                              13
                        External Program Memory


           8051
                                    A15 - A8
            PORT2                                              ROM(S)
               ALE                  ADDRESS
                       AD7 - AD0                             ADDRESS
                                     LATCH                     INPUTS
            PORT0
                                                   A7 - A0   DATA
                                        D7 - D0              OUTPUTS
            PSEN                                             OE




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS      14
                           External Data Memory
                          · 64K byte adress space.
                          · Indirectly addressable via R0 and R1
                             in 256 byte segments.
                          · Entire space in indirectly addressable
                             via the data pointer DPTR.              RAM(S) or
     8051
                                                                       I/O
                                                           DECODE    CE
      PORT 2

         ALE                      ADDRESS                            ADDRESS
                                   LATCH                              INPUTS
     PORT 0
                                                                       DATA
                                                                      OUTPUTS
          WR                                                          R/W
          RD                                                          OE




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS               15
                                                 Reset
           · RST pin is Schmitt trigger input.
           · External reset is asychronous to the internal clock.
           · RST pin must be high for at least two machine cycles while the oscillator is
               running.
           · Internal RAM not affected by reset, but indeterminate on power up.
           · Port pins in random state until oscillator starts and algorithm write 1's to them.
           · Reset sets PC to 0000.
           · Typical circuits:


                       +5V                                   +5V
                                     8051                                   80C51
                             10uF                                  2.2uF

                                    RST                                    RST

                             8.2K




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                16
                   Special Function Register Space

                       - 128 byte address space, directly
                           addressable as 80 to FF hex.


                       - 16 addresses are bit addressable:
                           Set, Clear, AND, OR, MOV
                           (those ending in 0 or 8).


                       - This space contains:

                           Special purpose CPU registers.
                           I/O control registers.
                           I/O ports.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   17
                            Special Function Register Map
      Bit Addressable

                F8
                F0      B
                E8
                E0      ACC
                D8
                D0      PSW
                C8
                C0
                B8      IP
                B0      P3
                A8      IE
                A0      P2
                98      SCON   SBUF
                90      P1
                88      TCON   TMOD TL0     TL1   TH0   TH1
                80      P0     SP     DPH   DPL                  PCON




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS      18
                        Special Function Registers
                       CPU registers:
                          - ACC             : Accumulator.
                          -B                : B register.
                          - PSW             : Program Status Word.
                          - SP              : Stack Pointer.
                          - DPTR            : Data Pointer (DPH, DPL).

                       Interrupt control:
                            -IE             : Interrupt Enable.
                            -IP             : Interrupt Priority.

                       I/O Ports:
                            - P0            : Port 0.
                            - P1            : Port 1.
                            - P2            : Port 2.
                            - P3            : Port 3.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS       19
                    Special Function Registers (cont'd)
                     TImers:
                         - TMOD        : Timer mode.
                         - TCON        : Timer control.
                         - TH0         : Timer 0 high byte.
                         - TL0         : Timer 0 low byte.
                         - TH1         : Timer 1 high byte.
                         - TL1         : Timer 1 low byte.


                     Serial I/O:
                         - SCON        : Serial port control.
                         - SBUF        : Serial data registers.


                     Other:
                         - PCON        : Power control & misc.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   20
                      PSW : Program Status Word
           CY       AC           F0          RS1              RS0      OV     ----   P

                          - CY            : Carry Flag.
                          - AC        : Auxiliary Carry Flag.
                          - F0        : Flag 0 (available for user).
                          - RS1 : Register Select 1.
                          - RS0 : Register Select 0.
                          - OV        : Arithmetic Overflow Flag.
                          -P          : Accumulator Parity Flag.

                    RS1          RSO            Register Bank          Address
                      0               0                   0            00h - 07h
                      0               1                   1            08h - 0Fh
                      1               0                   2            10h - 17h
                      1               1                   3            18h - 1Fh




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                       21
                                     I/O Ports
                        - Four 8-bit I/O ports.


                        - Most have alternate functions.


                        - Quasi-bidirectional:


                           Soft pull-up when port latch
                            contains a 1. Can be used as
                            inputs (30Kohm average pullup).


                           Strong pull-up for 2 CPU cycles
                            during 0 to 1 transitions.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   22
                             Port Configuration
                                               CM OS       VC     VC    VC
                                                            C      C     C
                                      2 OSC.
                                     PERIODS



                                                            P1     P2   P3

                                                                             PORT
                                                                              PIN
                                                            N
                            Q
                           FROM
                           PORT
                           LATCH                   INPUT
                                                    DATA

                                                           READ
                                                           PORT
                                                            PIN
                       NM OS
           2 OSC.
           PERIODS




                                                PORT
                                                 PIN
     Q
   FROM
   PORT
   LATCH




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                  23
                                      Port 0
                  - As an I/O port:
                     No strong pull-up, outputs act as
                     open drain.


                  - As a multiplexed data bus:
                     Tristate bus with strong pull-ups.
                     8-bit instruction bus, strobed by PSEN.
                     Low byte of address bus, strobed by ALE.
                     8-bit data bus, strobed by WR and RD.


                  - 3.2 mA outputs (about 8 LSTTL loads).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   24
                                       Port 1

                     As an I/O port:
                        Standard quasi-bidirectional.



                     - Alternate functions:
                        Only on some derivatives.



                     - 1.6 mA outputs (about 4 LSTTL loads).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   25
                                        Port 2

                    - As an I/O port:
                       Standard quasi-bidirectional.



                    - Alternate functions:
                       High byte of address bus for external
                         program and data memory accesses.



                    - 1.6 mA outputs (about 4 LSTTL loads).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   26
                                       Port 3
                      - As an I/O port:
                         Standard quasi-bidirectional.



                      - Alternate functions:
                          Serial I/O            - TXD, RXD
                          Timer clocks          - T0, T1
                         Interrupts             - INT0, INT1
                         Data memory            - RD, WR



                      - 1.6 mA outputs (about 4 LSTTL loads).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   27
                                 Counter / Timers

                     - Two 16-bit Counter/Timers:
                        Up counters, can interrupt on overflow.


                     - Counts:
                        CPU cycles (crystal/12).
                        External input (max. half CPU rate).


                     - Four Operation Modes.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   28
                                  Timer Modes
                     - Timer Mode 0 :
                         Emulates 8048 counter/timer (13-bits).
                        8-bit counter (TL0 or TL1).
                        5-bit prescaler (TH0 or TH1).


                     - Timer Mode 1 :
                         Simple 16-bit counter.


                     - Timer Mode 2 :
                         8-bit auto-reload.
                         Counter in TL0 or TL1.
                        Reload value in TH0 or TH1.
                        Provides a periodic flag or interrupt.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   29
                               Timer Modes (cont'd)
                 - Timer Mode 3 :
                     Splits timer 0 into two 8-bit counter/timers.
                     First counter (TLO) acts like mode 0,
                     without prescaler.
                     Second counter (TH0):
                         Counts CPU cycles.
                         Uses TR1 (timer 1 run bit) as enable.
                         Uses TF1 (timer 1 overflow bit) as flag.
                         Uses Timer 1 interrupt.

                     Timer 1 (when timer 0 is in mode 3 ):
                        Counter stopped if in mode 3.
                        Running in mode 0, 1, or 2.
                        Has gate (INT1) and external input (T1),
                           but no flag or interrupt.
                        May be used as a baud rate generator.



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   30
                             Counter/Timer in 16-bit (Mode 1)

                               Osc.       ÷ 12




                                                                                            I nt er r upt
                                                              TL1        TH1          TF1
                                                              8 - bi t s 8 - bi t s
                              T1 (Pi n)
                                                      Cont r ol
                TR1


             Gat e



              I NT1 (Pi n)


  The Gate input controls whether the Counter runs while gated by the interrupt signal or not.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                          31
                TMOD : Counter/Timer Mode Register

                GATE       C/T M1           M0       GATE         C/T M1           M0


                           Timer 1                                Timer 0

                   - GATE : Permits INTx pin to enable/disable counter.
                   - C/T : Set for counter operation, reset for timer operation.
                   - M1, M0 :
                                00 : Emulate 8048 counter/timer (13-bits).
                                01 :16-bit counter/timer.
                                10 : 8-bit auto-reload mode
                                11 :Timer 0 = two 8-bit timers.
                                    Timer 1 Counting disabled. Timing function
                                    allowed. Can be used as Baud Rate
                                    generator.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                      32
               TCON : Counter/Timer Control Register

                 TF1     TR1       TF0      TR0       IE1       IT1      IE0       IT0

                 - TF1, TF0 : Overflow flags for Timer 1 and Timer 0.

                 - TR1, TR0 : Run control bits for Timer 1 and Timer 0.          Set to
                     run, reset to hold.

                 - IE1, IE0 : Edge flag for external interrupts 1 and 0. *
                      Set by interrupt edge, cleared when interrupt is processed.

                 - IT1, IT0 : Type bit for external interrupts. *
                      Set for falling edge interrupts, reset for 0 level interrupts.

                 * = not related to counter/timer operation.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                        33
                                Serial Interface
                    - Full duplex UART.
                    - Four modes of operation:
                        Synchronous serial I/O expansion.
                        Asynchronous serial I/O with variable
                          baud rate.
                        Nine bit mode with variable baud rate.
                        Nine bit mode with fixed baud rate.
                    - 10 or 11 bit frames.
                    - Interrupt driven or polled operation.
                    - Registers:
                        SCON - Serial port control register.
                        SBUF - Read received data.
                                 - Write data to be transmitted.
                        PCON - SMOD bit.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   34
                        Serial Interface Modes of Operation

 TXD and RXD are the serial output and input pins (Port 3, bits 1 and 0).


 Mode 0: Shift Register Mode. Serial data is transmitted/received on RXD. TXD outputs shift clock. Baud
          Rate is 1/12 of clock frequency.


 Mode 1: 10-bits transmitted or received. Start (0), 8 data bits (LSB first), and a stop bit (1). Baud Rate
         Clock is variable using Timer 1 overflow or external count input. Can go up to 104.2KHz (20MHz
                   osc.).


 Mode 2: 11-bits transmitted or received. Start (0), 8 data bits (LSB first), programmable 9th bit, and stop bit
         (1). Baud Rate programmable to either 1/32 or 1/64 oscillator frequency (625KHz for 20MHz
         osc.).


 Mode 3: 11-bit mode. Baud Rate variable using Timer 1 overflow or external input. 104.2 KHz max. (20
         MHz osc.).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                             35
                               Multi-Drop Communication

 Serial Communication Modes 2 and 3 allow one "Master" 8051 to control several "Slaves":


 The serial port can be programmed to generate an interrupt if the 9th data bit = 1.


 The TXD outputs of the slaves are tied together and to the RXD input of the master. The RXD inputs of the
     slaves are tied together and to the TXD ouput of the master.


 Each slave is assigned an address. Address bytes transmitted by the master have the 9th bit = 1.


 When the master transmits an address byte, all the slaves are interrupted. The slaves then check to see if
    they are being addressed or not.


 The Addressed slave can then carry out the master's commands.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                            36
                       SCON : Serial Control Register

                 SMO SM1 SM2 REN TB8                             RB8      TI        RI

                - SM0, SM1 = Serial Mode:
                     00 = Mode 0 : Shift register I/O expansion.
                     01 = Mode 1 : 8-bit UART with variable baud rate.
                     10 = Mode 2 : 9-bit UART with fixed baud rate.
                     11 = Mode 3 : 9-bit UART with variable baud rate.
                - SM2 :
                     Mode 0                 : Not used.
                     Mode 1                 : 1 = Ignore bytes with no stop bit.
                     Mode 2,3               : 0 = Set receive interrupt (RI) on all bytes.
                                            : 1 = Set RI on bytes where bit 9 = 1.
                - REN = Enables receiver.
                - TB8 = Ninth bit transmitted (in modes 2 and 3).
                - RB8 = Ninth bit received:
                     Mode 0                 : Not used.
                     Mode 1                 : Stop bit.
                     Mode 2,3               : Ninth data bit.
                - TI = Transmit interrupt flag.
                - RI = Receive interrupt flag.


PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                           37
                               Interrupt System

                    - 5 Interrupt Sources (in order of priority):
                        External Interrupt 0.
                        Timer 0.
                        External Interrupt 1.
                        Timer 1.
                        Serial Port.

                    - Each interrupt type has a separate
                       vector address.

                    - Each interrupt type can be programmed
                       to one of two priority levels.

                    - External interrupts can be programmed
                       for edge or level sensitivity.



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   38
                      IE : Interrupt Enable Register

                EA     ----    ----      ES        ET1   EX1    ET0   EX0


                        - EA          : Global interrupt enable.
                        - ES          : Serial interface.
                        - ET1         : Timer 1.
                        - EX1         : External interrupt 1.
                        - ET0         : Timer 0.
                        - EX0         : External interrupt 0.


                                      - 0 = Disabled.
                                      - 1 = Enabled.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS          39
                       Interrupt Vector Addresses


                                 Source        Address
                                  IE0            03H
                                  TF0            0BH
                                  IE1            13H
                                  TF1            1BH
                                  RI&TI          23H




                        The 8051 starts execution at 0000H after Reset.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS        40
                         IP: Interrupt Priority Register

                 -----   -----   -----       PS    PT1    PX1      PT0   PX0



                            - PS         : Serial interface.
                            - PT1        : Timer 1.
                            - PX1        : External interrupt 1.
                            - PT0        : Timer 0.
                            - PX0        : External interrupt 0.


                                         -    0 = Low priority.
                                         -    1 = High priority.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS             41
                     80C51(CMOS) vs. 8051(NMOS)



                         •
                         ·Controlled Power Reduction
                            •
                            ·Idle State
                            •
                            ·Power down state
                         •
                         ·Power savings in CMOS ports
                         · General purpose software flags
                         · Higher speed versions in 80C51
                             (up to 30MHz)
                         · Static versions in development




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   42
                    PCON : Power Control Register


               SMOD     ----   ----   ----    GF1 GF0         PD   IDL




                       - POWER DOWN OPERATION
                           Setting PD bit stops oscillator.
                           RAM contents are saved.
                           Exit via Reset.
                           Some (newer) 80C51 derivatives
                           allow Power-Down wakeup via
                           Interrupt.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS       43
                    PCON : Power Control Register

             - IDLE MODE OPERATION
                 Setting IDL gates clocks off, leaves oscillator running.
                 All register and RAM contents are saved.
                 Interrupt sources remain active:
                       Serial interface.
                       External interrupts.
                       Timers.
                 Exit with any enabled interrupt or Reset.
             - GF0, GF1 are general purpose software flags.
             - SMOD serial interface control bit.
                 Doubles baud rate in modes 1,2, and 3.
             - Only SMOD available on NMOS parts.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS          44
                             Power Consumption


                         Example : for 80C51 at Vcc = 5V.


                      Mode / Freq.     0.5 MHz      16 MHz
                      Operating        2.2 mA       20.5 mA
                      Idle             0.9 mA       5.0 mA
                      Power Down       50 uA        50 uA




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   45
                             8051 Addressing Modes

There are basically 5 ways of specifying source/destination operand addresses:


1. Particular On-chip Resources:
    This includes the Accumulator (A), the Stack Pointer (SP), the Data Pointer (DP), the Program
    Counter (PC), and the Carry (C). Other On-chip Registers are Memory-mapped while these
    have special Op-codes.


2. Immediate operands:
    The # sign is the designator. These are 8-bits except for DPTR contents (16-bits).


3. Register operands:
    Designated as Rn, where n is 0..7. One of the four Register Banks is used (PSW selected).


4. Direct Operands:
    From 00 to FF Hex, specifies one of the internal data addresses.


5. Indirect Address:
    Designated as @Ri, where i is 0 or 1, uses the contents of R0 or R1 in the selected Register
    Bank to specify the address. Other form is @A, using Accumulator contents.


PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                  46
                       Instruction Set : Arithmetic
                      Mnemonics       Operands     Bytes/Cycles


                      ADD             A, Rn            1/1
                      ADDC            A, direct        2/1
                      SUBB            A, @Ri           1/1
                                      A, #data         2/1


                      INC             A                1/1
                      DEC             Rn               1/1
                                      direct           2/1
                                      @Ri              1/1


                      INC             DPTR             1/2
                      MUL             AB               1/4
                      DIV             AB               1/4
                      DA              A                1/1




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   47
                            Instruction Set : Logic
                      Mnemonic       Operands        Bytes/Cycles


                      ANL            A, Rn               1/1
                      ORL            A, direct           2/1
                      XRL            A, @Ri              1/1
                                     A, #data            2/1
                                     direct, A           2/1
                                     direct, #data       3/2
                                     C, bit              2/2
                                     C, /bit             2/2


                      CLR            A                   1/1
                      CPL            C                   1/1
                                     bit                 2/1




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   48
                      Instruction Set : Logic (cont'd)

                      Mnemonic       Operands      Bytes/Cycles


                      RL             A                1/1
                      RLC            A                1/1
                      RR             A                1/1
                      RRC            A                1/1
                      SWAP           A                1/1


                      SETB           C                1/1
                      CLR            bit
                      CPL
                                                      2/1




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   49
                     Instruction Set : Data Transfer
                      Mnemonic       Operands         Bytes/Cycles


                      MOV            A, Rn               1/1
                                     A, direct           2/1
                                     A, @Ri              1/1
                                     A, #data            2/1


                                     Rn, A               1/1
                                     Rn , direct         2/2
                                     Rn, #data           2/1


                                     direct, A           2/1
                                     direct, Rn          2/2
                                     direct, direct      3/2
                                     direct, @Ri         2/2
                                     direct, #data       3/2




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   50
                  Instruction Set : Data Transfer (cont'd)
                      Mnemonic       Operands        Bytes/Cycles


                      MOV            @Ri, A              1/1
                                     @Ri, direct         2/2
                                     @Ri, #data          2/1


                                     DPTR, #data16       3/2


                                     C, bit              2/1
                                     bit, C              2/2


                      MOVX           A,@DPTR             1/2
                                     @DPTR,A             1/2
                                     A,@Ri               1/2
                                     @Ri,A               1/2




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   51
                 Instruction Set: Data Transfer              (cont'd)


                      Mnemonic       Operands     Bytes/Cycles


                      MOVC           A, @A+DPTR       1/2
                                     A, @A+PC         1/2


                      PUSH           direct           2/2
                      POP            direct           2/2


                      XCH            A, Rn            1/1
                                     A, direct        2/1
                                     A, @Ri           1/1


                      XCHD           A, @Ri           1/1




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS      52
                       Instruction Set : Branching

                      Mnemonic       Operands     Bytes/Cycles


                      LCALL          addr16           3/2
                      ACALL          addr11           2/2
                      RET            -                1/2
                      RETI           -                1/2
                      LJMP           addr16           3/2
                      AJMP           addr11           2/2
                      SJMP           rel              2/2
                      JMP            @A+DPTR          1/2
                      JZ             rel              2/2
                      JNZ            rel              2/2




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   53
                  Instruction Set : Branching                   (cont'd)

                      Mnemonic       Operands         Bytes/Cycles


                      CJNE           A, direct, rel       3/2
                                     A, #data, rel        3/2
                                     Rn, #data, rel       3/2
                                     @Ri,#data,rel        3/2


                      DJNZ           Rn, rel              2/2
                                     direct, rel          3/2


                      NOP            -                    1/1
                      JC             rel                  2/2
                      JNC            rel                  2/2
                      JB             bit, rel             3/2
                      JNB            bit, rel             3/2
                      JBC            bit, rel             3/2




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS         54
                                 The I2 C BUS
                            (Inter - Integrated Circuit)


                · A 2 wire serial data and control bus
                · Implemented with one serial data (SDA) and one clock
                  (SCL) line.
                · Unique start and stop conditions.
                · Slave selection protocol uses a 7-Bit slave address.
                · Bi-directional data transfer.
                · Acknowledgement after each byte transferred.
                · No limit on the number of bytes transferred.
                · Real multimaster capability.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS       55
                           I2C Bus Features

               · Clock synchronization.
               · Arbitration procedure.
               · Transmission speed up to 100Khz
               · Maximum bus length of 4 meters.
               · Maximum drive capacity of 400pF.
               · Allows series resistor for IC protection.
               · Compatible with most IC technologies (TTL, CMOS,Etc.).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS        56
                           I2C Definitions


                   MASTER:
                       · Initiates a transfer by generating
                        start and stop conditions.
                       · Generates the clock.
                       · Transmits the slave address.
                       · Determines data transfer direction.


                   SLAVE:
                       · Responds only when addressed.
                       · Timing is controlled by the clock line.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   57
                          I2C Hardware Details

           · Devices connected to the bus must have an open drain or
             open collector output for serial clock and data.

           · The device must also be able to sense the logic level on these
             pins.

           · All devices must have a common reference ground.

           · The serial clock and data lines are connected to VCC through
             pull up resistors.

           · At any given moment the I2C bus is:
                 Idle,
                 in Master transmit mode,
                 or in Master receive mode.



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS            58
                           The Open Drain Configuration
                                  of I2C Circuits

                                                                     +VDD

                                      Pull-up
                                                    Rp       Rp
                                      Resistors
     SDA     Serial data line
     SCL     Serial clock line




     SCLK1                  DATA1                         SCLK2                DATA2
      OUT                    OUT                           OUT                  OUT



      SCLK                   DATA                           SCLK                DATA
       IN                     IN                             IN                  IN

                      DEVICE 1                                             DEVICE 2

                                    I2C devices are wire ANDed together.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                     59
                         Start and Stop Conditions

               · A transition of the data line, when the clock line is high, is
                   defined as either a start or a stop condition.


               · Both start and stop conditions are generated by bus master.
               · The Bus is busy after a start condition.




      SDA                                                                         SDA


       SCL   S                                                            P     SCL
            Start                                                        Stop
          Condition                                                    Condition



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                      60
                        Bit Transfer on the I2C Bus

                · In normal data transfer, the data line only changes
                    state when the clock is low.




        SDA


        SCL
                      Data line
                                      Change
                       stable:
                                      of data
                      Data valid
                                      allowed




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS      61
                               I2C Address


                · Each node has a unique 7 bit address.


                · Peripherals usually have fixed and programmable
                  address portions.


                · Addresses starting with 0000 or 1111 have special
                  functions.
                  · 0000000 is a general call address.0     · 0000001 is
                  a null address.                         · 1111xxxx is
                  reserved for future bus expansion




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS         62
                First Byte Transmitted on the I2C Bus



           MSB                                                 LSB   ACK



                                                               R/W
                        7-bit slave address


                        R/W :
                        0 - Slave will be written by master.
                        1 - Slave will be read by master.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS         63
                              Acknowledgement


                · Master/slave receivers pull data line low for one clock
                  pulse after reception of a byte.


                · Master receiver leaves data line high after receipt of
                  the last byte requested.


                · Slave receiver leaves data line high on the byte
                  following the last byte it can accept.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS          64
                             Data Transfer on the I2C Bus




      SDA
                   MSB

      SCL  S        1    2       7   8    9    1   2   3-8    9         P
         START                           ACK                 ACK       STOP
       CONDITION                                                     CONDITION




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS               65
                            Possible Data Formats

          · Master Write:

          S   SLAVE ADDRESS     W     A    DATA        A     DATA      A    P



                                              Acknowledge from slave



          · Master Read:

          S   SLAVE ADDRESS     R     A    DATA        A     DATA      NA   P



                                             Acknowledge from master


                            Acknowledge from slave          No acknowledge from master




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                       66
                         I2C Clock Synchronization


       · Clock synchronization is used to synchronize arbitrating masters.
       · It can also be used as a handshake by a slave device to slow data
            transfer from a master.


       The clock synchronization procedure consists of two algorithms:
       1) If the clockline goes low when a master is asserting a high,
          the master asserts a low and starts to time out its low clock period.

       2) When a master stops asserting a low on the clock line, it waits
         until the clockline actually goes high before starting to time the
         high period.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                67
             I2C-Bus Clock Synchronization Procedure




                                                        Start counting
                                     Wait State          high period
              CLK 1



              CLK 2

                         Start counting
                           low period
              SCL




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS       68
                           Multimaster I2C Systems


   Multimaster situations require two additional features of the I2C protocol.


   ARBITRATION:
   · Arbitration is the procedure by which competing masters decide final control of
       the bus.
   · I2C arbitration does not corrupt the data transmitted by the prevailing master.
    Arbitration is performed bit by bit until it is uniquely resolved.
   · Arbitration is lost by a master when it attempts to assert a high on the data line
       and fails..




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                        69
            Arbitration Procedure Between Two Masters


                                                   Transmitter 1 loses arbitration


      DATA1



      DATA2



      SDA



      SCL              1          2          3            4             5




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                   70
                                    I2C Family ICs


             · Microcontrollers


             · Microprocessors


             · General Purpose Peripherals
                 I/O, Memory, Display, DAC, ADC, Clock/Calendar


             · Peripherals for Specific Target Martkets
                 Audio, Telephony, Video




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   71
                                 An Open
                           Desktop Bus Standard
                                 based on
                                   I2C




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   72
                               ACCESS.bus .1

DEC has invented an interconnect method for connecting a PC or Workstation to
low speed I/O devices such as:


· Keyboards
· Mouses
· Trackballs
· Tablets
· Low speed printers
· Modems


This interconnect method, known as ACCESS.bus, is based on the I2C serial protocol
   invented by Philips.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS              73
                                 ACCESS.bus .2

ACCESS.bus features:


· 80 KBps Peak Bandwidth


· Hot plugging and unplugging of devices (keyboard, mouse, etc.)


· Up to 14 devices


· Up to 8 Meters (26.4 feet) in length

· Serial, daisy-chained 4-pin cable (2 pins are power and ground). Only ONE device
   port needed on computer.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS               74
                              ACCESS Bus .3

ACCESS.Bus features:


· Layered 3-layer protocol defined by DEC:
   · Physical layer is I2C.
   · Base Protocol over I2C defines the structure of I2C messages and defines
   Control and Status Messages. Also supports auto-addressing and hot plugging.
   · Applications Protocol defines message semantics for particular device types.


· Extremely low cost implementation based on off-the-shelf Microcontrollers with I2C
   such as the Signetics 83/87C751 (used in new DEC workstation ).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                  75
                                 ACCESS.Bus .4
 · Device address and type recognition is automatic. No drivers have to be loaded.


 · Concise protocol. Only 7 standard message types. Fully implemented in the
    87C751 with 2K of Program memory.


 · ACCESS.Bus is part of DEC's ARC and ACE platforms.


 · Fully open and free. No royalties.


 · DEC and Signetics will provide Developer's Kit with all information required to to
    develop applications.


 · DEC's TRI/ADD developer program will provide technical support, documentation
    and updates, technical seminars, and newsletters and assist with marketing
    support.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                      76
                               ACCESS.bus .5
The closest thing to the ACCESS.bus is Apple's ADB (Apple Desktop Bus). The
   following is a comparison between ADB and ACCESS.bus:


                               ADB                       ACCESS.bus
Hot-Plugging                   not recommended           fully supported


Peak data rate                 10 KBits/sec              80 KBits/sec


Daisy-chain limit              3 devices                 14 devices


3rd party access               Proprietary               Open. No royalties


Max. cable length              5 meters                  8 meters




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS            77
                  Directions from the Core Product
                             Analog-to-     Low Power
                              Digital       Low Voltage

                Very Small                                EPROM &
                Packages                                    OTP


                Extended                                   Memory
                   I/O                 80C51               2 to 32 K



                ASIC Cell                                 EEPROM
                 Library                                  derivatives

                               Speed         I2C Serial
                             Up to 30 MHz       Bus



PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS      78
                           Philips/Signetics 8051 Family

Product Name Process ROM    RAM    Pins 8-bit Ports Serial I/O Timers   Special
8031/51      NMOS     4K     128     40    4         UART        2      Industry Standard
8032/52      NMOS     8K     256     40    4         UART        3      Industry Standard
8XC751       CEPROM 2K       64      24    2+3/8     I2C         1      24 Pin Skinny DIP
8XC752       CEPROM 2K       64      28    2+5/8     I2C         1      8-bit A/D,PWM
8XC31/51     CEPROM 4K       128     40    4         UART        2      20,24, 30MHz
8XCL410      SACMOS   4K     128     40    4         I2C         2      LowVolt/Power (1.8 volts)
80/3C851     EEPROM   4K     128     40    4         UART        2      256 EEPROM
8XC550       CEPROM 4K       128     40    4         UART        2      8-bit A/D, WD
8XC451       CEPROM 4K       128     68    7         UART        2      7 I/O Ports
8XC652       CEPROM 8K       256     40    4         UART,I2C    2      8K ROM, I2C Serial Bus
8XC52        CEPROM 8K       256     40    4         UART        3      Industry Standard
8XC053/054   CEPROM 8K/16k 192       42    4          --         2      TV Display (OSD), D/A
8XC562       CEPROM 8K       256     68    6         UART        4      8-bit A/D, PWM, WD, T2
8XC552       CEPROM 8K       256     68    6         UART,I2C    4      10-bit A/D, PWM, WD, T2
8XC654       CEPROM 16K      256     40    4         UART,I2C    2      16K ROM, I2C Serial Bus
8XC524       CEPROM 16K      512     40    4         UART, I2C 3        16K, 512 bytes, WD
8XC528       CEPROM 32K      512     40    4         UART,I2C    3      32K ROM, 512 RAM, WD




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                           79
                         80C51 Coding:
                     Ideas and Examples




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   80
                         Reading a Timer "on the Fly"

        ReadTimer: MOV    ValH,TH0          ;Read initial timer high and low values.
                   MOV    ValL,TL0
                   MOV    A,TH0             ;Read timer high byte again.
                   CJNE   A,ValH,ChkHigh    ;Has it changed?
                   SJMP   RTEX              ;If not, first sample is OK.


        ChkHigh:   JB     ValL.7,RTEX       ;Otherwise, check low byte to see if it
                                            ; changed after the original high byte
                                            ; sample.
                   MOV    ValH,A            ;If it did change, use second high byte
                                            ; sample.
        RTEX:      RET




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                     81
                                              Compare

        The 80C51 has no basic compare instruction. However, the CJNE (compare and jump if not
        equal) instruction leaves the carry flag set after execution, allowing further magnitude
        comparisons to be made.


        This method works for all variations of CJNE:


                     CJNE     A,direct,rel


                     CJNE     A,#data,rel


                     CJNE     Rn,#data,rel


                     CJNE     @Ri,#data,rel




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                 82
                                           Compare
            Examples of four variations of magnitude comparison:


                         CJNE    A,Value,Test             ;Branch if A < Value.
            Test:        JC      LT


                         CJNE    A,Value,Test             ;Branch if A >= Value.
            Test:        JNC     GTE


                         CJNE    A,Value,Test             ;Branch if A > Value.
                         SJMP    Else
            Test:        JNC     GT
            Else:        -----


                         CJNE    A,Value,Test             ;Branch if A <= Value.
                         SJMP    LTE
            Test:        JNC     LTE




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                 83
                                      Read-Modify-Write
         Most instructions that reference 80C51 port data read the value on the port pins rather
         than the value in the port latch. However, some instructions read the port latch instead.

         1) Arithmetic or logical operations that may alter port values:
                        ANL       port,src
                        ORL       port,src
                        XRL       port,src
                        INC       port
                        DEC       port
                        DJNZ port,label

         3) Instructions that may alter port bits:
                        MOV     bit,C
                        JBC     bit,label
                        CPL     bit
                        CLR     bit
                        SETB bit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                   84
                    Single Step Under Program Control



        The 80C51 does not have any specific built-in facility for allowing a hardware single step
        operation. However, when a Return from Interrupt instruction is executed, at least one
        instruction from the originally interrupted routine is always executed before another
        interrupt may be serviced.
        Thus, if execution of RETIs are carefully controlled while an interrupt is pending, a
        software single step may be effected.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                   85
                       Single Step Under Program Control
  This example uses external interrupt 0 as the means to accomplish the single step. This interrupt is a
  good choice because it is the highest priority interrupt . Note: the user program must not write to the IE or
  IP registers or make use of other interrupt related functions.

  ;Set up for single step of some user routine:

  StartSS:      SETB     PX0                        ;Set INT0 as high priority.
                SETB     IT0                        ;Set INT0 to edge triggered mode.
                JNB      INT0,$                     ;Wait for a "single step" interrupt to come,
                JB       INT0,$                     ; and go.
                MOV      IE,#81h                    ;Enable INT0 and insure that we are not
                LJMP     UserProg                   ; interrupted during the following jump.

  ExInt0:        .        .                         ;Code to dump registers, user program
                 .        .                         ; address, etc.
                JNB      INT0,$                     ;Wait for a "single step" interrupt to come,
                JB       INT0,$                     ; and go.
                RETI                                ;This RETI will allow one user program instruction to
                                                    ; execute, after which we will return to the INT0 service
                                                    ; routine.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                              86
                              Pulse Width Measurement

       Problem: measure the width of an
          input pulse.


                                                  ?




                    start timer                       stop timer



       Assumption: use external interrupt 0 for          Note: to measure pulse low time in this
         the pulse input. Use timer 0 in gated             manner, the input must be inverted
         mode.                                             externally.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                 87
                              Pulse Width Measurement

          Setup:        MOV       TMOD,#09h        ;Timer 0 gate on, in mode 1.
                        MOV       TCON,#01h        ;Set INT0 to edge triggered mode.
                        MOV       TH0,#0           ;Clear timer 0 for measurement.
                        MOV       TL0,#0
                        SETB      TR0              ;Start timer in gated mode.
                        SETB      EX0              ;Enable external interrupt 0.
                        SETB      EA               ;Enable global interrupts.
                        .         .
                        .         .
                        .         .

          ;External interrupt 0 service routine.
          ExInt0:        CLR      TR0              ;Stop timer.
                         MOV      ValH,TH0         ;Save timer value.
                         MOV      ValL,TL0
                         MOV      TH0,#0           ;Clear timer 0 for measurement.
                         MOV      TL0,#0
                         SETB TR0                  ;Restart timer.
                         RETI




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                     88
                             Pulse Period Measurement

       Problem: measure the period of
          an input pulse.

                                            ?




                    start timer                   stop timer



       Assumption: use external interrupt 0 for   Note: this method may entail some loss of
         the pulse input.                           precision due to the possibility of
                                                    variable interrupt latency.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                            89
                              Pulse Period Measurement


       Setup:        (same as previous example, but leave timer gate function turned off)
                     MOV       TMOD,#01h               ;Timer 0 in mode 1.


       ;External interrupt 0 service routine.
       ExInt0:       CPL       TR0                     ;Complement the timer run flag. This starts
                                                       ; and stops the timer on alternate interrupts.
                     JB        TR0,INT0EX              ;Exit if timer is running.
                     MOV       ValH,TH0                ;Otherwise sample the timer value.
                     MOV       ValL,TL0
                     MOV       TH0,#0                  ;Clear timer so another sample can
                     MOV       TL0,#0                  ; be taken.
       INT0EX:       RETI




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                      90
                               Creating an Output Pulse

       Problem: create a pulse of known
          duration on a port pin.


                                                      timer




                                       start pulse,       stop pulse
                                          timer


    Assumption: use any spare port bit for                Note: the precision of pulses generated using
      the output.                                           this method will vary depending on the
                                                            interrupt latency of the timer interrupt.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                        91
                                   Creating an Output Pulse

    Setup:            MOV      TCON,#0h        ;Make sure timer is stopped.
                      MOV      TMOD,#01h       ;Set timer to mode 1.
                      MOV      TH0,#HiTime     ;Load timer with pulse duration. The value is the
                               MOV             TL0,#LoTime        ; two's complement of the
    number of machine                                             ; cycles to use for the pulse
    width.
                      SETB     TR0             ;Start timer.
                      SETB     P2.0            ;Start pulse (use CLR for a low going pulse).


    ;Tiimer 0 interrupt routine.
    T0INT:            CLR      P2.0            ;End of pulse (use SETB for a low going pulse).
                      CLR      TR0             ;Stop timer.
                      RETI




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                 92
                          Programming a PWM Output

       Problem: create a PWM output
          on a port pin.




                    set timer         set timer         repeat
                    low time          high time




                                                  Note: the precision of pulses generated using
                                                    this method will vary depending on the
                                                    interrupt latency of the timer interrupt.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                93
                          Programming a PWM Output

            T0INT:           CLR      TR0                    ;Stop timer.
                             CPL      P2.0                   ;Toggle output bit.
                             JB       P2.0,SetPWMHigh        ;Is current phase high or low?
                             MOV      TH0,PWMLowH            ;Set PWM low time.
                             MOV      TL0,PWMLowL
                             SJMP     T0EX


            SetPWMHigh:      MOV      TH0,PWMHighH           ;Set PWM high time.
                             MOV      TL0,PWMHighL


            T0EX:            SETB     TR0                    ;Restart timer.
                             RETI


                     Note: for higher frequency pulses, it may be possible to use the
                       timer reload feature (mode 2) to obtain more accurate pulse
                       durations.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                            94
         Block Memory Move with External Data Memory

                                                FFFF
           Problem: move any random
              external data memory block of
              any length to another location.



                                                  {
                                                  {
                                                0000




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   95
                             Block Memory Move

         BlockMove: MOV    R0,#LOW(FromAddr)     ;Initialize 'from' memory pointer.
                    MOV    P2,#HIGH(FromAddr)
                    MOV    DPTR,#ToAddr          ;Initialize 'to' memory pointer.
                    MOV    R1,#LOW(ByteCount)    ;Initialize byte count.
                    MOV    R2,#HIGH(ByteCount)

         Loop:      MOVX   A,@R0                 ;Read in a source block byte.
                    MOVX   @DPTR,A               ;Write byte out to destination block.
                    INC    DPTR                  ;Increment 'to' memory pointer.
                    INC    R0                    ;Increment 'from' memory pointer.
                    MOV    A,R0
                    JNZ    L1
                    INC    P2

         L1:        DJNZ   R1,Loop               ;Decrement byte count and
                    DJNZ   R2,Loop               ; test for end of block.
                    RET




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                       96
                Implementing a Second UART in Firmware

  Often, an application may require a second UART communication function. A simplex (transmit or
  receive only at any one time) UART can be programmed with the use of one timer.


  The transmit routine will simply start the timer, create a start bit, and then send one bit at every timer
  interrupt, until finally sending the stop bit. The transmit bit may be any unused port bit.


  Since the receive routine must sample each bit somewhere in the middle of the bit cell, it starts the timer
  with a value of a half bit cell when a start is detected. Then, on the first timer interrupt, it verifies the
  presence of the start bit and changes the timer count to one full bit cell. On every subsequent timer
  interrupt, one data bit is read, until finally the stop bit is verified. The receive bit must be an external
  interrupt pin (usually INT0 or INT1).




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                                97
                        UART Flow: Start Transmit


                                      Start Transmit




                              Set up timer for one bit cell time.



                                 Get byte to be transmitted
                                     and set bit count.



                                       Send start bit.




                                            Exit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   98
                        UART Flow: Start Receive

                                     Start Receive
                                  (START bit Interrupt)



                                      Set bit count.



                                 Set up timer for one half
                                       bit cell time.




                                          Exit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   99
                       UART Flow: Timer Interrupt


                             Timer Interrupt




                           Advance bit count.



                                           Y
                               Receive?         Receive One Bit


                               N

                            Transmit One Bit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   100
                      UART Flow: Transmit One Bit

                              Transmit One Bit



                                             Y
                                  Done?              Send STOP bit.

                                   N

                          Rotate transmit byte and
                            send next data bit.




                                   Exit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS    101
                          UART Flow: Receive One Bit

                Receive One Bit



                                 N                       Y           Look for STOP
                    First bit?                Done?
                                                                (set error flag and abort
                                                                      if not found).
                      Y                        N
             Change timer setting to
              one full bit cell time.


                Look for START          Get next data bit and
            (set error flag and abort   rotate into received
                  if not found).                byte.




                                                Exit




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                          102
            80C51 Development Support




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   103
       Signetics/Ceibo 80C51 Family Development Board

         · Supports 80C51 derivative microcontrollers that have external program memory access
            and serial port.
         · Connects to an MS-DOS compatible PC via serial port (PC runs user interface software).
         · Line assembler and disassembler.
         · Register and memory contents may be viewed and altered.
         · Source, memory, register windows.
         · 32K user program memory on board.
         · Software breakpoints.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                  104
               80C51 Family Development Board (continued)


           · Help screens.
           · Symbolic debugger.
           · Upload and download of object and hex files.
           · Fully documented. User's manual includes experiments for learning the development
              board and the 80C51 architecture.
           · Switches, LEDs, and a potentiometer are included to allow simple experiments to be
              performed without additional circuitry.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                105
                       Supported Microcontrollers

                         Type 1 (full support via RS-232 to PC)


                         · 8031/51                    · 8xC550
                         · 8032/52                    · 8xC552
                         · 8xC31/51                   · 8xC528
                         · 8xC32/52                   · 8xC652/654
                         · 8xC451                     · 8xC851




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS   106
                     Supported Microcontrollers (continued)

             Type 2 (limited support via I2C bus to type 1 device and PC)


                                              · 8xC410
                                              · 8xC751
                                              · 8xC752



         The 8xC751 and 8xC752 have no external program memory capability and do not
           support user program loading on the DB-51.


         The 8xC410 does not have an on-chip UART and must be communicated with via its I2C
           port. The current version of the DB-51 does not support user program loading on the
           8xC410.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                               107
                       Demo Board Block Diagram


                          MS -DOS                        PC S oftware
                         Compatible                     (user interface)
                            PC




                                                                      Emulation
                     RS -232             Type 1                        Memory
                     Interface        Microcontroller                  32K x 8


                                                                       Monitor
                                               I2C                     EPROM
                                               bus
                                         Type 2
                                      Microcontroller




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                108
                             Uses for the Demo Board


            · Training vehicle for 80C51 product seminars.

            · Self training and experimentation system for customers, FAEs, sales, factory, etc.

            · Basis for product demonstrations to customers.

            · Low cost development support, allows limited hardware and software prototyping.




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS                                 109
                                          Emulators

               Nohau Corp.                    BSO/Tasking
               51 E. Campbell Ave.            128 Technology Center
               Campbell, CA 95008             P.O.Box 9164
               (408) 866-1820                 Waltham, MA 02254-9164
                                              (617) 894-7800
               MetaLink Corp.
               325 E. Elliot Road, Suite 23   Signum Systems
               Chandler, AZ 85225             171 E. Thousand Oaks Blvd., #202
               (602) 926-0797                 Thousand Oaks, CA 91360
                                              (805) 371-4608
               Ceibo Ltd.
               105 Gleason Rd.                And others...
               Lexington, MA 02173
               (617) 863-9927




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS               110
            List of Programmer Manufacturer Contacts

                  Data I/O Corporation             Ceibo Ltd.
                  10525 Willows Rd. N.E.           105 Gleason Rd.
                  P.O. Box 97046                   Lexington, MA 02173
                  Redmond, WA 98073-9746           (617) 863-9927
                  (206) 867-6899


                  Logical Devices, Inc.            North Valley Designs
                  1201 Northwest 65th Place        1610B Dell Avenue
                  Ft. Lauderdale, FL 33309         Campbell, CA 95008
                  (305) 974-0967                   (408) 866-4300


                  Signetics Co.                    Needham's Electronics
                  (contact nearest sales office)   4535 Orange Grove Ave.
                                                   Sacramento, CA 95841
                  And many others...               (916) 924-8037




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS          111
                          8051 Cross Assemblers


                        Metalink
                            · macro cross assembler ASM51
                            · Public Domain! Free on the Signetics BBS


                        2500 AD software
                            · Macro assembler
                            · Cross assembler
                            · Simulator / debugger


                        And a host of others...




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS       112
                                   8051 C Compilers
             Archimedes Software, Inc.          2500 AD Software, Inc.
                2159 Union Street               109 Brookdale Avenue
                San Francisco, CA 94123-9923    P.O. Box 480
                (415) 567-4010                  Buena Vista, CO 81211
                                                (800) 843-8144
             Avocet Systems, Inc.
                120 Union Street                Franklin Software, Inc.
                P.O. Box 490 BP                 888 Saratoga Ave., #2
                Rockport, Maine 04856           San Jose, CA 95129
                (800) 448-8500                  (408) 296-8051


             BSO/Tasking                        And others...
                128 Technology Center
                PO Box 9164
                Waltham, MA 02254-9164
                (617) 894-7800




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS        113
                      Microcontroller Support BBS


                    · Support for Philips/Signetics PLDs and Microcontrollers


                    · Modem 300/1200/2400 baud, 8-N-1


                    · Download software:
                        - Public Domain 80C51 support tools
                        - Demonstration code


                    · Send messages to Signetics applications engineers


                                    (800) 451-6644
                                           or
                                    (408) 991-2406




PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS              114

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:8
posted:7/28/2011
language:English
pages:114
Description: Sample 0F Form 4010 document sample