You are on page 1of 114

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

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

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

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

8051 Logic Symbol


VSS XTAL1 VCC RST P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

XTAL2

P O R T 0

ADDRESS AND DATA BUS

EA PSEN ALE

P O R T 1

SECONDARY FUNCTIONS

RxD TxD INT0 INT1 T0 T1 WR RD

P O R T 3

P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0

P O R T 2

ADDRESS BUS

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

80C51 Block Diagram


External Interrupts

Interrupt Control

4k byte ROM

128 byte RAM

Timer 1 Timer 0

Counter Inputs

CPU

OSC

Bus Control

I/O Ports

Serial Port

TXD RXD

P0 P2
(Address/Data)

P1

P3

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

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

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

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

Internal Data Memory


7F 30 2F 20 1F 20 17 18 0F 08

END 8051 RAM FF . . . . . . . . . F8 07 . . . . . . . . . 00 REGISTER BANK 3 REGISTER BANK 2 REGISTER BANK 1

BIT ADDRESSABLE

07 R7

R6 R5 R4 R3 R2 R1
00 R0

REGISTER BANK 0

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 PORT 0 ALE P3.7 P3.6 PSEN A15 - A8: High byte of address AD7 - AD0: Data and low byte address ALE: Address latch enable RD: Read strobe WR: Write strobe 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 Data sampled

PCL out Data sampled PCH out PCH out

PCL out Data sampled

P2

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

13

External Program Memory

8051 PORT2 ALE AD7 - AD0 PORT0 A15 - A8 ROM(S) ADDRESS LATCH A7 - A0 D7 - D0 PSEN ADDRESS INPUTS DATA OUTPUTS 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.

8051 PORT 2 ALE PORT 0

RAM(S) or I/O DECODE CE ADDRESS INPUTS DATA OUTPUTS R/W OE

ADDRESS LATCH

WR RD

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
10uF RST 8.2K 2.2uF

80C51
RST

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 E8 E0 D8 D0 C8 C0 B8 B0 A8 A0 98 90 88 80 IP P3 IE P2 SCON P1 TCON P0 TMOD TL0 SP DPH TL1 DPL TH0 TH1 PCON SBUF PSW ACC B

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

18

Special Function Registers


CPU registers: - ACC -B - PSW - SP - DPTR Interrupt control: -IE -IP I/O Ports: - P0 - P1 - P2 - P3 : Accumulator. : B register. : Program Status Word. : Stack Pointer. : Data Pointer (DPH, DPL).

: Interrupt Enable. : Interrupt Priority.

: Port 0. : Port 1. : Port 2. : Port 3.

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

19

Special Function Registers (cont'd)


TImers: - TMOD - TCON - TH0 - TL0 - TH1 - TL1 Serial I/O: - SCON - SBUF Other: - PCON : Power control & misc. : Serial port control. : Serial data registers. : Timer mode. : Timer control. : Timer 0 high byte. : Timer 0 low byte. : Timer 1 high byte. : Timer 1 low byte.

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

20

PSW : Program Status Word


CY AC
- CY

F0

RS1
: Carry Flag.

RS0

OV

----

- 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 0 0 1 1

RSO 0 1 0 1

Register Bank 0 1 2 3

Address 00h - 07h 08h - 0Fh 10h - 17h 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
2 OSC. PERIODS VC C VC C VC C

P1

P2

P3 PORT PIN

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 Timer clocks Interrupts Data memory - TXD, RXD - T0, T1 - INT0, INT1 - 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)


O sc. 12

Int errupt TL1 TH1 T1 (Pi n) TR1 G at e


8- bits 8- bits

TF1

Cont rol

