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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機TM1638數碼管和按鍵控制器程序 怎么得到按鍵返回值?

查看數: 3129 | 評論數: 7 | 收藏 3
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2023-3-9 01:18

正文摘要:

回復

ID:1109793 發表于 2024-2-2 16:41
再頂一下,望前輩指點
ID:1109793 發表于 2024-1-30 10:46
188610329 發表于 2023-3-9 13:22
TM1638  按要求是  需要在  DIO 放置 10K 上拉 以及 100P 電容濾波的,你買的現成板子大概率 沒有加這個部 ...

前輩,請教一下,我的板子上上拉10K也有,101的電容也有,三條線還串聯了180電阻。顯示和按鍵都正常使用,但是在強電磁干擾下會讀到很多意外的按鍵,甚至亮度都會變成最低,這個怎樣解決?
ID:841986 發表于 2023-3-9 17:24
要得到TM1638按鍵返回值,需要進行以下步驟:

初始化TM1638控制器:在程序中通過SPI接口向TM1638控制器寫入數據,對其進行初始化。具體的初始化操作可以參考TM1638的數據手冊。

讀取按鍵狀態:通過讀取TM1638控制器內部的寄存器,可以得到按鍵的狀態。具體的讀取操作可以參考TM1638的數據手冊。

解析按鍵狀態:得到按鍵狀態后,需要進行解析,以得到按鍵的返回值。TM1638控制器可以同時檢測多個按鍵的狀態,因此需要對返回值進行判斷,以確定哪個按鍵被按下。

以下是一個簡單的示例程序,用于從TM1638控制器讀取按鍵狀態:
#include <reg52.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit STB = P1^0;  // TM1638控制引腳1
sbit CLK = P1^1;  // TM1638控制引腳2
sbit DIO = P1^2;  // TM1638控制引腳3

void tm1638_write(uint address, uchar data)
{
    STB = 0;  // 開始傳輸數據
    spi_write(address);  // 發送地址
    spi_write(data);  // 發送數據
    STB = 1;  // 停止傳輸數據
}

uchar tm1638_read(uint address)
{
    uchar data;

    STB = 0;  // 開始傳輸數據
    spi_write(address | 0x02);  // 發送讀取命令和地址
    data = spi_read();  // 讀取數據
    STB = 1;  // 停止傳輸數據

    return data;
}

uchar get_key(void)
{
    uchar key_code = tm1638_read(0x42);  // 讀取按鍵狀態

    switch (key_code)
    {
        case 0x01:  // 第1個按鍵被按下
            return 1;
        case 0x02:  // 第2個按鍵被按下
            return 2;
        case 0x04:  // 第3個按鍵被按下
            return 3;
        case 0x08:  // 第4個按鍵被按下
            return 4;
        case 0x10:  // 第5個按鍵被按下
            return 5;
        case 0x20:  // 第6個按鍵被按下
            return 6;
        case 0x40:  // 第7個按鍵被按下
            return 7;
        case 0x80:  // 第8個按鍵被按下
            return 8;
        default:
            return

    }
    return key_code;
}
ID:651494 發表于 2023-3-9 17:00
ID:624769 發表于 2023-3-9 13:22
TM1638  按要求是  需要在  DIO 放置 10K 上拉 以及 100P 電容濾波的,你買的現成板子大概率 沒有加這個部分的,那么如果 12T 的學習板單片機操作(速度慢板載有上拉) 一般是沒有這個問題的,但是遇到 STC8 這種1T單片機,你就要在 CLK =0 之后給與足夠的 延時等待,以及IO口 要設置內部上拉開,并且不是推挽模式,才能讀到正確的鍵值。
ID:278006 發表于 2023-3-9 09:54
ID:996773 發表于 2023-3-9 09:45


我看不懂樓主的語言,我只知道匯編,我用過這個1638和樓主一樣很熟悉,思路應該是一樣的

這個1638按鍵沒有返回概念,用它的按鍵只能一直不停讀取鍵值,好像一共三個字節

,每一個按鍵對應一個位數據,然后把固定的鍵值做比對,對上就說明按鍵按下,再去

執行,提醒樓主,同一個讀鍵腳上的按鍵不一定在同一個字節里

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

Powered by 單片機教程網

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