用两了定时器做方波信号的问题

[复制链接]
2320|4
 楼主| gaohq 发表于 2008-8-8 17:34 | 显示全部楼层 |阅读模式
用TIMER0定波形的周期(高电平时间+低电平时间),用TIMER1定高电平的时间,用中断方式,帮我看看程序那里有问题?
波形从P1.7输出.

#include<reg52.h>
#define uint unsigned int
sbit P1_7=P1^7;
uint count0;
uint count1;
void inter0()interrupt 1       /*timer0*/

  
  count0++;
  if(count0==10000)
  {
    P1_7=1;
    TR1=1;
 }
     TR0=1;
}
void inter1()interrupt 3       /*timer1*/
{
 
  count1++;
  if(count1==5000)
  {
  P1_7=0;
  
  }
  TR1=1;
}
void main()
{
     TMOD=0X22;
     TR0=1;
     TR1=0;
     EA=1;
     ET1=1;
     ET0=1;
    
     TH1=-1000/256;
     TL1=-1000%256;
     TH0=-1000/256;
     TL0=-1000%256;
     P1_7=0;
     while(1);
  }
computer00 发表于 2008-8-8 17:46 | 显示全部楼层

没有对count清0。

void inter0()interrupt 1       /*timer0*/

  
  count0++;
  if(count0>=10000)
  {
    P1_7=1;
    count0=0;
    count1=0;
  }
}

不要在中断中操作TR0和TR1,在main中设置TR0和TR1都为1即可
5880527 发表于 2008-8-8 19:55 | 显示全部楼层

一个就够了

allen2006 发表于 2008-8-9 09:40 | 显示全部楼层

写这样的程序,一定是初学者

 楼主| gaohq 发表于 2008-8-9 13:07 | 显示全部楼层

感谢楼上几位!!!

4楼说对了,我刚学.才有N多幼稚的问题在这里麻烦各位.谢谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3767

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部