INT1 (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 Timer 1 M0 GATE C/T M1 Timer 0 M0

- 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. run, reset to hold. Set to

- 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 - ES - ET1 - EX1 - ET0 - EX0

: Global interrupt enable. : Serial interface. : Timer 1. : External interrupt 1. : Timer 0. : External interrupt 0. - 0 = Disabled. - 1 = Enabled.

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

39

Interrupt Vector Addresses


Source IE0 TF0 IE1 TF1 RI&TI Address 03H 0BH 13H 1BH 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 - PT1 - PX1 - PT0 - PX0

: Serial interface. : Timer 1. : External interrupt 1. : Timer 0. : 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. Operating Idle Power Down 0.5 MHz 2.2 mA 0.9 mA 50 uA 16 MHz 20.5 mA 5.0 mA 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 ADD ADDC SUBB Operands A, Rn A, direct A, @Ri A, #data INC DEC A Rn direct @Ri INC MUL DIV DA DPTR AB AB A Bytes/Cycles 1/1 2/1 1/1 2/1 1/1 1/1 2/1 1/1 1/2 1/4 1/4 1/1

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

47

Instruction Set : Logic


Mnemonic ANL ORL XRL Operands A, Rn A, direct A, @Ri A, #data direct, A direct, #data C, bit C, /bit CLR CPL A C bit Bytes/Cycles 1/1 2/1 1/1 2/1 2/1 3/2 2/2 2/2 1/1 1/1 2/1

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

48

Instruction Set : Logic (cont'd)


Mnemonic RL RLC RR RRC SWAP SETB CLR CPL 2/1 Operands A A A A A C bit Bytes/Cycles 1/1 1/1 1/1 1/1 1/1 1/1

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

49

Instruction Set : Data Transfer


Mnemonic MOV Operands A, Rn A, direct A, @Ri A, #data Rn, A Rn , direct Rn, #data direct, A direct, Rn direct, direct direct, @Ri direct, #data Bytes/Cycles 1/1 2/1 1/1 2/1 1/1 2/2 2/1 2/1 2/2 3/2 2/2 3/2

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

50

Instruction Set : Data Transfer (cont'd)


Mnemonic MOV Operands @Ri, A @Ri, direct @Ri, #data DPTR, #data16 C, bit bit, C MOVX A,@DPTR @DPTR,A A,@Ri @Ri,A Bytes/Cycles 1/1 2/2 2/1 3/2 2/1 2/2 1/2 1/2 1/2 1/2

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

51

Instruction Set: Data Transfer


Mnemonic MOVC Operands A, @A+DPTR A, @A+PC PUSH POP XCH direct direct A, Rn A, direct A, @Ri XCHD A, @Ri

(cont'd)

Bytes/Cycles 1/2 1/2 2/2 2/2 1/1 2/1 1/1 1/1

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

52

Instruction Set : Branching


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

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

53

Instruction Set : Branching


Mnemonic CJNE Operands A, direct, rel A, #data, rel Rn, #data, rel @Ri,#data,rel DJNZ Rn, rel direct, rel NOP JC JNC JB JNB JBC rel rel bit, rel bit, rel bit, rel

(cont'd)

Bytes/Cycles 3/2 3/2 3/2 3/2 2/2 3/2 1/1 2/2 2/2 3/2 3/2 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 Resistors SDA SCL Serial data line Serial clock line Rp Rp

SCLK1 OUT

DATA1 OUT

SCLK2 OUT

DATA2 OUT

SCLK IN

DATA IN

SCLK IN

DATA IN

DEVICE 1 I2C devices are wire ANDed together.

DEVICE 2

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 SCL

SDA SCL P Stop Condition

S Start 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 stable: Data valid

Change of data 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 a null address. reserved for future bus expansion 0000001 is 1111xxxx is

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 START CONDITION 1 2 7 8 9 ACK 1 2 3-8 9 ACK P STOP 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

Wait State CLK 1

Start counting high period

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

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 Hot-Plugging Peak data rate Daisy-chain limit 3rd party access Max. cable length not recommended 10 KBits/sec 3 devices Proprietary 5 meters ACCESS.bus fully supported 80 KBits/sec 14 devices Open. No royalties 8 meters

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

77

Directions from the Core Product


Analog-toDigital Very Small Packages Low Power Low Voltage EPROM & OTP

Extended I/O

80C51

Memory 2 to 32 K

ASIC Cell Library Speed


Up to 30 MHz

EEPROM derivatives I2C Serial Bus

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

78

Philips/Signetics 8051 Family


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

CEPROM 2K CEPROM 2K CEPROM 4K SACMOS EEPROM 4K 4K

CEPROM 4K CEPROM 4K CEPROM 8K CEPROM 8K CEPROM 8K CEPROM 8K CEPROM 16K CEPROM 16K CEPROM 32K

CEPROM 8K/16k 192

UART, I2C 3

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 MOV MOV CJNE SJMP ChkHigh: JB ValH,TH0 ValL,TL0 A,TH0 A,ValH,ChkHigh RTEX ValL.7,RTEX ;Read timer high byte again. ;Has it changed? ;If not, first sample is OK. ;Otherwise, check low byte to see if it ; changed after the original high byte ; sample. MOV RTEX: RET ValH,A ;If it did change, use second high byte ; sample. ;Read initial timer high and low values.

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 CJNE CJNE CJNE A,direct,rel A,#data,rel Rn,#data,rel @Ri,#data,rel

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

82

Compare
Examples of four variations of magnitude comparison: CJNE Test: JC CJNE Test: JNC CJNE SJMP Test: Else: JNC ----CJNE SJMP Test: JNC A,Value,Test LTE LTE ;Branch if A <= Value. A,Value,Test LT A,Value,Test GTE A,Value,Test Else GT ;Branch if A > Value. ;Branch if A >= Value. ;Branch if A < Value.

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 SETB JNB JB MOV LJMP . . JNB JB RETI PX0 IT0 INT0,$ INT0,$ IE,#81h UserProg . . INT0,$ INT0,$ ;Set INT0 as high priority. ;Set INT0 to edge triggered mode. ;Wait for a "single step" interrupt to come, ; and go. ;Enable INT0 and insure that we are not ; interrupted during the following jump. ;Code to dump registers, user program ; address, etc. ;Wait for a "single step" interrupt to come, ; and go. ;This RETI will allow one user program instruction to ; execute, after which we will return to the INT0 service ; routine.

ExInt0:

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 the pulse input. Use timer 0 in gated mode.

Note: to measure pulse low time in this manner, the input must be inverted externally.

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

87

Pulse Width Measurement


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

;External interrupt 0 service routine. ExInt0: CLR TR0 MOV ValH,TH0 MOV ValL,TL0 MOV TH0,#0 MOV TL0,#0 SETB TR0 RETI

;Stop timer. ;Save timer value. ;Clear timer 0 for measurement. ;Restart timer.

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 the pulse input.

Note: this method may entail some loss of 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 JB MOV MOV MOV MOV INT0EX: RETI TR0 TR0,INT0EX ValH,TH0 ValL,TL0 TH0,#0 TL0,#0 ;Clear timer so another sample can ; be taken. ;Complement the timer run flag. This starts ; and stops the timer on alternate interrupts. ;Exit if timer is running. ;Otherwise sample the timer value.

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, timer

stop pulse

Assumption: use any spare port bit for the output.

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

91

Creating an Output Pulse


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

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

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

92

Programming a PWM Output


Problem: create a PWM output on a port pin.

set timer low time

set timer high time

repeat

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 CPL JB MOV MOV SJMP SetPWMHigh: MOV MOV T0EX: SETB RETI TR0 P2.0 P2.0,SetPWMHigh TH0,PWMLowH TL0,PWMLowL T0EX TH0,PWMHighH TL0,PWMHighL TR0 ;Restart timer. ;Set PWM high time. ;Stop timer. ;Toggle output bit. ;Is current phase high or low? ;Set PWM low time.

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


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

{ {
0000

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

95

Block Memory Move


BlockMove: MOV MOV MOV MOV MOV Loop: MOVX MOVX INC INC MOV JNZ INC DJNZ DJNZ RET R0,#LOW(FromAddr) P2,#HIGH(FromAddr) DPTR,#ToAddr R1,#LOW(ByteCount) R2,#HIGH(ByteCount) A,@R0 @DPTR,A DPTR R0 A,R0 L1 P2 R1,Loop R2,Loop ;Initialize 'from' memory pointer. ;Initialize 'to' memory pointer. ;Initialize byte count.

;Read in a source block byte. ;Write byte out to destination block. ;Increment 'to' memory pointer. ;Increment 'from' memory pointer.

L1:

;Decrement byte count and ; test for end of block.

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.

Receive?

Receive One Bit

N Transmit One Bit

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

100

UART Flow: Transmit One Bit


Transmit One Bit

Done? N

Y Send STOP bit.

Rotate transmit byte and send next data bit.

Exit

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

101

UART Flow: Receive One Bit


Receive One Bit

First bit? Y

Done? N

Look for STOP (set error flag and abort if not found).

Change timer setting to one full bit cell time.

Look for START (set error flag and abort if not found).

Get next data bit and rotate into received 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 8032/52 8xC31/51 8xC32/52 8xC451 8xC550 8xC552 8xC528 8xC652/654 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 Compatible PC

PC Software (user interface)

RS-232 Interface

Type 1 Microcontroller

Emulation Memory 32K x 8 Monitor EPROM

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

PHILIPS SEMICONDUCTORS - SIGNETICS. MICROCONTROLLER TRAINING FOILS

110

List of Programmer Manufacturer Contacts


Data I/O Corporation 10525 Willows Rd. N.E. P.O. Box 97046 Redmond, WA 98073-9746 (206) 867-6899 Logical Devices, Inc. 1201 Northwest 65th Place Ft. Lauderdale, FL 33309 (305) 974-0967 Signetics Co. (contact nearest sales office) And many others... North Valley Designs 1610B Dell Avenue Campbell, CA 95008 (408) 866-4300 Needham's Electronics 4535 Orange Grove Ave. Sacramento, CA 95841 (916) 924-8037 Ceibo Ltd. 105 Gleason Rd. Lexington, MA 02173 (617) 863-9927

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. 2159 Union Street San Francisco, CA 94123-9923 (415) 567-4010 Avocet Systems, Inc. 120 Union Street P.O. Box 490 BP Rockport, Maine 04856 (800) 448-8500 BSO/Tasking 128 Technology Center PO Box 9164 Waltham, MA 02254-9164 (617) 894-7800 Franklin Software, Inc. 888 Saratoga Ave., #2 San Jose, CA 95129 (408) 296-8051 And others... 2500 AD Software, Inc. 109 Brookdale Avenue P.O. Box 480 Buena Vista, CO 81211 (800) 843-8144

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

You might also like