单片机获取和管理传感器的数据,然后通过串口通信将数据发送给PC。
利用proteus仿真单片机和PC口通信时,需要用到串口调试助手和虚拟串口配置软件。
串口助手用于PC进行数据发送和接收,虚拟串口用于将PC的串口虚拟连接。
P3.0口RXD
P3.1口TXD
对应接上compim的接口
传值给PC
程序中先设定工作方式
void port()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
PCON=0x00;
SCON=0X40;
}
主程序中
SBUF=key[keynum];
while(!TI);
TI=0;
串口传值到单片机
void serial()
{
SCON=0x50;
PCON=0x00;
TMOD=0x20;
TH1=0xFD;
TL1=0xfd;
TR1=1;
}
主程序中
if(RI
{
RI=0
a=SBUF
a=a-'a'+'A'
SBUF=a
while(!TI)
TI=0
}
void uart_init(unsigned int bps)
{ unsigned char t;
SCON=0x80;
PCON=0x90;
TI=0;
EA=1;
ET1=1;
ES=1;
TMOD=0x20;
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;
}
/********************循环发送数据
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++
{
SBUF=s[b]
while(!TI)
TI=0
}
while(!K1)
}
串口输入相关字符串后,51上显示
if(RI
{
RI=0
a=SBUF
SBUF=a
while(!TI)
TI=0
}