IIC OLED驱动
时间:11-11
来源:互联网
点击:
- _WrDat(0);
- }
- j++;
- }
- ucIdxX+=14;
- }
- return;
- }
- /*****************************************************************************
- 函 数 名 : LED_PXx16MixStr
- 功能描述 : 输出14x16汉字和字符混合字符串 (字符串表格中需含有此字)
- 输入参数 : UCHAR8 ucIdxX 为显示的横坐标0~114
- UCHAR8 ucIdxY 为页范围0~3
- UCHAR8 ucDataStr[] 要显示的中文字符串
- 输出参数 : NONE
- 返 回 值 : NONE
- *****************************************************************************/
- VOIDLED_PXx16MixStr(UCHAR8 ucIdxX,UCHAR8 ucIdxY,UCHAR8 ucDataStr[])
- {
- UCHAR8 ucTmpStr[3];
- UCHAR8 i=0;
- while(ucDataStr[i]!=\0)
- {
- if(ucDataStr[i]>127)
- {
- ucTmpStr[0]=ucDataStr[i];
- ucTmpStr[1]=ucDataStr[i+1];
- ucTmpStr[2]=\0;//汉字为两个字节
- LED_P14x16Str(ucIdxX,ucIdxY,ucTmpStr);//显示汉字
- ucIdxX+=14;
- i+=2;
- }
- else
- {
- ucTmpStr[0]=ucDataStr[i];
- ucTmpStr[1]=\0;//字母占一个字节
- LED_P8x16Str(ucIdxX,ucIdxY,ucTmpStr);//显示字母
- ucIdxX+=8;
- i+=1;
- }
- }
- return;
- }
- /*****************************************************************************
- 函 数 名 : LED_PrintChar
- 功能描述 : 将一个Char型数转换成3位数进行显示
- 输入参数 : UCHAR8 ucIdxX ucIdxX的范围为0~122
- UCHAR8 ucIdxY ucIdxY的范围为0~7
- CHAR8 cData cData为需要转化显示的数值 -128~127
- 输出参数 : none
- 返 回 值 : none
- *****************************************************************************/
- VOIDLED_PrintChar(UCHAR8 ucIdxX,UCHAR8 ucIdxY,CHAR8 cData)
- {
- USHORT16 i,j,k,usData;
- if(cData<0)
- {
- LED_P6x8Char(ucIdxX,ucIdxY,-);
- usData=(USHORT16)(-cData);
- }
- else
- {
- LED_P6x8Char(ucIdxX,ucIdxY,+);
- usData=(USHORT16)cData;
- }
- i=usData/100;
- j=(usData%100)/10;
- k=usData%10;
- LED_P6x8Char(ucIdxX+6,ucIdxY,i+48);
- LED_P6x8Char(ucIdxX+12,ucIdxY,j+48);
- LED_P6x8Char(ucIdxX+18,ucIdxY,k+48);
- return;
- }
- /*****************************************************************************
- 函 数 名 : LED_PrintShort
- 功能描述 : 将一个Short型数转换成5位数进行显示
- 输入参数 : UCHAR8 ucIdxX ucIdxX的范围为0~120
- UCHAR8 ucIdxY ucIdxY为页的范围0~7
- SHORT16 sData sData为需要转化显示的数值
- 输出参数 : none
- 返 回 值 : none
- *****************************************************************************/
- VOIDLED_PrintShort(UCHAR8 ucIdxX,UCHAR8 ucIdxY,SHORT16 sData)
- {
- USHORT16 i,j,k,l,m,usData;
- if(sData<0)
- {
- LED_P6x8Char(ucIdxX,ucIdxY,-);
- usData=(USHORT16)(-sData);
- }
- else
- {
- LED_P6x8Char(ucIdxX,ucIdxY,+);
- usData=(USHORT16)sData;
- }
- l=usData/10000;
- m=(usData%10000)/1000;
- i=(usData%1000)/100;
- j=(usData%100)/10;
- k=usData%10;
- LED_P6x8Char(ucIdxX+6,ucIdxY,l+48);
- LED_P6x8Char(ucIdxX+12,ucIdxY,m+48);
- LED_P6x8Char(ucIdxX+18,ucIdxY,i+48);
- LED_P6x8Char(ucIdxX+24,ucIdxY,j+48);
- LED_P6x8Char(ucIdxX+30,ucIdxY,k+48);
- return;
- }
- /*****************************************************************************
- 函 数 名 : LED_PrintImage
- 功能描述 : 将图像显示出来
- 输入参数 : UCHAR8 *pucTable 二维图像数组的地址
- USHORT16 usRowNum 二维图像的行数1~64
- USHORT16 usColumnNum 二维图像的列数1~128
- 输出参数 : none
- 返 回 值 : none
- *****************************************************************************/
- VOIDLED_PrintImage(UCHAR8*pucTable,USHORT16 usRowNum,USHORT16 usColumnNum)
- {
- UCHAR8 ucData;
- USHORT16 i,j,k,m,n;
- USHORT16 usRowTmp;
- m=usRowNum>>3;//计算图片行数以8位为一组完整的组数
- n=usRowNum%8;//计算分完组后剩下的行数
- for(i=0;i
- {
- LED_SetPos(0,(UCHAR8)i);
- usRowTmp=i<3;//计算当前所在行的下标
- for(j=0;j
- {
- ucData=0;
- for(k=0;k<8;k++)//在i组中对这8行扫描
- {
- ucData=ucData>>1;
- if((pucTable+(usRowTmp+k)*usColumnNum)[j]==LED_IMAGE_WHITE)
- {
- ucData=ucData|0x80;
- }
- }
- LED_WrDat(ucData);
- }
- }
- LED_SetPos(0,(UCHAR8)i);//设置剩下的行显示的起始坐标
- usRowTmp=i<3;//计算当前所在行的下标
- for(j=0;j
- {
- ucData=0;
- for(k=0;k
- {
- ucData=ucData>>1;
- if((pucTable+(usRowTmp+k)*usColumnNum)[j]==LED_IMAGE_WHITE)
- {
- ucData=ucData|0x80;
- }
- }
- ucData=ucData>>(8-n);
- LED_WrDat(ucData);
- }
- return;
- }
IICOLED驱 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)