计算机如何接受单片机发来的数据

如题所述

            这个要看你的具体要求,如果是单一的测试你可以直接用串口调试助手,前提条件你必须写好单片机串口通讯程序,我给你个参考程序啊,我前段时间帮一位网友写的串口调试助手控制单片机LED开关,下位机介绍到上位机数据后,然后再把接收到的数据返回给上位机。

/*

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

 *

**/

#include "REG52.H"

#include "INTRINS.H"



/*

* 相当于宏定义

*/

typedef unsigned char  INT8U;

typedef unsigned int   INT16U;


/*

*  P1端口LED

*/

sbit LED_Input0 = P1^0;

sbit LED_Input1 = P1^1;

sbit LED_Input2 = P1^2;

sbit LED_Input3 = P1^3;

sbit LED_Input4 = P1^4;

sbit LED_Input5 = P1^5;

sbit LED_Input6 = P1^6;

sbit LED_Input7 = P1^7;


/*

* 变量

*/

unsigned char UART_Byte;



/*

*  向串口发送一个字节数据

*/

void UART_Send_Buf(unsigned char Byte)

{

EA = 0;

TI = 0;

SBUF = Byte;

while(!TI);

TI = 0;

EA = 1;

}



/*

*

*/

int main(void)

{

//

P0 = 0xFF;

P1 = 0xFF;

P2 = 0xFF;

P3 = 0xFF;

//

PCON&= 0x7F;

TCON = 0x00;

SCON = 0x50;

TMOD = 0x20;

TH1  = 0xFD;

TL1  = 0xFD;

TR1  = 1;

ES   = 1;

EA   = 1;


UART_Byte = 0xFF;

while(1)

{

P1 = UART_Byte;

}

}


void UART_IRQ(void) interrupt 4

{

RI = 0;

UART_Byte= SBUF;


UART_Send_Buf(UART_Byte);

}

// 发送数据7F单片机P1.7LED亮

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-07

你这个问题十分含糊。计算机与单片机之间有多种可能的物理链路,所以你需要根据所选用的物理链路来确定如何进行上位机编程。

    UART串口。如果单片机侧通过UART经过RS-232转换后连接上位机的串口,那么就是基本的RS-232通讯方式。一般来说,在上位机侧都有较成熟的控件(例如Windows的MsComm控件);如果追求效率则可以自行编写底层接口函数。

    USB。一般来说,单片机侧都是USB的从机端,且一般会根据应用情况映射为CDC类、MSC类或HID类。上位机侧调用相应的USB驱动接口即可。

    以太网。现在很多单片机直接支持以太网接口,所以对于上位机而言,单片机就是一个普普通通的网络设备,直接按照所需的协议(例如TCP)进行相关编程就行。这部分涉及到网络编程较多,可能需要进行深入学习。

    其它。例如红外、蓝牙、Wifi等等,均需要具体情况具体进行分析,在此不再赘述。

第2个回答  2014-01-22
使用串口阿,用串口和单片机通信,然后按照你自己设计的协议来解析单片机发过来的数据,然后通过软件给单片机发送指令来控制它的运行。
相似回答