原创 0-99按键扫描计数器

2011-11-9 11:34 2884 17 17 分类: MCU/ 嵌入式

0-99按键扫描计数器

目的:通过IO口扫描对按键的次数进行计数,范围为0到99.

      电路图:段选P0^0 ~P0^6口控制a,b,c,d,e,f,g,h

              位选P1^0 ~P1^1口控制两位数码管的位选

              按键P3^7

 

代码:

#include <reg52.h>

 

unsigned char code Tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,

                            0x92,0x82,0xf8,0x80,0x90};    //数码管段选

 

unsigned char code Dis[] = {0xfe,0xfd,0xfb,0xf7,};            //数码管位选

 

sbit K1=P3^7; // 位定义按键

 

void delay(unsigned int z)         //delay延时函数1ms

{ unsigned x,y;

  for(x=z;x>0;x--)

    for(y=110;y>0;y--);

}

 

void main()       //主函数

{ unsigned char num1;

       while(1)  

  {

     if(K1==0)

             {

             delay(10);         //按键去抖

             if(K1==0)

                     num1++;

                   if(num1==100)

                     num1=0;

              delay(150);  //稍微延时防止主程序执行过快显示不对

                    } 

          P0=Tab[num1%10];       

          P1=Dis[0];                         //    显示个位

          delay(10);

 

          P0=Tab[num1/10];          //    显示十位数据

          P1=Dis[1];

          delay(10);

  }

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条