2.5元 TM1628驅動的LED數碼管顯示模組C51程式

2。5元某寶上淘的模組

2.5元 TM1628驅動的LED數碼管顯示模組C51程式

只有五個介面

2.5元 TM1628驅動的LED數碼管顯示模組C51程式

尺寸夠大

2.5元 TM1628驅動的LED數碼管顯示模組C51程式

TM1628是封裝起來的

2.5元 TM1628驅動的LED數碼管顯示模組C51程式

驅動點亮的效果,很漂亮,不錯DIY模組

2.5元 TM1628驅動的LED數碼管顯示模組C51程式

驅動定義

#include

sbit DIO=P2^5; //資料輸入/輸出

sbit CLK=P2^6; //時鐘輸入

sbit STB=P2^7; //片選

unsigned char code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //共陰 寫1點亮段

void TM1638_Write(unsigned char DATA)//寫資料函式

{

unsigned char i;

for(i=0;i<8;i++)

{

CLK=0;

if(DATA&0X01)

DIO=1;

else

DIO=0;

DATA>>=1;

CLK=1;

}

}

unsigned char TM1638_Read(void) //讀資料函式

{

unsigned char i;

unsigned char temp=0;

DIO=1; //設定為輸入

for(i=0;i<8;i++)

{

temp>>=1;

CLK=0;

if(DIO)

temp|=0x80;

CLK=1;

}

return temp;

}

void TM1638_Write_COM(unsigned char cmd)//傳送命令字

{

STB=0;

TM1638_Write(cmd);

STB=1;

}

void TM1638_Write_DATA(unsigned char add,unsigned char DATA)//指定地址寫入資料

{

TM1638_Write_COM(0x44);

STB=0;

TM1638_Write(0xc0|add);

TM1638_Write(DATA);

STB=1;

}

//TM1638初始化函式

void TM1638_init(void)

{

unsigned char i;

TM1638_Write_COM(0x8b); //亮度 (0x88-0x8f)8級亮度可調

TM1638_Write_COM(0x40); //採用地址自動加1

STB=0;

TM1638_Write(0xc0); //設定起始地址

for(i=0;i<16;i++) //傳送16個位元組的資料

TM1638_Write(0x00);

STB=1;

}

void main(void)

{

unsigned char i;

TM1638_init(); //初始化TM1638

for(i=0;i<8;i++)

TM1638_Write_DATA(i<<1,0x00); //初始化暫存器

while(1)

{

TM1638_Write_DATA(0,table[1]); //左第一位數字

TM1638_Write_DATA(2,table[2]); //第二位數字

TM1638_Write_DATA(4,table[3]); //第三位數字

TM1638_Write_DATA(6,table[4]); //第四位數字

TM1638_Write_DATA(8,0xff); //符號

TM1638_Write_DATA(10,0xff); //符號

TM1638_Write_DATA(12,0xff); //符號

TM1638_Write_DATA(14,0xff); //符號

}

}