Exemplo n.º 1
0
//---------------------------------------------------
void shape_menu(void){
	shape_selection++;
	if(shape_selection > TRIANGLE){
 		shape_selection = LED_STATE;
 	}
 	switch(shape_selection){
 		case LED_STATE:
 			//shape_LED_STATE();
 			break;
 		case STRAIGHT:
                          lcd_out("  Straight  ",LCD_LINE_1);
			 break;
 		case CIRCLE:
                            lcd_out("  Circle  ",LCD_LINE_1);
 			break;
 		case FIGURE_8:
                          lcd_out(" Figure 8  ",LCD_LINE_1);
			 break;
 		case TRIANGLE:
                          lcd_out(" Triangle  ",LCD_LINE_1);
 			break;
                case PROJECT_04:
                          lcd_out("   PROJECT 04       ",LCD_LINE_1);
 			break;
 	}
//-----------------------------------------------------
}
Exemplo n.º 2
0
//===========================================================================
// Function name: gps_out_once
//
// Description: initializes the display
// 
// Passed : no variables passed
// Locals: none
// Returned: no values returned
// Globals: 
//
// Author: Mattia Muller
// Date: Oct 2014
// Compiler: Built with IAR Embedded Workbench Version: V4.10A/W32 (5.40.1)
//----------------------------------------------------------------------------  
void gps_out_once(void){
  char display_line1[SET_16];
  char display_line2[SET_16];
  char j;
  
  for (j = SET_0; j < SET_16 ; j++){
         display_line1[j] = ' ';
       }
      
  for (j = SET_0; j < SET_16 ; j++){
         display_line2[j] = ' ';
       }
       
       display_line1[SET_0] = 'L';
       display_line1[SET_1] = 'A';
       display_line1[SET_2] = 'T';
       display_line1[SET_3] = ' ';
       display_line2[SET_0] = 'L';
       display_line2[SET_1] = 'O';
       display_line2[SET_2] = 'N';
       display_line2[SET_3] = ' ';
       
       lcd_out(display_line1,LCD_LINE_1); 
       lcd_out(display_line2,LCD_LINE_2);
}
Exemplo n.º 3
0
void lcd_cursor(unsigned char flag)
{
   if (flag)
      lcd_out(0x0F, 0); // display on, curson on, blink on
   else
      lcd_out(0x0C, 0); // display on, cursor off, blink off
}
Exemplo n.º 4
0
void Display_Process(void){
//==============================================================================
// Display Process interrupt code
// 
// Description: This function ends out text for display
//
// Passed : no variables passed
// Locals: no variables declared
// Returned: no values returned
// Globals:     char* display_1
//              char* display_2
//              char* display_3
//              char* display_4
//              char posL1
//              char posL2
//              char posL3
//              char posL4
//
// Author: David Pryor
// Date: Feb 2016
// Compiler: Built with IAR Embedded Workbench Version: V4.10A/W32 (6.4.1)
//==============================================================================
  ClrDisplay();
  lcd_out(display_1, LCD_HOME_L1, posL1);
  lcd_out(display_2, LCD_HOME_L2, posL2);
  lcd_out(display_3, LCD_HOME_L3, posL3);
  lcd_out(display_4, LCD_HOME_L4, posL4);
}
Exemplo n.º 5
0
void Display_Process(void){
// Function that initialezes LCD display
  ClrDisplay();
  lcd_out(display_1, LCD_HOME_L1, posL1);
  lcd_out(display_2, LCD_HOME_L2, posL2);
  lcd_out(display_3, LCD_HOME_L3, posL3);
  lcd_out(display_4, LCD_HOME_L4, posL4);
}
Exemplo n.º 6
0
void main() {
int v1,v2,v3,x1,x2,i;
char txt[7];
lcd_init();
lcd_cmd(_lcd_clear); // clear lcd
lcd_cmd(_lcd_cursor_off );
lcd_out(1,1,"Sun Tracker");
trisc=0b00000000;
trisd=0b00000011;
while(1)
{
delay_ms(200);
v1=adc_read(1);
v2=adc_read(2);
v3=adc_read(3);
i=adc_read(4)*150;
x1=v2-v1;
x2=v2-v3;
inttostr(i,txt);
lcd_out(2,1,"I= ");
lcd_out(2,4,txt);
lcd_out_cp(" uA");
while(i>=1500)
{
en=0;
lcd_out(2,1,"Motor Off       ");
delay_ms(2000);
i=adc_read(4)*150;
}
if(rd0_bit==0)
{
en=1;
in1=1;
in2=0;
while(rd1_bit==1);
en=0;
in1=0;
in2=0;
}
if(x1<-20)
{
en=1;
in1=1;
in2=0;
}
 else if(x2<-20)
 {
in1=0;
in2=1;
en=1;
}
else
{
en=0;
}
}

}
Exemplo n.º 7
0
////////////////////////////////////////////////////////////////////////////////
// Sendet ein Datenbyte an das LCD
void lcd_data( uint8_t data )
{
    LCD_PORT |= (1<<LCD_RS);    // RS auf 1 setzen

    lcd_out( data );            // zuerst die oberen,
    lcd_out( data<<4 );         // dann die unteren 4 Bit senden

    _delay_us( LCD_WRITEDATA_US );
}
Exemplo n.º 8
0
////////////////////////////////////////////////////////////////////////////////
// Sendet einen Befehl an das LCD
void lcd_command( uint8_t data )
{
    LCD_PORT &= ~(1<<LCD_RS);    // RS auf 0 setzen

    lcd_out( data );             // zuerst die oberen,
    lcd_out( data<<4 );           // dann die unteren 4 Bit senden

    _delay_us( LCD_COMMAND_US );
}
Exemplo n.º 9
0
void main()
{

__CONFIG(FOSC_INTRC_NOCLKOUT &		// Interrnal Osc, RA6 og RA7 = I/O
	 	 WDTE_OFF &		// Disable Watchdog Timer.
		 PWRTE_ON &		// Enable Power Up Timer.
		 MCLRE_ON &
		 CP_OFF &
		 BOREN_ON &
		 IESO_ON &
 		 FCMEN_ON &
 		 LVP_OFF &
 		 DEBUG_OFF);
__CONFIG(BOR4V_BOR40V);


// ===== uppsetning á PIC =====
	OSCCON = 0x75;					
	ANSEL  = 0x00;
	ANSELH = 0x00;
	CM1CON0 = CM1CON0 && 0x7F;  // Disable comparators
	CM2CON0 = CM2CON0 && 0x7F;  // Disable comparators
	INTCON = 0x00;

	PORTA = 0x00;
	PORTB = 0x00;
	PORTC = 0x00;
	PORTD = 0x00;
	PORTE = 0x00;

	TRISA = 0xFF;				// PORTA eru allt inngangar
	TRISB = 0xC0;				// PORTB er u útgangar fyrir LCD skjá og inngangar fyrir segulskynjara, kubba teljara
	TRISC = 0x00;				// PORTC er allt útgangar fyrir mótora
	TRISD = 0x0F;				// PORTD er hálf inngangar og hálft útgangar fyrir takkaborð
	TRISE = 0x01;				// PORTE er með 1 inngang og 2 útganga RE3 er reset og annað er ótengt

	lcd_init();				  // uppsetning fyrir LCD skjá
	



// ===== forritið byrjar =====
	while(1){			// Endalust while byrjar
		lcd_out(1,1, "1 - Handstyring");
		lcd_out(2,1, "2 - Sjalfstyring");
		int mode = lyklabord(1);
		if(mode == 1){
			handstyring();
		}
		if(mode == 2){
			sjalfstyring();
		}
		
	}					// Endalyst while endar
}				// main endar
Exemplo n.º 10
0
Arquivo: lcd.c Projeto: brfghb/LXR
////////////////////////////////////////////////////////////////////////////////
// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden.
void lcd_init( void )
{
    // verwendete Pins auf Ausgang schalten
    uint8_t pins = (0x0F << LCD_DB);           // 4 Datenleitungen
	
	uint8_t rsen_pins = (1<<LCD_RS) |                // R/S Leitung
						(1<<LCD_EN);                 // Enable Leitung
    LCD_DDR |= pins;
	
	LCD_RSEN_DDR |= rsen_pins;
 
    // initial alle Ausgänge auf Null
    LCD_PORT &= ~pins;
	
	LCD_RSEN_PORT &= ~rsen_pins;
 
    // warten auf die Bereitschaft des LCD
    _delay_ms( LCD_BOOTUP_MS );
    
    // Soft-Reset muss 3mal hintereinander gesendet werden zur Initialisierung
    lcd_out( LCD_SOFT_RESET );
    _delay_ms( LCD_SOFT_RESET_MS1 );
 
    lcd_enable();
    _delay_ms( LCD_SOFT_RESET_MS2 );
 
    lcd_enable();
    _delay_ms( LCD_SOFT_RESET_MS3 );
 
    // 4-bit Modus aktivieren 
    lcd_out( LCD_SET_FUNCTION |
             LCD_FUNCTION_4BIT );
    _delay_ms( LCD_SET_4BITMODE_MS );
 
    // 4-bit Modus / 2 Zeilen / 5x7
    lcd_command( LCD_SET_FUNCTION |
                 LCD_FUNCTION_4BIT |
                 LCD_FUNCTION_2LINE |
                 LCD_FUNCTION_5X7 |
				 LCD_FUNCTION_RUSSIAN);
 
    // Display ein / Cursor aus / Blinken aus
    lcd_command( LCD_SET_DISPLAY |
                 LCD_DISPLAY_ON |
                 LCD_CURSOR_OFF |
                 LCD_BLINKING_OFF); 
 
    // Cursor inkrement / kein Scrollen
    lcd_command( LCD_SET_ENTRY |
                 LCD_ENTRY_INCREASE |
                 LCD_ENTRY_NOSHIFT );
 
	
    lcd_clear();
}
Exemplo n.º 11
0
// writes 8 vertical pixels
// pos 0 is upper left, pos 1 is 8 pixels to right of that, pos 128 is 8 pixels below that
mp_obj_t lcd_draw_pixel_8(mp_obj_t mp_pos, mp_obj_t mp_val) {
    int pos = mp_obj_get_int(mp_pos);
    int val = mp_obj_get_int(mp_val);
    int page = pos / 128;
    int offset = pos - (page * 128);
    lcd_out(LCD_INSTR, 0xb0 | page); // page address set
    lcd_out(LCD_INSTR, 0x10 | ((offset >> 4) & 0x0f)); // column address set upper
    lcd_out(LCD_INSTR, 0x00 | (offset & 0x0f)); // column address set lower
    lcd_out(LCD_DATA, val); // write data
    return mp_const_none;
}
Exemplo n.º 12
0
void lcd_goto(char x, char y)
{

#if defined(SCS_900) || defined(SCS_1001) || defined(SCS_2000) || defined(SCS_2001)
   /* goto position x(0..19), y(0..3) */
   lcd_out((x & 0x1F) | (0x80) | ((y & 0x03) << 5), 0);
#else
   /* goto position x(0..19), y(0..1) */
   lcd_out((x & 0x1F) | (0x80) | ((y & 0x01) << 6), 0);
#endif
}
Exemplo n.º 13
0
// Show command by index
void ShowCmd(uint8_t cmd_index) {
	if (state.bits.config==1) return;
	_cmd_type Cmd = CmdArray[cmd_index];
	char buf[6];
	int16_to_str(cmd_index+1, buf, 0x30); // bcd convertion
	lcd_pos(0x10);
	lcd_out(buf+2); lcd_out(": "); 
	lcd_dat(Cmd.cmd_name); lcd_hex(Cmd.cmd_data);
	lcd_pos(0x00); lcd_out(GetTimerName(LastTimerDelay));
//	lcd_hexdigit(LastTimerDelay

}
Exemplo n.º 14
0
// Show seconds counter value 
void ShowTime(uint16_t data) {
	if (state.bits.config==1) return;

	uint16_t mins = data / 60; if (mins>99) mins=99;
	uint16_t secs = data % 60;

	lcd_pos(0x1b);
	char buf[6];
	int16_to_str(mins, buf, 0x30); 
	lcd_out(buf+3);lcd_dat(':');
	int16_to_str(secs, buf, 0x30); 
	lcd_out(buf+3);
}
Exemplo n.º 15
0
void display_set_chk_interval_draw(){
	if(timeout_menu_count == 0){
		//верхн¤¤ строка на дисплее
		lcd_set_xy(0, 0);
		lcd_out(SET_M4_CHK_INTERVAL);

		//нижн¤¤ строка на дисплее
		lcd_set_xy(0, 1);
		lcd_out(SET_M4_ONE_PER);
		lcd_write_dec_xx(chk_int);
		lcd_out(SET_M4_MINUT);

		lcd_set_xy(cursor_x, cursor_y);
	}
}
Exemplo n.º 16
0
Arquivo: gps.c Projeto: JobenNC/ECE306
void gps_out_once(void){
 display_line1[0] = 'L';
 display_line1[1] = 'A';
 display_line1[2] = 'T';
 display_line1[3] = ' ';
 display_line2[0] = 'L';
 display_line2[1] = 'O';
 display_line2[2] = 'N';
 display_line2[3] = ' ';
 lcd_clear();
 newFM(50);
 lcd_out(display_line1,LCD_LINE_1); // 16 characters max between quotes - line 1
 newFM(50);
 lcd_out(display_line2,LCD_LINE_2); // 16 characters max between quotes - line 2
}
Exemplo n.º 17
0
/**
@brief Init LCD.
*/
void lcd_init(void)
{
	lcd_hwinit();
#ifndef LCD_SIMPLE_INIT
	lcd_out(0x30, 0);	// 8 bit interface
	_delay_ms(5);
	lcd_out(0x30, 0);
	_delay_ms(1);
	lcd_out(0x30, 0);
	_delay_ms(1);
	lcd_out(0x20 | lcd_busw, 0);
#endif
	lcd_command(0x28 | lcd_busw);	// 2 lines, 5x7 dots
	lcd_command(0x08);  // display off, cursor off, blink off
	lcd_clear();
	lcd_command(0x06);  // cursor increment
	lcd_command(0x08 | 0x04); // display on
}
Exemplo n.º 18
0
void menu_process(int adc_value){
  unsigned char i;
  char* display;
  for ( i=SET_0; i<SET_4 && adc_value>=menu_list[i].value; i++) ;
  what_to_do =  menu_list[i].action;
  display = menu_list[i].description;
  lcd_out(display, LCD_LINE_1);
  
}
Exemplo n.º 19
0
static void lcd_write(uint8_t data)
{
    //E_DISABLE; delay_ms(1);

    RW_WRITE;
    PORTF = 0;
    SET_DDR_OUT;

    if( LCD_4_BIT )
    {
        lcd_out(data >> 4);     // NB! First we send upper 4 bits, but on lower 4 bits of port
        //delay_ms(1);
        delay_us(10);
        lcd_out(data);     	// Now lower 4 bits
    }
    else
    {
Exemplo n.º 20
0
//=========================================================================== 
// Function name: do_stuff
//
// Description: Do stuff when SW1 or SW2 are pressed
//
// Passed : no variables passed
// Locals: no variables declared
// Returned: no values returned
// Globals: none
//
// Author: Mattia Muller
// Date: Sept 2013
// Compiler: Built with IAR Embedded Workbench Version: V4.10A/W32 (5.40.1) //===========================================================================
//******************************************************************************
//------------------------------------------------------------------------------
void do_stuff(void){
  switch(what_to_do){
		case CALIBRATE:
                  lcd_out("              ", LCD_LINE_2);
                       IR_calibration(current_step);
                       //char* ascii_value = itoa(current_step);            
                          
                       //lcd_out(ascii_value, LCD_LINE_2);     
                break;
		case STRAIGHT: // 1250 msec 
			STRAIGHT_TIME_Process();
		break;
                case PROJECT_05: // 1250 msec 
                        fifty_msec_sleep_A1(SET_10);
                        stop = OFF;
                        straight_direction = FORWARD;
                        current_step = SET_0;
                        time_limit = SET_NEG_1;
			what_to_do = PROJECT_05;
                        left_wheel_count = LEFT_WHEEL_COUNT;
 			right_wheel_count = RIGHT_WHEEL_COUNT;
                        what_to_do_movement = STRAIGHT;
                        sample = ON;
                        black_space = OFF;
		break;
                case THUMB_WHEEL: // 1250 msec 
			CLOCK_TIME_Process();
		break;
		case CIRCLE: // 1250 msec 
			//CIRCLE_Process();
		break;
		case FIGURE_8: // 1250 msec 
		 	//FIGURE_8_Process();
		break;
		case TRIANGLE: // 1250 msec 
			//TRIANGLE_Process();
		break;
		default: 
		 	//Default_Process();
		break;
		}
  
  
}
Exemplo n.º 21
0
Arquivo: gps.c Projeto: JobenNC/ECE306
void GPS_Init()
{
  // GPS Initialization
 //time_pass_by = 0;
 PJOUT &= ~GPS_RESET; // GPS_RESET = GPS in Reset;
 //time_pass_by = 0;
 //while (time_pass_by <= 200);
 newFM(200);
 //time_pass_by = 0;
 PJOUT |= GPS_RESET; // GPS_RESET = GPS NOT Reset;
 newFM(200);
 //while (time_pass_by <= 200);
 //PJOUT &= ~GPS_PWRCNTL;
 newFM(20);
 PJOUT |= GPS_PWRCNTL;
 newFM(40);
 if (PJIN & GPS_PWRCHK) 
 {
   PJOUT &= ~GPS_PWRCNTL;
 }
 
 //PJOUT |= GPS_PWRCNTL;
 //newFM(210);
 //PJOUT &= ~GPS_PWRCNTL;
 
 //I commented this out
 return;
 gps_wakeup();
 while(!(PJIN & GPS_PWRCHK)){
    if (!(PJIN & GPS_PWRCHK)){
        newFM(210);
        //while (time_pass_by <= 210);
        gps_wakeup();
    }
 }
 lcd_clear();
 lcd_out("GPS_UP", LCD_LINE_1);
}
Exemplo n.º 22
0
char putchar(char c)
{
   if (c != '\r' && c != '\n')
      lcd_out(c, 1);
   return c;
}
   void main()
    {
   int   ldr1,ldr2,ldr1_p,ldr2_p, v, t,count ;
        char tx[7], a,b;
    int i;
int temp1;
char test[32];

CE_DIR=0;
CSN_DIR=0;
CSK_DIR=0;
MOSI_DIR=0;
MISO_DIR=1;

nrf24_config();
CSN=1;
CE=1;
//////////////////////////////////////////////

       lcd_init();
       //trisc=0;
        trisd=0;
        portd=0;
        count=0;
                   while(1)
          {
           //////////////////////////////////////////////////////////
           temp1=read_add(0x07);
if(((temp1&0b01000000)>>6)==1)
{
CE=0;
delay_ms(50);
//lcd_out(1,1,"data");
read_buff(0x61,test,32);
lcd_out(1,1,test);
delay_ms(2000);
reset();
CE=1;

}
else
lcd_out(1,1,"no  ");
          
          
          
          
          
          
          
          
          
          
          
          
         ///////////////////////////////////////////////////////////////
         /*ldr1=adc_read(1);
          ldr2=adc_read(2);
           v=adc_read(0);
              t=0.4887*v;
              if(t>=28)
                {portd=0b00110000;}
              else
                {portd=0;}

               a  =t/10;
               b =t%10;
               lcd_out(1,1,"temp=");
               lcd_chr(1,7,a+48);
               lcd_chr(1,8,b+48);
               if(ldr1>=900&&ldr1_p<800)
               {
             count++;
               }
               ldr1_p=ldr1;
                if(ldr2>=400&&ldr2_p<350)
               {
                count--;
                if(count<0)
                count=0;
               }
               ldr2_p=ldr2;
               a  =count/10;
               b =count%10;
               lcd_out(2,1,"count=");
               lcd_chr(2,8,a+48);
               lcd_chr(2,9,b+48);*/




}
Exemplo n.º 24
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);
     }

    }
    


    

    
    
    
    
    

    }
}
}
Exemplo n.º 25
0
void main() {
bit i,j,k,m;
int rc;
int lc;
int x;
int y;
i=1;j=1;m=1;k=1;
uart1_init(9600);
lcd_init();

for(;;)
{
rc=adc_read(1)*0.05;
lc=adc_read(0)*0.05;
x=adc_read(4)*0.05;
y=adc_read(3)*0.05;
if(x>=18)
{
lcd_out(1,1,"X+");
uart1_write_text("x+");
delay_ms(60);
}
if(x<=15)
{
lcd_out(1,1,"X-");
uart1_write_text("x-");
delay_ms(60);
}
if(y>=18)
{
lcd_out(1,1,"Y+");
uart1_write_text("y+");
delay_ms(60);
}
if(y<=15)
{
lcd_out(1,1,"Y-");
uart1_write_text("y-");
delay_ms(60);
}

if(lc<=7&&k==1)
{
lcd_out(2,1,"L1");
uart1_write_text("l1");
k=0;
m=1;
delay_ms(60);
}
if(lc>=9&&m==1)
{
lcd_out(2,1,"L2");
uart1_write_text("l2");
m=0;
k=1;
delay_ms(60);
}
if(rc<=12&&i==1)
{
lcd_out(2,1,"r1");
uart1_write_text("r1");
i=0;
j=1;
delay_ms(60);
}
if(rc>=14&&j==1)
{
lcd_out(2,1,"r2");
uart1_write_text("r2");
j=0;
i=1;
delay_ms(60);
}



}

}
Exemplo n.º 26
0
void lcd_puts(char *str)
{            
   while (*str)
      lcd_out(*str++, 1);
}
Exemplo n.º 27
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);
    }
   }
}
Exemplo n.º 28
0
////////////////////////////////////////////////////////////////////////////////
// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden.
void lcd_init( void )
{
    // verwendete Pins auf Ausgang schalten
    uint8_t pins = (0x0F << LCD_DB) |           // 4 Datenleitungen
                   (1<<LCD_RS) |                // R/S Leitung
                   (1<<LCD_EN);                 // Enable Leitung
    LCD_DDR |= pins;
 
    // initial alle Ausgänge auf Null
    LCD_PORT &= ~pins;
	
	//Initialisiere LCD Backlight Pin
	LCD_BL_DDR |= (1<<LCD_BL);
	LCD_BL_PORT |= (1<<LCD_BL);
 
    // warten auf die Bereitschaft des LCD
    _delay_ms( LCD_BOOTUP_MS );
    
    // Soft-Reset muss 3mal hintereinander gesendet werden zur Initialisierung
    lcd_out( LCD_SOFT_RESET );
    _delay_ms( LCD_SOFT_RESET_MS1 );
 
    lcd_enable();
    _delay_ms( LCD_SOFT_RESET_MS2 );
 
    lcd_enable();
    _delay_ms( LCD_SOFT_RESET_MS3 );
 
    // 4-bit Modus aktivieren 
    lcd_out( LCD_SET_FUNCTION |
             LCD_FUNCTION_4BIT );
    _delay_ms( LCD_SET_4BITMODE_MS );
 
    // 4-bit Modus / 2 Zeilen / 5x7
    lcd_command( LCD_SET_FUNCTION |
                 LCD_FUNCTION_4BIT |
                 LCD_FUNCTION_2LINE |
                 LCD_FUNCTION_5X7 );
 
    // Display ein / Cursor aus / Blinken aus
    lcd_command( LCD_SET_DISPLAY |
                 LCD_DISPLAY_ON |
                 LCD_CURSOR_OFF |
                 LCD_BLINKING_OFF); 
 
    // Cursor inkrement / kein Scrollen
    lcd_command( LCD_SET_ENTRY |
                 LCD_ENTRY_INCREASE |
                 LCD_ENTRY_NOSHIFT );
		//Gradzeichen
		uint8_t chrdata0[8] = {
        0b00000100,
        0b00001010,
        0b00000100,     //   X X
        0b00000000,     //  XXXXX
        0b00000000,     //   XXX
        0b00000000,     //    X
        0b00000000,
        0b00000000
        };
		//µ
	    uint8_t chrdata1[8] = {
        0b00000000,
        0b00001001,
        0b00001001,     //   X X
        0b00001001,     //  XXXXX
        0b00001111,     //   XXX
        0b00001000,     //    X
        0b00010000,
        0b00000000
        };
		//Rechtecksignal
	    uint8_t chrdata2[8] = {
        0b00000000,
        0b00011101,
        0b00010101,     //   X X
        0b00010101,     //  XXXXX
        0b00010101,     //   XXX
        0b00010101,     //    X
        0b00010111,
        0b00000000
        };
    lcd_generatechar(LCD_GC_CHAR0, chrdata0);
	lcd_generatechar(LCD_GC_CHAR1, chrdata1);
	lcd_generatechar(LCD_GC_CHAR2, chrdata2);
    lcd_clear();
}
Exemplo n.º 29
0
void lcd_clear()
{
   lcd_out(0x01, 0);
   lcd_goto(0, 0);
}
Exemplo n.º 30
0
void main() {
int i;
int temp1;
char test[32];
uart1_init(2400);
CE_DIR=0;
CSN_DIR=0;
CSK_DIR=0;
MOSI_DIR=0;
MISO_DIR=1;
delay_ms(500);
nrf24_config();
CSN=1;
CE=1;




lcd_init();
Lcd_Cmd(_LCD_CURSOR_OFF);
//lcd_out(2,1,"welcome");

trisb.f0=0;
rb0_bit=0;
trisd.f0=0;
for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
uart1_write_text("TEST");
uart1_write(13);

//lcd_out(1,1,"S");
while(1)
{
  temp1=read_add(0x07);
if(((temp1&0b01000000)>>6)==1)
{
CE=0;
delay_ms(50);
//lcd_out(1,1,"data");
read_buff(0x61,test,32);
uart1_write_text(test);
lcd_out(1,1,test);
reset();
CE=1;

}


















 if(uart1_data_ready())
 {
  rfid[idx]=uart1_read();

   ///////////////////////////////////////////////////////////03002e2838
  if(rfid[idx]=='0'&&valid2<10)
  {
   valid2++;
  }
   else if(rfid[idx]=='3'&&valid2<10)
  {
   valid2++;
  }
   else if(rfid[idx]=='2'&&valid2<10)
  {
   valid2++;
  }
  else if(rfid[idx]=='E'&&valid2==5)
  {
   valid2++;
  }
  else if(rfid[idx]=='8'&&valid2<10)
  {
   valid2++;
   }
  else
  {
  valid2=0;
  }



   if(rfid[idx]=='0'&&valid1<10) //03002e90b0
  {
   valid1++;
  }
   else if(rfid[idx]=='3'&&valid1==1)
  {
   valid1++;
  }
   else if(rfid[idx]=='2'&&valid1==4)
  {
   valid1++;
  }
  else if(rfid[idx]=='E'&&valid1==5)
  {
   valid1++;
  }
  else if(rfid[idx]=='9'&&valid1==6)
  {
   valid1++;
  }
    else if(rfid[idx]=='B'&&valid1==8)
  {
   valid1++;
  }
  else
  {
  valid1=0;
  }








  if(valid2>=10)
  {
  lcd_out(2,1,"User2 : 03002E2838");
  delay_ms(1000);
   lcd_cmd(_lcd_clear);
   lcd_out(2,1,"UnValid");
   valid2=0;
   for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
   delay_ms(1000);
   lcd_cmd(_lcd_clear);
  }



 if(valid1>=10)
  {
  lcd_out(2,1,"User1 : 03002E90B0");
     delay_ms(1000);
   lcd_cmd(_lcd_clear);
   lcd_out(2,1,"Valid");
   valid1=0;
   for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(1500);
rd0_bit=0;
delay_us(18500);

}
   delay_ms(1000);
    for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
   
   
   
   lcd_cmd(_lcd_clear);
  }

 }



}






}