EDN首页   博客首页

日志档案

发表于 2008-4-10 2:54:25

3

标签: 12446  

写的一个程序.

/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
程序名称:0-99分表
作者:xiesonny
日期:2008-4-10
显示函数:用定时器扫描
功能: 前两位显示分钟,小数点之后,显示秒钟
      分钟显示最大值只有99分钟.超过就报警,报警10秒后.复位初始值并关闭显示.
      按键第一次按就计时.第二次暂停,第三次继续.第四次回到初始状态.
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
头文件略&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
 for(y=110;y>0;y--);
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void beep(uchar tone)
{
 uint a,b,spfreq;
 spfreq=(1000/tone)/2;
 for(a=0;a<16;a++)
 {
  for(b=0;b  bz=0;
  for(b=0;b  bz=1;
 }
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 deta++;
 if(deta==20)
 { 
     deta="0";
  sec++;
  if(sec>=60)
  {
   sec=0;min++;
  }
  if(min>=99)
  {
   beep(70);
   if(sec==11)
   {
    sec=0;min=0;temp=0;TR0=0;TR1=0;P1=0xff;P0=0xff;
   }
        }
 }
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void data_split()
{
 time_group[0]=min/10;
 time_group[1]=min%10;
 time_group[2]=sec/10;
 time_group[3]=sec%10; 
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void time1() interrupt 3

 TH1=(65536-1000)/256;
 TL1=(65536-1000)%256;
 if(++i>=5)i=0;
 P0=0xff;
 switch(i)
 {
  case 0:P1=0xfe;P0=tab[time_group[0]];break;
  case 1:P1=0xfd;P0=tab[time_group[1]];break;
  case 2:P1=0xfd;P0=0x7f;break;
  case 3:P1=0xfb;P0=tab[time_group[2]];break;
  case 4:P1=0xf7;P0=tab[time_group[3]];break;
  default:break;
 } 
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void init()  

 TMOD=0x11;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 TH1=(65536-1000)/256;
 TL1=(65536-1000)%256;    
 EA=1;
 ET0=1;
 ET1=1;
 TR1=1;
 key_gnd=0;
 sec=58;
 min=98;
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void keyset()
{
 if(!key)
 {
  delay(10);
  if(!key)
  {
   while(!key);
   temp++;
   {
    switch (temp)
    {
     case 1:TR0=1;TR1=1;break;
     case 2:TR0=0;break;
                 case 3:TR0=1;break;
                 case 4:TR0=0;temp=0;sec=0;min=0;break;
        default:break;
    }
   }
  }
 } 
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&   
void main()   

    init();  
 while(1)
 { 
  keyset();
  data_split();
 } 
}
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&    

系统分类: 单片机   |   用户分类: 单片机   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(163)    回复(0)  

投一票您将和博主都有获奖机会!