新闻中心

EEPW首页>嵌入式系统>设计应用> T6963C的51单片机驱动程序

T6963C的51单片机驱动程序

作者: 时间:2016-12-02 来源:网络 收藏
/**************************************LCD_WriteTCommand1******************************************************************//************************************************************************ 名称:LCD_WriteTCommand1()* 功能:写无参数命令子程序。会先判断LCM状态字。* 入口参数:command 要写入LCM的命令字* 出口参数:操作出错返回0,否则返回1***********************************************************************/uchar LCD_WriteTCommand1(uchar command){ if( LCD_TestStaBit01()==0 )return(0);LCD_WriteCommand(command); // 发送命令字return(1);}/********************************LCD_WriteTCommand2************************************************************************//************************************************************************ 名称:LCD_WriteTCommand2()* 功能:写单参数命令子程序。会先判断LCM状态字。* 入口参数:command 要写入LCM的命令字* dat1 参数1* 出口参数:操作出错返回0,否则返回1* 说明:先发送参数据数据,再发送命令字***********************************************************************/uchar LCD_WriteTCommand2(uchar command, uchar dat1){ if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat1); // 发送数据1if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteCommand(command); // 发送命令字return(1);}/********************************LCD_WriteTCommand3************************************************************************//************************************************************************ 名称:LCD_WriteTCommand3()* 功能:写双参数命令子程序。会先判断LCM状态字。* 入口参数:command 要写入LCM的命令字* dat1 参数1* dat2 参数2* 出口参数:操作出错返回0,否则返回1* 说明:先发送两字节参数据数据,再发送命令字***********************************************************************/uchar LCD_WriteTCommand3(uchar command, uchar dat1, uchar dat2){ if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat1); // 发送数据1if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat2); // 发送数据2if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteCommand(command); // 发送命令字return(1);}/******************************LCD_WriteTData1**************************************************************************//************************************************************************ 名称:LCD_WriteTData1()* 功能:写1字节数据子程序。会先判断状态字。* 入口参数:dat 要写入LCM的数据* 出口参数:操作出错返回0,否则返回1***********************************************************************/uchar LCD_WriteTData1(uchar dat){ if( LCD_TestStaBit03()==0 ) {return(0);}LCD_WriteData(dat); // 发送命令字return(1);}/*******************************LCD_Initialize*************************************************************************/void LCD_Initialize(void){ LCD_WriteTCommand3(LCD_TXT_STP, 0x00, 0x00); // 设置文本方式RAM起始地址LCD_WriteTCommand3(LCD_TXT_WID, 30, 0x00); // 设置文本模式的宽度,宽度为N/6或N/8,N为宽度点数,如240LCD_WriteTCommand3(LCD_GRH_STP, 0x00, 0x00); // 设置图形方式RAM起始地址LCD_WriteTCommand3(LCD_GRH_WID, 30, 0x00); // 设置图形模式的宽度,宽度为N/6或N/8,N为宽度点数,如240LCD_WriteTCommand1(LCD_MOD_OR); // 设置显示方式为"或"LCD_WriteTCommand1(LCD_DIS_SW|0x08); // 设置纯图形显示模式LCD_WriteTCommand1(LCD_CUR_SHP|0x07); // 光标形状}/*********************************LCD_FillAll**********************************************************************/void LCD_FillAll(uchar dat){ uint i;LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00); // 置地址指针LCD_WriteTCommand1(LCD_AUT_WR); // 自动写for(i=0;i<128*30;i++){ LCD_WriteTData1(dat); // 写数据}LCD_WriteTCommand1(LCD_AUT_OVR); // 自动写结束LCD_WriteTCommand3(LCD_ADR_POS,0x00,0x00); // 重置地址指针}/********************************************************************************************************/void Write_Hz(uchar x,uchar y,uchar datah){uchar i;uint StartAddr;StartAddr=x*480+y; for(i=0;i<16;i++){ LCD_WriteTCommand3(LCD_ADR_POS,StartAddr,((StartAddr)/256));LCD_WriteTCommand2(LCD_INC_WR,HZTable[datah][i*2] );LCD_WriteTCommand2(LCD_NOC_WR,HZTable[datah][i*2+1]);StartAddr=StartAddr + 30;}}/********************************************************************************************************///显示数字void Write_No(uchar x,uchar y,uchar ch){uchar i, dat;uint StartAddr;StartAddr=x*480+y; for(i=0;i<16;i++){dat=ASCII_DOT_LIB[ch][i];LCD_WriteTCommand3(LCD_ADR_POS,StartAddr,StartAddr>>8);LCD_WriteTCommand2(LCD_NOC_WR,dat);StartAddr=StartAddr + 30;}}/********************************************************************************************************///显示字母,纵向写字,取模方式:纵向取模,字节正序void Write_Char(uchar x,uchar y,uchar ch){uchar i, dat;uint StartAddr,StartAddr1;StartAddr=x*240+y;StartAddr1=x*240+y+1;for(i=0;i<8;i++){ dat=ASCII_DOT_LIB[ch][i];LCD_WriteTCommand3(LCD_ADR_POS,StartAddr,StartAddr>>8);LCD_WriteTCommand2(LCD_NOC_WR,dat);StartAddr=StartAddr+30;} for(i=0;i<8;i++){ dat=ASCII_DOT_LIB[ch][i+8];LCD_WriteTCommand3(LCD_ADR_POS,StartAddr1,StartAddr1>>8);LCD_WriteTCommand2(LCD_NOC_WR,dat);StartAddr1=StartAddr1+30;} }/********************************************************************************************************/void Charline(uchar x,uchar y ,uchar n,uchar m){uchar i;for(i=0;i

评论


技术专区

关闭