//--------------------------------------------------- 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; } //----------------------------------------------------- }
//=========================================================================== // 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); }
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 }
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); }
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); }
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; } } }
//////////////////////////////////////////////////////////////////////////////// // 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 ); }
//////////////////////////////////////////////////////////////////////////////// // 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 ); }
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
//////////////////////////////////////////////////////////////////////////////// // 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(); }
// 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; }
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 }
// 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 }
// 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); }
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); } }
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 }
/** @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 }
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); }
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 {
//=========================================================================== // 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; } }
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); }
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);*/ }
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); } } } } }
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); } } }
void lcd_puts(char *str) { while (*str) lcd_out(*str++, 1); }
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); } } }
//////////////////////////////////////////////////////////////////////////////// // 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(); }
void lcd_clear() { lcd_out(0x01, 0); lcd_goto(0, 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); } } } }