久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)TM1638數(shù)碼管和按鍵控制器程序 怎么得到按鍵返回值?

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

正文摘要:

回復(fù)

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

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

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

讀取按鍵狀態(tài):通過讀取TM1638控制器內(nèi)部的寄存器,可以得到按鍵的狀態(tài)。具體的讀取操作可以參考TM1638的數(shù)據(jù)手冊。

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

以下是一個簡單的示例程序,用于從TM1638控制器讀取按鍵狀態(tài):
#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;  // 開始傳輸數(shù)據(jù)
    spi_write(address);  // 發(fā)送地址
    spi_write(data);  // 發(fā)送數(shù)據(jù)
    STB = 1;  // 停止傳輸數(shù)據(jù)
}

uchar tm1638_read(uint address)
{
    uchar data;

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

    return data;
}

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

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


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

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

,每一個按鍵對應(yīng)一個位數(shù)據(jù),然后把固定的鍵值做比對,對上就說明按鍵按下,再去

執(zhí)行,提醒樓主,同一個讀鍵腳上的按鍵不一定在同一個字節(jié)里

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩视频免费看 | 中文字幕日韩高清 | 欧美一级黄色片 | 亚洲区视频 | 黄色大片在线免费观看 | 人人爱人人 | 一级片久久 | 精品视频免费 | 成人午夜av| 超碰免费在线 | 日本欧美久久久久免费播放网 | 国产久 | 欧美精品一区在线观看 | 欧美日韩免费 | 亚洲精品一二三区 | 亚洲一区成人 | 免费在线看a | 亚洲成人精品在线 | 国产一级18片视频 | 欧美在线激情 | 日韩一区二区三区免费视频 | 久久精品久久久久久久 | 成人aaaa | 性做久久久久久久免费看 | 亚洲小视频 | 欧美日韩国产一区 | 欧美日韩黄色片 | 91丝袜一区在线观看 | 国产三级在线播放 | 中文字幕一区二区三区四区视频 | 成人网页| 中文字幕不卡视频 | 黄色大片免费在线观看 | 成人免费视频大全 | 国产精品一区一区三区 | 美利坚合众国av | 成年人黄色 | 91国内在线 | 亚洲免费观看视频 | 深夜福利av| 毛片在线观看视频 |