Program compiled in Hi-Tech C for PIC16F877A, no result obtained

Thread Starter


Joined Feb 22, 2013
I've tried this simple embedded C Program using Hi-Tech C for PIC16F877A.
The aim was to obtain a logic high as output on 3 pins (pins D7, D2, D3 of port D), if one input pin (pin B6, of Port B) is driven to logic 1. The program was built successfully but after burning it to the microcontroller I got no result.


Rich (BB code):
#define _XTAL_FREQ 20000000          //Clock frequecy=20Mhz
 TRISB=0b11111111;                         //Set Port B as input port
 TRISD=0b00000000;                         //Set Port D as output port
 while(1)                                          //forever loop
     {if(RB6==1)                              //if pin B6 is high
          {RD7=1;                          //set pin D7 as high
          RD3=1;                            //set pin D3 as high
          RD2=1;                            //set pin D2 as high
      else                                         // if pin B6 is low
           {RD7=0;                            //set pin D7 as low
         RD3=0;                             //set pin D3 as low
         RD2=0;                              //set pin D2 as low
Please tell me if there is any mistake in the code or the logic.

Last edited by a moderator:


Joined Feb 19, 2009
Maybe the optimization was set to "super extreme"? :D

Try looking in different directories for the .hex file, did you create a new project with directory, or just try to compile the standalone .c file above?

The compiler usually shows what directory it is working it while it compiles, though it flashes by rather quickly. Try making it a project with a set directory, and see if you have the same problem.


Joined Oct 18, 2012
To be clear, you do have a crystal attached, right? This device has no internal oscillator.

Also, what are your configuration bits?


Joined May 11, 2009
As far as I can see have you have not set the configuration bits. In this case this is most likely error. In the manual serach for "Configuration Fuses" You will find the manual here "C:\Program Files\HI-TECH Software\PICC\9.83\docs" as an example

Thread Starter


Joined Feb 22, 2013
Nothing jumps out at me. What do you mean when you say "no result"?
I tried to set up the components on a Digital IC Trainer, using a logic switch as the input and LEDs as the output. By no result, I mean, the LEDs didn't light up when I turned the logic switch to High position.


Joined Oct 2, 2009
You have to backup and try a simple program, for example, turn one LED on and another LED off.

You have to check

1) that the compiler works properly
2) that the code is being transferred to the chip
3) that the chip is configured properly
4) that the code is correct