標(biāo)題: 單片機(jī)數(shù)碼管 7SEG-MPX4-CC不亮但是引腳在閃怎么解決? [打印本頁]

作者: 暗黑泡泡龍    時(shí)間: 2023-11-4 23:35
標(biāo)題: 單片機(jī)數(shù)碼管 7SEG-MPX4-CC不亮但是引腳在閃怎么解決?
寫的是按下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;   // 存儲當(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)   // 檢測列值是否改變
        {
            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;   // 獲取按鍵對應(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

作者: KingTheWorld    時(shí)間: 2023-11-4 23:51
位選都沒控制。。。。
作者: zhuls    時(shí)間: 2023-11-5 01:13
一個(gè)巴掌拍不響,LED都單端了你還想讓它亮起來?
作者: beigua003    時(shí)間: 2023-11-5 01:21
位選線都沒有接啊。led燈一個(gè)都不會亮的,要先位選后對應(yīng)被選中的哪一位數(shù)碼管led才會響應(yīng)控制IO顯示的
作者: beigua003    時(shí)間: 2023-11-5 01:22
位選四個(gè)引腳沒有接,不會亮的,要位選選中的LED數(shù)碼才會響應(yīng)IO口發(fā)過來的顯示信號




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1