Thông báo

Collapse
No announcement yet.

Quét bàn phím ma trận 4x4 dùng MSP 430

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Quét bàn phím ma trận 4x4 dùng MSP 430

    Xin chào mọi người tình hình mình đang làm cái bàn phím quét ma trận 4x4 dùng MSP430 mà viêt chương trình của mình biên dịch không lỗi nhưng nạp xuông thì không chạy.Mình tìm mãi không thấy lỗi mong mọi người giúp đỡ . Bàn phím được kết nối với port1 nếu phím số 7 được nhấn thì xuất port2 mức 1 còn phím số 8 được nhấn thì xuất port2 mức 0.


    #include <msp430g2553.h>


    int key_code,col,row,key_cur_state;
    void check_key();

    #define KEY4X4_PORT P1OUT
    #define KEY4X4_PIN P1IN
    #define KEY4X4_P1DIR P1DIR

    unsigned char KeyPad[4][4] = {
    '7', '8', '9', '/',
    '4', '5', '6', 'x',
    '1', '2', '3', '-',
    'C', '0', '=', '+'};


    unsigned char key_old_state[4][4];
    //

    main(void)
    {
    WDTCTL = WDTPW + WDTHOLD;
    // ----------------- Input/Output Ports initialization ---------------
    KEY4X4_PORT = 0xFF; // Pull-up R
    KEY4X4_P1DIR = 0x0F; // 4 row -> output, 4 col -> input

    while (1)
    {
    check_key();
    if (key_code==7)
    {
    P2OUT=0xff;
    }
    if (key_code==8)
    {
    P2OUT=0x00;
    }
    }
    }


    //------------------------------------------------------------------------------//
    void check_key()
    {
    for ( row=0; row<4; row++)
    {
    KEY4X4_PORT = (1<<row); //select row

    for (col=0; col<4; col++)
    {
    key_cur_state = (KEY4X4_PIN>>col+4) & 1;

    if (key_cur_state && (!key_old_state[row][col]))
    {

    key_code = KeyPad[row][col];

    }

    key_old_state[row][col] = key_cur_state;
    }
    }
    }
    //------------------------------------------------------------------------------

  • #2
    Nguyên văn bởi nguyenlen07 Xem bài viết
    Xin chào mọi người tình hình mình đang làm cái bàn phím quét ma trận 4x4 dùng MSP430 mà viêt chương trình của mình biên dịch không lỗi nhưng nạp xuông thì không chạy.Mình tìm mãi không thấy lỗi mong mọi người giúp đỡ . Bàn phím được kết nối với port1 nếu phím số 7 được nhấn thì xuất port2 mức 1 còn phím số 8 được nhấn thì xuất port2 mức 0.


    #include <msp430g2553.h>


    int key_code,col,row,key_cur_state;
    void check_key();

    #define KEY4X4_PORT P1OUT
    #define KEY4X4_PIN P1IN
    #define KEY4X4_P1DIR P1DIR

    unsigned char KeyPad[4][4] = {
    '7', '8', '9', '/',
    '4', '5', '6', 'x',
    '1', '2', '3', '-',
    'C', '0', '=', '+'};


    unsigned char key_old_state[4][4];
    //

    main(void)
    {
    WDTCTL = WDTPW + WDTHOLD;
    // ----------------- Input/Output Ports initialization ---------------
    KEY4X4_PORT = 0xFF; // Pull-up R
    KEY4X4_P1DIR = 0x0F; // 4 row -> output, 4 col -> input

    while (1)
    {
    check_key();
    if (key_code==7)
    {
    P2OUT=0xff;
    }
    if (key_code==8)
    {
    P2OUT=0x00;
    }
    }
    }


    //------------------------------------------------------------------------------//
    void check_key()
    {
    for ( row=0; row<4; row++)
    {
    KEY4X4_PORT = (1<<row); //select row

    for (col=0; col<4; col++)
    {
    key_cur_state = (KEY4X4_PIN>>col+4) & 1;

    if (key_cur_state && (!key_old_state[row][col]))
    {

    key_code = KeyPad[row][col];

    }

    key_old_state[row][col] = key_cur_state;
    }
    }
    }
    //------------------------------------------------------------------------------
    coi lại dòng này:if (key_code==7) giá trị phím trả về ở dạng mã ascii
    |

    Comment

    Về tác giả

    Collapse

    nguyenlen07 Tìm hiểu thêm về nguyenlen07

    Bài viết mới nhất

    Collapse

    Đang tải...
    X