- 27
- 0
- 约1.26万字
- 约 73页
- 2022-03-25 发布于广东
- 举报
* * 二、硬件电路 * * 三、程序设计 流程图 * * A单片机程序如下: #includereg52.h #define uchar unsigned char #define uint unsigned int void Uart_Init(void) //串口初始化函数 { TMOD=0x20; // T1工作在定时器方式2 TH1=0xFA; //波特率4800 TL1=0xFA; SCON=0x50; //串口工作于方式1,允许接收 PCON=0x00; //SMOD=0 TR1=1; //启动T1 } * * * * void DelayMs(uint n) //延时函数 { uchar j; while(n--) for(j=0;j113;j++); //晶振11.0592MHz,延时约1ms } void Send(uchar sed[16]) //A机发送函数 { uchar i,sum; rp1: SBUF=0xE1; //发送请求发送信号 while(TI==0); TI=0; while(RI==0); //等待回答信号 RI=0; * * if(SBUF!=0xE2) //若回答不是E2,则继续发送E1 { DelayMs(1000); goto rp1; } rp2: sum=0; for(i=0;i16;i++) //发送数据块 { SBUF=sed[i]; sum+=sed[i]; //计算校验和 while(TI==0); TI=0; } * * SBUF=sum; //发送校验和 while(TI==0); TI=0; while(RI==0); //等待回答信息 RI=0; if(SBUF!=0x00) { P2=0x79; //若回答不正确,显示“E” goto rp2; //重新发送数据块 } else P2=0x73; //回答正确,显示“P” } * * void main(void) { uchar sdata[16]= {0x00,0x01,0x02,0x03,0x04,0x05, 0x06,0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e,0x0f }; //发送的数据 P2=0x7f; //显示“8” Uart_Init(); //初始化串口 Send(sdata); //发送缓冲区中的数据 } * * B单片机程序如下: #includereg52.h #define uchar unsigned char #define uint unsigned int void Uart_Init(void) //串口初始化函数 { TMOD=0x20; // T1工作在定时器方式2 TH1=0xFA; //波特率4800 TL1=0xFA; SCON=0x50; //串口工作于方式1,允许接收 PCON=0x00; //SMOD=0 TR1=1; //启动T1 } * * void DelayMs(uint n) //延时函数 { uchar j; while(n--) for(j=0;j113;j++); //晶振11.0592MHz,延时约1ms } void Receive(uchar rec[16]) //B机接收函数 { uchar i,sum, flg_err=0; RI=0; rp1:
原创力文档

文档评论(0)