Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // PIC18F452 Configuration Bit Settings
- // 'C' source line config statements
- // CONFIG1H
- #pragma config OSC = XT // Oscillator Selection bits (XT oscillator)
- #pragma config OSCS = OFF // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source))
- // CONFIG2L
- #pragma config PWRT = OFF // Power-up Timer Enable bit (PWRT disabled)
- #pragma config BOR = ON // Brown-out Reset Enable bit (Brown-out Reset enabled)
- #pragma config BORV = 20 // Brown-out Reset Voltage bits (VBOR set to 2.0V)
- // CONFIG2H
- #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT enabled)
- #pragma config WDTPS = 128 // Watchdog Timer Postscale Select bits (1:128)
- // CONFIG3H
- #pragma config CCP2MUX = ON // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1)
- // CONFIG4L
- #pragma config STVR = ON // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET)
- #pragma config LVP = ON // Low Voltage ICSP Enable bit (Low Voltage ICSP enabled)
- // CONFIG5L
- #pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-001FFFh) not code protected)
- #pragma config CP1 = OFF // Code Protection bit (Block 1 (002000-003FFFh) not code protected)
- #pragma config CP2 = OFF // Code Protection bit (Block 2 (004000-005FFFh) not code protected)
- #pragma config CP3 = OFF // Code Protection bit (Block 3 (006000-007FFFh) not code protected)
- // CONFIG5H
- #pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected)
- #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code protected)
- // CONFIG6L
- #pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-001FFFh) not write protected)
- #pragma config WRT1 = OFF // Write Protection bit (Block 1 (002000-003FFFh) not write protected)
- #pragma config WRT2 = OFF // Write Protection bit (Block 2 (004000-005FFFh) not write protected)
- #pragma config WRT3 = OFF // Write Protection bit (Block 3 (006000-007FFFh) not write protected)
- // CONFIG6H
- #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected)
- #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected)
- #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write protected)
- // CONFIG7L
- #pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks)
- #pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks)
- #pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks)
- #pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks)
- // CONFIG7H
- #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks)
- // #pragma config statements should precede project file includes.
- // Use project enums instead of #define for ON and OFF.
- #include <xc.h>
- #define _XTAL_FREQ 4000000
- int led1 = 0x01;
- int led2 = 0b10000000;
- int x =0;
- int y =0;
- void __interrupt() TIMER0(void)
- {
- if (PIR1bits.TMR2IF)
- {
- PIR1bits.TMR2IF=0;
- if (x<7)
- {
- led1 = led1<<1;
- x++;
- }
- else if (x>=7 && x<14)
- {
- led1 = led1>>1;
- x++;
- }
- else
- {
- x=0;
- }
- }
- else
- {
- PIR2bits.TMR3IF=0;
- if (y<7)
- {
- led2 = led2>>1;
- y++;
- }
- else if (y>=7 && y<14)
- {
- led2 = led2<<1;
- y++;
- }
- else
- {
- y=0;
- }
- TMR3H=0xC0;
- TMR3L=0x86;
- }
- PORTD = led1|led2;
- }
- void main(void)
- {
- TRISD=0;
- INTCONbits.GIE=1; //global interrupt enable
- INTCONbits.PEIE=1;
- PIE1bits.TMR2IE=1;
- PIR1bits.TMR2IF=0;
- PIE2bits.TMR3IE=1;
- PIR2bits.TMR3IF=0;
- T2CONbits.T2CKPS=3;
- T2CONbits.TOUTPS=15;
- PR2 = 250;
- T3CONbits.T3CKPS= 2;
- TMR3H=0xC0;
- TMR3L=0x86;
- T2CONbits.TMR2ON=1;
- T3CONbits.TMR3ON=1;
- while(1);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement