中易网

请教高手,如何实现51单片机和计算机之间的简单无线通信?

答案:3  悬赏:0  
解决时间 2021-02-02 09:41
请教高手,如何实现51单片机和计算机之间的简单无线通信?
最佳答案
无线模块 226,227或其它,然后用串口连接到电脑,写一个上位机的软件,用VB就行很简单的
全部回答
最简单的是买个无线模块,51与之串口通信。主要工作其实都由模块帮你完成了,你只需要配置配置模块就可以收发。

串口通讯参考程序如下:

来源:深入浅出avr单片机

#include<reg51.h>

unsigned char uart_rx; //定义串口接收数据变量

unsigned char rx_flag; //定义穿行接收标记

void uart_init (void){

 ea = 1; //允许总中断(如不使用中断,可用//屏蔽)

 es = 1; //允许uart串口的中断

 tmod = 0x20; //定时器t/c1工作方式2

 scon = 0x50; //串口工作方式1,允许串口接收(scon = 0x40 时禁止串口接收)

 th1 = 0xf3; //定时器初值高8位设置

 tl1 = 0xf3; //定时器初值低8位设置

 pcon = 0x80; //波特率倍频(屏蔽本句波特率为2400)

 tr1 = 1; //定时器启动    

}

void uart_r (void) interrupt 4  using 1{ //切换寄存器组到1

 ri = 0;   //令接收中断标志位为0(软件清零)

 uart_rx = sbuf; //将接收到的数据送入变量 uart_data

 rx_flag=1;  //标记接收

 //用户函数内容(用户可使用uart_data做数据处理)

 

 //sbuf = uart_data; //将接收的数据发送回去(删除//即生效)

 //while(ti == 0); //检查发送中断标志位

 //ti = 0;  //令发送中断标志位为0(软件清零)

void uart_t (unsigned char uart_data){ //定义串口发送数据变量

 es=0;    //禁止穿行中断

 sbuf = uart_data; //将接收的数据发送回去

 while(ti == 0);  //检查发送中断标志位

 ti = 0;   //令发送中断标志位为0(软件清零)

 es=1;   //打开穿行中断

}

void uart_s(unsigned char *str)

{

 while(1)

 {

  if(*str=='\0') break;

  uart_t(*str++);

 }

}

void main()

{

 unsigned char buf_data[]={"      welcome to mcu world.     \n\r"};

 uart_init();

 uart_s(buf_data);

 while(1){

  if(rx_flag==1)

  {

   uart_t(uart_rx);

   rx_flag=0;

  }

 }

祝愿楼主马到功成

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
IBM的邮箱是多少
型动健身石井分店这个地址在什么地方,我要处
如何调节平行光管与望远镜共轴
MV小永远在哪里拍的
简便计算:37x25 144x45+90x28
移动硬盘传输突然变慢
前男友要结婚了,我很难受
安卓软件怎么彻底删除用户数据,就是再次安装
美味阁美食这个地址在什么地方,我要处理点事
vivo手机未接来电和短消息提醒声音怎么关掉
塔园外交公寓东门在哪里啊,我有事要去这个地
找武汉音乐学院的评委上课要多少钱一节课?声
互联网消费金融公司?
水多多配送站南航店这个地址在什么地方,我要
华为P8屏幕不平?不能完全贴合钢化膜。是华为
推荐资讯
那些著名武侠小说中什么刀法最厉害
喜欢刘若英的女人是什么样的女人
长治高消费县是哪些县?
全客隆特产商行怎么去啊,有知道地址的么
将1-9个数字恰当的填入九宫格内,使每一行,
石牌巷/宫仔巷(路口)在哪里啊,我有事要去这
病毒HEUR:Trojan-Downloader.Script.Generic
求这个妹子名字
成都中和中学英才班。
百苹科技地址有知道的么?有点事想过去
脚踏两只船出自哪里?什么来历
立邦大众油漆辅材经营部地址有知道的么?有点
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?