Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <htc.h>
- #include <pic16f877a.h>
- #include <stdio.h>
- #define _XTAL_FREQ 20000000
- void wait_for_one_press( )
- {
- while(!RB5);
- __delay_ms(250);
- while(RB5); //wait for one press, detect Pin B5
- __delay_ms(250);
- }
- //--Delay Function--
- void delay_ms (unsigned long int ms)
- {
- do
- {
- __delay_ms(1); //Delay for 1ms
- }
- while (ms--);
- }
- //--Main Funtion --
- void main (void)
- {
- unsigned int delay;
- TRISA=0x01; // Set PORT A0 as an INPUT
- TRISB=0x20; // Set PORT B5 as an INPUT
- TRISC=0xF0; // Set PORT C7-C4 as INPUT / PORT C3-C0 as OUTPUT
- ADCON1=0b01001110; //Set ADFM (bit 7 of ADCON1) to 0 for left justified
- //Only RA0 is selected as analog input
- ADCON0=0b11000001;
- wait_for_one_press( );
- while (1)
- {
- ADCON0=ADCON0|1;
- GO = 1; //Start A/D Conversion
- while(GO==1); //Wait end of conversion (conversion complete)
- delay = ADRESH;
- PORTC=2;
- delay_ms(delay);
- PORTC=4;
- delay_ms(delay);
- PORTC=6;
- delay_ms(delay);
- PORTC=8;
- delay_ms(delay);
- PORTC=6;
- delay_ms(delay);
- PORTC=4;
- delay_ms(delay);
- PORTC=2;
- delay_ms(delay);
- }
- } //End of Program
Advertisement
Add Comment
Please, Sign In to add comment