51单片机接收电脑发送来的两个字节数据,请问怎样接收,求C程序。。。 5
展开全部
#include "c8051F040.h"
#define uchar unsigned char
#define uint unsigned int
void port_init();
void os_init();
void uart_init();
void time_init();
/*************************************************************************
*
*主函数
**************************************************************************/
void main()
{
uchar g;
WDTCN = 0xDE; // 关闭看门狗
WDTCN = 0xAD;
os_init(); //晶振初始化
port_init(); //端口初始化
uart_init();
time_init();
SFRPAGE = CONFIG_PAGE;
IE = 0x90; //开中断
while(1)
{
SFRPAGE = UART0_PAGE;
g=SBUF0;
SFRPAGE = UART0_PAGE;
while(RI0==0); RI0=0;
{
SFRPAGE = UART0_PAGE;
SBUF0=g;
while(TI0==0);
SFRPAGE = UART0_PAGE;
TI0=0;
}
}
}
/*************************************************************************
*
*端口初始化函数
**************************************************************************/
void port_init()
{
SFRPAGE = CONFIG_PAGE;
XBR0 = 0x04;
XBR2 = 0x40;
P0MDOUT = 0X10;
}
/*************************************************************************
*
*系统时钟初始化,选择外部晶体振荡器
**************************************************************************/
void os_init()
{
int i = 0;
SFRPAGE = CONFIG_PAGE;
OSCXCN = 0x67; //外部22.1184M晶振
for (i = 0; i < 3000; i++); //等待外部晶振稳定
while ((OSCXCN & 0x80) == 0);
CLKSEL = 0x01; //系统时钟不分频
}
/*************************************************************************
*
*串口初始化,选择UART1
**************************************************************************/
void uart_init()
{
SFRPAGE = UART0_PAGE;
SCON0 = 0x50; //允许uart1
}
/*************************************************************************
*
*定时器初始化,作为UART0的波特率发生器
*************************************************************************/
void time_init()
{
SFRPAGE = TIMER01_PAGE;
TCON = 0X40;
TMOD = 0x20;
CKCON = 0X10;
TH1 = 0xb8;
TR1=1;
}
展开全部
只有两个字节吗?
以后就没有了吗?
以后就没有了吗?
追问
是的,,上位机隔一分钟发来一个两字节数据。。
追答
循环的吗?
先后,收到两个字节,哪一个,是第一、第二?
第一字节,有什么特征?
建议楼主,先探讨一下串口通信modbus协议。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要给你写一份吗
我做单片机方面的
我做单片机方面的
更多追问追答
追问
需要 啊 非常感谢,,
追答
需要定做可以丘上说
我id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询