void lcd_init(void) { dis_cmd(0x02); dis_cmd(0x28); dis_cmd(0x0c); dis_cmd(0x01); }
void LCD_number(unsigned int value) { dis_cmd(0x04);//for decrementing the cursor position unsigned int a=0; while(value!=0) { a=value%10; dis_data(a+48); value=value/10; } dis_cmd(0x06);// for again incrementing the cursor position }
void LCD_position (unsigned char row, unsigned char col) { if (row==1) { row=0x80; dis_cmd(row+(col-1)); } if (row==2) { row=0xC0; dis_cmd(row+(col-1)); } }
void init_LCD(void) { dis_cmd(0x02); //sets in 4 bit mode _delay_ms(1); dis_cmd(0x28); //sets in 2 line mode _delay_ms(1); dis_cmd(0x01); //clears LCD _delay_ms(1); dis_cmd(0x0E); //turns cursor on _delay_ms(1); dis_cmd(0x80); //turns on LCD _delay_ms(1); }
void LCD_write_string_custom(char addr,char *data0) { int jj = 0; dis_cmd(addr); _delay_ms(20); while(data0[jj]!='\0') { dis_data(data0[jj]); _delay_ms(5); jj++; } }
void LCD_write_string_line1(char *data0) { int jj = 0; dis_cmd(0x80); _delay_ms(20); while(data0[jj]!='\0') { dis_data(data0[jj]); _delay_ms(5); jj++; } }
void LCD_write_string_line2(char *data1) { int i=0; dis_cmd(0xC0); _delay_ms(20); i=0; while(data1[i]!='\0') { dis_data(data1[i]); _delay_ms(5); i++; } }
int main() { DDRD=0XFF; while(1) { lcd_init(); for(int i=0;i<=12;i++) { dis_cmd(0x81); LCD_number(i); _delay_ms(1000); for(int j=0;j<60;j++) { dis_cmd(0x85); LCD_number(j); _delay_ms(1000); for(int k=0;k<60;k++) {dis_cmd(0x89); LCD_number(k); _delay_ms(1000);}dis_cmd(0x01); }dis_cmd(0x01); } } return 0; }
void LCD_write_string(char LINE_INDEX,char addr,char *data0) { if (LINE_INDEX == 1) { addr = addr + 0x80; } else { addr = addr + 0xC0; } int jj = 0; dis_cmd(addr); _delay_ms(20); while(data0[jj]!='\0') { dis_data(data0[jj]); _delay_ms(5); jj++; } }
void lcd_init() // fuction for intialize { LCD_PORT_DIR |= 0xFF; //Make LCD port output _delay_ms(500); dis_cmd(0x33); //to initialize LCD _delay_ms(100); dis_cmd(0x32); //to initialize LCD _delay_ms(100); dis_cmd(0x28); //to initialize LCD in 2 lines, 5X8 dots and 4bit mode. _delay_ms(100); dis_cmd(0x0C); // to set entire Display on, cursor on, blinking cursor on _delay_ms(100); dis_cmd(0x01); // clear LCD _delay_ms(100); dis_cmd(0x06); // to move cursor to right after each character display _delay_ms(100); dis_cmd(0x02); // to set DDRAM Address to 0 _delay_ms(200); }
int selectc() { int c, r; int ret; char h, l; unsigned int k_ch; c = (curchar / 16); r = (curchar % 16); for(;;) { dis_cmd(" Select Character"); sel_mode(); curchar = r + (c*16); display(curchar); h = ((mvwinch(set_win,(r+1),((c*2)+1))) & A_CHARTEXT); l = ((mvwinch(set_win,(r+1),((c*2)+2))) & A_CHARTEXT); wattron(set_win,A_REVERSE); mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); wattroff(set_win,A_REVERSE); wmove(set_win,(r+1),((c*2)+1)); wrefresh(set_win); k_ch = wgetch(set_win); switch(k_ch) { case K_LEFT: case KEY_LEFT: if(c > 0) { normal_set(r,c); c--; } break; case K_DOWN: case KEY_DOWN: if(r < 15) { normal_set(r,c); r++; } break; case K_UP: case KEY_UP: if(r > 0) { normal_set(r,c); r--; } break; case K_RIGHT: case KEY_RIGHT: if(c < 15) { normal_set(r,c); c++; } break; case 'e': case 'E': edit_mode(); dis_cmd(" Edit Character"); display(curchar); ret = edit(); if(ret == 1) save_ch(); break; case 'g': case 'G': dis_cmd(" Exchange: select Destination, then press RETURN or any other Key to ABORT"); sr = r; sc = c; scurchar = curchar; if((curchar = sel_dest()) == -1) { /* failsafe */ r = sr; c = sc; curchar = scurchar; } else { /* valid return */ normal_set(r,c); c = (curchar / 16); r = (curchar % 16); xchg_ch(scurchar,curchar); } break; case 'm': case 'M': dis_cmd(" Move: select Destination, then press RETURN or any other Key to ABORT"); sr = r; sc = c; scurchar = curchar; if((curchar = sel_dest()) == -1) { /* failsafe */ r = sr; c = sc; curchar = scurchar; } else { /* valid return */ normal_set(r,c); c = (curchar / 16); r = (curchar % 16); move_ch(scurchar,curchar); } break; case 'q': case 'Q': normal_set(r,c); wrefresh(set_win); return(1); break; case 'x': case 'X': normal_set(r,c); wrefresh(set_win); return(0); break; case 0x0c: wrefresh(curscr); break; default: beep(); break; } } }