欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機寫的曝光定時器C語言程序 [打印本頁]

作者: a119    時間: 2013-9-5 13:39
標題: 51單片機寫的曝光定時器C語言程序
#include "at89x52.h"   
#include "intrins.h"                            //_nop_();延時函數用   

#define  uchar unsigned char   
#define  uint  unsigned int   


uchar code discode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   
//共陽LED段碼表        "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"   
uint disdata[2]={0,0};            

/*********************延遲1ms**********************/   

void delayms(uint ms)      
// 延時子程序   
{                          
    unsigned char i;   
    while(ms--)   
    {   
        for(i = 0; i <105; i++);   
    }   
}   

/********************顯示函數*********************/   

void scan(uint time)   
{     uint t,s;   
if(time>=10)t=time/10 ;else t=0;   
s=time-t*10;   
   disdata[0]=t;   
   disdata[1]=s;   
P3=0xff;   
P3_6=0;   
P0=discode[disdata[0]];   
delayms(5);   
P3=0xff;   
P3_7=0;   
P0=discode[disdata[1]];   
delayms(5);   
P3=0xff;   
}   
/*******************顯示+延遲0.1秒************************/   

void delay_scan(uint t,uint codes)   
{    t=t*10;   
  while(t--){   
    scan(codes);      
   }   

}   


/*********************聲音函數**********************/   

void beep(uint t,uint s)      

{   if(s==0)s=360;   
    else if(s==1) s=90;   
    else if(s==2) s=30;   
    else s=300;        
    while(t--)   
    {   
        P2_1=0  ;   
        delayms(s);   
        P2_1=1;   
        delayms(s);   
    }   
    delayms(s/6);   

}   
/****************主函數************************/   
main()   
{   
uint time=0;   
P1=0xFF;   


while(1)   
{   
scan(time);   

if(P1_0==0){   
delayms(5);   
if(P1_0==0){   
if(time<60) time++;else beep(1,1);   
scan(time);   
delay_scan(1,time);   
}   
}   
//----   
if(P1_1==0){   
delayms(5);   
if(P1_1==0){   
if(time>0) time--;else beep(1,1);   
scan(time);   
delay_scan(1,time);   
}   
}   
//----   
if(P1_2==0)   
{   
    delayms(5);   
    if(P1_2==0 && time>0)   
    { P2_0=1;   
      delay_scan(3,time);   
      while(time--)   
      { beep(1,2);   
        P2_0=0;   
      delay_scan(10,time);   


      }   
       P2_0=1;   
       beep(1,1);   
       time=0;   
    }   
    else   
    beep(1,0);   
    time=0;   
}   
//----   
if(P1_3==0){   
delay_scan(7,time);   
if(P1_3==0){   
beep(2,1);   
P2_0=~P2_0;   
delay_scan(10,time);   
}   
}   

}   
}   







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1