TM1638 模塊簡化代碼包括8個按鍵8個指示燈8個數(shù)碼管
模塊.jpg (122.85 KB, 下載次數(shù): 103)
下載附件
2022-1-17 16:05 上傳
包括以下資源:
1、8個按鍵,
2、8個LED,
3、8位數(shù)碼管
該模塊所用芯片為TM1638,集合了以上三種單片機常見外圍電路,是大特點是只需占用單片機三個IO口即可驅動,掃描顯示和按鍵掃描不需要單片機干預,只需要讀寫相關寄存器送顯示數(shù)據(jù)或檢測按鍵,節(jié)省MCU資源。購買該模塊提供實例程序。
試想下,我們平時使用單片機外接8個LED,8位數(shù)碼管,8個按鍵這需占用多少個IO口,遠不止3個IO口吧,但用這個模塊就可以實現(xiàn)。經(jīng)實際應用,按鍵靈敏顯示效果良好。
接線方法:
VCC GND接5V電源, STB CLK DIO接單片機IO口。
手里有這個模塊 開始搞不大明白參考了好多前輩大神的代碼 進行了針對性的 簡化 只針對 8個按鍵8個指示燈8個數(shù)碼管 (TM1638可以擴展更多這里不保留)附帶的芯片規(guī)格書 去掉了水銀 不明白為什么自己公司的規(guī)格書還加水印,附件里 還有 模塊原理圖尺寸圖
以及 鍵盤掃描的分析
按鍵分析.png (168.99 KB, 下載次數(shù): 91)
下載附件
2022-1-17 16:12 上傳
本人業(yè)余難免錯誤疏漏,請大家指正!
單片機源程序如下:
- #include <stc15series.h>
- #include <TM1638_drive.h>
- #include <delay.h>
- void sys_init()
- {
- unsigned char i;
-
- init_TM1638(); //初始化TM1638
- for(i=0;i<8;i++)
- Write_DATA(WeiL_tab[i],Num_tab[8]); //初始化寄存器
- delayms(5000);
- Write_LED(0x00);
- for(i=0;i<8;i++)
- Write_DATA(WeiL_tab[i],0x00); //初始化寄存器
- Write_DATA(WeiL_tab[6],Num_tab[0]);
- Write_DATA(WeiL_tab[7],Num_tab[0]);
- }
- void key_show()// 讀取按鍵編碼 并且顯示出來,同時對應按鍵的LED燈亮
- {
- unsigned char key=0;
- key=Read_Onekey();
-
- if(key>=1&&key<=64)
- {
- Write_DATA(WeiL_tab[6],Num_tab[key/10]);
- Write_DATA(WeiL_tab[7],Num_tab[key%10]);
- if(key==1)
- {
- Write_LED(0x01);
- }
- else if(key==2)
- {
- Write_LED(0x02);
- }
- else if(key==3)
- {
- Write_LED(0x04);
- }
- else if(key==4)
- {
- Write_LED(0x08);
- }
- else if(key==5)
- {
- Write_LED(0x10);
- }
- else if(key==6)
- {
- Write_LED(0x20);
- }
- else if(key==7)
- {
- Write_LED(0x40);
- }
- else if(key==8)
- {
- Write_LED(0x80);
- }
- while(Read_Onekey()==key); //等待按鍵釋放
- }
- }
- void main()
- {
-
-
-
- sys_init();
- while(1)
- {
-
- key_show();
- }
- }
復制代碼 本人業(yè)余難免錯誤疏漏,請大家指正!
Keil代碼下載:
TM1638驅動 - 簡化.zip
(1.01 MB, 下載次數(shù): 141)
2022-1-17 16:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|