新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > T6963C的51單片機(jī)驅(qū)動(dòng)程序

T6963C的51單片機(jī)驅(qū)動(dòng)程序

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
/**************************************LCD_WriteTCommand1******************************************************************//************************************************************************ 名稱(chēng):LCD_WriteTCommand1()* 功能:寫(xiě)無(wú)參數(shù)命令子程序。會(huì)先判斷LCM狀態(tài)字。* 入口參數(shù):command 要寫(xiě)入LCM的命令字* 出口參數(shù):操作出錯(cuò)返回0,否則返回1***********************************************************************/uchar LCD_WriteTCommand1(uchar command){ if( LCD_TestStaBit01()==0 )return(0);LCD_WriteCommand(command); // 發(fā)送命令字return(1);}/********************************LCD_WriteTCommand2************************************************************************//************************************************************************ 名稱(chēng):LCD_WriteTCommand2()* 功能:寫(xiě)單參數(shù)命令子程序。會(huì)先判斷LCM狀態(tài)字。* 入口參數(shù):command 要寫(xiě)入LCM的命令字* dat1 參數(shù)1* 出口參數(shù):操作出錯(cuò)返回0,否則返回1* 說(shuō)明:先發(fā)送參數(shù)據(jù)數(shù)據(jù),再發(fā)送命令字***********************************************************************/uchar LCD_WriteTCommand2(uchar command, uchar dat1){ if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat1); // 發(fā)送數(shù)據(jù)1if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteCommand(command); // 發(fā)送命令字return(1);}/********************************LCD_WriteTCommand3************************************************************************//************************************************************************ 名稱(chēng):LCD_WriteTCommand3()* 功能:寫(xiě)雙參數(shù)命令子程序。會(huì)先判斷LCM狀態(tài)字。* 入口參數(shù):command 要寫(xiě)入LCM的命令字* dat1 參數(shù)1* dat2 參數(shù)2* 出口參數(shù):操作出錯(cuò)返回0,否則返回1* 說(shuō)明:先發(fā)送兩字節(jié)參數(shù)據(jù)數(shù)據(jù),再發(fā)送命令字***********************************************************************/uchar LCD_WriteTCommand3(uchar command, uchar dat1, uchar dat2){ if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat1); // 發(fā)送數(shù)據(jù)1if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteData(dat2); // 發(fā)送數(shù)據(jù)2if( LCD_TestStaBit01()==0 ) return(0);LCD_WriteCommand(command); // 發(fā)送命令字return(1);}/******************************LCD_WriteTData1**************************************************************************//************************************************************************ 名稱(chēng):LCD_WriteTData1()* 功能:寫(xiě)1字節(jié)數(shù)據(jù)子程序。會(huì)先判斷狀態(tài)字。* 入口參數(shù):dat 要寫(xiě)入LCM的數(shù)據(jù)* 出口參數(shù):操作出錯(cuò)返回0,否則返回1***********************************************************************/uchar LCD_WriteTData1(uchar dat){ if( LCD_TestStaBit03()==0 ) {return(0);}LCD_WriteData(dat); // 發(fā)送命令字return(1);}/*******************************LCD_Initialize*************************************************************************/void LCD_Initialize(void){ LCD_WriteTCommand3(LCD_TXT_STP, 0x00, 0x00); // 設(shè)置文本方式RAM起始地址LCD_WriteTCommand3(LCD_TXT_WID, 30, 0x00); // 設(shè)置文本模式的寬度,寬度為N/6或N/8,N為寬度點(diǎn)數(shù),如240LCD_WriteTCommand3(LCD_GRH_STP, 0x00, 0x00); // 設(shè)置圖形方式RAM起始地址LCD_WriteTCommand3(LCD_GRH_WID, 30, 0x00); // 設(shè)置圖形模式的寬度,寬度為N/6或N/8,N為寬度點(diǎn)數(shù),如240LCD_WriteTCommand1(LCD_MOD_OR); // 設(shè)置顯示方式為"或"LCD_WriteTCommand1(LCD_DIS_SW|0x08); // 設(shè)置純圖形顯示模式LCD_WriteTCommand1(LCD_CUR_SHP|0x07); // 光標(biāo)形狀}/*********************************LCD_FillAll**********************************************************************/void LCD_FillAll(uchar dat){ uint i;LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00); // 置地址指針LCD_WriteTCommand1(LCD_AUT_WR); // 自動(dòng)寫(xiě)for(i=0;i<128*30;i++){ LCD_WriteTData1(dat); // 寫(xiě)數(shù)據(jù)}LCD_WriteTCommand1(LCD_AUT_OVR); // 自動(dòng)寫(xiě)結(jié)束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;}}/********************************************************************************************************///顯示數(shù)字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;}}/********************************************************************************************************///顯示字母,縱向?qū)懽?,取模方式:縱向取模,字節(jié)正序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

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