|
|
/*--TM1640數(shù)碼管驅(qū)動IC程序------------------------*/
//*********START***********************************************
void Start_1640() //1640開始
{
PCLK=0;
PDIO=1;
PCLK=1;
NOP();
NOP();
PDIO=0;
NOP();
NOP();
PCLK=0;
NOP();
NOP();
}
//**************************************************************
void Stop_1640() //1640結(jié)束
{
PCLK=0;
PDIO=0;
PCLK=1;
NOP();
NOP();
PDIO=1;
NOP();
NOP();
}
/*------寫數(shù)據(jù)給T1640----------*/
void Write_1640(uchar vdata1)
{
uchar i = 0;
PDIO=0;
PCLK=0;
NOP();
NOP();
for(i=0;i<8;i++) //開始傳送8位數(shù)據(jù),每循環(huán)一次傳送一位數(shù)據(jù)
{
PCLK=0;
NOP();
NOP();
if(vdata1&B0)
{
PDIO=1;
}
else
{
PDIO=0;
}
NOP();
PCLK=1;
NOP();
NOP();
vdata1>>=1;
}
PDIO=0;
PCLK=0;
}
/*------顯示子程序--------*/
void Send_1640()
{
uchar j=0;
NOP();
Start_1640();
NOP();
NOP();
Write_1640(0x40); //寫數(shù)據(jù)到顯示寄存器,采用地址自動加一
NOP();
Stop_1640();
Start_1640();
NOP();
NOP();
Write_1640(0xc0); //顯示寄存器的00H單元開始
NOP();
for(j= 0; j< 16; ++j)
{
Write_1640(vDisBuf[j]);
}
Stop_1640();
Start_1640();
NOP();
NOP();
Write_1640(0x8e); //開顯示,亮度可以通過改變低三位調(diào)節(jié) 0x8e--10001110
NOP();
NOP();
Stop_1640();
}
|
|