|
TM1638是帶鍵盤掃描接口的LED(發(fā)光二極管顯示器)驅(qū)動控制專用電路,內(nèi)部集成有MCU 數(shù)字接口、數(shù)據(jù)鎖存器、LED 高壓驅(qū)動、鍵盤掃描等電路。主要應(yīng)用于冰箱、空調(diào) 、家庭影院等產(chǎn)品的高段位顯示屏驅(qū)動。
因?yàn)椴竭M(jìn)電機(jī)實(shí)驗(yàn)需要用到按鍵,但家有嬰兒,沒用松香鉻鐵之類的(技術(shù)早就還給老師了,也沒有條件 ),只好在網(wǎng)上找,找到一個由TM1638做成的成品,感覺做工還不錯,就買了一個,但其帶的程序一時沒看懂,花了些時間進(jìn)行學(xué)習(xí),覺得好精妙,就想分享一下。
絕不是給別人打廣告,這程序確實(shí)我理解了很久。
附件是它完整的程序。
TM1638.JPG (69.39 KB, 下載次數(shù): 78)
下載附件
2020-2-18 16:52 上傳
調(diào)用實(shí)現(xiàn)程序主要是顯示與按鍵值獲取。
1.顯示:
為什么是0xc0|add呢?
因?yàn)樾酒f明有:高位都是11, 就是C了。
dispalyaddress_tm1638.JPG (125.03 KB, 下載次數(shù): 66)
下載附件
2020-2-18 16:55 上傳
void Write_DATA(unsigned char add,unsigned char DATA) //指定地址寫入數(shù)據(jù)
{
Write_COM(0x44);
STB=0;
TM1638_Write(0xc0|add);
TM1638_Write(DATA);
STB=1;
}
2.按鍵獲取:
注意這兒是從低位開始讀的, 理解 的時候把B0~B7反過來理解就更好理解下面這個按鍵程序。在這兒花了很多時間來想這個。得到的 i 值就是按的第幾個鍵。這兒真的這個程序?qū)懙锰盍耍@個大神絕對的高手。
getkey.JPG (156.59 KB, 下載次數(shù): 78)
下載附件
2020-2-18 17:02 上傳
單片機(jī)程序
- unsigned char Read_key(void)
- {
- unsigned char c[4],i,key_value=0;
- STB=0;
- TM1638_Write(0x42); //讀鍵掃數(shù)據(jù) 命令
- for(i=0;i<4;i++)
- c[i][i]=TM1638_Read();
- STB=1; //4個字節(jié)數(shù)據(jù)合成一個字節(jié)
- for(i=0;i<4;i++)
- key_value|=c[i][i]<<i;
- for(i=0;i<8;i++)
- if((0x01<<i)==key_value)
- break;
- return i;
- }
復(fù)制代碼 |
-
-
TM1638測試程序C51.rar
2020-2-18 17:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
27.17 KB, 下載次數(shù): 113, 下載積分: 黑幣 -5
-
-
tm1638芯片數(shù)據(jù)手冊.pdf
2020-2-18 17:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
873.68 KB, 下載次數(shù): 42, 下載積分: 黑幣 -5
|