Professional Documents
Culture Documents
2
Different aspects of a microprocessor/controller
3
The necessary tools for a microprocessor/controller
4
Microprocessors:
General-purpose microprocessor
• CPU for Computers
• No RAM, ROM, I/O on CPU chip itself
• Example:Intel’s x86, Motorola’s 680x0
5
Microcontroller :
• A smaller computer
• On-chip RAM, ROM, I/O ports...
• Example:Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 16X
6
Microprocessor vs. Microcontroller
Microprocessor Microcontroller
• CPU is stand-alone, RAM,
• CPU, RAM, ROM, I/O and
ROM, I/O, timer are separate
timer are all on a single chip
• designer can decide on the
amount of ROM, RAM and I/O • fix amount of on-chip ROM,
ports. RAM, I/O ports
• expansive • for applications in which cost,
• versatility power and space are critical
• general-purpose • single-purpose
7
Embedded System
8
Three criteria in Choosing a Microcontroller
1. meeting the computing needs of the task efficiently and cost effectively
• speed, the amount of ROM and RAM, the number of I/O ports and
timers, size, packaging, power consumption
• easy to upgrade
• cost per unit
2. availability of software development tools
• assemblers, debuggers, C compilers, emulator, simulator, technical
support
3. wide availability and reliable sources of the microcontrollers.
9
Block Diagram
External interrupts
On-chip Timer/Counter
CPU
Bus Serial
4 I/O Ports
OSC Control Port
P0 P1 P2 P3 TxD RxD
Address/Data
10
11
Pin Description of the 8051
P1.0 1 40 Vcc
P1.1 2 39 P0.0(AD0)
P1.2 3 38 P0.1(AD1)
P1.3
P1.4
4
5
8051 37
36
P0.2(AD2)
P0.3(AD3)
P1.5 6 (8031) 35 P0.4(AD4)
P1.6 7 34 P0.5(AD5)
P1.7 8 33 P0.6(AD6)
RST 9 32 P0.7(AD7)
(RXD)P3.0 10 31 EA/VPP
(TXD)P3.1 11 30 ALE/PROG
(INT0)P3.2 12 29 PSEN
(INT1)P3.3 13 28 P2.7(A15)
(T0)P3.4 14 27 P2.6(A14)
(T1)P3.5 15 26 P2.5(A13)
(WR)P3.6 16 25 P2.4(A12)
(RD)P3.7 17 24 P2.3(A11)
XTAL2 18 23 P2.2(A10)
XTAL1 19 22 P2.1(A9)
GND 20 21 P2.0(A8) ⌦
12
Packing Types of 8051
13
8051 Pin Diagram
PDIP/Cerdip
P1.0 1 40 Vcc
P1.1 2 39 P0.0(AD0)
P1.2 3 38 P0.1(AD1)
P1.3 4
8051 37 P0.2(AD2)
P0.3(AD3)
P1.4 5 36
P1.5 6 (8031) 35 P0.4(AD4)
P1.6 7 34 P0.5(AD5)
P1.7 8 33 P0.6(AD6)
RST 9 32 P0.7(AD7)
(RXD)P3.0 10 31 EA/VPP
(TXD)P3.1 11 30 ALE/PROG
(INT0)P3.2 12 29 PSEN
(INT1)P3.3 13 28 P2.7(A15)
(T0)P3.4 14 27 P2.6(A14)
(T1)P3.5 15 26 P2.5(A13)
(WR)P3.6 16 25 P2.4(A12)
(RD)P3.7 17 24 P2.3(A11)
XTAL2 18 23 P2.2(A10)
XTAL1 19 22 P2.1(A9)
GND 20 21 P2.0(A8) 14
Pins of 8051(1/4)
• Vcc(pin 40):
– Vcc provides supply voltage to the chip.
– The voltage source is +5V.
• GND(pin 20):ground
• XTAL1 and XTAL2(pins 19,18):
– These 2 pins provide external clock.
– Way 1:using a quartz crystal oscillator
– Way 2:using a TTL oscillator
– Example 4-1 shows the relationship between XTAL and
the machine cycle.
15
Pins of 8051(2/4)
• RST(pin 9):reset
– It is an input pin and is active high(normally low).
• The high pulse must be high at least 2 machine cycles.
– It is a power-on reset.
• Upon applying a high pulse to RST, the microcontroller will reset
and all values in registers will be lost.
• Reset values of some 8051 registers
– Way 1:Power-on reset circuit
– Way 2:Power-on reset with debounce
16
Pins of 8051(3/4)
18
Figure 4-2 (a). XTAL Connection to 8051
C1
XTAL1
30pF
GND
⌦ 19
Figure 4-2 (b). XTAL Connection to an
External Clock Source
• Using a TTL oscillator
• XTAL2 is unconnected.
NC XTAL2
EXTERNAL
OSCILLATOR XTAL1
SIGNAL
GND
⌦ 20
Example 4-1
Find the machine cycle for
(a) XTAL = 11.0592 MHz
(b) XTAL = 16 MHz.
Solution:
⌦ 21
Table 4-1: RESET Value of Some 8051
Registers
10 uF 31
EA/VPP
30 pF X1
19
11.0592 MHz
8.2 K
X2
18
30 pF
9 RST
⌦ 23
Figure 4-3 (b). Power-On RESET with
Debounce
Vcc
31
EA/VPP
X1
10 uF 30 pF
X2
RST
9
8.2 K
⌦ 24
Pins of I/O Port
26
A Pin of Port 1
TB1
Read pin ⌦P0.x
8051 IC 27
Hardware Structure of I/O Pin
Output Input
Tri-state control
(active high)
L L H H Low
H H Highimpedance
(open-circuit)
⌦ 29
Writing “1” to Output Pin P1.X
TB1
Read pin
8051 IC 30
Writing “0” to Output Pin P1.X
TB1
Read pin
8051 IC 31
Port 1 as Output(Write to a Port)
32
Reading Input v.s. Port Latch
S S ti 83
Figure C-11. Reading “High” at Input Pin
Clk Q 0 M1
Write to latch
TB1
Read pin
3. Read pin=1
Read latch=0 8051 IC
Write to latch=1 34
Figure C-12. Reading “Low” at Input Pin
Clk Q 0 M1
Write to latch
TB1
Read pin
3. Read pin=1
Read latch=0 8051 IC
Write to latch=1 35
Port 1 as Input(Read from Port)
36
Table 8-4: Instructions For Reading an Input
Port
• Following are instructions for reading external pins of
ports:
8051 IC 38
Reading Latch
• Read-modify-write Instructions
– Table C-6
• This features combines 3 actions in a single
instruction:
1. CPU reads the latch of the port
2. CPU perform the operation
3. Modifying the latch
4. Writing to the pin
– Note that 8 pins of P1 work independently.
40
Port 1 as Input(Read from latch)
43
Other Pins
44
A Pin of Port 0
Read latch
TB2
TB1
Read pin ⌦P1.x
8051 IC 45
Port 0(pins 32-39)
• P0 is an open drain.
– Open drain is a term used for MOS chips in the same way
that open collector is used for TTL chips.
• When P0 is used for simple data I/O we must connect
it to external pull-up resistors.
– Each pin of P0 must be connected externally to a 10K ohm
pull-up resistor.
– With external pull-up resistors connected upon reset, port 0
is configured as an output port.
46
Figure 4-4. Port 0 with Pull-Up Resistors
Vcc
10 K
P0.0
DS5000 P0.1
Port
P0.2
8751 P0.3
8951 P0.4 0
P0.5
P0.6
P0.7
47
Dual Role of Port 0
PSEN OE
ALE 74LS373 OC
G
P0.0 A0
D
P0.7 A7
D0
D7
EA
P2.0 A8
P2.7 A15
8051 ROM 49
Reading ROM (1/2)
2. 74373 latches
1. Send address
the address and
to ROM
PSEN send to ROM OE
ALE 74LS373 OC
G
P0.0 A0
D
P0.7 Address A7
D0
D7
EA
P2.0 A8
P2.7 A12
8051 ROM 50
Reading ROM (2/2)
2. 74373 latches
the address and
PSEN send to ROM OE
ALE 74LS373 OC
G
P0.0 A0
D
P0.7 Address A7
D0
D7
EA 3. ROM send the
instruction back
P2.0 A8
P2.7 A12
8051 ROM 51
ALE Pin
52
Port 2(pins 21-28)
53
Port 3(pins 10-17)
P3.0 RxD 10
P3.1 TxD 11
P3.2 INT0 12
P3.3 INT1 13
P3.4 T0 14
P3.5 T1 15
P3.6 WR 16
P3.7 RD 17
55
I/O Programming; Bit Manipulation
56
I/O Programming
57
Way 1
58
Way 2
59
Way 3
• Read-modify-write feature:
MOV P1,#55H ;P1=01010101B
AGAIN: XRL P1,#0FFH
ACALL DELAY
SJMP AGAIN
– The instruction XRL P1,#0FFH do EX-OR P1 and FFH
(That is, to toggle P1.)
60
Bit Manipulation
61
Table 4-3: Single-Bit Addressability of Ports
P0 P1 P2 P3 Port Bit
P0.0 P1.0 P2.0 P3.0 D0
P0.1 P1.1 P2.1 P3.1 D1
P0.2 P1.2 P2.2 P3.2 D2
P0.3 P1.3 P2.3 P3.3 D3
P0.4 P1.4 P2.4 P3.4 D4
P0.5 P1.5 P2.5 P3.5 D5
P0.6 P1.6 P2.6 P3.6 D6
P0.7 P1.7 P2.7 P3.7 D7
⌦ 62
Example 4-2
Write a program to perform the following.
(a) Keep monitoring the P1.2 bit until it becomes high,
(b) When P1.2 becomes high, write value 45H to port 0, and
(c) Send a high-to-low (H-to-L) pulse to P2.3.
Solution:
SETB P1.2 ;make P1.2 an input
MOV A,#45H ;A=45H
AGAIN:JNB P1.2,AGAIN;get out when P.2=1
MOV P0,A ;issue A to P0
SETB P2.3 ;make P2.3 high
CLR P2.3 ;make P2.3 low for H-to-L
Note:
1. JNB: jump if no bit(jump if P1.2 = 0 )
2. a H-to-L pulse by the sequence of instructions SETB and CLR.
63