目录
实验内容
晶振12MHz,波特率1200, 程序启动后单片机主动发出Hello Server, PC使用串口助手应答单片机,当单片机收到PC发来的数据AAH后,将30H-3FH的16个字节发送给PC,当51收到E0H时就发40H-5FH的32个字节数据,若单片机收到其他数据后,则不做任何修改返回PC。
实验设备
1、硬件:PC
单片机实验箱
2、软件:Kiel uVision4
串口助手
虚拟串口(VSPD)
实验电路
程序代码
#include"reg51.h"
#include"intrins.h"
typedef unsigned int uint;
typedef unsigned char uchar;
uchar a[12]="Hello Server";
uint i=0;
uchar date;
uint x;
uchar *p=0x30;
uchar *q=0x40;
void main()
{
SCON=0x50; //SM1=1;REN=1
EA=ES=1;
TMOD=0x20;
TH1=0xE6;
TL1=0xE6;
TR1=1;
SBUF=a[i];
while(1);
}
void usart() interrupt 4
{
if(TI)
{
TI=0;
if(i<12)
{
i++;
SBUF=a[i];
}
}
else
{
RI=0;
if(SBUF==0xAA)
{
for(x=0;x<16;x++)
{
SBUF=p;
p++;
while(!TI);
TI=0;
}
p=0x30;
}
else if(SBUF==0xE0)
{
for(x=0;x<32;x++)
{
SBUF=q;
q++;
while(!TI);
TI=0;
}
q=0x40;
}
else
{
date=SBUF;
SBUF=date;
}
}
}
串口设置
下载运行 vspd.exe 安装,安装好后,将vspdctl.dll 文件放入工程目录中,覆盖原有文件。
打开vspd.exe进行串口设置。
创建完成,打开XCOM,设置串口选择,运行电路。
OK,大家加油!