标题: 单片机设置矩阵按键 计算相应1到16的平方 [打印本页]

作者: 1440846197    时间: 2020-5-22 16:37
标题: 单片机设置矩阵按键 计算相应1到16的平方
#include <reg52.h>


#define uint unsigned int
#define uchar unsigned char

sbit du = P2^6;         //段选
sbit we        = P2^7;         //位选



uint k;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};

void delay(uint z)
{  uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0; y--);
}

void display(uint k)
{
         uchar bai,shi,ge;
         bai = k / 100;
         shi = k % 100 / 10;
         ge = k % 10;

                P0 = 0xff;
                we = 1;
                P0 = 0xfe;
                we = 0;

                du = 1;
                P0 = table[bai];
                du = 0;
                delay(5);

                P0 = 0xff;
                we = 1;
                P0 = 0xfd;
                we = 0;

                du = 1;
                P0 = table[shi];
                du = 0;
                delay(5);


                P0 = 0xff;
                we = 1;
                P0 = 0xfb;
                we = 0;

                du = 1;
                P0 = table[ge];
                du = 0;
                delay(5);
}

void keyscan()
{        P3 = 0xf0;
        if(P3 != 0xf0)
        {        delay(10);//软件消抖
                if(P3 != 0xf0)
        {
                        switch(P3)
                {        case 0xe0: k = 1; break;
                        case 0xd0: k = 2; break;
                        case 0xb0: k = 3; break;
                        case 0x70: k = 4; break;        }

        }
                P3 = 0x0f;
                 switch(P3)
                {        case 0x0e: k = k; break;
                        case 0x0d: k = k + 4; break;
                        case 0x0b: k = k + 8; break;
                        case 0x07: k = k + 12; break;  }
                        while(P3 != 0x0f);//松手检测  
                        }
}

void main ()
{        while(1)
        {        keyscan();
                display(k*k);
                        
        }
        
}


作者: 1440846197    时间: 2020-5-22 16:37
这是源代码
作者: admin    时间: 2020-5-24 01:30
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1