8051 interfacings presentation from basics to hobby robot by embeddedmarket.com
DESCRIPTION
An in depth presentation made by Pratik Deshpande, founder of Embeddedmarket.com. He has used this presentation along with his decade plus experience of teaching to mass audience and corporate software companies.TRANSCRIPT
www.EmbeddedMarket.com
www.EmbeddedMarket.com
Robot Controls using 8051Presented by: Pratik Deshpande
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mWorkshop Objective
Understand the real world development using Microcontrollers
Explore the features of microcontroller and use them in real life applications
Use 89V51RD2 microcontroller to control a Hobby Robot
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mDetails of Workshop
Your Basic Preparation
Interface 8051 with various circuits
Use built-in features of 8051
Apply above said learning to control a hobby robot
This workshop is to learn the control techniques. Mechanical aspects will not be discussed.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mMicrocontroller & Computer
Basic Parts of a Computer
Processor
Hard disk
RAM
Monitor
Keyboard
Mouse
Ports
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mMicrocontroller & Digital Circuits
Microcontroller has built in
Processor
Memory to Store Program
Memory to Store Data
Ports for Input & Outputs
Flexible
Multipurpose
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mWhy to use a Microcontroller?
Why use Microcontroller instead of PC?
Why use Microcontroller instead of Digital Circuits?
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mProducts using Microcontroller
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mEmbedded Vs IT Sector
Microcontroller is entry point to the Embedded Development
Embedded is Hardware + Software
IT is Software only
Recent Global Economic downturn has less effect on Embedded Related companies
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
You should know:
Internals of microcontrollers
Writing programs to create application
Programming languages
Bits , Bytes and Address
Binary, Decimal & Hexadecimal Numbers
Details of Interface (Input / Output circuits)
Built-in Features of Microcontroller
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
8051 Microcontroller
AT89S51
AT89S52
P89V51RD2
Differs in
Program memory Size
Data Memory Size
Certain built-in features
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Internals of 89V51RD2
8 Bit processor
64 KB Flash (Memory to store program)
1 KB RAM (Memory to store data)
Special Function Registers (SFR – Used
for Configuration of Built-in Features)
32 I/O Lines
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Writing programs to create application Assign value to a Port
Read value from a Port
Process input values
Configure, Enable & disable
Built-in Features
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Programming languages For Microcontrollers Human readable programming language
• Assembly Language
• C Language
• Basic Language
Machine Code
• Hex File
Start:
JB P2.0,Start
JB P1.0,MakeItON
SETB P1.0
:1000000020A0FD209004D2908002C290
30A0FD80FC
:01001000EF00
:00000001FF
Assembler Software
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Copy Hex File to Microcontroller
HEX
File
Programmer
Device
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Bits , Bytes and Address
1 0 1 0 1 0 1 0
0th Bit7th Bit
MSB LSB
1 Byte
Value
Binary = 10101010b
Decimal = 170d
Hexadecimal = AAh
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Bits , Bytes and Address
22d
22h
10111001b
25d
122d
220d
2Ah
02d
128 Byte RAM
00h
01h
02h
03h
04h
05h
06h
07h
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Details of Interface (Input / Output circuits)
LED Interfacing
Seven Segment Interfacing
Reading Input from Switch
Display text to LCD
Drive DC Motor using L293D
Drive Stepper Motor using ULN2803
Driver Relay using ULN2803
Send text to PC using RS232 Serial Communication
Transmit Infrared
Receive Infrared Signal
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Built-in Features of Microcontroller
Timer
Counter
Serial Communication
Interrupts
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLet’s get prepared
Flash memory & Data memory
Program is written in Assembly Language
“Assembler software” converts it to HEX
file
Hex File is downloaded to Microcontroller
via “Programming Device”
Hex File is Stored in Microcontroller’s
“Flash memory”
Variables used by this program are stored
in Microcontroller’s Data memory (RAM)
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mTime to See a Demo
Running LEDs
Seven Segment Display showing Numbers 0 to 9
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAre you prepared now?
By now you know
Difference between microcontroller, PC and digital
circuit
Internals of microcontrollers
Writing programs to create application
Programming languages
Bits , Bytes and Address
Binary, Decimal & Hexadecimal Numbers
Details of Interface (Input / Output circuits)
Built-in Features of Microcontroller
You have seen one demo
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m?
Are you prepared to learn “How to write a program in Assembly Language?”
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
We will learn (Limited Scope to fit available time)
Assigning Byte values
Assigning Bit values
Logical Operations on Bytes
Logical Operations on Bits
Rotate Values
Increment & Decrement Values
Direct Jumps
Conditional Jumps For Bytes
Calls
Conditional Jumps For Bits
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Assigning & Copy Byte values
MOV R0, #55h
MOV A, R0
MOV A, #55h
MOV 90h, A
MOV 90h, #33h
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Assigning Bit values
SETB 00h
CLR 00h
CPL 00h
Copy Bit values
MOV C, 00h
MOV 00h, C
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Logical operations on Byte
ANL A, R0
ANL A, 90h
ANL A, #55h
ANL 90h, A
ANL 90h, #55h
Same format applies for
ORL
XRL
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Logical Operations on Bits
ANL C, 00h
ORL C, 00h
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Rotate Values
RL A
RR A
1 0 1 0 1 1 0 0
1 0 1 0 1 1 0 0
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Increment & Decrement values
INC A
INC R0
INC 00h
DEC A
DEC R0
DEC 00h
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mAssembly Language
Following types of commands will be covered during further demos
Direct Jumps
Conditional Jumps For Bytes
Calls
Conditional Jumps For Bits
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mWhy 89V51RD2?
Reasons for selecting 89V51RD2
8051 compatible
No expensive programmer device required
Big Flash memory size to store large
program hex
Easily available
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mFree Gift & Purchase
Register yourself to www.EmbeddedMarket.com
Facebook.com/EmbeddedMarket
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mPCB Design & Manufacturing
Email your schematics and get the price estimate for PCB Design & manufacturing
Payment by DD
Delivery by courier
Delivery time 6-10 days
Single & Double Side Designs
Email ID: [email protected]
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGet, Set, Go…
Let’s begin the real learning
Its time to write your First program
To Glow One LED
• CLR P1.0
To Glow alternate 4 LEDs ON and 4 LEDs OFF
• MOV P1, #55h
Refer next slide for LED circuit.
How to write this code?
Where to write this code?
How to convert it to HEX?
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGet, Set, Go…
LED Circuit on 89V51RD2 Starter Kit
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m8051IDE & FlashMagic
1
2
3
4
5
89V51RD2
COM1
2400
Check this
Select Hex File
Start After
Hardware
Setup is ready
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Starter Kit
1
23
4 56
8
9
10
11
12
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Starter Kit
Hardware Setup to Program
Connect Serial
Cable
9-12V DC
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Internals
64KB Flash memory
1KB Data RAM
Special Function Registers
4 Ports
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Internals
Internal Memory Organization Configuration
Registers,
Port Registers,
Maths registers
Memory to
Store values of
variables.
e.g. Count is 12
Memory from 00h to 07h is
also termed as R0 to R7
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Internals
List of Special Function Registers (SFR)
Math – A, B
Interrupt – IE
Timer Control – TMOD, TCON
Timer / Counter – TH0, TL0, TH1, TL1
Serial Communication – SCON, SBUF
PORT – P0, P1, P2, P3
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
m89V51RD2 Pin details
P1
P3
P0
P2
+5V
GND
Crystal
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
1
Crystal
11.0592
MHz
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Crystal Frequency is 11.0592 MHz
1 Machine cycle = Crystal frequency/12
i.e. 12 clocks makes one machine cycle
Machine cycle is time required to
• Fetch instruction from Flash Memory
• +
• Execute the instruction
Every microcontroller has different Machine cycle time
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
How much time is require to fill this glass?
Depends on Water Speed
& Glass size
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
89V51RD2 has 3 Timers built-in
They are Timer0, Timer1, Timer2
Let’s use Timer0 to Generate a delay of approximate 1 second
Timer0 is built-in feature of 89V51RD2
SFRs related to Timer0 are:
TH0, TL0 (Call it as T0)
TMOD
TCON
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Special Function register TH0 and TL0 is like empty glass
Combined size of TH0 and TL0 is 16 Bits
i.e. T0 is of 16 bit size
Now you know the size of empty Glass
Next Task is to calculate the Time required to fill these 16bits.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
1 Machine cycle Frequency
=11.0592MHz /12
= 0.9216 MHz
T=1/ F
T (Time required for 1 machine cycle)
=1/0.9216
=1.0850694
=1.085 Micro Seconds (Round Off)
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
In other words we can say that with 11.0592 MHZ Crystal Connected, Timer’s value will increment every 1.085 micro seconds.
T0 is of 16 bit size, thus it can store 65536 drops of water.
T0 will take
65536 x 1.085= 71106.56 Micro Sec
Or 71.10 MiliSec to overflow
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
If we want to count 1 second then we have to overflow timer approximately 14 times.
Because 1 sec = 1000 mili sec
1000 / 71.1 =14.06 = 14 times approx
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Now let’s configure the SFRs
TMOD
Gate C/T M1 M0 Gate C/T M1 M0
7 6 5 4 3 2 1 0
Timer 1 Timer 0
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
TMOD register is divided into 2 identical parts.
Bit M0 and M1 are used to set Mode of timer
Bit C/T is used to specify if you want a timer or counter
Gate Bit will allow you to use timer as stopwatch, i.e. timer will run only if externally a switch is pressed.
Gate C/T M1 M0 Gate C/T M1 M0
7 6 5 4 3 2 1 0
Timer 1 Timer 0
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
What will be value of TMOD to generate 1 Second delay?
Gate = 0 (We don’t want a stop watch)
C/T = 0 (We want timer, not counter)
M1=0 (*)
M0=1 (*)
• * M1=0 and M0=1 configures the Timer1 as 16bit timer.
• Other settings are 13 bit timer, 8 Bit timer, Split Timer. The 16 bit timer mode is most suitable for our application.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Now we have configured the Timer0 in 16bit timer mode
We know that Timer0 must overflow 14 times to generate 1 second delay
But how to Start the Timer?
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Use SFR named TCON to start timer
TR0 is used to start and stop the Timer0
Let’s see our partial code now
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
7 6 5 4 3 2 1 0
Used for Timer
Control
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Partial Code to generate 1 Second delay
MOV TMOD,#00000001b
SETB TR0
Now how to monitor the 14 times overflow?
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
TF0 is set to 1 automatically as T0 Overflows after 71.1 mili sec
Thus we should count 14 such overflows by monitoring TF0.
See full code on the next page
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
7 6 5 4 3 2 1 0
Used for Timer
Control
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
Delay:
MOV R0,#14d
MOV TMOD,#00000001b
Tstart:
SETB TR0
Loop:
JNB TF0,Loop
CLR TF0
CLR TR0
DJNZ R0,Tstart
RET
Configure TMOD
Start Timer0
Wait for one Overflow
Clear Overflow
Stop Timer
Do it for 14 Times
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mGenerate Delay using Timer
SETB P1.0
Start:
LCALL Delay
CPL P1.0
SJMP StartDelay:
MOV R0,#14d
MOV TMOD,#00000001b
Tstart:
SETB TR0
Loop:
JNB TF0,Loop
CLR TF0
CLR TR0
DJNZ R0,Tstart
RET
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRead Switch Input
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRead Switch Input
MOV P2,#00h
Start:
JB P1.0,Start
CPL P2.0
Wait:
JNB P1.0,Wait
Sjmp Start
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mDC Motor Control
-
+-
+
Try connecting DC
Motor here
Let’s now control it using 89V51RD2 Microcontroller
H
H
OFF
H
L
CLK
L
H
ANTI
CLK
L
L
OFF
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mDC Motor Control
L293D DC Motor Driver Circuit
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mDC Motor Control
Refer source Code
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mSeven Segment Display
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mSeven Segment Display
8
9
V
5
1
R
D
2
Board mapping on
the next screen.
Refer source code
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mSeven Segment Display
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
Demonstrated using MITSUMI Make Stepper Motor M35SP-8
Step Angle 7.5o
Thus requires 360/7.5 = 48 Steps to complete one full rotation.
Stepper motors are used for their accuracy.
Stepper motors have no Speed or RPM parameter
Most common use is in CNC machines
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
A
B
A1
B1
+V
A B A1 B1
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
ON
ON
OFF
OFF
A
B
A1
B1
+V
A B A1 B1
1 1 0 0
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
OFF
ON
ON
OFF
A
B
A1
B1
+V
A B A1 B1
0 1 1 0
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
OFF
OFF
ON
ON
A
B
A1
B1
+V
A B A1 B1
0 0 1 1
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
ON
OFF
OFF
ON
A
B
A1
B1
+V
A B A1 B1
1 0 0 1
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
VCC
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mStepper Motor Driver
Refer Source code
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mInterrupts
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mInterrupts
An interrupt is some event which interrupts normal program execution
Normal Program Running
|
Interrupt Received
|
Normal Program Halted
|
Sub-Routine Executed as expected by the Interrupt
|
Normal Program Continues
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mInterrupts
This subroutine, called an interrupt handler, is only executed when a certain event (interrupt) occurs.
Types of interrupts
Timer 0 Overflow.
Timer 1 Overflow.
Timer 2 Overflow
Reception/Transmission of Serial Character.
External Event 0.
External Event 1.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mExternal Interrupt
This subroutine must be written at specific flash memory address.
External 0 at Program memory address 0003h
External 1 at Program memory address 0013h
Timer 0 at Program memory address 000Bh
Timer 1 at Program memory address 001Bh
Serial Tx/Rx at Program memory address 0023h
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mExternal Interrupt
How to Enable Interrupt
EA: All interrupt enable
ES: Enable Serial Interrupt
ET1: Enable Timer 1 Interrupt
EX1: Enable External 1 Interrupt
ET0: Enable Timer 0 Interrupt
EX0: Enable External 0 Interrupt
EA - - ES ET1 EX1 ET0 EX0
7 6 5 4 3 2 1 0
IE
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mExternal Interrupt
Refer Source Code
P3.2
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mCounter
P3.4
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
7 6 5 4 3 2 1 0
Used for Timer
Control
TCON
Gate C/T M1 M0 Gate C/T M1 M0
7 6 5 4 3 2 1 0
Timer 1 Timer 0
MOV TMOD,#00000101b
SETB TR0
TMOD
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mCounter
start:
MOV TMOD,#00000101b
SETB TR0
Loop:
MOV P2,TL0
SJMP Loop
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRelay Interfacing
N/C
C
N/O
?
+V
Use a Switch to
ON & Off Relay,
Observe the
“Tick” sound
generated when
Relay’s magnet
is energized
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRelay Interfacing
N/C
C
N/O
?
+V
230V PhN
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLCD Interfacing
LCD Circuit
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mLCD Interfacing
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mTSOP1738 RC5 Remote
38KHZ Industrial Grade IR receiver
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mTSOP1738 RC5 Remote
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mTSOP1738 RC5 Remote
Refer Source Code
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Use RS232 to communicate between a PC and embedded product
Data logger is common example of it
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Rx & Tx
Pins
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Steps to Communicate
Both devices (PC & embedded product)
must decide on common speed of
communication,
This speed is called as baud rate
We will use 2400 baud rate
i.e. 2400 bits per second
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
SFR’s required for Serial Comunication
SCON
PCON
SBUF
TMOD
TCON
TL1
TH1
Baud rate settings
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
SCON register is used to specify RS232 communication settings:
SM0SM1SM2RENTB8 RB8 TI RI
7 6 5 4 3 2 1 0
Mode of
RS232I want to
receive data
over RS232
Indicates
that Data is
transmitted
Indicates
that Data is
received
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Mode of serial communicationSM0 SM1 Serial
ModeExplanation Baud Rate
0 0 0 8-bit Shift Register
Oscillator / 12
0 1 1 8-bit UART Set by Timer 1
1 0 2 9-bit UART Oscillator / 32
1 1 3 9-bit UART Set by Timer 1
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Baud rate = 2400.
Mode type = Mode 1 of serial communication.
In this mode we can send and receive 8 bit data.
Baud rate to send this data can be set using Timer 1.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Timer 1 is used in 8-bit auto reload mode to generate required BAUD rate.
We can not use Timer 0. There no such internal provision to do so
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Lets understand Timer 1 Configurations:
TMOD = 00100000b (8-bit auto reload mode)
In 8 bit auto-reload mode, Timer 1 acts as 8 bit and not 16 bits.
8 bits of TL1 are used to increment timer value.
8 bits of TH1 are used to tell TL1 to start incrementing again from this value as it overflows. This is called as auto-reload.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
This re-load value for TH1 will be calculated using this formula:
TH1 = 256 - ((Crystal / 384) / Baud)
TH1 = 256 - ((11059000 / 384) / 2400 )TH1 = 256 - ((28,799) /2400)TH1 = 256 – 11.99 = 244.00042=
=244d
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
TMOD = 00100000b (8-bit auto reload mode)
TH1= 244d (as per formula)
Remember to make 7th bit of PCON register to 0.
If it is set to 1 then speed will be doubled.
This bit is also called as SMOD.
ww
w.D
ecc
an
Ro
bo
ts.c
om
Microcontroller Kits Available at www.DeccanRobots.com
www.EmbeddedMarket.com
Microcontroller, Arduino & Embedded Kits available at EmbeddedMarket.com
ww
w.E
mb
ed
de
dM
ark
et.
co
mRS232
Refer Source Code