找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1515|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)數(shù)碼管 7SEG-MPX4-CC不亮但是引腳在閃怎么解決?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
寫的是按下4x4鍵盤矩陣,在動(dòng)態(tài)數(shù)碼管上顯示”L ? OP ”,其中?的取值范圍為0~9。
Keil 4的代碼
#include <reg52.h>

typedef unsigned char uchar;
typedef unsigned int uint;

sbit LATCH = P2^2;   // 數(shù)碼管鎖存引腳

uchar code segCode[] = {   // 共陰極數(shù)碼管的段碼表
    0xC0,  // 0
    0xF9,  // 1
    0xA4,  // 2
    0xB0,  // 3
    0x99,  // 4
    0x92,  // 5
    0x82,  // 6
    0xF8,  // 7
    0x80,  // 8
    0x90   // 9
};

uchar code keyTable[] = {   // 4x4矩陣鍵盤的鍵值表
    0xEE, 0xDE, 0xBE, 0x7E,
    0xED, 0xDD, 0xBD, 0x7D,
    0xEB, 0xDB, 0xBB, 0x7B,
    0xE7, 0xD7, 0xB7, 0x77
};

uchar keyValue;   // 存儲(chǔ)當(dāng)前按下的鍵值

void delay(uint t)   // 延時(shí)函數(shù)
{
    uint i, j;
    for(i = t; i > 0; i--)
        for(j = 110; j > 0; j--);
}

void display(uchar num)   // 數(shù)碼管顯示函數(shù)
{
    LATCH = 0;
    P0 = segCode[num];
    LATCH = 1;
}

uchar getKey()   // 獲取按鍵函數(shù)
{
    uchar row, col;
    P1 = 0xFF;   // 全部行拉高
    col = P1;    // 讀取列值
    col = col & 0x0F;   // 只保留低4位
    if(col == 0x0F)   // 沒有按鍵按下
        return 0xFF;
    else
    {
        row = 0;
        P1 = 0xF0;   // 全部列拉高
        while(col == 0x0F)   // 檢測(cè)列值是否改變
        {
            delay(5);
            col = P1 & 0x0F;
            row++;
        }
        col = col | (P1 & 0x0F);   // 組合列值和行值
        return keyTable[(row - 1) * 4 + col - 1];
    }
}

void main()
{
    uchar num = 0;

    while(1)
    {
        keyValue = getKey();   // 獲取當(dāng)前按下的鍵值
        if(keyValue != 0xFF)   // 判斷是否有按鍵按下
        {
            if(keyValue >= 0xE7 && keyValue <= 0xEE)   // 判斷按下的鍵是否在范圍內(nèi)
            {
                num = keyValue - 0xE0;   // 獲取按鍵對(duì)應(yīng)的數(shù)字
            }
        }

        // 數(shù)碼管動(dòng)態(tài)顯示"L ? OP"
        display(0);   // 顯示空白
        delay(5);
        display(num);   // 顯示數(shù)字
        delay(5);
        display(10);   // 顯示字母L
        delay(5);
        display(11);   // 顯示字母O
        delay(5);
        display(12);   // 顯示字母P
        delay(5);

    }
}

屏幕截圖 2023-11-04 233437.png (105.55 KB, 下載次數(shù): 51)

屏幕截圖 2023-11-04 233437.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:357396 發(fā)表于 2023-11-4 23:51 | 只看該作者
位選都沒控制。。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:69038 發(fā)表于 2023-11-5 01:13 | 只看該作者
一個(gè)巴掌拍不響,LED都單端了你還想讓它亮起來?
回復(fù)

使用道具 舉報(bào)

地板
ID:1098533 發(fā)表于 2023-11-5 01:21 | 只看該作者
位選線都沒有接啊。led燈一個(gè)都不會(huì)亮的,要先位選后對(duì)應(yīng)被選中的哪一位數(shù)碼管led才會(huì)響應(yīng)控制IO顯示的
回復(fù)

使用道具 舉報(bào)

5#
ID:1098533 發(fā)表于 2023-11-5 01:22 | 只看該作者
位選四個(gè)引腳沒有接,不會(huì)亮的,要位選選中的LED數(shù)碼才會(huì)響應(yīng)IO口發(fā)過來的顯示信號(hào)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表