您的位置:首页 > 其它

单片机与PC机通信

2017-12-21 21:11 190 查看
单片机获取和管理传感器的数据,然后通过串口通信将数据发送给PC。

利用proteus仿真单片机和PC口通信时,需要用到串口调试助手和虚拟串口配置软件。

串口助手用于PC进行数据发送和接收,虚拟串口用于将PC的串口虚拟连接。

P3.0口RXD

P3.1口TXD

对应接上compim的接口

传值给PC

程序中先设定工作方式

//设定工作方式
void port()
{
TMOD=0x20; //((T1工作方式2、软启动,设置串口波特率)
//串口初始化
TH1=0xfd; //波特率9600
TL1=0xfd;
TR1=1;
PCON=0x00;
SCON=0X40;//串口工作方式1,(REN=0)不允许接收,若允许接收,则SCON=0x50
}


主程序中

SBUF=key[keynum];//发送值至串口端显示
while(!TI);//检测发送标志位TI, TI=0,未发送完
TI=0;//一个字节发送完,TI清0


串口传值到单片机

//设定工作方式
void serial()
{
SCON=0x50;//串行口方式1 SM0=0;SM1=1;REN=1;(允许接收)
PCON=0x00;//T1初始化,
TMOD=0x20;//T1设为方式2
TH1=0xFD;//选9600波特,fosc=11.0592MHz
TL1=0xfd;
TR1=1;//启动T1
}


主程序中

if(RI)//如果接收到数据,就把接收到的数回发给PC
{
RI=0;//清接收标志
a=SBUF;//读串行口数据
a=a-'a'+'A';//接小收大
SBUF=a;//把从PC机发送过来的数据返回给PC机
while(!TI);//没有发送完等待
TI=0;//清发送完中断标志
}


void uart_init(unsigned int bps)
{ unsigned char t;
SCON=0x80;//工作方式一:9位异步收发
PCON=0x90;//SMOD=1
TI=0;//软件清零,表示未发送完成
EA=1;//开总中断
ET1=1;//开T1中断
ES=1; //开串口中断
TMOD=0x20;//8位自动装载模式
switch(bps)
{ case 1200:t=0xe8;break;
case 2400:t=0xf4;break;
case 4800:t=0xfa;break;
case 9600:t=0xfd;break;
}
TH1=t;
TL1=t;
TR1=1;//开启T1
}
/********************循环发送数据
ch为数据口**********************************/
void uart_send(unsigned char ch)
{
ES=0; //关串口中断
SBUF=ch;
while(TI==0);//等待发送完成
TI=0;  //清除中断标记
ES=1; //开串口中断
}
/*------------------------------------------------
把读取值转换成一个一个的字符,给串口显示 (两位小数)
------------------------------------------------*/
void To_ascii(unsigned char num)
{
SBUF=num/100+'0';
delay(200);
SBUF=num/10%10+'0';
delay(200);
SBUF=num%10+'0';
delay(200);
}


单片机传字符串给串口

SBUF=s[b];//发送s数组至sbuf,电脑串口助手赋值


a=SBUF ;//读串行口数据,电脑串口送过来的数据进行赋值


启动工作方式后,由独立按键触发,开始传值。

if(K1==0)//如果独立按键被按下
{
b=0;//计数器清零
a=strlen(s);//取数组长度
for(;b<a;b++)//循环取数据发送,从0到a
{
SBUF=s[b];//发送s数组至sbuf
while(!TI);//没有发送完,则等待
TI=0;//清发送结束标志
}
while(!K1);//如果按键没有松开,等待
}


串口输入相关字符串后,51上显示

if(RI)//如果接收到数据,就把接收到的数回发给PC
{
RI=0;//清接收标志
a=SBUF ;//读串行口数据
SBUF=a;//把从PC机发送过来的数据返回给PC机
while(!TI);//没有发送完等待
TI=0;//清发送完中断标志
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: