When i push a button form 1-9 Pic will output random on PortB. This is program i have written. I have simulation on Proteus, it working but sometime when i push button, output is blinking, not constant. Is there wrong in this program?
And when I download program to real chip PIC 16F886, it not working. Pls help me make good and clear program. Many thanks !
Code:
#include <16F886.h>
#use delay(crystal=20000000)
#define sw1 PIN_A0
#define sw2 PIN_A1
#define sw3 PIN_A2
#define sw4 PIN_A3
#define sw5 PIN_A4
#define sw6 PIN_A5
#define sw7 PIN_C0
#define sw8 PIN_C1
#define sw9 PIN_C2
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
void main()
{
while(TRUE)
{
//sw1
if(!input(sw1))
OUTPUT_B(0x70);
///sw2
else if(!input(sw2))
OUTPUT_B(0x0C);
///sw3
else if(!input(sw3))
OUTPUT_B(0x04);
///sw4
else if (!input(sw4))
OUTPUT_B(0x07);
///sw5
else if (!input(sw5))
OUTPUT_B(0x02);
///sw6
else if (!input(sw6))
OUTPUT_B(0x05);
///sw7
else if (!input(sw7))
OUTPUT_B(0x0E);
///sw8
else if (!input(sw8))
OUTPUT_B(0x0B);
///sw9
else if (!input(sw9))
OUTPUT_B(0x0A);
else
OUTPUT_B(0x00);
}
}
PORTA and C might have ADC, Comparator, etc... So, Configure, ANSELx, ADCONx, VRCON, CVRCON, CMCON, CM1CON0, CM2CON0 resistors if they exist in your uC. Both SWx and LEDx pins should be digital I/O. SWx pins should be Input and LEDx pins should be output type.