单片机实验,求大神帮我改源码,题目要求误差小于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;
                        }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
依然落叶飘零
1楼-- · 2019-07-16 02:09
如果程序没有问题,在6M的晶振下工作只要改一下定时器的初值就行了,是定时时间和12M的一样。
游戏号
2楼-- · 2019-07-15 22:57
找到解决方法了,用定时器初值计算软件就好了
游戏号
3楼-- · 2019-07-16 03:49
 精彩回答 2  元偷偷看……
chenshichao54
4楼-- · 2019-07-16 04:33
游戏号 发表于 2014-4-20 21:36
有用protus仿真,误差总是大得吓人,你能告诉初值设多少好

仿真效果你要看下面 如果看电脑时间,肯定不行的啊

一周热门 更多>