Rev 160 Rev 165
Line 1... Line -...
1 #include <16F877A.h> -  
2 #device adc=8 -  
3   1  
4 #FUSES NOWDT //No Watch Dog Timer -  
5 #FUSES XT //Crystal osc <= 4mhz 2 #include "main.h"
6 #FUSES NOPUT //No Power Up Timer -  
7 #FUSES NOPROTECT //Code not protected from reading -  
8 #FUSES NODEBUG //No Debug mode for ICD -  
9 #FUSES NOBROWNOUT //No brownout reset -  
10 #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O -  
11 #FUSES NOCPD //No EE protection -  
12 #FUSES WRT_50% //Lower half of Program Memory is Write Protected -  
13   3  
-   4 #define LED1 PIN_A2
-   5 #define LED2 PIN_A3 // LEDky
-   6 #define LED3 PIN_A5
-   7 #define CIDLO 8 // Port A/D prevodniku
-   8 #define TAD 8 // Doba na prevod jednoho bitu
-   9  
-   10 void main()
-   11 {
-   12 int8 t; // Promenna pro nacteni hodnoty z cidla
-   13
-   14 setup_adc_ports(AN0); // Povolime analogovy vstup 0
-   15 setup_adc(ADC_CLOCK_DIV_8); // Delicka hodin pro prevodnik
-   16 // setup_psp(PSP_DISABLED); // Tento HW ma pouze PIC16F877A
-   17 setup_spi(SPI_SS_DISABLED);
14 #use delay(clock=4000000,RESTART_WDT) 18 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
-   19 setup_timer_1(T1_DISABLED);
-   20 setup_timer_2(T2_DISABLED,0,1);
-   21 setup_comparator(NC_NC_NC_NC);
-   22 setup_vref(FALSE);
-   23  
-   24 set_adc_channel(CIDLO); // Pripojime cidlo na A/D prevodnik
-   25 delay_us(20); // Pockame na nabiti kapacit po prepnuti
-   26
-   27
-   28
-   29 while(TRUE){
-   30 t=read_adc(); // Prvni precteni cidla
-   31 //printf("%d\n\r",t);
-   32
-   33 if(t>00&&t<40){
-   34 output_low(LED2);
-   35 output_low(LED3);
-   36 output_high(LED1);
-   37 //rozsvit modrou
-   38 }
-   39 else if(t>39&&t<80){
-   40 output_low(LED3);
-   41 output_high (LED1); // Zhasneme LED
-   42 delay_us(100);
-   43 output_low (LED1); // Rozsvitime LED
-   44 delay_us(100);
-   45 output_low (LED2); // Rozsvitime LED
-   46 delay_us(100);
-   47 output_high (LED2); // Zhasneme LED
-   48 delay_us(100);
-   49 //rozsvit modrou+zelenou
-   50 }
-   51 else if(t>79&&t<100){
-   52 output_low(LED3);
-   53 output_low(LED1);
-   54 output_high(LED2);
-   55 //rozvit zelenou
-   56 }
-   57 else if(t>99&&t<115){
-   58 output_low(LED1);
-   59 output_high (LED3); // Zhasneme LED
-   60 delay_us(100);
-   61 output_low (LED3); // Rozsvitime LED
-   62 delay_us(100);
-   63 output_low (LED2); // Rozsvitime LED
-   64 delay_us(100);
-   65 output_high (LED2); // Zhasneme LED
-   66 delay_us(100);
-   67 //rozsvit zelenou+cervenou
-   68 }
-   69 else if(t>114){
-   70 output_low(LED1);
-   71 output_low(LED2);
-   72 output_high(LED3);
-   73 //rozsvit cervenou
-   74 }
-   75 }}
-   76
15   77