int main () { pl2303_init (); led_init (); disp_init (); serial_init (9600); while (1) { int c; switch ((c = serial_getchar ())) { case '!': led_all_off (); break; case '&': switch (serial_getchar ()) { case 'R': led_on (LED_R); break; case 'G': led_on (LED_G); break; case 'B': led_on (LED_B); break; case 'r': led_off (LED_R); break; case 'g': led_off (LED_G); break; case 'b': led_off (LED_B); break; case 'i': serial_puts ("Pripravek PIC24f Starter Kit;"); break; case 's': disp_clear (); disp_at (1, 1); while ((c = serial_getchar ()) != ';') disp_char (c); break; default: disp_clear (); disp_at (1, 1); disp_str ("unrecognized '"); disp_char (c); disp_char ('\''); } } } return 0; }
/*----------------------------------------------------------------------- LCD_write_english_String : 英文字符串显示函数 输入参数:*s :英文字符串指针; X、Y : 显示字符串的位置,x 0-83 ,y 0-5 -----------------------------------------------------------------------*/ void NOKIA5110::disp_string(unsigned char X,unsigned char Y,const char *s) { set_xy(X,Y); while (*s) { disp_char(*s); s++; } }
void LCD1602::disp_date_time(uint32_t year,uint8_t month,uint8_t day,uint8_t hour,uint8_t min,uint8_t sec) { char s[8]; set_pos(1,0); disp_string("Date:"); sprintf(s,"%04d-%02d-%02d",year,month,day); disp_string(s); set_pos(1,15); disp_char('*'); //第一行结束符显示 set_pos(2,0); disp_string("Time: "); sprintf(s,"%02d:%02d:%02d",hour,min,sec); disp_string(s); set_pos(2,15); disp_char('*'); //第二行结束符显示 }
void LCD1602::disp_time_HMS(uint8_t hour,uint8_t min,uint8_t sec) { char s[8]; set_pos(2,0); disp_string("Time: "); sprintf(s,"%02d:%02d:%02d",hour,min,sec); disp_string(s); set_pos(2,15); disp_char('*'); //第二行结束符显示 }
void NOKIA5110::printf(uint8_t row,uint8_t col,const char *fmt,...) { char buf[16]; u8 i = 0; va_list va_params; va_start(va_params,fmt); vsprintf(buf,fmt,va_params); va_end(va_params); set_xy(row,col); while(buf[i] != '\0') { disp_char(buf[i++]); } }