发布网友 发布时间:2022-05-06 16:53
共1个回答
热心网友 时间:2023-10-12 16:48
本人以51系列单片机写的试验程序连接关系:甲机RXD接已机的TXD,已机的RXD接甲机的TXD下面是试验2的甲机发送端c++程序说明:将波特率设置为9600,无奇偶校验晶振11.0592MHz,发送和接收使用的格式相同------------------------------------------------*/#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义/*------------------------------------------------函数声明------------------------------------------------*/voidSendStr(unsignedchar*s);/*------------------------------------------------串口初始化------------------------------------------------*/voidInitUART(void){SCON=0x50;//SCON:模式1,8-bitUART,使能接收TMOD|=0x20;//TMOD:timer1,mode2,8-bit重装TH1=0xFD;//TH1:重装值9600波特率晶振11.0592MHzTR1=1;//TR1:timer1打开EA=1;//打开总中断//ES=1;//打开串口中断}/*------------------------------------------------uS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5uS------------------------------------------------*/voidDelayUs2x(unsignedchart){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------主函数------------------------------------------------*/voidmain(void){charcodetab[15]="0123456789ABCDEF";//发送字符;InitUART();chari;while(1){for(i=0;isbita=P1^3;sbitb=P1^2;sbitc=P1^1;sbitd=P1^0;//四个小灯第电平为小灯点亮voidmain(){unsignedchartab;SCON=0x50;//SCON:模式1,8-bitUART,使能接收TMOD|=0x20;//TMOD:timer1,mode2,8-bit重装TH1=0xFD;//TH1:重装值9600波特率晶振11.0592MHzTR1=1;//TR1:timer1打开EA=1;//打开总中断//ES=1;//打开串口中断while(1){while(!RI);//查询等待接收RI=0;//接收完,软件清零tab=SBUF;接收甲机数据a=~tab/8;b=~(tab%8)/4;c=~((tab%4)/2);d=~tab%2;while(!RI);//查询等待接收RI=0;//接收完,软件清零}}热心网友 时间:2023-10-12 16:48
本人以51系列单片机写的试验程序连接关系:甲机RXD接已机的TXD,已机的RXD接甲机的TXD下面是试验2的甲机发送端c++程序说明:将波特率设置为9600,无奇偶校验晶振11.0592MHz,发送和接收使用的格式相同------------------------------------------------*/#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义/*------------------------------------------------函数声明------------------------------------------------*/voidSendStr(unsignedchar*s);/*------------------------------------------------串口初始化------------------------------------------------*/voidInitUART(void){SCON=0x50;//SCON:模式1,8-bitUART,使能接收TMOD|=0x20;//TMOD:timer1,mode2,8-bit重装TH1=0xFD;//TH1:重装值9600波特率晶振11.0592MHzTR1=1;//TR1:timer1打开EA=1;//打开总中断//ES=1;//打开串口中断}/*------------------------------------------------uS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5uS------------------------------------------------*/voidDelayUs2x(unsignedchart){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------主函数------------------------------------------------*/voidmain(void){charcodetab[15]="0123456789ABCDEF";//发送字符;InitUART();chari;while(1){for(i=0;isbita=P1^3;sbitb=P1^2;sbitc=P1^1;sbitd=P1^0;//四个小灯第电平为小灯点亮voidmain(){unsignedchartab;SCON=0x50;//SCON:模式1,8-bitUART,使能接收TMOD|=0x20;//TMOD:timer1,mode2,8-bit重装TH1=0xFD;//TH1:重装值9600波特率晶振11.0592MHzTR1=1;//TR1:timer1打开EA=1;//打开总中断//ES=1;//打开串口中断while(1){while(!RI);//查询等待接收RI=0;//接收完,软件清零tab=SBUF;接收甲机数据a=~tab/8;b=~(tab%8)/4;c=~((tab%4)/2);d=~tab%2;while(!RI);//查询等待接收RI=0;//接收完,软件清零}}