数码管笔记1

#include

  • 数码管前三位显示一个跑表,从000999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)
  • 在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。


#include
sbit beep=P2^3;
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;

uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(unsigned int x)
{
 unsigned int i,j;
 for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}

void display(uchar a,uchar b)

 dula=0;
 wela=0;
 P0=table[a];
 dula=1;
// delay(5);
 dula=0;
 wela=0;

 P0=0xfe;
 wela=1;
// delay(5);
 wela=0;

 delay(5);
 P0=table[b];
 dula=1;
// delay(5);
 dula=0;
 P0=0xfd;
 wela=1;
// delay(5);
 wela=0;
 delay(5);
}
 


void main()
{  
 uchar shi,ge,cv;
 while(1)
 { 
  
  shi=num/10;
  ge=num%10;
   num=num+1;
  num=(num+60)%60;
  if(num==0)
   beep=0;
  else
   beep=1;
  for(cv=50;cv>0;cv--)
   display(shi,ge);
  
 }
  
}

你可能感兴趣的:(数码管笔记1)