program pakaszab; const hf : real = 1.20525; // ADC mérési hiba feszültség szorzó // LCD module connections ----------------------------------------------------- var LCD_RS : sbit at RD6_bit; var LCD_EN : sbit at RD5_bit; var LCD_D7 : sbit at RD4_bit; var LCD_D6 : sbit at RC7_bit; var LCD_D5 : sbit at RC6_bit; var LCD_D4 : sbit at RC5_bit; var LCD_RS_Direction : sbit at TRISD6_bit; var LCD_EN_Direction : sbit at TRISD5_bit; var LCD_D7_Direction : sbit at TRISD4_bit; var LCD_D6_Direction : sbit at TRISC7_bit; var LCD_D5_Direction : sbit at TRISC6_bit; var LCD_D4_Direction : sbit at TRISC5_bit; // End LCD module connections ------------------------------------------------- var fesz,potm,paka : word; fesz1 : dword; str : array[5] of char; str1 : array[5] of char; tr : bit; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ procedure Paka_vez(); label elore; begin elore: ADCON0 := %00110011; //R fesz := ADC_Read(12); fesz1 := fesz * 4096; fesz := fesz1 / 4095; fesz := fesz * hf; paka := fesz / 10 - 7; // 295 Cfok = 12 mV (12mV * 245.8 = 295 Cfok) 0 Cfok = 0.000 mV KB 0.0405 mV/Cfok K tipusú szenzor ADCON0 := %00101111; //R fesz := ADC_Read(11); fesz1 := fesz * 4096; fesz := fesz1 / 4095; fesz := fesz * hf; potm := fesz / 10; if paka >= 400 then begin Lcd_out(1,1,'PakaNincsBedugva'); Lcd_out(2,1,' csatlakoztasd! '); tr := 1; goto elore; end; if paka >= 380 then begin PORTD.0 := 0; Lcd_out(1,1,'Figyelem! kieg !'); Lcd_out(2,1,'MAX 380 C !!!!'); lcd_chr(2,9,223); tr := 1; goto elore; end; if paka >= potm then PORTD.0 := 0; // 15 Cfokkal túlszalad magától If paka <= (potm-15) then PORTD.0 := 1; if tr = 1 then Lcd_Cmd(_LCD_CLEAR); lcd_out(1,1,' Paka Potm '); if PORTD.0 = 1 then lcd_out(1,1,'*'); WordTostr(paka,str); WordTostr(potm,str1); lcd_out(2,2,str); lcd_out(2,9,str1); lcd_out(2,16,'C'); lcd_chr(2,15,223); tr := 0; end; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Fő program Jól működik begin Lcd_Init(); Lcd_Cmd(_LCD_CURSOR_OFF); Lcd_Cmd(_LCD_CLEAR); lcd_out(1,1,' INITIALIZATION '); Lcd_Out(2,1,' Kerlek varj! '); OSCCON := %01110000; //R INTCON := 0x00; //R OPTION_REG :=%11011111; //R WPUE := %00001000; //R APFCON1 := 0X00; //R ADCON0 := %00000000; //R ADCON1 := %10010011; //R ADCON2 := 0X0F; //R FVRCON := %10000011; //R ANSELB := %00010001; //R ANSELD := %00000000; //R CM1con0 := 0x00; //R CM2con0 := 0x00; //R CM3con0 := 0x00; //R CM4con0 := 0x00; //R CM1con1 := 0x3F; //R CM2con1 := 0x3F; //R CM3con1 := 0x3F; //R CM4con1 := 0x3F; //R T1CON := 0x00; //R T1GCON := 0X00; //R CCP1CON := 0x00; //R CCP2CON := 0x00; //R CCP3CON := 0X00; //R DAC1con0 := 0x00; //R DAC2con0 := 0x00; //R DAC3con0 := 0x00; //R DAC4con0 := 0x00; //R PSMC4EN_bit := 0; //R PSMC3EN_bit := 0; //R PSMC2EN_bit := 0; //R PSMC1EN_bit := 0; //R RCSTA := 0X00; //R SSPCON := 0x00; //R WDTCON := %00011001; //R OPA1CON := %11000000; //R OPA2CON := %11000000; //R OPA3CON := %00000000; //R TRISA := %11111101; //R TRISB := %11111101; //R TRISC := %00011111; //R TRISD := %10001110; //R TRISE := %00001111; //R PORTD.0 := 0; // PÁKA NEM FŰT Delay_ms(200); Lcd_Out(1,1,' Paka vezerles '); Lcd_Out(2,1,' Futes indul '); Delay_ms(200); Lcd_Cmd(_LCD_CLEAR); tr := 0; While (true) do begin Paka_vez(); CLRWDT; end; end.