分享

用STC89C52连接Phyphox(串口)

 新用户5228KeDY 2021-10-10

用STC89C52连接Phyphox(串口)

实现STC89C52连接Phyphox,第一步要做的是让STC89C52RC的串口通信,能够把数字和字符发送给串口,然后蓝牙从串口接收了数据就可以送给Phyphox了。51单片机串口通信的教程在网络上非常多,简便办法当然是使用现成的代码,这就是51方面的巨大资源积累,到处都找得到想用的东西——后面要把这个代码改成传感器测量的数据。这里用的是“51单片机使用HC-05蓝牙模块向Android手机发送数据程序编写”教程,地址

https://blog.csdn.net/qq_41570228/article/details/80228699

这篇文章介绍的很整齐。所以基本按照原文做就行了。串口初始化:

void UartConfigurationInit()
{
    TMOD=0x20;  //设置定时器1工作方式为方式2   
    TH1=0xfd;     //波特率9600
    TL1=0xfd;  
    TR1=1;      //启动定时器1     
    SM0=0;SM1=1;      //串口方式1         
    REN=1;      //允许接收   
    PCON=0x00;  //关倍频   
    ES=1;       //开串口中断   
    EA=1;       //开总中断
}

定义发送单个字符的函数:

void PostChar(uchar character)  
{     
     SBUF=character;   //发送单个字符
     while(!TI);TI=0; //发送完成标志 
}

从字符数组的首地址向后移位,每次发出一个字符,发到指针为空时,表明发完了。

void  PostString(uchar *p)  
{  
     while(*p)      //若指针指向的地址为空,则跳出循环
     {  
         PostChar(*p); //指针第一次默认指向首地址
   delay(20);  //延时,作用为提高发送准确度
         p++;  
     }   
}

十进制数发送函数等,不述。这里只是测试,不必发送十进制数,实际按字符发送所有字符串之后,到Phyphox一端字符串是自动能把String转成数值的。

打开Keil把代码复制了,然后编译为.hex文件。备用。

打开Proteus,按下表物料搭建最小系统:

在P3.0、P3.1引脚接入虚拟终端,同时把虚拟终端的波特率设为9600.把Keil生成的.hex文件指定给AT89C52,注意一定一定一定要把Clock Frequecy设为11.0592MHz,运行仿真,虚拟终端正常得到了串口发出的数据。最前面篇首图即是。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多