Professional Documents
Culture Documents
Objectives:
Tools:
Keil µVision
Proteus
Background:
We will write multiple programs to explain how to use Timers/Counters. Here are the sample
programs.
Write following code and using disassembly view and memory window in Keil find the
assigned location of different variables during debugging.
#include<reg51.h>
sbitinbit=P0^0;
bitoutbit=P2^7;
bitmembit;
void main(void)
{
unsigned char mydata[50];
x,z=0;
{
z--;
mydata[x]=z;
P1=z;
membit=inbit;
outbit=~membit;
void T0Delay(void);
void main(void)
T0Delay();
P1=0xAA;
T0Delay();
}}
void T0Delay()
while (TF0==0);
TR0=0;TF0=0;}
Generation of Different frequencies on Microcontroller Pin P1. depending upon the
SWITCH input. (If SW=0: 500Hz , If SW=1: 750Hz, use Timer 0, mode 1 for both of them.)
#include <reg51.h>
sbitmybit=P1^2;
sbit SW=P1^7;
while (1)
{ mybit=~myb
it; if (SW==0)
T0M1Delay(0);
else
T0M1Delay(1); } }
void T0M1Delay(unsigned char c){
TMOD=0x01;
if (c==0)
{ TL0=0x6
7;
TH0=0xFC;
}
else
{ TL0=0x9
A;
TH0=0xFD;
}
TR0=1;
#include <reg51.h>
void delay();
void delay1();
sbit out = P2^3;
void main ()
{
TMOD = 0x01;
while(1)
{
out = 1;
delay();
out = 0;
delay1();
}
}
void delay()
{
TL0 = 0x39;
TH0 = 0xCD;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
}
void delay1()
{
TL0 = 0x71;
TH0 = 0xE5;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
Task 1: Code:
#include <reg51.h>
void delay();
void delay1();
sbit out = P2^3;
void main ()
{
TMOD = 0x01;
while(1)
{
out = 1;
delay();
out = 0;
delay1();
}
}
void delay()
{
TL0 = 0x7B;
TH0 = 0xD0;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
}
void delay1()
{
TL0 = 0x3E;
TH0 = 0xE8;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
}
Task 2:
#include <reg51.h>
void delay();
void delay1();
sbit out = P2^3;
void main ()
{
TMOD = 0x01;
while(1)
{
out = 1;
delay();
out = 0;
delay1();
}
}
void delay()
{
TL0 = 0x3E;
TH0 = 0xE8;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
}
void delay1()
{
TL0 = 0x7B;
TH0 = 0xD0;
TR0 = 1;
while(TF0 == 0)
{
}
TR0 = 0;
TF0 = 0;
}
Conclusion:
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
13
14