The delay length in 8051 microcontroller depends on three factors:
8051 has two different ways to generate time delay using C programming, regardless of 8051 version.
The first method is simply using Loop program function in which Delay() function is made or by providing for(); delay loop in Embedded C programming. You can define your own value of delay and how long you want to display. For example- for(i=0;i<"any decimal value";i++); this is the delay for loop used in embedded C.
The second method is using Timer registers TH, TL and TMOD that are accessible in embedded C by defining header file reg52.h Both timers 0 and 1 use the same register, called TMOD (timer mode), to set the various timer operation modes in 8051 C programming. There are four operating modes of timer 0 and 1. To generate Time delay using timer registers:
- The crystal frequency
- the number of clock per machine
- the C compiler.
8051 has two different ways to generate time delay using C programming, regardless of 8051 version.
The first method is simply using Loop program function in which Delay() function is made or by providing for(); delay loop in Embedded C programming. You can define your own value of delay and how long you want to display. For example- for(i=0;i<"any decimal value";i++); this is the delay for loop used in embedded C.
Code to generate 250 ms delay on Port P1 of 8051:
#include "REG52.h" void MSDelay(unsigned int); void main(void) { while (1) //repeat forever { P1=0x55; MSDelay(250); P1=0xAA; MSDelay(250); } } void MSDelay(unsigned int itime) { unsigned int i,j; for (i=0;i<itime;i++) // this is For(); loop delay used to define delay value in Embedded C { for (j=0;j<1275;j++); } }
The second method is using Timer registers TH, TL and TMOD that are accessible in embedded C by defining header file reg52.h Both timers 0 and 1 use the same register, called TMOD (timer mode), to set the various timer operation modes in 8051 C programming. There are four operating modes of timer 0 and 1. To generate Time delay using timer registers:
- Load the TMOD value register indicating which timer (timer 0 or timer 1) is to be used and which timer mode (0 or is selected
- Load registers TL and TH with initial count value
- Start the timer
- Keep monitoring the timer flag (TF) until it rolls over from FFFFH to 0000.
- After the timer reaches its limit and rolls over, in order to repeat the process - TH and TL must be reloaded with the original value, and TR is turned off by setting value to 0 and TF must be reloaded to 0.
Code generating delay using timer register:
#include <REG52.h> void T0Delay(void); void main(void){ while (1) { P1=0x55; T0Delay(); P1=0xAA; T0Delay(); } } void T0Delay(){ TMOD=0x01; // timer 0, mode 1 TL0=0x00; // load TL0 TH0=0x35; // load TH0 TR0=1; // turn on Timer0 while (TF0==0); // wait for TF0 to roll over TR0=0; // turn off timer TF0=0; // clear TF0 }
You did not mention the third method.
ReplyDeleteWeb optimization master with 5+ years inclusion with SEO Services. I lead a group of people who are experts in backlinks, High Authority backlinksa, Keyword Research, On-page SEO Optimization, Bad connections Removal, Competitor Analysis. I guarantee you to offer great types of assistance and on time conveyance.
ReplyDeleteNice Blog, thanks for sharing with us.
ReplyDeleteAre you looking to buy touch monitors, touch screen, Touch Display and more? then order now.
Buy PCAP Touch Monitor Online
Buy High Brightness Touch Monitor Online
Industrial touchscreens have revolutionized manufacturing processes by providing a user-friendly interface for controlling complex machinery and systems. Their durability and resistance to harsh conditions make them a valuable tool in industrial settings.
ReplyDeleteindustrial touchscreen
This comment has been removed by the author.
ReplyDelete