專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

10秒的秒表程序,帶暫停

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年11月03日   【字體:

#include <reg51.h>
unsigned char code seg7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} //數(shù)碼管碼表
unsigned char code tab[]={0xfe,0xfd};                                                                     //數(shù)碼管位選
unsigned char cnt=0;                                                                                               //位選變量
unsigned char deta=0,sec=0;                                                                                  //0.01秒變量,和秒變量
sbit stop=P3^3;                                                                                                        //暫停鍵
void init()                                                                                                                 //定時(shí)初始化
{
TMOD=0x11;
TH1=0xd8;
TL1=0xf0;
TR1=1;
TH0=0xfc;
TL0=0x18;
TR0=1;
ET1=1;
ET0=1;
EA=1;
}
void time10ms()interrupt 3
{
TH1=0xd8;
TL1=0xf0;
deta++;
}

void show()interrupt 1  //掃描顯示2位數(shù)碼管
{
 TH0=0xfc;
 TL0=0x18;
 ++cnt;
 if(cnt>1)cnt=0;
 switch (cnt)
 {
 case 0:  P0=seg7[sec%10];P2=tab[0];break;
 case 1:  P0=seg7[sec/10];P2=tab[1];break;
 default:break;
 }
 }
 void showtime()     //時(shí)間顯示
 {
  if((deta>10)&&stop){sec++;deta=0;}    //如果P3^3 不按下,則為高電平,不暫停時(shí)間。
  if(sec==99)sec=0;
  }
  void main()
  {
  init();
  while(1)
  {
  showtime();
  }
  }

關(guān)閉窗口

相關(guān)文章