Professional Documents
Culture Documents
EMBEDDED SYSTEMS
Module-III
Contents
2
Timer Programming
Mode 0
Mode 1
Mode 2
Counter Programming
Mode 1
Mode 2
Ragam R_DEEE_RSET
Timer - Mode 1
3
DELAY:
SETB TR0
AGAIN: JNB TF0,AGAIN
CLR TR0
CLR TF0
RET
(a)In hex
(FFFF-YYXX+1)NNNNN (decimal)
Then NNNNN x 1.085s=time delay
(half period)
Where YYXX is the hex value which was
loaded into the timer registers initially.
T=30.38s
Ragam R_DEEE_RSET
MOV P2,#00H
MOV TMOD,#10H;Timer 1 Mode 1
AGAIN: MOV TL1,#00H
MOV TH1,#0EEH
CPL P2.3
SETB TR1
BACK: JNB TF1,BACK
CLR TR1
CLR TF1
SJMP AGAIN
Ragam R_DEEE_RSET
Ragam R_DEEE_RSET
Ragam R_DEEE_RSET
Ragam R_DEEE_RSET
10
Assume XTAL=11.0592MHz
MOV P2,#00H
MOV TMOD,#10H ;Timer 1 mode 1
LOOP:MOV R3,#28 ;counter for multiple delay
CPL P2.4
AGAIN: MOV TL1,#00H
Time period=4sec
MOV TH1,#00H
SETB TR1
BACK: JNB TF1,BACK
CLR TR1
CLR TF1
DJNZ R3,AGAIN
SJMP LOOP
Ragam R_DEEE_RSET
#include <reg51.h>
sbit mybit=P1^5;
void T0Delay(void);
void main(void)
{P1=0x00;
while (1)
{
mybit=1;
T0Delay();
mybit=0;
T0Delay();
}
}
void T0Delay()
{
TMOD=0x01;
TL0=0x00;
TH0=0xEE;
TR0=1;
while (TF0==0);
TR0=0;
TF0=0;
}
Ragam R_DEEE_RSET
MOV TMOD,#02H
RPT:CPL P1.6
MOV R0,#05
AGAIN:MOV TH0,#49H
SETB TR0
BACK:JNB TF0,BACK
CLR TR0
CLR TF0
DJNZ R0,AGAIN
SJMP RPT
END
OR
MOV TH0,#-183
T=1/(1k)=1ms
1ms/2=0.5ms
0.5ms/0.546=915 cycles
So, 915/5=183
So repeat the delay loop
corresponding to 183 , 5
times.
Value to be loaded to
TH0=256-183=
73d or 49H
Ragam R_DEEE_RSET
Counters
15
16
RPT:MOV TMOD,#15H
SETB P3.4
To make P3.4 an I/P Port bit
MOV TL0,#00
To start counting from 0 onwards
MOV TH0,#00
SETB TR0
Start Counter
MOV R0,#28H
AGAIN:MOV TL1,#00
28x35.75ms=1sec
MOV TH1,#00
Ragam R_DEEE_RSET
END
17
Ragam R_DEEE_RSET
Assume that a 1-Hz external clock is being fed into pin T1 (P3.5).Write a C
program for counter 1 in mode 2 (8-bit auto reload) to count up and display
the state of the TL1 count on P1. Start the count at 0H.
18
#include <reg51.h>
sbit T1=P3^5;
void main(void)
{
T1=1;
TMOD=0x60;
TH1=0;
while (1)
{
do
{
TR1=1;
P1=TL1;
}
while (TF1==0);
TR1=0;
TF1=0;
}
}
Ragam R_DEEE_RSET
20
0
F
0
0
0000 1111 0000 0000
0000111100000 01E0
1FFF-01E0+1=1E20
1E20(H)7712(d)
7712X0.546s=4.2ms
T=8.4ms
f=1/T=119 Hz
Ragam R_DEEE_RSET
References
21
Ragam R_DEEE_RSET