×
嵌入式 > 技术百科 > 详情

单片机C语言(0到100计时)

发布时间:2020-10-15 发布时间:
|
基于51hei单片机开发板的计时器程序
     #include
     #define uint unsigned int
     #define uchar unsigned char
     uchar temp,bai,shi,ge,aa;
     sbit dula=P2^6;
     sbit wela=P2^7;
     uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
   0x39,0x5e,0x79,0x71};
     void display(uchar bai,uchar shi,uchar ge); 
        void delay(uint z);
     void init();
     void main()
   {
        init(); //初始化子程序
        while(1)
      {
    if(aa==20)
    {
     aa=0;
     temp++;
      if(temp==100)
        {
        temp=0;      
     }
    
     bai=temp/100;
     shi=temp%100/10;
     ge=temp%10;
     }
     display(bai,shi,ge);
    }
   }
   void delay(uint z) 
   {
      uint x,y;
   for(x=z;x>0;x--)
      for(y=110;y>0;y--);    
   } 
    void display(uchar bai,uchar shi,uchar ge) 
   
    
     
    {
    dula=1;
    P0=table[bai];
    dula=0;
    P0=0xff;//     
    wela=1;
    P0=0xfe; //位选通
    wela=0;
    delay(1) ;
     
       dula=1;
    P0=table[shi];
    dula=0;
    P0=0xff; //消隐
    wela=1;
    P0=0xfd;
    wela=0;
    delay(1) ;
     
    dula=1;
    P0=table[ge];
    dula=0;
    P0=0xff;// 消隐
    wela=1;
    P0=0xfb;
    wela=0;
    delay(1) ;
    } 
    void init()
    {wela=0;
     dula=0;
     temp=0;
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
        EA=1;
    ET0=1;
    TR0=1;
    } 
    void timer0() interrupt 1
    { TH0=(65536-50000)/256;
      TL0=(65536-50000)%256;
      aa++;
    }   
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
相聚2021年慕尼黑电子展