附上自己做的握手程序
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar receive_LY[6];
- uchar FPM10A_RECEICE_BUFFER[32];
- //code uchar FPM10A_Get_Device[10] ={0x01,0x00,0x07,0x13,0x00,0x00,0x00,0x00,0x00,0x1b};//验证口令
- //code uchar FPM10A_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //包头协议
- void delay(uint x)
- {
- uint i,j;
- while(--x)
- {
- for(i=0;i<110;i++)
- for(j=0;j<110;j++);
- }
- }
- void Uart_Send_Byte() //发送握手口令,一个一个发送,简单粗暴
- {
- SBUF = 0xef;
- while(!TI);
- TI = 0;
- SBUF = 0x01;
- while(!TI);
- TI = 0;
- SBUF = 0xff;
- while(!TI);
- TI = 0;
- SBUF = 0xff;
- while(!TI);
- TI = 0;
- SBUF = 0xff;
- while(!TI);
- TI = 0;
- SBUF = 0xff;
- while(!TI);
- TI = 0;
- SBUF = 0x01;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x07;
- while(!TI);
- TI = 0;
- SBUF = 0x13;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x00;
- while(!TI);
- TI = 0;
- SBUF = 0x1b;
- while(!TI);
- TI = 0;
- }
- void jieshou(uchar x)
- {
- uchar i;
- for(i=0;i<x;i++)
- {
- while(!RI);
- RI=0;
- receive_LY[i]=SBUF;
-
- }
- }
- void liangdeng()//如果接受到,将会把接收到的指令转换为P1口的灯光显示。可事实上啥都不亮 0_0
- {
- uchar i;
- for(i=0;i<12;i++)
- {
- P1=FPM10A_RECEICE_BUFFER[i];
- delay(5000);
- P1=0xff;
-
- }
- }
- void main()
- {
- SCON=0x50;
- TMOD=0x20;
- PCON=0x00;
- EA=1;
- TR1=1;
- TH1=0xFD;
- TL1=0xFD;
- Uart_Send_Byte();
- while(1)
- {
- jieshou(12);
- liangdeng();
-
- }
-
- }
复制代码 ////51单片机与as608的问题屡见不鲜,求指导。
|