|
兄弟,下面是我自己写的,希望给你帮助,把数据用Send_One_Uart()这个函数直接发送到串口就行了!最后求采纳,哈哈! //-----头文件 #include<reg52.h> //-----定义全局变量 unsigned char Temp; /*************************************************** ** 函数名称: UART_Init ** 功能描述: 串口初始化函数 ** 输 入:无 ** 输 出: 无 ** 说 明: 无 ****************************************************/ void UART_Init(void) { SCON = 0x50; //-----SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; //-----TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; //-----TH1: 重装值 9600 波特率 晶振 11.0592MHz TR1 = 1; //-----TR1: timer 1 打开 ES = 1; //-----打开串口中断 EA = 1; //-----打开总中断 } /*************************************************** ** 函数名称: SendByte ** 功能描述: 发送字节函数 ** 输 入:无 ** 输 出: 无 ** 说 明: 无 ****************************************************/ void SendByte(unsigned char dat) { SBUF = dat; while(!TI); TI = 0; } /*************************************************** ** 函数名称: SendStr ** 功能描述: 发送字符串函数 ** 输 入:无 ** 输 出: 无 ** 说 明: 无 ****************************************************/ void SendStr(unsigned char *s) { while(*s!='\0') { SendByte(*s); s++; } } /*************************************************** ** 函数名称: main ** 功能描述: 主函数 ** 输 入:无 ** 输 出: 无 ** 说 明: 无 ****************************************************/ void main (void) { UART_Init(); //-----串口初始化 while(1) { if(Temp=='H'&&'i') { Temp=0; SendStr("hello"); } } } /*************************************************** ** 函数名称: UART_SER ** 功能描述: 串口中断服务子函数 ** 输 入:无 ** 输 出: 无 ** 说 明: 无 ****************************************************/ void UART_SER (void) interrupt 4 //-----串行中断服务程序 { if(RI) //-----判断是接收中断产生 { RI=0; //-----标志位清零 Temp=SBUF; //-----读入缓冲区的值 } } |
|
|
来自: lixinhecom > 《串行口通信》