首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

一个简单的模拟串行通信程序 有点有关问题 麻烦各位看看

2012-02-29 
一个简单的模拟串行通信程序 有点问题 麻烦各位看看#includereg52.hvoid send_bit(unsigned char i){if(

一个简单的模拟串行通信程序 有点问题 麻烦各位看看
#include"reg52.h"
 void send_bit(unsigned char i)
 {
 if(i) TXD=1;
else TXD=0;
TR0=1;
while(!TF0);
TR0=0;
TH0=0xFF;
TL0=0xA0; 

 }
void main()
{
unsigned char a=0xE4;
unsigned int i,j;
TMOD|=0x01;
TH0=0xFF; // 12/11.0592M*(65536-x)=1/9600; x=65440 
TL0=0xA0;
while(1)
{
TF0=0;
send_bit(0);
for(i=0;i<8;i++)
{
send_bit(a&0x01);
a=a>>1;
}
send_bit(1);
for(j=0;j<50000;j++);
a=0xE4;

}

}

发的是E4 接收到的是FC 波特率应该没问题呀

[解决办法]
是你的定时器初值计算方法有误了。所以造成模拟串口通讯不正常。
[解决办法]
"让每个0 1持续1/9600的时间",那么你程序运行的时间呢?这只是游戏吧?

热点排行