Anda di halaman 1dari 1

//experiment 1 - Activare LED cu durata 1s, intermitent //Programul aprinde si stinge in mod repetat un led //conectat la pinul RB3

#include <pic.h> //rutinele definite mai jos functioneaza corect numai la frecventa de 20 MHz #define WaitFor1Us asm("nop"); asm("nop") #define Jumpback asm("goto $ - 3") unsigned char delayus_variable; //maxim 255 us #define DelayUs(x) { \ delayus_variable=(unsigned char)x; \ WaitFor1Us; } \ asm("decfsz _delayus_variable,f"); \ Jumpback; //maxim 255 ms void DelayMs(unsigned char cnt) { unsigned char i; do { i = 4; do { DelayUs(250); } while(--i); } while(--cnt); } #define LED RB3 void main (void) { TRISB=0x00;

//PORTB iesire

for(;;) //executia programului se repeta in continuu { LED=0; //aprinde ledul DelayMs(250); //asteapta 1s DelayMs(250); DelayMs(250); DelayMs(250); LED=1; //stinge ledul DelayMs(250); //asteapta 1s DelayMs(250); DelayMs(250); DelayMs(250); } }

Anda mungkin juga menyukai