Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

clock with traffic light

Status
Not open for further replies.

sonic05

Member level 1
Joined
Mar 14, 2010
Messages
32
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
Manila
Activity points
1,580
#include <16F877A.h>
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
#use delay(clock = 4000000)
#byte PORTA=0X05
#byte PORTC=0x07
#byte PORTB=0X06
#define A0 PIN_A0
#define A1 PIN_A1
#define A2 PIN_A2
#define A3 PIN_A3
#define A4 PIN_A4


int sec1,sec2,min1,min2,hour1,hour2;
int num1=5,num2=5,num3=5;

int counter=125;
int flag=0;


const int table[10]={0b00111111, // for C.C. change 1 with 0 and 0 with 1 like 0b00111111
0b00000110, // for C.C. change 1 with 0 and 0 with 1
0b01011011, // for C.C. change 1 with 0 and 0 with 1
0b01001111, // for C.C. change 1 with 0 and 0 with 1
0b01100110, //for C.C. change 1 with 0 and 0 with 1
0b01101101, // for C.C. change 1 with 0 and 0 with 1
0b01111101, // for C.C. change 1 with 0 and 0 with 1
0b00000111, // for C.C. change 1 with 0 and 0 with 1
0b01111111, // for C.C. change 1 with 0 and 0 with 1
0b01101111}; // for C.C. change 1 with 0 and 0 with 1

void main()
{
PORTB=0X00;
PORTC=0X00;


set_tris_a(0xff);
set_tris_c(0x00);
set_tris_b(0x00);
set_RTCC(6);
setup_counters(RTCC_INTERNAL,RTCC_DIV_32);
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);

for(;;)
{
PORTB=table[sec1];
PORTC=0X01;
delay_ms(15);

PORTB=table[sec2];
PORTC=0x02;
delay_ms(15);

PORTB=table[min1];
PORTC=0x04;
delay_ms(15);

PORTB=table[min2];
PORTC=0x08;
delay_ms(15);

PORTB=table[hour1];
PORTC=0x10;
delay_ms(15);

PORTB=table[hour2];
PORTC=0x20;
delay_ms(15);



if(flag==1){


flag=0;
}





if(input(A4)==1)
{
disable_interrupts(INT_RTCC);

if(input(A2)==1) { --num1; }
if(num1==0){
if(++min1>9) {
min1=0;
if(++min2>5) { min2=0; }
}
num1=5;
}
if(input(A3)==1){ --num2; }

if(num2==0) {
if( ++hour1>9 )
{
hour1=0;
++hour2;
}
if( (hour2==1) & (hour1==3) ) {
hour1=1;
hour2=0;
}
num2=5;
}
if(input(A1)==1) { --num3; }
if(num3==0){
if(++sec1>9) {
sec1=0;
if(++sec2>5) { sec2=0; }
}
num3=5;
}
}


else if(input(A4)==0){
enable_interrupts(INT_RTCC);
}
}

}

#int_RTCC
void microII()

{ //void switch_time();
if(--counter>0)return;
counter=125;
flag=1;


if(++sec1>9){
sec1=0;

if(++sec2>5){
sec2=0;

if(++min1>9){
min1=0;

if(++min2>5){
min2=0;
if( ++hour1>9 )
{
hour1=0;
++hour2;
}
if( (hour2==1) & (hour1==3) ) {
sec1=0;
sec2=0;
min1=0;
min2=0;
hour1=1;
hour2=0;
}


}
}
}
}
}





any body can help me how to insert this program

in the program above...

THIS PROGRAM IS FOR TRAFFIC LIGHT
but it is a sample only:

#include <16f877a.h>
#use (clock=2M)

void main()
{
while(1)
{
output_d(0x01);
delay_ms(2000);
output_d(0x02);
delay_ms(2000)
output_d(0x03);
delay_ms(2000);

}
}
 

Hello!

Just for your info:

You may increases the chances of replies by explaining what you want to do.
Even a simple program like a traffic light could be worth some explanations (in text,
not in code). What do you want to do?
Additionally, you may consider to say "hello", "please", etc…


Dora.
 

HI

Thank you..for that info,..

and im sorry i forgot that things,..

^^

anybody can help me to combine that two programs...
 

are there a simple code of PROGRAM FOR TRAFFIC LIGHT to simulate in MIDE using microcontroller 8051
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top