Discussion in "8051 Discussion Forum" started by    wounder    Jan 25, 2020.
Sat Jan 25 2020, 07:14 AM
I have a 8051 micro controller ,it has timer0,1,2,3 with different modes.

in timer0,mode0, i got a sample code (as shown below).

from that code

TH0_INIT=0xFC //[email protected]=12MHz, Period = (10.85/2) [email protected]=22.1184MHz TL0_INIT=0x0F

both TH0,TL0 load with hex values..but could not derive these values from equation below .. (https://exploreembedded.com/wiki/5.8051_Timer_programming) Could you please tell me ,how these hex values derive ??

tick = (1/(Fosc/12)

tick = 12/Fosc\$\$ For Fosc == 11.0592Mhz, the tick time will be

tick = 12/11.0592M = 1.085069444us = 1.085us

Now the Timer value for the required delay can be calculated as below.

Delay = TimerCount * tick

Count = (Delay/tick)

RegValue = TimerMax- Count RegValue = TimerMax-(Delay/tick) = TimerMax - (Delay/1.085us)

RegValue = TimerMax-((Delay/1.085) * 10^6)\$\$

#include "SFR_Macro.h"
#include "Function_define.h"

#define TH0_INIT 0xFC //[email protected]=12MHz, Period = (10.85/2)
[email protected]=22.1184MHz
#define TL0_INIT 0x0F

void Timer0_ISR (void) interrupt 1 //interrupt address is 0x000B
{
TH0 = TH0_INIT;
TL0 = TL0_INIT;
P12 = ~P12; // GPIO
toggle when interrupt
}

void main (void)
{
TMOD = 0XFF;
Set_All_GPIO_Quasi_Mode;
TIMER0_MODE0_ENABLE;

clr_T0M;
clr_T1M;

TH0 = TH0_INIT;
TL0 = TL0_INIT;

// set_ET0; //enable Timer0 interrupt
//enable Timer1 interrupt
set_EA; //enable interrupts

set_TR0; //Timer0 run

while(1)
{
TH0 = TH0_INIT;
TL0 = TL0_INIT;
set_TR0;
while(!TF0);
clr_TR0;
P12 = ~P12;
TF0 = 0 ;
}
}
Sat Jan 25 2020, 11:05 PM
For a 12MHz crystal using a normal divided by 12 clock.

For a 5mS delay I get
TH0_INIT=0xEC
TL0_INIT=0x78
What do you get ?

The program you posted uses polling and an interrupt to monitor the timer
and toggle P12, choose one, you can't (at least shouldn't) do both.

### Information

#### Conversation

Wed Mar 25 2020, 09:39 AM
Tajammul
Sir kindly send the code file i2c for 8051
Fri Mar 13 2020, 06:36 PM
@ Rohitnani,ABEBE..which project ?
Fri Mar 13 2020, 08:55 AM
ABEBE
how can get hadwere of this project
Sat Mar 07 2020, 12:11 PM
Wed Feb 26 2020, 11:58 AM
Peter Parker
Is it possible to send multiple messages using only 1 GSM module?
Sat Feb 01 2020, 05:12 AM
Pearl Olin
Hello,
Wed Jan 22 2020, 01:16 PM
MINU CHAUDHARY
I m getting errors while simulation process during interfacing socket output and lcd... Can i get the report of ur project which is same as us.
Tue Jan 14 2020, 02:08 AM
when i am trying to simulate the program in Proteus 8 professional, I am getting some errors as cannot find module file dhtxx.md can u help me
Tue Dec 17 2019, 08:44 AM
Devangi
hello..i am programming industrial timer using 8051 with 24lc64 eeprom. i have query in storing the 3 diff value in eeprom with enter button. can anyone share c code ?
Tue Dec 17 2019, 05:30 AM
Andrius
Hello. Can anyone share the code in Bascon and scheme in Proteus?

### Recent

NormanJeops
Sun Apr 05 2020, 03:26 AM
NoraHar
Sat Apr 04 2020, 09:03 PM
codr
Sat Apr 04 2020, 04:45 AM
ElizabethJuich
Wed Apr 01 2020, 09:24 AM
MichaelVaf
Tue Mar 31 2020, 07:49 AM
Antonduh
Tue Mar 31 2020, 12:58 AM
AndreySem
Mon Mar 30 2020, 01:35 AM
vityaCar
Sat Mar 28 2020, 11:21 PM

#### Online

Guests: 47, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 01:37 AM

Members: 38142

#### Trending Topics

Forum Activity
##### Posted By PHANTOM28
Fri Feb 28 2020, 10:25 AM
Hi.I hope you all can help me. I am relatively ne...
##### Posted By ExperimenterUK
Fri Feb 21 2020, 05:05 PM
Did you sort out your problem?
##### Posted By ajay_bhargav
Fri Feb 21 2020, 04:45 AM
Yes you can do that.1. Create a channel @Thingspea...
##### Posted By ananyagupta
Thu Feb 20 2020, 03:58 AM
With regards to the particular characters sent to ...
##### Posted By sarrahjuzar
Wed Feb 19 2020, 04:24 AM
I have a gsm module sim900a and dht22 connected to...
##### Posted By ExperimenterUK
Tue Feb 18 2020, 04:52 PM