/*****************************************************************************/ /* Digitalni vhodi in izhodi na mikrokrmilniku 16F648a */ /* */ /*****************************************************************************/ #pragma case /* make compiler case sensitive */ #include <16F648a.h> //nastavitve za naš mikro #fuses NOWDT,MCLR // izključi vgrajeni watch dog timer, omogoči tipko reset #use delay(clock=4000000) // čip dobi clock 4 MHz iz oscilatorja, kar je pomembno za delovanje zakasnitev delay, tudi v simulatorju mora biti nastavljen enak clock /*----------------------------------------------------------------------------------*/ /* void cakaj_tipko_RA1(void) je lasten podprogram imenovan tudi funkcija, ki se lahko kliče iz glavnega programa main() podobno kot funkcije iz knjižnice C jezika npr. delay_ms() ki jo najdemo v help-u prevajalnika PICC */ void cakaj_tipko_RA1(void) { // čaka da bo tipka na novo pritisnjena while(input(PIN_A1) == 0) { } // prazna while zanka samo ponavlja testiranje tipke dokler ni napetosti je tipka pritisnjena, ko pa napetost naraste je tipka spuščena in program gre dalje while(input(PIN_A1) == 1){ } // prazna while zanka ponavlja testiranje tipke dokler je napetost 5V tipka ni pritisnjena, ko pa napetost pade je pritisnjena in program gre dalje } //konec funkcije za čakanje na tipko void main() { int lucke; while(1) { output_high(PIN_B0); delay_ms(1000); output_high(PIN_B1); delay_ms(1000); lucke = 7; output_b(lucke); delay_ms(1000); output_b(0x0F); delay_ms(1000); output_high(PIN_B4); cakaj_tipko_RA1(); output_high(PIN_B5); cakaj_tipko_RA1(); output_high(PIN_B6); cakaj_tipko_RA1(); lucke=0b11111111; output_b(lucke); cakaj_tipko_RA1(); output_b(0b00000000); } // konec zanke } // konec main -celega programa