是这样的,程序是板子发送数据,计算机通过串口调试助手获得数据,但是获得的和发送的不一样 频率也不一样 大家帮忙看一下
程序如下
#include<reg52.h>
unsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void Send(unsigned char dat)
{SBUF=dat;
while(TI==0)
;
TI=1;
}
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++);
for(n=0;n<250;n++);
}
void main(void)
{unsigned char i;
TMOD=0x10;
SCON=0x40;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TR1=1;
while(1)
{
for(i=0;i<8;i++)
{Send(Tab
);
delay();
}}}串口界面如下
QQ截图20131029111902.png (42.69 KB, 下载次数: 0)
下载附件
2013-10-29 11:19 上传
求解答 谢谢啦
改为
Send(Tab[i]);
TI=1;
改为
TI=0;
恩 还有一个错误就是SCON应该=0x40 大哥 再问一下,
TMOD=0x10;
SCON=0x40;
PCON=0x00;
TH1=FDH;
TL1=FDH;
TR1=1;
这段程序为什么这样写,就是有点搞不明白设置波特率为什么还要设置TMOD 跟TMOD有什么关系啊 我很菜鸟的
通常波特率是与TIMER1的溢出率相关的,而TIMER1(以及TIMER0)的工作模式是由TMOD决定的。
好的 谢了
一周热门 更多>