Chip type : ATmega16 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ unsigned char start; unsigned char x; unsigned char i,j,a,b,mode; unsigned char rmc[15][15],buffer[15][15]; #define mode0 PIND.4 #define mode1 PIND.5 #define mode2 PIND.6 ………………………… void xu_ly_RMC() { x = getchar(); switch(x) { case 'R': start = 1; i = 0; j = 0; break; //-----------------case 13: if(start) { start = 0; for(i=0;i<10;i++) { for(j=0;j<10;j++) { buffer[i][j] = rmc[i][j]; } } } break; //-----------------case ',': if(start) {
j = 0; i++; } break; //------------------default: if(start) { rmc[i][j] = x; j++; } } } //-------- HAM HIEN THI TIME ---------void hien_thi_TIME() { xu_ly_RMC(); lcd_gotoxy(0,0); lcd_putsf("Time:"); lcd_gotoxy(6,0); lcd_putchar(buffer[1][0]); lcd_putchar(buffer[1][1]); lcd_putchar(':'); lcd_putchar(buffer[1][2]); lcd_putchar(buffer[1][3]); lcd_putchar(':'); lcd_putchar(buffer[1][4]); lcd_putchar(buffer[1][5]); } //-------- HAM HIEN THI DATE ---------void hien_thi_DATE() { xu_ly_RMC(); lcd_gotoxy(0,1); lcd_putsf("Date:"); lcd_gotoxy(6,1); lcd_putchar(buffer[9][0]); lcd_putchar(buffer[9][1]); lcd_putchar('/'); lcd_putchar(buffer[9][2]); lcd_putchar(buffer[9][3]); lcd_putchar('/'); lcd_putchar(buffer[9][4]); lcd_putchar(buffer[9][5]); }
//-------- HAM HIEN THI KINH DO ---------void hien_thi_KINHDO() { xu_ly_RMC(); lcd_gotoxy(0,0); lcd_putsf("KD:"); lcd_gotoxy(3,0); lcd_putchar(buffer[5][0]); lcd_putchar(buffer[5][1]); lcd_putchar(buffer[5][2]); lcd_putchar(0xDF); //---for(a=3;a<10;a++) { lcd_putchar(buffer[5][a]); } lcd_putsf("'"); //---lcd_putchar(buffer[6][0]); } //-------- HAM HIEN THI VIDO ---------void hien_thi_VIDO() { xu_ly_RMC(); lcd_gotoxy(0,1); lcd_putsf("VD:"); lcd_gotoxy(4,1); lcd_putchar(buffer[3][0]); lcd_putchar(buffer[3][1]); lcd_putchar(0xDF); //---for(b=2;b<9;b++) { lcd_putchar(buffer[3][b]); } lcd_putsf("'"); //---lcd_putchar(buffer[4][0]); } //-------- HAM HIEN THI TOC DO ---------void hien_thi_TOCDO() { xu_ly_RMC();
lcd_gotoxy(0,0); lcd_putsf("Toc do:"); lcd_gotoxy(7,0); lcd_putchar(buffer[7][0]); lcd_putchar(buffer[7][1]); lcd_putchar(buffer[7][2]); lcd_putsf(" Haily"); } //-------- HAM HIEN THI GOC ---------void hien_thi_GOC() { xu_ly_RMC(); lcd_gotoxy(0,1); lcd_putsf("Goc:"); lcd_gotoxy(7,0); lcd_putchar(buffer[8][0]); lcd_putchar(buffer[8][1]); lcd_putchar(buffer[8][2]); lcd_putchar(buffer[8][3]); lcd_putchar(buffer[8][4]); lcd_putchar(0xDF); } //------------------------------------------------
void main(void) { while (1) { if (!mode0) { lcd_clear(); mode=0; } if (!mode1) { mode=1; lcd_clear(); } if (!mode2) { mode=2; lcd_clear(); } switch(mode) { case 0: hien_thi_KINHDO(); hien_thi_VIDO(); break; //-----------------case 1: hien_thi_TIME(); hien_thi_DATE(); break; //-----------------case 2: hien_thi_TOCDO(); hien_thi_GOC(); break; } }; }