微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 交通灯定时器使用的求助

交通灯定时器使用的求助

时间:10-02 整理:3721RD 点击:
这是一个利用定时器来精准控制交通灯的程序,我想问下定时器在这里设置好了,后面只有一个溢出中断服务程序 他所谓的定时器在交通灯亮的程序块里好像没有出现啊?怎么实现精准控制延时的? 大神求助
main()
{  
   TMOD= 0X10;                                       
    EA= 1;                                               
        ET1= 1;                                               
    TH1= 0x3c;                                       
        TL1= 0xb0;                                       
        TR1= 1;                                                       
        num= 0;
  while(1)
  {         
           if(num<31)                                       
         {
           P2= 0xcd;                 //11001101
           P3= 0xfe;         //11111110
           time= (30-num);
           display();  
                 }
         if(num>30&&num<34)                       
         {
                 P2= 0xd6;                         //11010110
                P3= 0xfe;                                //11111110
                time= (34-num);
                display();
         }
           if(num>33&&num<65)                       
         {
                 P2= 0x7a;                                        //01111010
                P3= 0xfd;                                        //11111101
                time= (64-num);
                display();
         }
         if(num>64&&num<68)                       
         {
                 P2= 0xba;                         //10111010
                P3= 0xfe;                                //11111101
                time= (67-num);
                display();
         }
  }
}       
void int_1()interrupt 3
{

        unsigned char n;

                TH1= 0x3c;
                TL1= 0xb0;                               
                TR1= 1;
                n++;
                if(n==20)                               
                {
               
                        num++ ;
                        n= 0;
                        if(num== 68)                         
                                num= 0;                               
                }
          
        }       
void display()
{
    unsigned int i;         
    unsigned int LedOut[10];                 
         LedOut[0]=Disp_Tab[time%10000/1000];
     LedOut[1]=Disp_Tab[time%1000/100];
     LedOut[2]=Disp_Tab[time%100/10];
     LedOut[3]=Disp_Tab[time%10];
         
         LedOut[4]=Disp_Tab[time%10000/1000];         
     LedOut[5]=Disp_Tab[time%1000/100];
     LedOut[6]=Disp_Tab[time%100/10];                 
     LedOut[7]=Disp_Tab[time%10];            
         for( i=0; i<9; i++)
         {         
          P0 = LedOut;
          P1 = dispbit;                                           
                delay(150);               
          }
}
void delay(unsigned int i)               
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
}

万水千山总是情,打个酱油行不行.我给你的不是海誓山盟,
而是一颗不变的心!小编可以参考一下。
http://www.taiheth.com   
http://www.dgkjly.com
http://www.jinluodz.com
http://www.konuaer.com
http://www.kangbidz.com  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top