首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
C51独立按键的识别示例程序
来源:本站整理  作者:佚名  2011-08-06 14:49:33



每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。

#include <reg52.h>

sbit BY1=P3^4;      //定义按键的输入端S2键

unsigned char count; //按键计数,每按一下,count加1

unsigned char temp;

unsigned char a,b;

void delay10ms(void) //延时程序

{

      unsigned char i,j;

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

      for(j=248;j>0;j--);

}

key()          //按键判断程序

{

      if(BY1==0)  //判断是否按下键盘,当单片机上电时所有IO口为//高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口//直接接地,此时检测P3.4肯定为低电平。

      {

        delay10ms(); //延时,软件去干扰

        if(BY1==0)  //确认按键按下

        {

          count++;    //按键计数加1

          if(count==8) //计8次重新计数

          {

          count=0;    //将count清零

          }

      }

      while(BY1==0);//等待按键释放,如果键未释放则一直在此等待。

      }

}

 move()        //广告灯向下移动移动函数

{

      a=temp<<count;  //这三句为一个循环移位,相当于前面提到的

      b=temp>>(8-count);//  _crol_()函数

      P1=a|b;

}

main()

{

 count=0;  //初始化参数设置

 temp=0xfe;

 P1=0xff;

 P1=temp;

 while(1)  //永远循环,扫描判断按键是否按下

 {

  key();    //调用按键识别函数

  move();  //调用广告灯移动函数

 }

}

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:191,492.20000 毫秒