51单片机编程-虚拟串口
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++);
}
}
51单片机编程虚拟串 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)