Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <xc.h> //apelare biblioteca de fisiere - descriere registri interni microcontroler
- __PROG_CONFIG(1,0x3FE4); // config. uC (WDT=dis|OSC=int)
- __PROG_CONFIG(2,0x1EFF); // config. uC (PLL (OSC*4)=off) pag. 130 pdf. PIC16LF1937
- unsigned char a;
- unsigned int b;
- void init_uC (void);
- void main(void)
- {
- init_uC(); // apel functie initializare microcontroler
- while (1) // bucla infinita
- {
- for (a=0x01; a< 0x80; a<<=1) // baleiere de port
- {
- PORTB = a; // du valoarea "a" in Portul B
- for(b=0; b<413; b++) // repet timpul de incrementate T0 de 1ms
- { // calcul: 1000*1ms=1sec.
- while(!TMR0IF);
- TMR0 = 5; // preaincarcare Timer T0
- TMR0IF = 0;
- }
- }
- for (a=0x80; a> 0x01; a>>=1)
- {
- PORTB = a; // du valoarea "a" in Portul B
- for(b=0; b<413; b++) // repet timpul de incrementate T0 de 1ms
- { // calcul: 500*1ms=500ms=0,5sec.
- while(!TMR0IF);
- TMR0 = 5; // preaincarcare Timer T0
- TMR0IF = 0;
- }
- }
- }
- }
- void init_uC (void)
- {
- OSCCON = 0x7B; // setez Osc. intern uC de 4MHz // pag. 110 pdf. PIC16LF1937
- TRISB = 0b00000000; // tot Portul B este de iesire
- PORTB = 0b00000000; // initializez PORTB cu valori de 0 logic
- OPTION_REG = 0b00000011; // Frecv. intrare T0 = Frecv. Osc./4 (=4MHz/4) = 1MHz
- // prescaler=4 => Frecv. T0 = 1MHz/4 = 250KHz (sau T=4us)
- TMR0IF = 0; // Flag ce indica trecerea de la val. max. 255(0xFF) la 0(0x00)
- TMR0 = 5; // porneste numararea de la valoarea 5; pana la maxim (255) mai sunt 250
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement