i am new to this forum .
also noob in C language.
but still i have to complete my final year proejct.
so i have just written the C coding for my project.
dont nuke / flame me.
i know it is easy for some of you.
i am still learning.
i wll using MPLAB and PICC LITE software.
=========================
//==========================================================================
// include
//==========================================================================
#include <pic.h>
// configuration
//==========================================================================
__CONFIG (0x3F32);
// define
//==========================================================================
#define SevenSegment1 RA0
#define SevenSegment2 RA1
#define SevenSegment3 RA2
#define SevenSegment4 RA3
#define SevenSegment5 RA4
#define SevenSegment6 RA5
#define SevenSegment7 RC0
#define SevenSegment1a RC1
#define SevenSegment2a RC2
#define SevenSegment3a RC3
#define SevenSegment4a RC4
#define SevenSegment5a RC5
#define SevenSegment6a RC6
#define SevenSegment7a RC7
#define stage1 RB0
#define stage2 RB1
#define stage3 RB2
// main function
//==========================================================================
void main(void)
{
unsigned char status;
unsigned long tempA,tempB;
ADCON1 = 0x06;
TRISA = 0b00000000;
TRISB = 0b11111111;
TRISC = 0b00000000;
SevenSegment1=0;
SevenSegment2=0;
SevenSegment3=0;
SevenSegment4=0;
SevenSegment5=0;
SevenSegment6=0;
SevenSegment7=0;
SevenSegment2a=0;
SevenSegment3a=0;
SevenSegment4a=0;
SevenSegment5a=0;
SevenSegment6a=0;
SevenSegment7a=0;
while(1)
{
//scan input
if(stage1==1)
{
while(stage1==1);
status=1;
tempA=0;
}
if(stage3==1)
status=3;
//processing output
switch(status)
{
//Permitted period mode (15 seconds)
case 1:
SevenSegment1=1;
SevenSegment2=1;
SevenSegment3=1;
SevenSegment4=1;
SevenSegment5=1;
SevenSegment6=1;
SevenSegment1a=1;
SevenSegment2a=1;
SevenSegment4a=1;
SevenSegment5a=1;
SevenSegment7a=1;
tempA+=1;
if(tempA>1000000)
{
status=2;
}
else siren=0;
break;
//Scanning mode
case 2:
tempB+=1;
if(tempB<25000)
SevenSegment1=1;
SevenSegment3=1;
SevenSegment4=1;
SevenSegment6=1;
SevenSegment7=1;
SevenSegment1a=1;
SevenSegment2a=1;
SevenSegment3a=1;
SevenSegment6a=1;
else if(tempB<100000)
SevenSegment1=0;
SevenSegment3=0;
SevenSegment4=0
SevenSegment6=0
SevenSegment7=0
SevenSegment1a=0;
SevenSegment2a=0;
SevenSegment3a=0;
SevenSegment6a=0;
else tempB=0;
break;
//Detected mode
case 3:
tempB+=1;
if(tempB<40000)
{
SevenSegment1=1;
SevenSegment2=1;
SevenSegment3=1;
SevenSegment4=1;
SevenSegment5=1;
SevenSegment6=1;
SevenSegment3a=1;
SevenSegment4a=1;
SevenSegment5a=1;
}
else if(tempB<60000)
{
SevenSegment1=0;
SevenSegment2=0;
SevenSegment3=0;
SevenSegment4=0;
SevenSegment5=0;
SevenSegment6=0;
SevenSegment3a=0;
SevenSegment4a=0;
SevenSegment5a=0;
}
else tempB=0;
break;
}
}
}
===========================ok now.
let me explain abit about my project.
i have completed my motion detector project with PIC16F876A(first part)
now i wanna add 7segment display to my project with another PIC16F876A(part2)
assume that :-
when PIC16F876A(part2)
receive a continous "1" at pin RB0 , certain panel on 7segment will turn on
receive a continous "1" at pin RB1 , certain panel on 7segment will turn on/off(blinking)
receive a continous "1" at pin RB2 , certain panel on 7segment will turn on/off(blinking)
it has got 3 status.
status1 : permitted period 15seconds @ RB0 pin
status2 : scanning @ RB1 pin
status3 : trigger @ RB2 in
---------
i have manage to output "1" from each of the 3status from PIC16F876A(first part)
so now i need to connect the output "1" from PIC part 1 to PIC part2
in order to trigger the 7segment display for each status.
...
So is the above coding correct ?
i have not compile yet.
just wanna some guidance before i burn into my PIC.
thanksss... -)
Edited by WingedPanther, 17 April 2009 - 07:24 AM.
add code tags (the # button)


Sign In
Create Account

Back to top









