单片机菜鸟求助,我已经写出数码管显示从1到99了,现在我想问怎么联合按键做成秒表的形式

2019-07-15 10:26发布

以下是我的数码管从1到99的显示程序

#include"stc15.h"

#define uint unsigned int
#define uchar unsigned char

sbit y1=P4^5;
sbit y2=P4^4;
sbit k1=P3^3;//按键1
sbit k2=P3^2;//按键2

uint right,left=0;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e };

void kzleft(uint);
void delay(uint z);

void main()
{
    int a = 0,b = 0;
        y1=1;
          P2=0xfe;

           P4M0=1<<4 | 1<<5;//共阳极开启强推挽输出
        P4M1=0x00;

           while(1)
           {
                           y1=0;
                     y2=1;
                         P2=table[right];
                           for(b = 0; b <70; b ++) ;  //消影
                          
                        kzleft(left);
                         for(b = 0; b <70; b ++) ;         //消影
                         a ++;
                if(a > 5000)
                {
                        a = 0;
                        right ++;
                        if(right >9)
                        {
                                right =0;
                                   left ++;
                                   if(left >9)
                                   {
                                           left =0;
                                   }
                        }
                }
           }

}

void kzleft(uint left)
{
        y1=1;
        y2=0;
        P2=table[left];       
}

?*void delay(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)
      for(y=3000;y>0;y--);
}*/

数码管 数码管
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
人中狼
2019-07-15 20:19
只有两个键的话需要记录按的是什么键,以及按键按下的次数。
你需要把整个操作过程整理出来,包括各按键的功能,不同功能所需要按键按下的次数等。
程序尽量模块话,就是模块的功能尽量单一,尽量简单,比如按键检测的模块就是检测按键,检测到了就记录按的是什么键,按了多少次,其他就放到其他的模块去做。

一周热门 更多>