标题:
单片机io模拟串口进行通信的proteus仿真及源程序
[打印本页]
作者:
51黑ff
时间:
2016-10-9 22:55
标题:
单片机io模拟串口进行通信的proteus仿真及源程序
用51单片机普通io口来模拟串口通信的原理图:
0.png
(23.68 KB, 下载次数: 53)
下载附件
2016-10-9 22:51 上传
0.png
(10.9 KB, 下载次数: 65)
下载附件
2016-10-9 22:54 上传
仿真工程文件及所有完整程序等资料下载地址:
http://www.51hei.com/bbs/dpj-56304-1.html
2个单片机的源程序:
#include <AT89X51.H>
#define uchar unsigned char
#define RXD P1_0
#define TXD P1_1
//计数器初始化
void S2INI(void)
{
TMOD |=0x02; //计数器0,方式2
TH0=0xA0; //预值为256-96=140,十六进制A0
TL0=TH0;
TR0=1; //开始计数
TF0=0;
}
//查询计数器溢出标志位
void WaitTF0( void )
{
while(!TF0);
TF0=0;
}
void WByte(uchar input)
{
//发送启始位
uchar i=8;
TR0=1;
TXD=(bit)0;
WaitTF0();
//发送8位数据位
while(i--)
{
TXD=(bit)(input&0x01); //先传低位
WaitTF0();
input=input>>1;
}
//发送校验位(无)
//发送结束位
TXD=(bit)1;
WaitTF0();
TR0=0;
}
void delay()
{
uchar i,j,k;
for(i=100;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
S2INI();
while(1)
{
WByte(0x7f);
delay();
WByte(0xff);
delay();
}
}
复制代码
#include <reg51.h>
//初始化串行口
void csh()
{
SM0=0;
SM1=1;
REN=1;
TI=0;
RI=0;
PCON=0;
TH1=0xFD;
TL1=0XFD;
TMOD=0X20;
EA=1;
ET1=0;
ES=1;
TR1=1;
}
void main()
{
csh();
while(1)
{;}
}
void intrr() interrupt 4
{
char temp;
temp=SBUF;
P1=temp;
RI=0;
}
复制代码
作者:
15262133937
时间:
2020-6-3 14:23
楼主您好,可以把您的工程发一下吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1