单片机 MCU 51 115200 波特率 模拟串口程序

2019-04-15 13:05发布

51 模拟串口 115200 单片机一般只有一个串口,有时需要两个串口,本例采用模拟GPIO方法,使用115200波特率,测试通讯正常,时序精准。 ; /*UART1 DRIVERS ;   – 115200Boundrate, 1 start bit, 8 data bit, 1 stop bit, no verify ;   – 22.1184MHzcrystal, 12 machine clock ; */   需要关掉中断,send,recv的数据需要在xdata。 send之后,如果对方回应很快,最好立即recv,避免数据丢失, 当然如果回应太快了(小于10us),是收不到的。 如果应答时间超过142210.95us,需要自己再延时,或不断查询。   程序下载:http://download.csdn.net/detail/lxj_com2006/4089348 欢迎交流:QQ 67016879 EMAIL: lxj_com@163.com   文件列表:     包含两个文件,uart1.h 头文件                   uart1.src汇编文件,通过KEIL C由c文件编译出来,再经过修改(算指令周期以匹配115200 Timing) 在KEIL中使用方法: 将uart1.src文件加入工程,在需要调用的c文件 #include "uart1.h",注意包含路径,依据自己的工程目录而定。 调用例子: void uart_demo() { unsigned char ret;     unsigned char xdata buffer[16];       buffer[0] = 0x55;//刚好可以看每个bit     buffer[1] = 0x00;     buffer[2] = 0xff;     buffer[3] = 0xaa;       EA = 0;//关中断       UART1_Send(buffer,4);     ret=UART1_Recv(buffer,4);       EA = 1;        if(ret==0x50){//接收超时                      //errortimeout about                      /*timeoutabout (255*255*4clock+255*8clock) * 0.5425us = 142210.95us*/       }else{                      //接收成功        } } 函数说明: 头文件:
GPIO定义:   逻辑分析仪测试: