📄 recframe.lst
字号:
C51 COMPILER V7.50 RECFRAME 07/19/2006 10:05:15 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RECFRAME
OBJECT MODULE PLACED IN recframe.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE recframe.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "recframe.h"
2 #include "recframeown.h"
3 #include "time.h"
4
5
6 /*********************************************************************
7 * 函 数 名: StatSwitch
8 * 功能描述: 判断每一个接收字节,进行状态转移,置标识位
9 * 函数说明: 帧头68H,帧尾16H
10 * 调用函数: 无
11 * 全局变量:无
12 * 输 入: 无
13 * 返 回: 无
14 * 设 计 者:zy
15 ***********************************************************************/
16 void StatSwitch()
17 {
18 1 register uchar i,ch;
19 1 static uchar RecCount,RecState,dl,count, DataLen,cs;
20 1
21 1 ch=SBUF;
22 1 if(s_end==0) //数据没有发送完,返回
23 1 return;
24 1 RecBuf[RecCount]=ch; //将接收到的字节存入缓冲区
25 1 RecCount++;
26 1
27 1 switch(RecState)
28 1 {
29 2 case RS_WAIT:
30 2 if(ch==FRAME_START_CHAR)
31 2 {
32 3 RecState++;
33 3 count=1;
34 3 }
35 2 else
36 2 RecCount=0;
37 2
38 2 break;
39 2
40 2 case RS_HEADER:
41 2 count++;
42 2 if(count==2)
43 2 {
44 3 if(RecBuf[1]==add[0])
45 3 hcode=1;
46 3 else if(RecBuf[1]==0)
47 3 hcode=0;
48 3 else
49 3 {
50 4 RecCount=0;
51 4 RecState=RS_WAIT;
52 4 break;
53 4 }
54 3 }
55 2 if(count==3)
C51 COMPILER V7.50 RECFRAME 07/19/2006 10:05:15 PAGE 2
56 2 {
57 3 if(RecBuf[2]==add[1])
58 3 mcode=1;
59 3 else if(RecBuf[2]==0)
60 3 mcode=0;
61 3 else
62 3 {
63 4 RecCount=0;
64 4 RecState=RS_WAIT;
65 4 break;
66 4 }
67 3 }
68 2
69 2 if(count==4)
70 2 {
71 3 if(RecBuf[3]==add[2])
72 3 lcode=1;
73 3 else if(RecBuf[3]==0)
74 3 lcode=0;
75 3 else
76 3 {
77 4 RecCount=0;
78 4 RecState=RS_WAIT;
79 4 break;
80 4 }
81 3 if((add_flag!=0)&&(add_flag!=4)&&(add_flag!=6)&&(add_flag!=7))
82 3 {
83 4 RecCount=0;
84 4 RecState=RS_WAIT;
85 4 break;
86 4 }
87 3 }
88 2
89 2
90 2 if(count==5)
91 2 {
92 3 if(RecBuf[4]!=FRAME_START_CHAR) //若不是帧起始字符,返回到等待状态
93 3 {
94 4 RecCount=0;
95 4 RecState=RS_WAIT;
96 4 break;
97 4 }
98 3 }
99 2
100 2 if(count==6)
101 2 {
102 3 fc_flag=0;
103 3 switch(RecBuf[5])
104 3 {
105 4 case 0:
106 4 sinit=1;
107 4 break;
108 4 case 1:
109 4 ctime=1;
110 4 dl=6;
111 4 break;
112 4 case 2:
113 4 wport=1;
114 4 dl=4;
115 4 break;
116 4 case 3:
117 4 rport=1;
C51 COMPILER V7.50 RECFRAME 07/19/2006 10:05:15 PAGE 3
118 4 dl=0;
119 4 break;
120 4 case 4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -