Esempio n. 1
0
/* Displays string in progmem at current cursor location and increment cursor location */
void lcd_str_p(const char *progmem_s)
/* print string from program memory on lcd (no auto linefeed) */
{
    register char c;

    while ( (c = pgm_read_byte(progmem_s++)) ) {
        lcd_chr(c);
    }

}
void main() {
Lcd_Init();
INTCON=0b11000000;
PIE1=0b00100000;
UART1_Init(9600);               // Initialize UART module at 9600 bps
Delay_ms(300);                  // Wait for UART module to stabilize
trisc=0b10000000;
trisd=0;
portc=255;
portc.f0=0;
uart1_write_text("ready");
  for(;;){
    lcd_chr(1,1,rec[14]);
    for (co=15;co<23;co++){
    lcd_chr_cp(rec[co]);
    }

    lcd_chr(2,1,rec[26]);
    for (co=27;co<36;co++){
    lcd_chr_cp(rec[co]);
    }


}}
Esempio n. 3
0
void main() {
  char txt[16];
  trisc=0;
  portc=0;
  Keypad_Init();
  Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Cmd(_LCD_CURSOR_OFF);

while(1){
lcd_out(1,1,"EnterTemp=");
x=0;

do{
    kp = 0;
    
    kp = Keypad_Key_Click();
     }
     while(!kp);
     
    switch (kp) {
    
      case  1: kp = 49;previous_value=1;break; // 1
      case  2: kp = 50;previous_value=2;break; // 2
      case  3: kp = 51;previous_value=3;break; // 3
      case  4: kp = 65;break;// A
      case  5: kp = 52;previous_value=4;break;// 4
      case  6: kp = 53;previous_value=5;break; // 5
      case  7: kp = 54;previous_value=6;break; // 6
      case  8: kp = 66;break; // B
      case  9: kp = 55;previous_value=7;break; // 7
      case 10: kp = 56;previous_value=8;break; // 8
      case 11: kp = 57;previous_value=9;break; // 9
      case 12: kp = 67;break; // C
      case 13: kp = 42;break; // *
      case 14: kp = 48;previous_value=0;break;// 0
      case 15: kp = 35;break; // #
      case 16: kp = 68;break; // D

    }
    if(kp==42&&x==0){      //clear the screen
    lcd_cmd(_lcd_clear);
    shift=10;
    first=1000;
    second=1000;
    third=1000;
    desired_temp=0;
    previous_value=0;
    get_temp=0;
    real_temp=0;
    kp=0;
    x=1;
    }



    

    if(first==1000&&second==1000&&third==1000&&kp!=35&&x==0){
    first=previous_value;
    shift++;
    lcd_chr(1,shift,kp);
    }
    else if(first!=1000&&second==1000&&third==1000&&kp!=35&&x==0){
    second=previous_value;
    shift++;
    lcd_chr(1,shift,kp);
    }
    else if(first!=1000&&second!=1000&&third==1000&&kp!=35&&x==0){
    third=previous_value;
    shift++;
    lcd_chr(1,shift,kp);
    }

    if(kp==35&&x==0){
    shift++;
    lcd_chr(1,shift,kp);
    delay_ms(1000);
    if(first!=1000&&second==1000&&third==1000){
    desired_temp=first;
    }
    else if(first!=1000&&second!=1000&&third==1000){
    first=first*10;
    desired_temp=first+second;
    }
    else if(first!=1000&&second!=1000&&third!=1000){
    first=first*100;
    second=second*10;
    desired_temp=first+second+third;
    }
    while(kp==35&&x==0){
     lcd_cmd(_lcd_clear);
     get_temp=adc_read(0);
     real_temp=(500.0*get_temp)/1023;
     inttostr(real_temp,txt);
     lcd_out(2,1,"RealTemp=");
     lcd_out_cp(txt);
     while(real_temp>desired_temp){
      get_temp=adc_read(0);
     real_temp=(500.0*get_temp)/1023;
     inttostr(real_temp,txt);
     lcd_out(2,1,"RealTemp=");
     lcd_out_cp(txt);
     ac_fan=1;
     lcd_out(1,1,"cooling");
     }
     while(real_temp<=desired_temp){
      get_temp=adc_read(0);
     real_temp=(500.0*get_temp)/1023;
     inttostr(real_temp,txt);
     lcd_out(2,1,"RealTemp=");
     lcd_out_cp(txt);
      ac_fan=0;
      lcd_out(1,1,"process done");
      lcd_out(2,1,"RealTemp=");
     lcd_out_cp(txt);
     }

    }
    


    

    
    
    
    
    

    }
}
}
Esempio n. 4
0
// Displays null terminated string at current cursor location and increment cursor location 
void lcd_str(char *str)
{
    while(*str)  lcd_chr(*str++);
}
Esempio n. 5
0
void main() {
char r;
Lcd_Init();
INTCON=0b11000000;
PIE1=0b00100000;
UART1_Init(9600);               // Initialize UART module at 9600 bps
Delay_ms(300);
adcon1=7;
trisa=0;
porta=0;
TRISD=0;
PORTD=0b11111111;
//portd.f6=0; //GPS Rx
portd.f0=0; //GSM TX
TRISC=0;
portd.f3=0;   //zigbee Rx
portc.f4=1;
delay_ms(2000);
TRISC=255;
delay_ms(2000);
lcd_cmd(_LCD_CURSOR_OFF);
for(;;){
if(mode==0)
{
hr[0]=rr/100+48;
rem=rr%100;
hr[1]=rem/10+48;
hr[2]=rem%10+48;
lcd_out(1,1,hear);
lcd_out_cp(hr);
//lcd_chr(2,1,rr);
}

if(mode==1)
   {
   PORTD=0b11111111;
   portd.f0=0; //GSM TX
   portd.f6=0; //GPS Rx
   lcd_cmd(_LCD_CLEAR);
   porta.f1=1;
   delay_ms(500);
   porta.f1=0;
   mode=2;
   while(v<6)
   { }
   delay_ms(2000);
    lcd_chr(1,1,rec[14]);
    for (r=15;r<23;r++){
    lcd_chr_cp(rec[r]);
    }
    lcd_chr(2,1,rec[26]);
    for (r=27;r<36;r++){
    lcd_chr_cp(rec[r]);
    }
    delay_ms(2000);
    UART1_WRITE_TEXT("AT+CMGF=1");
    UART1_WRITE(13);
    delay_ms(300);
    UART1_WRITE_TEXT(we);
    delay_ms(300);
    UART1_WRITE_TEXT("Latu:");
    for (r=14;r<23;r++){
    UART1_WRITE(rec[r]);
    }
   //UART1_WRITE(10);
    UART1_WRITE(13);
    UART1_WRITE_TEXT("Long:");
    delay_ms(300);
    for (r=26;r<36;r++){
    UART1_WRITE(rec[r]);
    }
    UART1_WRITE(13);
    delay_ms(300);
    UART1_WRITE(26);
    delay_ms(1000);
    }
   }
}
int sjalfstyring(){							// Sjalfstyring byrjar
	int pallur1, pallur2, pallur4, pallur5;	// breytur fyrir palla
	int kassi, val;								// breyta fyrir kassa og val
	lcd_out(1,1, "Hvada kassa a   ");		// Skrifa spurningu a skja
	lcd_out(2,1, "hver pall ad fa?");		// --
	lyklabord(1);							// Smelle a einhvern takka til ad halda afram
	lcd_out(1,1, "Pallur nr 1 a ad");		// Skrifa spurningu a skja 
	lcd_out(2,1, "fa kassa numer? ");		// --
	do{										// Do-while lykkja til ad flokka kassa
		val = lyklabord(1);				// Innslattur
		pallur1 = val;						// Faeri val inni breytu fyrir pall 1
	}while(val < 1 || val > 4);				// do-while endar
	lcd_out(1,1, "Pallur nr 2 a ad");		// breyti spurningu
	do{										// Do-while lykkja til ad flokka kassa
		val = lyklabord(1);				// Innslattur
		pallur2 = val;						// Faeri val inni breytu fyrir pall 2
	}while(val < 1 || val > 4 || val == pallur1);				// do-while endar
	lcd_out(1,1, "Pallur nr 4 a ad");		// breyti spurningu
	do{										// Do-while lykkja til ad flokka kassa
		val = lyklabord(1);				// Innslattur
		pallur4 = val;						// Faeri val inni breytu fyrir pall 2
	}while(val < 1 || val > 4 || val == pallur1 || val == pallur2);
	switch(pallur1 + pallur2 + pallur4){	// kubburinn sem er eftir fer a sidasta pallin
		case 6:								// summa kubbana
			pallur5 = 4;						// sa sem ekki er buin setttur inn
			break;							// haettir i switch case setningunni
		case 7:								// summa kubbana
			pallur5 = 3;					// sa sem ekki er buin setttur inn
			break;							// haettir i switch case setningunni
		case 8:								// summa kubbana
			pallur5 = 2;						// sa sem ekki er buin setttur inn
			break;							// haettir i switch case setningunni
		case 9:								// summa kubbana
			pallur5 = 1;					// sa sem ekki er buin setttur inn
			break;							// haettir i switch case setningunni
	}										// switch case endar
	lcd_out(1,1, "P1 = K_:P2 = K_ ");		// Skrifa hvada kassi fer hvert 
	lcd_out(2,1, "P4 = K_:P5 = K_ ");		// --
	lcd_chr(1,7, pallur1 + 48);				// --
	lcd_chr(1,15, pallur2 + 48);			// --
	lcd_chr(2,7, pallur4 + 48);				// --
	lcd_chr(2,15, pallur5 + 48);			// --
	lyklabord(1);							// Smelle a einhvern takka til ad halda afram
	for(int i = 0; i < 4; i++){
		Mot_mata_f = 1;							// byrja keyrslu
		Mot_flok_f = 1;
		kassi = segul_teljari();				// finna numer kassa
		if(pallur1 == kassi){
			Mot_flok_f = 0;
			while(!R_yta1_uti){
				Yta_1_ut__ = 1;
			}
			Yta_1_ut__ = 0;
			while(!R_yta1_hei){
				Yta_1_heim = 1;
			}
			Yta_1_heim = 0;
		}
		if(pallur2 == kassi){
			while(!M_yta2_kub);
			Mot_flok_f = 0;	
			while(!R_yta2_uti){
				Yta_2_ut__ = 1;
			}
			Yta_2_ut__ = 0;
			while(!R_yta2_hei){
				Yta_2_heim = 1;
			}
			Yta_2_heim = 0;
		}
		if(pallur4 == kassi){               // Kassi á að fara á pall 4
			while(!L_pal3_kub){             // Bíða þartil kubbur er á palli 3
				__delay_ms(10);
			}
            __delay_ms(100);                // Töf til að kubbur fari alla leið á pall 3
            Mot_flok_f = 0;                 // Stoppa flokkara færiband
            Mot_armur_ = 1;                     // Set arm í gang til að færa kubb af palli 3 til færibands
            __delay_ms(1000);                // töf, einn hringur á armi
            Mot_armur_ = 0;                     // Slekk á armi
            FB_pallar_4_5(0, 1, 35);             // set færiband í gang til Hægri
		}
		if(pallur5 == kassi){               // Kassi á að fara á pall 5
			while(!L_pal3_kub){             // Bíða þartil kubbur er á palli 3
				__delay_ms(10);
			}
            __delay_ms(100);                // Töf til að kubbur fari alla leið á pall 3
            Mot_flok_f = 0;                 // Stoppa flokkara færiband
            Mot_armur_ = 1;                     // Set arm í gang til að færa kubb af palli 3 til færibands
            __delay_ms(1000);                // töf, einn hringur á armi
            Mot_armur_ = 0;                     // Slekk á armi
            FB_pallar_4_5(1, 0, 35);             // set færiband í gang til Vinstri
		}
	}
	Mot_mata_f = 0;							// Slökkva á færiböndum ef for lykkja endar
	Mot_flok_f = 0;
	H_bru_eitt = 0;                         // Núllstilla H-brú
    H_bru__tvo = 0;                         // ---
	 
}											// Sjalfstyring endar