×
嵌入式 > 嵌入式开发 > 详情

51单片机编程-虚拟串口

发布时间:2020-08-27 发布时间:
|
串口通信在一些通信方面的项目中用的很多,但是学习起来往往条件不够充分。这里我介绍一款软件“虚拟串口”助你学。

1.安装完毕后打开该软件

上面为你实际的物理串行口COM3,COM4(注意我的电脑两个串口坏了,换上了PCI 串口卡(长的很像内存条),装了驱动就设置为COM3,COM4,你的没坏的话应该是COM1,COM2,新增虚拟物理串口就是COM3,COM4了),下面是虚拟的物理串行口。下面我们来增加一对虚拟串行口。

因为一般的电脑最多为两个串行口,在这个画面上,我们设置为com3,com4,点击add pair就可以增加一对虚拟串口(如上图所示)。这两对端口是通过这个软件物理连接的,并且是rs232电平连接。

这样我们就完成里串口的设置,可以把此软件关闭,这两个端口将会一直存在于你的电脑中,下次直接使用就可以了。

打开两个串口调试助手。一个选COM1,发ABCDEFGHI,选中“自动发送”,另外一个选中COM2,发123456789,同样选中“自动发送”。看看两个串口是不是已经忙活起来了。呵呵,帅吧。

OK,现在开始模仿单片机与PC机的串行通信吧。PROTEUS就不用介绍了吧。

注意:这里的单片机的RXD要与P1的RXD, 单片机的TXD要与P1的TXD,P1设置为COM1(虚拟串口中的一个),波特率就设为2400,然后打开串口调试助手,设为COM2(虚拟串口的另外一个),波特率就设为2400。点击PROTEUS中的PLAY,点击BUTTON,看看串口调试助手里面的东东吧。是不是点击一下BUTTON就发一串字符到串口调试助手。

有了这东东,以后学习串口就不用发愁了。这是我从网上一片文章中借鉴的,你可以上网查查,把串口这一块吃透。

源程序如下:

#include

#include

char code str[] = "I love MCU \n\r";

void send_int(void);

void delayms(unsigned char ms);

void send_char(unsigned char txd);

void send_str();

sbit K1 = P1^4;

main()

{

send_int();

TR1 = 1; // 启动定时器1

while(1)

{

if(!K1) // 扫描按键

{

delayms(10); // 延时去抖动

if(!K1) // 再次扫描

{

send_str();

while(!K1);

}

}

}

}

void send_int(void)

{ TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率

TH1 = 0xF3; // 波特率2400

TL1 = 0xF3;

SCON = 0x50; // 设定串行口工作方式

PCON&= 0xef; // 波特率不倍增

IE = 0x0; // 禁止任何中断

}

void send_char(unsigned char txd)

// 传送一个字符

{

SBUF = txd;

while(!TI); // 等特数据传送

TI = 0; // 清除数据传送标志

}

void send_str()

// 传送字串

{

unsigned char i = 0;

while(str[i] != \0)

{

SBUF = str[i];

while(!TI); // 等特数据传送

TI = 0; // 清除数据传送标志

i++; // 下一个字符

}

}

void delayms(unsigned char ms)

// 延时子程序

{

unsigned char i;

while(ms--)

{

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

}

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
五大标准轻松搞定4K超高清电视选购