unsigned char GLCD_ReadData(void) { unsigned char tmp; GLCD_WaitForStatus(0x80, 0); GLCD_WaitForStatus(0x80, 1); SED1520_CONTROL_PORT |= SED1520_A0; SED1520_CONTROL_PORT |= SED1520_RW; SED1520_DATA_DDR = 0x00; SED1520_DATA_PORT = 0xFF; if(lcd_x < 61) { SED1520_CONTROL_PORT |= SED1520_E1; asm("nop");asm("nop"); SED1520_CONTROL_PORT &= ~SED1520_E1; asm("nop");asm("nop"); SED1520_CONTROL_PORT |= SED1520_E1; asm("nop");asm("nop"); tmp = SED1520_DATA_PIN; SED1520_CONTROL_PORT &= ~SED1520_E1; } else { SED1520_CONTROL_PORT |= SED1520_E2; asm("nop");asm("nop"); SED1520_CONTROL_PORT &= ~SED1520_E2; asm("nop");asm("nop"); SED1520_CONTROL_PORT |= SED1520_E2; asm("nop");asm("nop"); tmp = SED1520_DATA_PIN; SED1520_CONTROL_PORT &= ~SED1520_E2; } SED1520_DATA_DDR = 0xFF; lcd_x++; if(lcd_x > 121) lcd_x = 0; return tmp; }