<font color=#AA0066>Design of Voltage Regulator</font>
#include<reg51.h>
#include "header.h"
#include "lcd.C"
sbit trigr3021 = P2^1; // TRIGGERING SCRs
void delay(int);
void init();
/* dc/ac motor declaration */
unsigned int tmin = 57800,tmax = 60500,timervalue1,timervalue2;
unsigned char dtime = 5,time = 5, triggerflag = 0, starto = 0,timerlow = 0x0,timerhigh = 0xe0;
/* dc/ac motor declaration */
void exinterrupt0(void) interrupt 0
{
// need to start timer0 interrupt
if(starto)
{
TL0 = timerlow; // 0;
TH0 = timerhigh; // 0xe0;
ET0 = 1;
TR0 = 1;
triggerflag = 1;
}
}
void inttimer0(void) interrupt 1
{
if(triggerflag)
{
TL0 = 0;
TH0 = 0xfe;
triggerflag = 0;
trigr3021 = 1; // start triggering scr
}
else
{
ET0 = 0;
TR0 = 0;
triggerflag = 1;
trigr3021 = 0; // stop signalling scr
}
}
void main()
{
init();
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
P2 = 0;
delay(10000); /* startup delay.*/
lcdinit(); /* initialize on board LCD.*/
clrscr(10); /* it cleares both the screen */
printstr(" AC TO DC ",0,0); /* Print string into LCD Screen.*/
printstr(" DRIVER ",0,1); /* Print string into LCD Screen.*/
while(1)
{
timervalue1 = tmax; //tmin+500; // give value between tmin to tmax (57800 to 60500);
timervalue2 = timervalue1;
timerlow = timervalue1;
timerhigh = timervalue2 >> 8;
starto = 1;
}
}
void init()
{
P0 = 0xff;
P1 = 0x00;
P2 = 0x00;
IE = 0x81; // enable external interrupt alone
SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */
TMOD = 0x01; // no need
IE0 = 1;
IT0 = 1;
TCON = 0x01;
TMOD = TMOD | 0x21 ; /* Timer 1 in mode 2 */
}
void delay(int i)
{
while(i)
i--; //approx takes i*10 microsec
}
DESIGN OF PROCESS CONTROL TIMER IN MICRO CONTROLLER
#include <reg51.h>
sbit st1 = P0^0; // switch 1
sbit st2 = P0^1; // switch 2
sbit st3 = P0^2; // switch 3
sbit led1 = P2^0; // led 1
sbit led2 = P2^1; // led 2
sbit led3 = P2^2; // led 3
void delay(unsigned int del)
{
while(del) // (del * 1) Us delay
{
del--;
}
}
void main()
{
unsigned char i;
P2 = 0xff;
P1 = 0xff;
P0 = 0xff;
while(1)
{
while(st1 == 0) // time delay 1
{
for(i=0;i<10;i++)
{
delay(10000);
}
led1 = 1;
for(i=0;i<10;i++)
{
delay(10000);
}
led1 = 0;
}
led1 = 1;
while(st2 == 0) // time delay 2
{
for(i=0;i<20;i++)
{
delay(10000);
}
led2 = 1;
for(i=0;i<20;i++)
{
delay(10000);
}
led2 = 0;
}
led2 = 2;
while(st3 == 0) // time delay 3
{
for(i=0;i<30;i++)
{
delay(10000);
}
led3 = 1;
for(i=0;i<30;i++)
{
delay(10000);
}
led3 = 0;
}
led3 = 1;
}
}