51单片机串口不够用,怎么样模拟

如题所述

第1个回答  2011-12-19
给你发一个 我做得模拟串口发送程序吧,模拟成功。希望对你能有帮助。
#include<reg51.h>

#define uint unsigned int
#define uchar unsigned char

sbit Rxd=P1^0;
sbit Txd=P1^1;
uchar b[10]="fengfeng";

void delay(uint z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void init()
{
TMOD=0x02;
P1=0xff;
TL0=0xa0; //波特率 9600
TH0=0xa0;
TR0=0;
TF0=0;
}

void send(uchar aa)
{
uint i=8;

TL0=0xa0; //波特率 9600
TH0=0xa0;

TR0=1;
Txd=(bit)1;
while(!TF0);
TF0=0;

Txd=(bit)0; //起始位
while(!TF0);
TF0=0;

while(i--)
{
Txd=(bit)(aa&0x01);
while(!TF0);
TF0=0;
aa=aa>>1;
}

Txd=(bit)1;
while(!TF0);
TF0=0;

Txd=(bit)1;
while(!TF0);
TF0=0;

TR1=0;

}

void Putstring(uchar *buf)
{
while(*buf!='\0')
{
send(*buf);
buf++;
delay(200);
}
}

void main()
{
init();
while(1)
{
// Putstring("I Love You!");
// delay(200);
send(0x11);
delay(1000);
send(0x12);
delay(1000);
send(0x13);
delay(1000);
send(0x14);
delay(1000);
}
}
第2个回答  2011-12-15
用一个普通IO口作为TXD发送口,外部中断口作为RXD接收口,就可以模拟串口通讯了。本回答被提问者采纳
第3个回答  2011-12-15
两个渠道:1选用双串口单片机;2用51单片机的任意两个串口模拟,网上有程序可以参考。
第4个回答  2013-11-29
模拟,太费事了。

扩充,就行了。
参考:
第5个回答  2011-12-15
这个有点难,没有那么干的一半,尤其是51,就算IO模拟成功了,速度也会很慢,没有意义,个人感觉。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网