|
|
View previous topic :: View next topic |
Author |
Message |
princesshoney156 Guest
|
7-segment using PIC |
Posted: Fri Apr 11, 2008 11:11 am |
|
|
hi...
I have to run a 7-segment 2 digit output ( 40, 50 and 80) using a pic. I'm using 16f877a with CCS as a compiler. The problem is, when I constructing a circuit using a programmed build, there is no output at all at the display. can anyone here help me to review and correct my work? I'm really appreciate your helps...here is my coding and i am sorry because it quite long due to my limited knowledge with source code.
Code: |
#include <16F84A.h>
#fuses HS, NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPUT,NOBROWNOUT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(D)
//set i/o pins
#define MY_TRISA (0x07)
#define MY_TRISB (0x00)
#define MY_TRISD (0x00)
//set input pin
#define FOURTY_DEGREE PIN_A0 //in
#define FIFTY_DEGREE PIN_A1 // in
#define EIGHTY_DEGREE PIN_A2 //in
// set output pin
#define TEMP_DEGREE_OUT1 PIN_B7 //out
#define TEMP_DEGREE_OUT2 PIN_B6 //out
#define TEMP_DEGREE_OUT3 PIN_B5 //out
#define TEMP_DEGREE_OUT4 PIN_B4 //out
#define TEMP_DEGREE_OUT5 PIN_B3 //out
#define TEMP_DEGREE_OUT6 PIN_B2 //out
#define TEMP_DEGREE_OUT7 PIN_B1 //out
#define ZERO_NUMBER_OUT1 PIN_B0 //out
#define ZERO_NUMBER_OUT2 PIN_D7 //out
#define ZERO_NUMBER_OUT3 PIN_D6 //out
#define ZERO_NUMBER_OUT4 PIN_D5 //out
#define ZERO_NUMBER_OUT5 PIN_D4 //out
#define ZERO_NUMBER_OUT6 PIN_D3 //out
#define ZERO_NUMBER_OUT7 PIN_D2 //out
void main()
{
while(1)
{
set_tris_a(MY_TRISA);
set_tris_b(MY_TRISB);
set_tris_d(MY_TRISD);
// initially no LEDs should be on
output_low (TEMP_DEGREE_OUT1);
output_low (TEMP_DEGREE_OUT2);
output_low (TEMP_DEGREE_OUT3);
output_low (TEMP_DEGREE_OUT4);
output_low (TEMP_DEGREE_OUT5);
output_low (TEMP_DEGREE_OUT6);
output_low (TEMP_DEGREE_OUT7);
output_low (ZERO_NUMBER_OUT1);
output_low (ZERO_NUMBER_OUT2);
output_low (ZERO_NUMBER_OUT3);
output_low (ZERO_NUMBER_OUT4);
output_low (ZERO_NUMBER_OUT5);
output_low (ZERO_NUMBER_OUT6);
output_low (ZERO_NUMBER_OUT7);
// Read data from switch
while (1)
{
if (FOURTY_DEGREE==1)
{
output_low (TEMP_DEGREE_OUT1);
output_high (TEMP_DEGREE_OUT2);
output_high (TEMP_DEGREE_OUT3);
output_low (TEMP_DEGREE_OUT4);
output_low (TEMP_DEGREE_OUT5);
output_high (TEMP_DEGREE_OUT6);
output_high (TEMP_DEGREE_OUT7);
output_high (ZERO_NUMBER_OUT1);
output_high (ZERO_NUMBER_OUT2);
output_high (ZERO_NUMBER_OUT3);
output_high (ZERO_NUMBER_OUT4);
output_high (ZERO_NUMBER_OUT5);
output_high (ZERO_NUMBER_OUT6);
output_low (ZERO_NUMBER_OUT7);
}
else if (FIFTY_DEGREE==1)
{
output_high (TEMP_DEGREE_OUT1);
output_low (TEMP_DEGREE_OUT2);
output_high (TEMP_DEGREE_OUT3);
output_high (TEMP_DEGREE_OUT4);
output_low (TEMP_DEGREE_OUT5);
output_high (TEMP_DEGREE_OUT6);
output_high (TEMP_DEGREE_OUT7);
output_high (ZERO_NUMBER_OUT2);
output_high (ZERO_NUMBER_OUT3);
output_high (ZERO_NUMBER_OUT4);
output_high (ZERO_NUMBER_OUT5);
output_high (ZERO_NUMBER_OUT6);
output_low (ZERO_NUMBER_OUT7);
}
else if (EIGHTY_DEGREE==1)
{
output_high (TEMP_DEGREE_OUT1);
output_high (TEMP_DEGREE_OUT2);
output_high (TEMP_DEGREE_OUT3);
output_high (TEMP_DEGREE_OUT4);
output_high (TEMP_DEGREE_OUT5);
output_high (TEMP_DEGREE_OUT6);
output_high (TEMP_DEGREE_OUT7);
output_high (ZERO_NUMBER_OUT2);
output_high (ZERO_NUMBER_OUT3);
output_high (ZERO_NUMBER_OUT4);
output_high (ZERO_NUMBER_OUT5);
output_high (ZERO_NUMBER_OUT6);
output_low (ZERO_NUMBER_OUT7);
}
}
}
}
|
|
|
|
princesshoney156 Guest
|
correction in a source code |
Posted: Fri Apr 11, 2008 11:16 am |
|
|
from the previous codes, there is a correction for initialzing a pic. Actually it is #include <16f877A> and not #include <16f84A>..but it is not a problem for my 7-segment as i programmed it using 16f877a. |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Apr 11, 2008 11:19 am |
|
|
Your post appears to be a clone of this post here:
http://www.ccsinfo.com/forum/viewtopic.php?t=34324
Your post:
Quote: |
i am sorry because it quite long due to my limited knowledge with source code. |
His post:
Quote: |
i'm am a new user for the microcontroller and have a very basic knowledge on a souce code. |
Please go read that topic, and you will probably be able to
make your code work. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|