首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

按键扫描3

按键扫描3

//主函数:

int main(void)

{

    unsigned char key;

    com=0;//P3.7拉低,S1S2S3S4作为独立按键使用

    while(1)

    {

            key=ScanSingleKey();//扫描按键,获得键值

            switch(key)

            {

                    case 1: P2=0xfe;break;//如果s1按下,P2口的第0位指示灯亮

                    case 2: P2=0xfd;break;//如果s2按下,P2口的第1位指示灯亮

                    case 3: P2=0xfb;break;//如果s3按下,P2口的第2位指示灯亮

                    case 4: P2=0xf7;break;//如果s4按下,P2口的第3位指示灯亮

                    default: ;

            }   

   }

  return 0;

}



2.矩阵键盘扫描程序:

/*****************************************************************

*程序名称:4*4矩阵键盘扫描

*程序功能:按键被按下,相应的键值在数码管上显示

*开发工具:WSF-51DB开发板

* MCU型号:AT89S52-24PU

*时钟频率:12MHZ

*程序作者:吴师傅

*版权说明:吴师傅版权所有。转载请注明来源和作者。

*****************************************************************/

#include<reg52.h>

unsigned char code segmcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

                               0x77,0x7C,0x39,0x5E,0x79,0x71};//共阴极数码管段码

unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

                                                            //8位共阴极数码管位码

sbit ser=P2^0;//74HC595串行数据输入

sbit oe=P2^1;//74HC595使能

sbit rclk=P2^2;//74HC595数据锁存

sbit srclk=P2^3;//74HC595串行时钟



//延时ms函数:

void Delayms(unsigned int t)

{

         unsigned int i,j;

         for(i=t;i>0;i--)

                  for(j=0;j<120;j++);

}



//任意位数码管显示一个字符函数:

void DTDisplayChar(unsigned char segmd,unsigned char bitd )//数码管段码和数码管位码

{

        unsigned char i;

        unsigned int dat;

        oe=1;//74HC595禁止

        dat=bitd;

        dat=dat<<8|segmd;//位码段码合并为一个int型数据

        for(i=0;i<16;i++)//16位数据从高位依次移入74HC595

        {

                 ser=(dat&0x8000)?1:0; //判断最高位,为真取1,为假取0

                 srclk=1;//上升沿送数据

                 srclk=0;

                 dat<<=1;//左移取下一位

        }

        rclk=1;//74HC595锁存数据

        rclk=0;

        oe=0;//74HC595使能

}
返回列表