新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机摸拟串口(232)

51单片机摸拟串口(232)

作者: 时间:2016-11-28 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201611/322634.htm

F_TM=0;

while(!F_TM);

ACC1=BT_REC;

F_TM=0;

while(!F_TM);

ACC2=BT_REC;

F_TM=0;

while(!F_TM);

ACC3=BT_REC;

F_TM=0;

while(!F_TM);

ACC4=BT_REC;

F_TM=0;

while(!F_TM);

ACC5=BT_REC;

F_TM=0;

while(!F_TM);

ACC6=BT_REC;

F_TM=0;

while(!F_TM);

ACC7=BT_REC;

F_TM=0;

while(!F_TM)

{

if(BT_REC)

{

break;

}

}

TIMER0_DISABLE;//停止timer

returnACC;

#else

unsignedcharrch,ii;

TIMER0_ENABLE;

F_TM=0;

ii=0;

rch=0;

while(!F_TM);//等过起始位

while(ii<8)

{

rch>>=1;

if(BT_REC)

{

rch|=0x80;

}

ii++;

F_TM=0;

while(!F_TM);

}

F_TM=0;

while(!F_TM)

{

if(BT_REC)

{

break;

}

}

TIMER0_DISABLE;//停止timer

returnrch;

#endif

}

//检查是不是有起始位

bit StartBitOn()

{

return(BT_REC==0);

}

voidmain()

{

unsignedchargch;

TMOD=0x22;

PCON=00;

TR0=0;//在发送或接收才开始使用

TF0=0;

//TH0=(256-96);

TH0=(256-197);

//9600bps 就是 1000000/9600=104.167微秒 执行的timer是

//

//104.167*11.0592/12= 96

TL0=TH0;

ET0=1;

EA=1;

PSendChar(0x55);

PSendChar(0xaa);

PSendChar(0x00);

PSendChar(0xff);

while(1)

{

p=gch;

for(i=0;i<8;i++)

{if(StartBitOn())

{*p=PGetChar();

PSendChar(*p);

p++;

}

}

}

}


上一页 1 2 下一页

评论


技术专区

关闭