您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > OLED显示屏-通用-驱动程序-【详细注释】个人编写
/*******************************************************************************函数名称:WriteCommand函数功能:OLED写命令字函数介绍:OLED写命令字函数。输入参数:Cmd:命令字。返回值:无作者:日期:2018.03.07******************************************************************************/voidWriteCommand(u8Cmd){I2CStart('L');Write8Bits('L',0x78);TestACK('L');Write8Bits('L',0x00);TestACK('L');Write8Bits('L',Cmd);TestACK('L');I2CStop('L');}/*******************************************************************************函数名称:WriteData函数功能:OLED写数据函数介绍:OLED写数据函数。输入参数:Data:待写数据。返回值:无作者:日期:2018.03.07******************************************************************************/voidWriteData(u8Data){I2CStart('L');Write8Bits('L',0x78);TestACK('L');Write8Bits('L',0x40);TestACK('L');Write8Bits('L',Data);TestACK('L');I2CStop('L');}/*******************************************************************************函数名称:OLED_WriteByte函数功能:OLED写字节数据函数介绍:OLED写字节数据函数。输入参数:Data:待写数据;typel:1为数据,0为指令。返回值:无作者:日期:2018.03.07******************************************************************************/voidOLED_WriteByte(u8data,u8type1){if(type1==1)WriteData(data);elseWriteCommand(data);}/*******************************************************************************函数名称:OLED_ON函数功能:OLED开启函数介绍:OLED开启函数。输入参数:无返回值:无作者:日期:2018.03.07******************************************************************************/voidOLED_ON(){OLED_WriteByte(0x8D,OLED_CMD);OLED_WriteByte(0x14,OLED_CMD);OLED_WriteByte(0xAF,OLED_CMD);}/*******************************************************************************函数名称:OLED_OFF函数功能:OLED关闭函数介绍:OLED关闭函数。输入参数:无返回值:无作者:日期:2018.03.07******************************************************************************/voidOLED_OFF(){OLED_WriteByte(0x8D,OLED_CMD);OLED_WriteByte(0x10,OLED_CMD);OLED_WriteByte(0xAE,OLED_CMD);}/*******************************************************************************函数名称:OLED_Clear函数功能:OLE清屏函数介绍:OLED清屏函数。输入参数:无返回值:无作者:日期:2018.03.07******************************************************************************/voidOLED_Clear(){u8i,j;for(i=0;i8;i++){OLED_WriteByte(0xB0+i,OLED_CMD);OLED_WriteByte(0x00,OLED_CMD);OLED_WriteByte(0x10,OLED_CMD);for(j=0;j128;j++)OLED_WriteByte(0,OLED_DATA);}}/*******************************************************************************函数名称:OLED_Pow函数功能:求幂函数介绍:求幂函数。输入参数:m:待计算数据;n:n次幂。返回值:无作者:日期:2018.03.07******************************************************************************/u32OLED_Pow(u8m,u8n){u32result=1;while(n--)result=result*m;returnresult;}/*******************************************************************************函数名称:OLED_SetPos函数功能:设置显示坐标函数介绍:设置显示坐标函数。输入参数:x:显示x坐标;y:显示y坐标。返回值:无作者:日期:2018.03.07******************************************************************************/voidOLED_SetPos(u8x,u8y){OLED_WriteByte(0xB0+y,OLED_CMD);OLED_WriteByte(((x&0xf0)4)|0x10,OLED_CMD);OLED_WriteByte((x&0x0f),OLED_CMD);}/*******************************************************************************函数名称:ShowChar函数功能:显示字符函数介绍:显示字符函数。输入参数:x:显示x坐标;y:显示y坐标;chr:待显示字符;size:字符长度。返回值:无作者:日期:2018.03.07******************************************************************************/voidShowChar(u8x,u8y,u8chr,u8size){u8c=0;u8i=0;c=chr-'0';y=y/8;if(x127){x=0;y=y+4;}if(size==32){OLED_SetPos(x,y);for(i=0;i18;i++)OLED_WriteByte(F18X32[c*72+i],OLED_DATA);OLED_SetPos(x,y+1);for(i=0;i18;i++)OLED_WriteByte(F18X32[c*72+i+18],OLED_DATA);OLED_SetPos(x,y+2);for(i=0;i18;i++)OLED_WriteByte(F18X32[c*72+i+36],OLED_DATA);OLED_SetPos(x,y+3);for(i=0;i18;i++)OLED_WriteByte(F18X32[c*72+i+54],OLED_DATA);}/*else{OLED_SetPos(x,y);for(i=0;i6;i++)OLED_WriteByte(F6X8[c][i],OLED_DATA);}*/}/*******************************************************************************函数名称:ShowString函数功能:显示字符串函数介绍:显示字符串函数。输入参数:x:显示x坐标;y:显示y坐标;chr:待显示字符串;size:字符串长度。返回值:无作者:日期:2018.03.07******************************************************************************/voidShowString(u8x,u8y,u8*chr,u8Char_Size){u8i=0;while(chr[i]!='\0'){ShowChar(x,y,chr[i],Char_Size);x+=18;if(x120){x=0;y+=3;}i++;}}/*******************************************************************************函数名称:ShowNumber函数功能:显示数字函数介绍:显示数字函数。输入参数:x:显示x坐标;y:显示y坐标;num:待显示数字;len:数字长度;size2:字宽。返回值:无作者:日期:2018.03.07******************************************************************************/voidShowNumber(u8x,u8y,u32num,u8len,u8size2){u8t,temp;u8endshow=0;for(t=0;tlen;t++){temp=(num/OLED_Pow(10,len-t-1)%10);if((endshow==0)&&(t(len-1))){if(temp==0){ShowChar(x+(size2/2)*t,y,,size2);continue;}elseendshow=1;}ShowChar(x+(size2/2)*t,y,temp+0,size2);}}/*******************************************************************************函数名称:ShowBMP函数功能:绘图函数介绍:绘图函数。输入参数:x0:显示起始x坐标;y0:显示起始y坐标;x1:显示终止x坐标;y2:显示终止y坐标;BMP:待显示图片数据。返回值:无作者:日期:2018.03.07******************************************************************************/voidShowBMP(u8x0,u8y0,u8x1,u8y1,u8BMP[]){u16i=0;u8x,y;if(y1%8==0)y1=y1/8;elsey1=y1/8+1;if(y0%8==0)y0=y0/8;elsey0=y0/8+1;for(y=y0;yy1;y++){OLED_SetPos(x0,y);for(x=x0;xx1;x++)OLED_WriteByte(B
本文标题:OLED显示屏-通用-驱动程序-【详细注释】个人编写
链接地址:https://www.777doc.com/doc-4683873 .html