原创 51键盘程序中的键释放

2007-3-28 13:00 2318 3 5 分类: MCU/ 嵌入式

     本人不才,开是学习单片机有一年多了。可是到现在还觉得自己是个菜鸟。个人觉得写的最好的一本单片机书是《单片机接口技术实用子程序》,这本书写的很好,内容也不错。


     最近在使用WINBOND的单片机,型号是W79E632,这款单片机真的很不错,128K的ROM,4K的LD ROM,具有ISP功能,程序指令完全与51单片机兼容。


    现在转如正题,刚开始用这款单片机的时候,我写了个键盘程序,本以为这个程序是没有一点问题的,可是事情却不是这个样子,烧进去了程序,可是却没有什么反应。结果问你一位高手,他叫我加个按键的释放。我加了进去,重新下载,挖!高手就是高手,程序跑了起来,完全按照我的意思来运做。下面便是我的程序:


#include <W79E632.h>
#define uchar unsigned char
#define uint  unsigned int
void delay_time(uint t);
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_4=P1^4;
uchar i="0";
void main (void)
{
 P1|=0X07;//开始灯都不亮
 while(1)
 {
 if(P1_4==0)
    {
    delay_time(5000);//看看有没有键按下
    if(P1_4==0)
    {
         i++;           //确实有键按下,i加1
       switch(i)
        {
         case 1   : P1_0=0;                        break;//按第一下,红灯亮
         case 2   : P1_1=0; P1_0=1;         break;//再第二下,黄灯亮
         case 3   : P1_2=0; P1_1=1;         break;//按第三下,绿灯亮
         case 4   : P1_2=1; i="0";                break;//按第四下,都不亮
         default  : break;
        }
  while(P1_4==0);//这就是按键的释放,这个小东西还真是有用啊!
       }  
     }
  }
}
void delay_time(uint t)
{
  uint j="0";
  for(j;j<t;j++);
}


 


 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1267818 2007-4-1 10:20

mike  你是?

谢谢你给我留言!

用户15237 2007-3-29 14:56

怎么看到你的博客了
相关推荐阅读
用户1267818 2007-04-07 13:57
年轻工程师怎样修炼成为“高手?(转)
                                         年轻工程师怎样修炼成为“高手?(转)转自:http://www.nuedc.cn/?124/action_viewsp...
我要评论
2
3
关闭 站长推荐上一条 /2 下一条