#define F_CPU 16000000UL #include #include #include void init_display(); void init_timer0(); volatile uint8_t lcdx=0, lcdy=0; const char lcdcmd[4] = {??, ??, ??, ??}; unsigned char LCDline[4][16]={{"EE308 Midterm "}, {"April 27th, 2023"}, {"EE308 Board v3.0"}, {"Keyboard ----> "}}; const char LookUp[16] ={"0123456789ABCDEF"}; int main(void) { //_delay_ms(500); init_display(); init_timer0(); // initialize timer0 sei(); // enable global interrupts // loop forever while(1) { while((PINB|0xEF)==0xFF); while((PINB&0x10)==0x00); LCDline[3][15] = LookUp[PINB&0x0F]; } } void init_display() { DDRA = 0xFF; PORTC &= 0xAF; DDRC |= 0x50; PORTC &= 0xBF; PORTA = 0x38; PORTC |= 0x10; PORTC &= 0xEF; PORTA = 0x0C; PORTC |= 0x10; PORTC &= 0xEF; PORTA = 0x01; PORTC |= 0x10;; PORTC &= 0xEF; _delay_ms(2); } void init_timer0() { TCCR0B |= (1<