/*-============================================================================/ Takes an integer as its argument, prints out its hex equivalent. /============================================================================-*/ void LCD_numint_out(int decimalNum) { char numbuff[17] = "0123456789ABCDEF"; if(decimalNum < 16 && decimalNum >= 0) { LCD_write_char(numbuff[decimalNum]); } else { LCD_write_char(' '); } }
void LCD_write_str(INT8U x,INT8U Y,INT8U *s) { LCD_write_char(0,' '); LCD_set_xy( x, Y ); //写地址 while (*s) // 写显示字符 { LCD_write_char( 0, *s ); s ++; } }
int LCD_PutStr(unsigned char *DData,int pos, int size) { unsigned char i; if(pos==-1) { LCD_write_command(0x01); //清屏 rt_thread_delay(2); pos=0; } while ((*DData)!='\0' && size) { switch(*DData) { case '\n': //如果是\n,则换行 { if(pos<17) { for(i=pos; i<16; i++) LCD_write_char(i%16, i/16, ' '); pos=16; } else { for(i=pos; i<32; i++) LCD_write_char(i%16, i/16, ' '); pos=0; } break; } case '\b': //如果是\b,则退格 { if(pos>0) pos--; LCD_write_char(pos%16, pos/16, ' '); break; } default: { if((*DData)<0x20) { *DData=' '; } LCD_write_char(pos%16, pos/16, *DData); pos++; break; } } DData++; size--; } return(pos); }
void main(void) { configurazione(); LCD_initialize(16); while (1) { id = msg.identifier; data = msg.data[0]; LCD_goto_xy(1, 0); LCD_write_message("id"); LCD_goto_xy(1, 3); LCD_write_char(id); LCD_goto_xy(2, 0); LCD_write_char(data); delay_ms(1000); LCD_clear(); } }
void LCD4884::LCD_write_string(byte X, byte Y, const char *s, char mode) { LCD_set_XY(X, Y); while (*s) { LCD_write_char(*s, mode); s++; } }
//************************************************************************** //* Write a string on the display //************************************************************************** //* Calling arguments: //* char *c : pointer to the string //************************************************************************** void LCD_write_string (char *c) { while (*c) { LCD_write_char(*c); c++; } }
//************************************************************************** //* Write a string on the display //************************************************************************** //* Calling arguments: //* char *c : pointer to the string //************************************************************************** void LCD_write_string (char *c) { char count=0; while (*c) { LCD_write_char(*c); c++; } }
void LCD_Display_String(unsigned char X,unsigned char Y, uint8 *s) { LCD_set_XY(X, Y); while(*s != 0) { LCD_write_char(*s); s++; } }
void LCD4884::LCD_write_string(unsigned char X,unsigned char Y,char *s, char mode) { LCD_set_XY(X,Y); while (*s) { LCD_write_char(*s, mode); s++; } }
/*----------------------------------------------------------------------- LCD_write_english_String : 英文字符串显示函数 输入参数:*s :英文字符串指针; X、Y : 显示字符串的位置,x 0-83 ,y 0-5 编写日期 :2004-8-10 最后修改日期 :2004-8-10 -----------------------------------------------------------------------*/ void LCD_write_english_string(unsigned char X,unsigned char Y,char *s) { LCD_set_XY(X,Y); while (*s) { LCD_write_char(*s); s++; } }
/*FUNCTION*------------------------------------------------------------------- * * Function Name : LCD_write_String * Returned Value : void * Comments : * This function put a string to LCD * *END*----------------------------------------------------------------------*/ void LCD_write_String(unsigned char X,unsigned char Y,unsigned char invert,char *s) { LCD_set_XY(X,Y); while (*s) { LCD_write_char(*s,invert); s++; } }
void LCD_set_xy( INT8U x,INT8U y ) //写地址函数 { INT8U address; if (y == 0) address = 0x80 + x; else address = 0xc0 + x; LCD_write_char( address, 0 ); }
void main() { uchar *p; p="by Jasper"; Init(); IsReset=0; IsReset=eeprom_read(100); if(!IsReset) //首次进入输入密码和显示欢迎界面 { Confirm(); LCD_clear(); delay_ms(200); LCD_write_str(5,0,"welcome"); while(*p) { LCD_write_char(i,1,*p); p++; i++; delay_ms(100); } } LCD_clear(); //正式进入系统 LCD_write_str(0,0,"1bell2led3motor"); LCD_write_str(0,1,"4fix_password"); while(1) { eeprom_write(100,0); if(select=='1') //蜂鸣器模式 { LCD_clear(); LCD_write_str(0,0,"buzz..send * or"); LCD_write_str(0,1,"shutdown to exit"); Bell(); } if(select=='2') LED(); //led模式 if(select=='3') Motor(); //电机模式 if(select=='4') Write_password(); //修改密码模式 } }
/*********************************************************** 函数功能:线束数字 ***********************************************************/ void LCD_Display_Num(int16 num) { uint8 temp,i=0,string[18] = {0}; if(num==0) { LCD_write_char('0'); return ; } if(num<0) { //LPLD_UART_PutChar(UART0,'-'); num = -num; } while(num!=0) { temp = num%10; string[i++] = temp; num = num/10; } while(i--) { LCD_write_char(string[i] + '0'); } }
void LCD_write_num(u8 X, u8 Y, int num) { u8 b[6], i; LCD_set_XY(X,Y); for(i = 0; i < 6; i++) { b[5-i] = (num % 10) + '0'; num = num / 10; } for(i = 0; i < 6; i++) { LCD_write_char(b[i]); } }
void Init_Lcd() //LCD 初始化 { LCD_write_char(0x38,0); Delay_ms(5); LCD_write_char(0x38,0); Delay_ms(5); LCD_write_char(0x38,0); Delay_ms(5); LCD_write_char(0x0c,0); Delay_ms(5); LCD_write_char(0x06,0); Delay_ms(5); LCD_write_char(0x0c,0); Delay_ms(5); }
/***********显示电源电压*************/ void power_display(void) { u8 a,b,c; a=(u8)((power_get()/100)+48); b=(u8)(((power_get()%100)/10)+48); c=(u8)((power_get()%10)+48); LCD_set_XY(0,0); LCD_write_char('P'); LCD_write_char('O'); LCD_write_char('W'); LCD_write_char('E'); LCD_write_char('R'); LCD_write_char(':'); LCD_write_char(a); LCD_write_char('.'); LCD_write_char(b); LCD_write_char(c); LCD_write_char('V'); }
/*********************************************************** 函数名称:LCDTIME 函数功能:液晶显示和 入口参数:c : 显示的字符 出口参数:无 备 注: ***********************************************************/ void LCDTIME(void){ u8 AspeedS0, AspeedS1, AspeedS2, AspeedS3; LCD_set_XY(0, 0) ; LCD_write_char('L'); LCD_write_char('a'); LCD_write_char('n'); LCD_write_char('d'); LCD_write_char('z'); LCD_write_char('o'); /************** 第二行显示内容 ************* */ AspeedS0 = (u8) ((ASPeed1/1000) + 48 ); AspeedS1 = (u8) (((ASPeed1%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed1%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed1%10) + 48 ); LCD_set_XY(0, 1) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('0'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第三行显示内容 **************/ AspeedS0 = (u8) ((ASPeed2/1000) + 48 ); AspeedS1 = (u8) (((ASPeed2%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed2%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed2%10) + 48 ); LCD_set_XY(0, 2) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('1'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第四行显示内容 **************/ AspeedS0 = (u8) ((ASPeed3/1000) + 48 ); AspeedS1 = (u8) (((ASPeed3%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed3%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed3%10) + 48 ); LCD_set_XY(0, 3) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('2'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第五行显示内容 **************/ AspeedS0 = (u8) ((ASPeed4/1000) + 48 ); AspeedS1 = (u8) (((ASPeed4%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed4%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed4%10) + 48 ); LCD_set_XY(0, 4) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('3'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第六行显示内容 **************/ AspeedS0 = (u8) ((ASPeed5/1000) + 48 ); AspeedS1 = (u8) (((ASPeed5%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed5%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed5%10) + 48 ); LCD_set_XY(0, 5) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('4'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); }
void KYELCD(void){ static u8 t8rmp0 = 0,t8rmp1 = 0; static u8 AupDown ; u8 AspeedS0, AspeedS1, AspeedS2, AspeedS3; if(key8flg >= 1) { keyflg = 0 ; key8flg -- ; if(AupDown > 0) { AupDown -- ; } } if(key11flg >= 1) { if(AupDown < 5) { AupDown ++ ; } keyflg = 0 ; key11flg -- ; } /********************* 160ms程序执行代码段 *********************/ if(TIME0flag_80ms == 1) { TIME0flag_80ms = 0 ; if(AupDown == 0) { if(key9flg >= 1) { keyflg = 0 ; ASPeed0 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed0-key10flg) < 0) { ASPeed0 = 0 ; key10flg = 0 ; } else { ASPeed0 -= key10flg ; key10flg = 0 ; } } } else if(AupDown == 1) { if(key9flg >= 1) { keyflg = 0 ; ASPeed1 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed1-key10flg) < 0) { ASPeed1 = 0 ; key10flg = 0 ; } else { ASPeed1 -= key10flg ; key10flg = 0 ; } } } else if(AupDown == 2) { if(key9flg >= 1) { keyflg = 0 ; ASPeed2 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed2-key10flg) < 0) { ASPeed2 = 0 ; key10flg = 0 ; } else { ASPeed2 -= key10flg ; key10flg = 0 ; } } } else if(AupDown == 3) { if(key9flg >= 1) { keyflg = 0 ; ASPeed3 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed3-key10flg) < 0) { ASPeed3 = 0 ; key10flg = 0 ; } else { ASPeed3 -= key10flg ; key10flg = 0 ; } } } else if(AupDown == 4) { if(key9flg >= 1) { keyflg = 0 ; ASPeed4 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed4-key10flg) < 0) { ASPeed4 = 0 ; key10flg = 0 ; } else { ASPeed4 -= key10flg ; key10flg = 0 ; } } } else if(AupDown == 5) { if(key9flg >= 1) { keyflg = 0 ; ASPeed5 += key9flg ; key9flg = 0 ; } if(key10flg >= 1){ keyflg = 0 ; if((ASPeed5-key10flg) < 0) { ASPeed5 = 0 ; key10flg = 0 ; } else { ASPeed5 -= key10flg ; key10flg = 0 ; } } } if(t8rmp0 == 1) { t8rmp0 = 0 ; if(AupDown == 0) LCD_set_XY(0, 0) ; else if(AupDown == 1) LCD_set_XY(0, 1) ; else if(AupDown == 2) LCD_set_XY(0, 2) ; else if(AupDown == 3) LCD_set_XY(0, 3) ; else if(AupDown == 4) LCD_set_XY(0, 4) ; else if(AupDown == 5) LCD_set_XY(0, 5) ; for(t8rmp1 = 0 ; t8rmp1 < 83 ;t8rmp1 ++) { LCD_write_byte(0, 1); } } else{ t8rmp0 = 1 ; LCD_set_XY(0, 0) ; LCD_write_char('L'); LCD_write_char('a'); LCD_write_char('n'); LCD_write_char('d'); LCD_write_char('z'); LCD_write_char('o'); /************** 第二行显示内容 ************* */ AspeedS0 = (u8) ((ASPeed1/1000) + 48 ); AspeedS1 = (u8) (((ASPeed1%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed1%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed1%10) + 48 ); LCD_set_XY(0, 1) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('0'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第三行显示内容 **************/ AspeedS0 = (u8) ((ASPeed2/1000) + 48 ); AspeedS1 = (u8) (((ASPeed2%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed2%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed2%10) + 48 ); LCD_set_XY(0, 2) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('1'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第四行显示内容 **************/ AspeedS0 = (u8) ((ASPeed3/1000) + 48 ); AspeedS1 = (u8) (((ASPeed3%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed3%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed3%10) + 48 ); LCD_set_XY(0, 3) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('2'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第五行显示内容 **************/ AspeedS0 = (u8) ((ASPeed4/1000) + 48 ); AspeedS1 = (u8) (((ASPeed4%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed4%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed4%10) + 48 ); LCD_set_XY(0, 4) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('3'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); /************** 第六行显示内容 **************/ AspeedS0 = (u8) ((ASPeed5/1000) + 48 ); AspeedS1 = (u8) (((ASPeed5%1000)/100) +48 ) ; AspeedS2 = (u8) (((ASPeed5%100)/10) + 48 ); AspeedS3 = (u8) ((ASPeed5%10) + 48 ); LCD_set_XY(0, 5) ; LCD_write_char('S'); LCD_write_char('p'); LCD_write_char('e'); LCD_write_char('e'); LCD_write_char('d'); LCD_write_char('4'); LCD_write_char(':'); LCD_write_char(AspeedS0); LCD_write_char(AspeedS1); LCD_write_char(AspeedS2); LCD_write_char(AspeedS3); } } }
int main(void) { double axg = 0, ayg = 0, azg = 0; double gxds = 0, gyds = 0, gzds = 0; //init mpu6050 mpu6050_init(); _delay_ms(50); LCD_init(); LCD_clear(); put_food(); // INtro while (1) { // Read current parameters mpu6050_getConvData(&axg, &ayg, &azg, &gxds, &gyds, &gzds); LCD_write_string(0,0," Little Snake "); LCD_write_string(0,3," >> Move << "); if (axg > LIMIT || axg < -LIMIT ||ayg < -LIMIT || ayg > LIMIT) break; } // Init snake, both on screen and array screen[3][5] = SNAKE; screen[3][6] = SNAKE; screen[3][7] = SNAKE; snake[0].x = 3; snake[0].y = 5; snake[1].x = 3; snake[1].y = 6; snake[2].x = 3; snake[2].y = 7; snake_tail = 0; snake_len = 3; for (int z=snake_len; z<MAX_LEN; z++) snake[z].x = -1; while(game) { // Read current parameters mpu6050_getConvData(&axg, &ayg, &azg, &gxds, &gyds, &gzds); // Take a decision if(axg > LIMIT) {if (direction != UP) direction = DOWN;} else if(axg < -LIMIT) {if (direction != DOWN) direction = UP;} if(ayg > LIMIT) {if (direction != LEFT) direction = RIGHT;} else if(ayg < -LIMIT) {if (direction != RIGHT) direction = LEFT;} // Make it happen change_dir(); // Check end game if (!game) break; LCD_init(); LCD_clear(); // Print entire screen for (int x=0; x<HEIGHT; x++) { for (int y=0; y<WIDTH; y++) { if (x == snake[snake_len-1].x && y == snake[snake_len-1].y) { LCD_write_char(HEAD); } else if (screen[x][y] == SNAKE) { LCD_write_char(SNAKE); } else if (screen[x][y] == FOOD) { LCD_write_char(FOOD); } else { LCD_write_char(SPACE); } } } _delay_ms(250); } }