打印

大家帮我看看这个程序有什么问题?

[复制链接]
1378|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ajhjj|  楼主 | 2009-12-1 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接收串口发送过来的数字,0X80输出第一路方波,0X81输出第二路方波#include"reg51.h"

sbit OUT0=P1^0;
sbit OUT1=P1^1;
unsigned char T0_flag,Com_flag;
unsigned char ch;

void PWM0(unsigned char count);
void PWM1(unsigned char count);
void init_T0(void);
void init_Com(void);

main()
{

init_T0();

init_Com();

T0_flag=0;

Com_flag=0;

while(1)

{

while(Com_flag==0);

Com_flag=0;

switch(ch)

{

case 0x80:  //0号方波输出

PWM0(20);  //  50Hz

break;

case 0x81:

PWM1(10); //100Hz

break;

default:


  break;

}

}
}







void PWM0(unsigned char count)
{


TR0=1;

while(1)

{

while(T0_flag==0);

T0_flag=0;

count--;

if(count==0) OUT0=~OUT0;


if(Com_flag==1)

{

TR0=0;

break;

}


}


}

void PWM1(unsigned char count)
{


TR0=1;

while(1)

{

while(T0_flag==0);

T0_flag=0;

count--;

if(count==0) OUT1=~OUT1;


if(Com_flag==1)

{

TR0=0;

break;

}


}


}


void init_T0(void)
{

TMOD|=0x01;

TH0=0xfc;

TL0=0x17;  

EA=1;

ET0=1;
}

void isr_T0(void) interrupt 1 using 2 //1MS
{


TH0=0xfc;

TL0=0x17;

T0_flag=1;
}




void init_Com(void)
{

SCON=0x50;

TMOD|=0x20;

PCON|=0x80;

TH1=0xf4;

IE|=0x90;

TR1=1;
}


void isr_Com(void) interrupt 4 using 3 //串口中断
{

if(RI)

{

RI=0;

ch=SBUF;

Com_flag=1;

}
}

相关帖子

沙发
chen3bing| | 2009-12-1 19:54 | 只看该作者
你调试有什么问题?

使用特权

评论回复
板凳
ajhjj|  楼主 | 2009-12-1 20:10 | 只看该作者
while(1)

{

while(Com_flag==0);

Com_flag=0;

在这后面加了
SBUF=0x55;
while(TI==0):
TI=0;

收到的并不是0X55,而是其它的数

使用特权

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

本版积分规则

6

主题

26

帖子

0

粉丝