找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1833|回复: 2
打印 上一主题 下一主题
收起左侧

为什么我这样用定时器做交通灯会不按规定动作?单片机定时器的工作顺序又是怎样的?

[复制链接]
跳转到指定楼层
楼主
ID:92739 发表于 2015-10-17 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
sbit NBG=P2^0;
sbit NBY=P2^1;
sbit NBR=P2^2;
sbit DXG=P2^3;
sbit DXY=P2^4;
sbit DXR=P2^5;
int t,j;
void delay250ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=11;c>0;c--)
        for(b=92;b>0;b--)
            for(a=122;a>0;a--);
}

void main()
{
  P2=0;
  TMOD=0X02;
  IE=0X82;
  TH0=(65536-5000)/256;
  TL0=(65536-5000)%256;
  TR0=1;
  while(1)
    {if(t<1000)
  {
    DXG=1;
        NBR=1;
        DXY=0;
        NBY=0;
        DXR=0;
  }
  if((t>1000)&&(t<2000))
  {
    DXG=0;
        NBR=1;
        for(j=0;j<5;j++)
        {
          DXY=~DXY;
          delay250ms();
        }
  }
  if((t>2000)&&(t>3000))
  {
    NBG=1;
        DXR=1;
        NBR=0;
        DXY=0;
  }
  if((t>3000)&&(t<4000))
  {
    NBG=0;
    DXR=1;
        for(j=0;j<5;j++)
        {
          NBY=~NBY;
          delay250ms();
        }
  }
  }
}
void trafficlight() interrupt 1
{
  t++;
  if(t<4000)
        return;
        t=0;  
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:92744 发表于 2015-10-17 17:40 | 只看该作者
网上有计算软件
回复

使用道具 举报

板凳
ID:92739 发表于 2015-10-17 20:14 | 只看该作者
ok66 发表于 2015-10-17 17:40
网上有计算软件

我入门菜鸟,想自己写些东西,请高手指导指导
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表