led控制器java_TM1668 Led 驱动芯片源程序
#defineP_1668DAT_InRA0 //數據輸入端口
#defineP_1668DATLATA0 //數據輸出端口
#defineP_1668CLKLATA1
#defineP_1668CSLATC0
#defineTM1668_CS_HIGHP_1668CS = 1
#defineTM1668_CS_LOWP_1668CS = 0
#defineTM1668_DAT_HIGHP_1668DAT = 1
#defineTM1668_DAT_LOWP_1668DAT = 0
#defineTM1668_CLK_HIGHP_1668CLK = 1
#defineTM1668_CLK_LOWP_1668CLK = 0
//顯示模式設置命令
#defineV_MDSP10x00 //4位13段
#defineV_MDSP20x01 //5位12段
#defineV_MDSP30x02 //6位11段
#defineV_MDSP40x03 //7位10段
//數據命令設置
#defineV_MDAT10x40 //寫數據到顯示區
#defineV_MDAT20x42 //讀鍵掃數據
//#defineV_MDAT30x40 //自動地址增加
#defineV_MDAT40x44 //固定地址
//地址命令設置
#defineV_ADDR00xC0 //地址0
#defineV_ADDR10xC1 //地址1
#defineV_ADDR20xC2 //地址2
#defineV_ADDR30xC3 //地址3
#defineV_ADDR40xC4 //地址4
#defineV_ADDR50xC5 //地址5
#defineV_ADDR60xC6 //地址6
#defineV_ADDR70xC7 //地址7
#defineV_ADDR80xC8 //地址8
#defineV_ADDR90xC9 //地址9
#defineV_ADDR100xCA //地址10
#defineV_ADDR110xCB //地址11
#defineV_ADDR120xCC //地址12
#defineV_ADDR130xCD //地址13
//顯示控制 - 亮度調節
#defineV_DIS16_010x80 //顯示寬度1/16
#defineV_DIS16_020x81 //顯示寬度2/16
#defineV_DIS16_030x82 //顯示寬度3/16
#defineV_DIS16_100x83 //顯示寬度10/16
#defineV_DIS16_110x84 //顯示寬度11/16
#defineV_DIS16_120x85 //顯示寬度12/16
#defineV_DIS16_130x86 //顯示寬度13/16
#defineV_DIS16_140x87 //顯示寬度14/16
#defineV_DIS16_OFF0x80 //顯示寬度14/16
#defineV_DIS16_ON0x88 //顯示寬度14/16
//---------------------------------------------
#defineV_LED_LIGHT(V_DIS16_10|V_DIS16_ON) //顯示亮度設置
//----------------------------
#defineV_NOP3//5
//*************************************
// 函數名稱:Nop1668
// 函數功能:延時函數
// 入口參數:延時時間
// 出口參數:無
//***************************************
void Nop1668(uint8 T_Dly)
{
while(T_Dly--);
return ;
}
//**************************************
// 函數名稱:TM1668_WriteByteData
// 函數功能:TM1668發送一字節數據
// 入口參數:要發送的數據
// 出口參數:
//***************************************
void TM1668_WriteByteData(uint8 Data)
{
uint8 i;
Nop1668(V_NOP) ;
for(i=8;i>0;i--)
{
TM1668_CLK_LOW ;
if((Data & 0x01) == 0)
{
TM1668_DAT_LOW ;
}
else
{
TM1668_DAT_HIGH ;
}
Data >>= 1 ;
Nop1668(V_NOP) ;
TM1668_CLK_HIGH ;
Nop1668(V_NOP) ;
}
}
//**************************************
// 函數名稱:TM1668_ReadByteData
// 函數功能:讀TM1668一字節數據
// 入口參數:無
// 出口參數:
// 返回值 : 所讀的數據
//***************************************
uint8 TM1668_ReadByteData(void)
{
uint8 i;
uint8 RetValue = 0 ;
TM1668_CLK_LOW ;
for(i=0;i<8;i++)
{
Nop1668(V_NOP) ;
TM1668_CLK_HIGH ;
RetValue >>= 1 ;//先讀出的是低位
if(P_1668DAT_In)
{
RetValue |= 0x80 ;
}
TM1668_CLK_LOW ;
}
return(RetValue);
}
//**************************************
// 函數名稱:TM1668_WriteCommand
// 函數功能:寫設置命令
// 入口參數:設置命令參數
// 出口參數:無
//***************************************
void TM1668_WriteCommand(uint8 Comm)
{
TM1668_CS_LOW ;
Nop1668(V_NOP) ;
TM1668_WriteByteData(Comm);
TM1668_CS_HIGH ;
}
//**************************************
// 函數名稱:TM1668_WriteAddrData
// 函數功能:向固定地址寫一個數據
// 入口參數:地址 數據
// 出口參數:無
//***************************************
void TM1668_WriteAddrData(uint8 Addr,uint8 Data)
{
TM1668_CS_LOW ;
TM1668_WriteByteData(Addr); //寫地址
TM1668_WriteByteData(Data); //寫數據
TM1668_CS_HIGH ;
}
//----應用實例---------
//**************************************
// 函數名稱:TM1668_ReadKey
// 函數功能:TM1668 讀按鍵值
// 入口參數:顯示數據緩存區
// 出口參數:
// 備注:
//***************************************
void TM1668_WriteDat(uint8 *InDat)
{
uint8 i ;
uint8 Addr,Tmp2 ;
TM1668_WriteCommand(V_MDSP4) ;//7位10段
TM1668_WriteCommand(V_MDAT1) ; //寫數據到1668 固定模式
//-----
Addr = V_ADDR2 ;
for(i=0;i<5;i++) //刷顯數據
{
if((*InDat) & 0x01)
{
Tmp2 = 0x01 ;
}
else
{
Tmp2 = 0x00 ;
}
TM1668_WriteAddrData(Addr,Tmp2) ;
Addr += 2 ; //地址加2
(*InDat) >>= 1 ;
}
//-----
TM1668_WriteCommand(V_LED_LIGHT) ;//設置亮度 開啟顯示
}
//**************************************
// 函數名稱:TM1668_ReadKey
// 函數功能:TM1668 讀按鍵值
// 入口參數:無
// 出口參數:
// 返回值 : 返回按鍵值
//***************************************
void TM1668_ReadKey(uint8 *OutDat)
{
uint8 i ;
TM1668_CS_LOW ;
Nop1668(V_NOP) ;
TM1668_WriteByteData(V_MDAT2) ; //讀按鍵值
Nop1668(V_NOP) ;
Nop1668(V_NOP) ;
TM1668_DAT_HIGH ; //讀前數據置高
*OutDat = TM1668_ReadByteData() ;//只讀一個字節
/*for(i=5;i>0;i--) //讀所有按鍵的值
{
*OutDat = TM1668_ReadByteData() ;
OutDat ++ ;
}*/
TM1668_CS_HIGH ;
}
總結
以上是生活随笔為你收集整理的led控制器java_TM1668 Led 驱动芯片源程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java调用sql返回list_Hibe
- 下一篇: java二维数组高纬低纬_2018-05