//------------------------------------------------------------------------------------------------- // Write data to current position //------------------------------------------------------------------------------------------------- void GLCD_WriteData(unsigned char dataToWrite) { while(GLCD_ReadStatus(screen_x / 64)&DISPLAY_STATUS_BUSY); // GPIO_StructInit(&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = (0xFF ); // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // GPIO_Init(KS0108_PORT, &GPIO_InitStructure); GPIO_Init(KS0108_PORT,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteLow(GPIOC, KS0108_RW); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_RS); GLCD_Delay(); GPIO_Write(KS0108_PORT, (GPIO_Pin_TypeDef)(dataToWrite )); GLCD_Delay(); GLCD_EnableController(screen_x / 64); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_EN); GLCD_Delay(); GPIO_WriteLow(GPIOC, KS0108_EN); GLCD_Delay(); GLCD_DisableController(screen_x / 64); screen_x++; }
void GLCD_Reset(void) { GPIO_WriteHigh(GPIOC, KS0108_RES); GLCD_Delay(); GPIO_WriteLow(GPIOC, KS0108_RES); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_RES); while(GLCD_ReadStatus(0)&DISPLAY_STATUS_BUSY); }
int GLCD_IsOFF () { char status; status = GLCD_ReadStatus (); if (status & P4_Status_On) return 1; else return 0; }//end of function GLCD_IsOFF
int GLCD_IsReset () { char status; status = GLCD_ReadStatus (); if (status & P4_Reset) return 1; else return 0; }//end of function GLCD_IsReset
int GLCD_IsBusy () { char status; status = GLCD_ReadStatus (); if (status&P4_Busy) return 1; else return 0; }//end of function GLCD_IsBusy
//------------------------------------------------------------------------------------------------- // Write command to specified controller //------------------------------------------------------------------------------------------------- void GLCD_WriteCommand(unsigned char commandToWrite, unsigned char controller) { while(GLCD_ReadStatus(controller)&DISPLAY_STATUS_BUSY); KS0108_DATA_DIR = 0xFF; KS0108_CTRL_PORT &= ~(KS0108_RW | KS0108_RS); GLCD_EnableController(controller); KS0108_DATA_PORT = commandToWrite; KS0108_CTRL_PORT |= KS0108_EN; GLCD_Delay(); KS0108_CTRL_PORT &= ~KS0108_EN; GLCD_DisableController(controller); }
//------------------------------------------------------------------------------------------------- // Write data to current position //------------------------------------------------------------------------------------------------- void GLCD_WriteData(unsigned char dataToWrite) { while(GLCD_ReadStatus(screen_x / 64)&DISPLAY_STATUS_BUSY); KS0108_DATA_DIR = 0xFF; KS0108_CTRL_PORT &= ~KS0108_RW; KS0108_CTRL_PORT |= KS0108_RS; KS0108_DATA_PORT = dataToWrite; GLCD_EnableController(screen_x / 64); KS0108_CTRL_PORT |= KS0108_EN; GLCD_Delay(); KS0108_CTRL_PORT &= ~KS0108_EN; GLCD_DisableController(screen_x / 64); screen_x++; }
//------------------------------------------------------------------------------------------------- // Read data from current position //------------------------------------------------------------------------------------------------- unsigned char GLCD_ReadData(void) { unsigned char data; while(GLCD_ReadStatus(screen_x / 64)&DISPLAY_STATUS_BUSY); KS0108_DATA_DIR = 0x00; KS0108_CTRL_PORT |= (KS0108_RW | KS0108_RS); GLCD_EnableController(screen_x / 64); //GLCD_Delay(); KS0108_CTRL_PORT |= KS0108_EN; GLCD_Delay(); data = KS0108_DATA_PIN; KS0108_CTRL_PORT &= ~KS0108_EN; GLCD_DisableController(screen_x / 64); screen_x++; return data; }
//------------------------------------------------------------------------------------------------- // Write command to specified controller //------------------------------------------------------------------------------------------------- void GLCD_WriteCommand(unsigned char commandToWrite, unsigned char controller) { while(GLCD_ReadStatus(controller)&DISPLAY_STATUS_BUSY); // GPIO_StructInit(&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = (0xFF ); // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // GPIO_Init(KS0108_PORT, &GPIO_InitStructure); GPIO_Init(KS0108_PORT,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteLow(GPIOC, (GPIO_Pin_TypeDef)(KS0108_RS | KS0108_RW)); GLCD_Delay(); GLCD_EnableController(controller); GLCD_Delay(); GPIO_Write(KS0108_PORT, (GPIO_Pin_TypeDef)(commandToWrite )); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_EN); GLCD_Delay(); GPIO_WriteLow(GPIOC, KS0108_EN); GLCD_Delay(); GLCD_DisableController(controller); }
main () { char status; int i, j; system_init_config (); GLCD_Reset (); Set_DisplayOn (); status = GLCD_ReadStatus (); Set_DisplayStartLine (0); Set_Yaddr (0); Set_Xaddr (0); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0xaa); Set_Xaddr (1); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0xaa); Set_Xaddr (2); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0xbb); Set_Xaddr (3); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0x0f); Set_Xaddr (4); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0x6a); Set_Xaddr (5); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0x30); Set_Xaddr (6); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0xcc); Set_Xaddr (7); for (i=0;i<64;i++) Send_Data (0x00); for (i=0;i<64;i++) Send_Data (0xbb); while (1); }//end of function main