欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機驅動LED數碼管,按鍵TM1638芯片學習心得

查看數: 8453 | 評論數: 6 | 收藏 7
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-2-18 17:11

正文摘要:

TM1638是帶鍵盤掃描接口的LED(發光二極管顯示器)驅動控制專用電路,內部集成有MCU 數字接口、數據鎖存器、LED 高壓驅動、鍵盤掃描等電路。主要應用于冰箱、空調 、家庭影院等產品的高段位顯示屏驅動。 因為步進電 ...

回復

ID:292876 發表于 2020-3-19 16:54
這個模塊自帶程序實際使用不方便,可以按照上面的改,主程序按鍵如何操作很簡單了!判斷鍵值就行
ID:292876 發表于 2020-3-19 16:53

   //------------下面是讀按鍵和鍵值分離程序------------

unsigned char Read_key(void)
{
        unsigned char c[4],i,key_value=0;
        STB=0;
        TM1638_Write(0x42);
        Delay10us();
        for(i=0;i<4;i++)
                c[i]=TM1638_Read();
        STB=1;                                       

            //K1組合8鍵
        if(c[0]==0x04) key_value=1;           //KS1K1
        if(c[0]==0x40) key_value=2;           //KS2K1
        if(c[1]==0x04) key_value=3;           //KS3K1
        if(c[1]==0x40) key_value=4;           //KS4K1
        if(c[2]==0x04) key_value=5;           //KS5K1
        if(c[2]==0x40) key_value=6;           //KS6K1
        if(c[3]==0x04) key_value=7;           //KS7K1
        if(c[3]==0x40) key_value=8;           //KS8K1
          //K2組合8鍵
        if(c[0]==0x02) key_value=9;           //KS1K2
        if(c[0]==0x20) key_value=10;   //KS2K2
        if(c[1]==0x02) key_value=11;   //KS3K2
        if(c[1]==0x20) key_value=12;   //KS4K2
        if(c[2]==0x02) key_value=13;   //KS5K2
        if(c[2]==0x20) key_value=14;   //KS6K2
        if(c[3]==0x02) key_value=15;   //KS7K2
        if(c[3]==0x20) key_value=16;   //KS8K2
          //K3組合8鍵
        if(c[0]==0x01) key_value=17;   //KS1K3
        if(c[0]==0x10) key_value=18;   //KS2K3
        if(c[1]==0x01) key_value=19;   //KS3K3
        if(c[1]==0x10) key_value=20;   //KS4K3
        if(c[2]==0x01) key_value=21;   //KS5K3
        if(c[2]==0x10) key_value=22;   //KS6K3
        if(c[3]==0x01) key_value=23;   //KS7K3
        if(c[3]==0x10) key_value=24;   //KS8K3

        return key_value;
}


ID:626079 發表于 2020-2-18 22:54
最簡單的改動,現在實現了只顯示1或0狀態。只是這樣的話理論上所有的按鍵都可以控制電機開啟了。。。。
                        while(Read_key()==i);                       //等待按鍵釋放
//                        if(num[i]>15)                                           //原程序是按一下鍵,自動計數加1.可以加到15
                       
                        if(num[i]>1)                                           //改為實現了只顯示1與0(加到1,就值改為0),1電機啟動,0電機斷開
                        num[i]=0;
                        Write_DATA(i*2,tab[num[i]]);
                        Write_allLED(1<<i);
                }
               
               
                if(num[i]==1)
                        {
                          //電機開啟程序
                        }
ID:626079 發表于 2020-2-18 21:31
但是這樣的顯示執行結果不是我想要的。明天再研究改一下程序。我只需要按一個鍵做開關,顯示1或0就可以了,別的鍵都不需要改變。或者有哪個大神幫我改一下。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表