资讯详情

串口助手下发命令~单片机回传不同的数据

/**********串口助手下发命令,单片机回传不同的数据**************/ /** *时间:2014年3月15日 07:32:22 *作者:寒竹子 **/

#include <reg52.h>

typedef unsigned int uint; typedef unsigned char uchar;

bit cmdAddrived = 0;//收到下发命令的标志 uchar cmd = 0;//上位机下发的命令 uchar cnt;//发送字节的个数 uchar * sendStr = "";//单片机发送的数据指针

//预定义待发送的数据 uchar * pstr1 = "Welcome to !\n"; uchar * pstr2 = "www*t*odg \n"; uchar * pstr3 = "Welcome to M-32!\n"; uchar * pstr4 = "www*chuxue123*cdm \n";

void UART_Config(uint baud); void UART_sendByte(uchar dat); void UART_sendString(uchar * pstr); uchar UART_recieved(); void recievedByComputer();

void main() { UART_Config(9600);

while (1) { recievedByComputer(); } }

//串口波特率配置 void UART_Config(uint baud) { SC |= 0x50; /* SM0 = 0; SM1 = 1; REN = 1; = 0; RI = 0; */ TMOD &= 0x0F;//清零T1控制位 TMOD |= 0x20;//T1方式2,八位自动重装 TH1 = 256-(11059200/12/32/baud); = TH1; TR1 = 1; }

//send Byte void UART_sendByte(uchar dat) { SBUF = dat; while (!TI); TI = 0; REN = 1;//允许接收 }

//send String void UART_sendString(uchar * pstr) { while (*pstr != '\0') { UART_sendByte(*pstr++); } }

//recieve uchar UART_recieved() { uchar dat = 0; if (RI) //接收到数据 { dat = SBUF; RI = 0; REN = 0;//发送数据,禁止接收 }

return (dat); }

//接收命令并处理 void recievedByComputer() { cmd = UART_recieved();

switch (cmd) { case 1: { UART_sendString(pstr1); break; } case 2: { UART_sendString(pstr2); break; } case 3: { UART_sendString(pstr3); break; } case 4: { UART_sendString(pstr4); break; } default: break; } }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台