您的位置:首页 > 编程语言

51 单片机 C 语言编程:矩阵键盘输入,显示在数码管

2016-01-25 12:13 369 查看
通过矩阵键盘输入,并显示在一位数码管上。

题目链接:http://zhidao.baidu.com/question/1382863947562936340

做而论道回答如下:

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit duanx = P2^6;
sbit weix = P2^7;
uchar  key, k_tmp, view;

uchar show[] = {
    0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
    0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};

void keyscan(void)
{
    key = 16;  
    P3 = 0xf0;  k_tmp = P3 & 0xf0;
    if     (k_tmp == 0x70) key = 0; 
    else if(k_tmp == 0xb0) key = 1; 
    else if(k_tmp == 0xd0) key = 2;
    else if(k_tmp == 0xe0) key = 3;
    P3 = 0x0f;  k_tmp = P3 & 0x0f;
    if     (k_tmp == 0x07) key = key + 12; 
    else if(k_tmp == 0x0b) key = key + 8; 
    else if(k_tmp == 0x0d) key = key + 4; 
    else if(k_tmp == 0x0e) key = key + 0;

    view = show[key];

}

void display(uchar view)
{
    P0 = view; duanx = 1; duanx = 0;
    P0 = 0xfe; weix = 1;  weix = 0;
}

main()
{
    while(1) {
      keyscan();
      display(view);
    }
}

提问者评价:谢谢,解决了问题,已经很好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: