串口通讯在一些通讯方面的项目顶用的许多,可是学习起来往往条件不行充沛。这儿我介绍一款软件“虚拟串口”助你学。SUDT SerialNull V1.7http://www.skycn.com/soft/27579.html
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++);
}
}