标题: [求助]一个按键程序 [打印本页]

作者: yan136820    时间: 2009-5-7 21:24
标题: [求助]一个按键程序

各位朋友能不能帮我用C语言编译这样的一个程序;
     

按K1,延时一段时间,数码管显示01。

按K2,延时一段时间,数码管显示02

按K3,延时一段时间,数码管显示03

按K4,延时一段时间,数码管显示04

按K5,延时一段时间,数码管显示05

按K6,延时一段时间,数码管显示06

按K7,延时一段时间,数码管显示07

按K8,延时一段时间,数码管显示08

按K9,延时一段时间,数码管显示09

按K10,延时一段时间,数码管显示10

按K11,延时一段时间,数码管显示11

按K12,延时一段时间,数码管显示12 
谢谢


作者: whywj    时间: 2009-6-4 16:52
 那得先看一下硬件图纸才能再写一下的。另外,这些功能一个键就行了,为什么还要用12个键,在单片机系统中资源很宝贵的噢。


作者: xi_chang    时间: 2014-5-4 11:30
我也来做做
作者: wgh008    时间: 2014-5-13 00:48
要对应硬件线路才能写呀,要不就是硬件受制于软件了,不划算吧?嘿嘿………………程序是不难的
作者: meilidianzhi    时间: 2014-7-15 21:09

作者: 黑鸦的泣灵    时间: 2014-7-16 18:15
用矩阵键盘扫描来做 我的板子是郭天祥的
作者: 黑鸦的泣灵    时间: 2014-7-16 18:15
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint);
void display(uchar);
void keyscan();
uchar code table[]=
{
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71

};
void main()
{       
        dula=1;
        P0=0;
        dula=0;
        wela=1;
        P0=0xc0;
        wela=0;

        while(1)
        {
                keyscan();
               
        }

}
void display(uchar num)       
{
        dula=1;
        P0=table[num];
        dula=0;
        P0=0xff;
}
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void keyscan()
{       
        uchar temp ,key;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xee:
                                                        key=0;
                                                        break;
                                case 0xde:
                                                        key=1;
                                                        break;
                                case 0xbe:
                                                        key=2;
                                                        break;
                                case 0x7e:
                                                        key=3;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }




        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:
                                                        key=4;
                                                        break;
                                case 0xdd:
                                                        key=5;
                                                        break;
                                case 0xbd:
                                                        key=6;
                                                        break;
                                case 0x7d:
                                                        key=7;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }


        P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xeb:
                                                        key=8;
                                                        break;
                                case 0xdb:
                                                        key=9;
                                                        break;
                                case 0xbb:
                                                        key=10;
                                                        break;
                                case 0x7b:
                                                        key=11;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }       
        }
               


        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xe7:
                                                        key=12;
                                                        break;
                                case 0xd7:
                                                        key=13;
                                                        break;
                                case 0xb7:
                                                        key=14;
                                                        break;
                                case 0x77:
                                                        key=15;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }


}





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