久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

評論


技術專區

關閉