/*********************LCD初始化************************************/ void OLED_Init(void) { OLED_DLY_ms(1); OLED_WrCmd(0xae);//--turn off oled panel OLED_WrCmd(0x00);//---set low column address OLED_WrCmd(0x10);//---set high column address OLED_WrCmd(0x40);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F) OLED_WrCmd(0x81);//--set contrast control register OLED_WrCmd(0xcf); // Set SEG Output Current Brightness OLED_WrCmd(0xa1);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常 OLED_WrCmd(0xc8);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 OLED_WrCmd(0xa6);//--set normal display OLED_WrCmd(0xa8);//--set multiplex ratio(1 to 64) OLED_WrCmd(0x3f);//--1/64 duty OLED_WrCmd(0xd3);//-set display offset Shift Mapping RAM Counter (0x00~0x3F) OLED_WrCmd(0x00);//-not offset OLED_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency OLED_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec OLED_WrCmd(0xd9);//--set pre-charge period OLED_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock OLED_WrCmd(0xda);//--set com pins hardware configuration OLED_WrCmd(0x12); OLED_WrCmd(0xdb);//--set vcomh OLED_WrCmd(0x40);//Set VCOM Deselect Level OLED_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02) OLED_WrCmd(0x02);// OLED_WrCmd(0x8d);//--set Charge Pump enable/disable OLED_WrCmd(0x14);//--set(0x10) disable OLED_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5) OLED_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7) OLED_WrCmd(0xaf);//--turn on oled panel OLED_Fill(0x00); //初始清屏 OLED_Set_Pos(0,0); }
//============================================================== //函数名: void LCD_Rectangle(uint8 x1,uint8 y1, // uint8 x2,uint8 y2,uint8 color,uint8 gif) //功能描述:绘制一个实心矩形 //参数:左上角坐标(x1,y1),右下角坐标(x2,y2) // 其中x1、x2的范围0~127,y1,y2的范围0~63,即真实坐标值 //返回:无 //============================================================== void OLED_Rectangle(uint8 x1,uint8 y1,uint8 x2,uint8 y2,uint8 gif) { uint8 n; OLED_Set_Pos(x1,y1>>3); for(n=x1;n<=x2;n++) { OLED_WrDat(0x01<<(y1%8)); if(gif == 1) OLED_DLY_ms(50); } OLED_Set_Pos(x1,y2>>3); for(n=x1;n<=x2;n++) { OLED_WrDat(0x01<<(y2%8)); if(gif == 1) OLED_DLY_ms(5); } }
/************************************************************************* * 蓝宙电子工作室 * * 函数名称:OLED_Init * 功能说明:初始化函数 * 参数说明:无 * 函数返回:无 * 修改时间:2014-9-13 * 备 注: *************************************************************************/ void OLED_Init(void) { PORT_PCR_REG(PORTE_BASE_PTR, 1)= 0 ; PORT_PCR_REG(PORTE_BASE_PTR, 1)= PORT_PCR_MUX(1); GPIO_PDDR_REG(PTE_BASE_PTR) |= (1 << 1); GPIO_PDOR_REG(PTE_BASE_PTR) |= (1<<(1)); PORT_PCR_REG(PORTE_BASE_PTR, 2)= 0 ; PORT_PCR_REG(PORTE_BASE_PTR, 2)= PORT_PCR_MUX(1); GPIO_PDDR_REG(PTE_BASE_PTR) |= (1 << 2); GPIO_PDOR_REG(PTE_BASE_PTR) |= (1<<(2)); PORT_PCR_REG(PORTE_BASE_PTR, 3)= 0 ; PORT_PCR_REG(PORTE_BASE_PTR, 3)= PORT_PCR_MUX(1); GPIO_PDDR_REG(PTE_BASE_PTR) |= (1 << 3); GPIO_PDOR_REG(PTE_BASE_PTR) |= (1<<(3)); PORT_PCR_REG(PORTE_BASE_PTR, 4)= 0 ; PORT_PCR_REG(PORTE_BASE_PTR, 4)= PORT_PCR_MUX(1); GPIO_PDDR_REG(PTE_BASE_PTR) |= (1 << 4); GPIO_PDOR_REG(PTE_BASE_PTR) |= (1<<(4)); PORT_PCR_REG(PORTE_BASE_PTR, 5)= 0 ; PORT_PCR_REG(PORTE_BASE_PTR, 5)= PORT_PCR_MUX(1); GPIO_PDDR_REG(PTE_BASE_PTR) |= (1 << 5); GPIO_PDOR_REG(PTE_BASE_PTR) |= (1<<(5)); /* gpio_init (PTE1, GPO,HIGH); gpio_init (PTE2, GPO,HIGH); gpio_init (PTE3, GPO,HIGH); gpio_init (PTE4, GPO,HIGH); gpio_init (PTE5, GPO,LOW);*/ OLED_SCL=1; OLED_CS = 0 ; ///使能信号端,拉低时正常使用 OLED_RST=0; OLED_DLY_ms(100); OLED_RST=1; OLED_WrCmd(0xae);//--turn off oled panel OLED_WrCmd(0x00);//---set low column address OLED_WrCmd(0x10);//---set high column address OLED_WrCmd(0x40);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F) OLED_WrCmd(0x81);//--set contrast control register OLED_WrCmd(0xcf); // Set SEG Output Current Brightness OLED_WrCmd(0xa1);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常 OLED_WrCmd(0xc8);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 OLED_WrCmd(0xa6);//--set normal display OLED_WrCmd(0xa8);//--set multiplex ratio(1 to 64) OLED_WrCmd(0x3f);//--1/64 duty OLED_WrCmd(0xd3);//-set display offset Shift Mapping RAM Counter (0x00~0x3F) OLED_WrCmd(0x00);//-not offset OLED_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency OLED_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec OLED_WrCmd(0xd9);//--set pre-charge period OLED_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock OLED_WrCmd(0xda);//--set com pins hardware configuration OLED_WrCmd(0x12); OLED_WrCmd(0xdb);//--set vcomh OLED_WrCmd(0x40);//Set VCOM Deselect Level OLED_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02) OLED_WrCmd(0x02);// OLED_WrCmd(0x8d);//--set Charge Pump enable/disable OLED_WrCmd(0x14);//--set(0x10) disable OLED_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5) OLED_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7) OLED_WrCmd(0xaf);//--turn on oled panel OLED_Fill(0x00); //初始清屏 //OLED_Set_Pos(0,0); //OLED_Fill(0x00);//黑屏 //OLED_DLY_ms(100); }