打印

51单片机,定时器问题

[复制链接]
1439|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hallyin|  楼主 | 2013-6-22 18:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
定时器里的全局变量自加不起作用,非常简单的程序,请看:

void main()
{
// hong_fashe是p1^2.
hong_fashe =0;   //开机后先低电平,防止烧毁。
Delay500ms() ; Delay500ms() ; Delay500ms() ;
time0_init();
hong_fashe=1;
EA =1;
while(1)
{
   if(ms_mark==1)   hong_fashe =0;
  if(ms_mark==2)    hong_fashe =1;   
}
}


void time0()interrupt 1
{
TF0 =0;
TH0 =T0_MS_H;
TL0 =T0_MS_L;
ms_mark++;
}


void time0_init()
{
  TMOD &=0XF1;  //定时器0工作于模式一下,定时器1的位数保持不变
TH0 =T0_MS_H;    //晶振12m 另一个有语句#define T0_MS_H   0XEC  ,#define T0_MS_L   0X78  //需要定时的系统基准时间,5ms
TL0 =T0_MS_L;
ET0 =1;
TR0 =1;

}

应该是每5ms变量 ms_mark自动加一,进入while前是高电平,过5ms为低电平,再过5ms为高电平,,是这样吧??
实际显示的图像见附件

相关帖子

沙发
hallyin|  楼主 | 2013-6-22 18:40 | 只看该作者
请查收附件

使用特权

评论回复
板凳
dirtwillfly| | 2013-6-22 20:59 | 只看该作者
附件在哪?

使用特权

评论回复
地板
hallyin|  楼主 | 2013-6-22 21:36 | 只看该作者


使用特权

评论回复
5
hallyin|  楼主 | 2013-6-22 21:38 | 只看该作者
dirtwillfly 发表于 2013-6-22 20:59
附件在哪?

重新发了附件,请查看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

37

帖子

0

粉丝