单片机实验,求大神帮我改源码,题目要求误差小于0.0

2019-07-15 20:06发布

/*初始状态为南北通行:南北绿灯、东西红灯保持25秒;
                 后转为过渡状态:南北黄灯、东西红灯保持5秒;再转为东西通行:
                 东西绿灯、南北红灯保持25秒;
                 最后转为过渡状态:东西黄灯、南北红灯保持5秒。
                 南北红黄绿接P2。0~2,东西接P2.3~5,分别在12MHZ,6MHZ下怎么改*/
                 
                        #include<reg51.h>
                        unsigned char time1;//定时参数
                        unsigned char sco1;
                        void main(void)
                        {
                                  TMOD=0x01;
                                TR0=1;
                                ET0=1;
                                EA=1;
                                TH0=(65536-46483)/256;
                                TL0=(65536-46483)%256;
                                 time1=0;
                                 sco1=0;
                                while(1)
                                {;}
                         }
                  void hlddl(void) interrupt 1        using 1
                  {       
                          time1++;       
                          if(time1==20)
                          {        time1=0;
                                  sco1++;
                        }  
                        if(sco1<30)
                          {
                                  if(sco1<25)               
                                 P2=0xf3;
                                 else
                                 P2=0xf5;       
                        }
                        else
                        {       
                                if(sco1<55)                
                                        P2=0xde;
                                else
                                           P2=0xee;
                        }
                    if(sco1==60)
                        { sco1=0;
                        }
                        TH0=(65536-46483)/256;
                        TL0=(65536-46483)%256;
                        }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。