|
附上自己做的握手程序
- #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}; //包頭協(xié)議
- 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() //發(fā)送握手口令,一個一個發(fā)送,簡單粗暴
- {
- 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()//如果接受到,將會把接收到的指令轉(zhuǎn)換為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();
-
- }
-
- }
復(fù)制代碼 ////51單片機與as608的問題屢見不鮮,求指導(dǎo)。
|
|