📄 protocol.lst
字号:
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE PROTOCOL
OBJECT MODULE PLACED IN C:\MY\DDYK\PROTOCOL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\MY\DDYK\PROTOCOL.C DB SB OE
stmt level source
1 #include "REGX52.H"
2 #include "yk.h"
3
4
5 extern DWORD Read_Hdd(BYTE);
6 extern void Write_Hdd(BYTE);
7 extern BYTE Read1B(BYTE cAddress,bit bRegion);
8 extern void Write1B(BYTE cData,BYTE cAddress,bit bRegion);
9 extern void YkPro(unsigned char,unsigned char);
10 extern BYTE data Station;
11 extern BYTE data Trs_Buf[25];
12 extern BYTE idata Rcv_Buf[30];
13 extern bit Trs_Flag,Rcv_Flag;
14 extern bit data Yk_All,Disp_Flag;
15 extern BYTE data House_Max;
16 extern BYTE data Trs_Wp,Trs_Rp,Rcv_Wp,Rcv_Rp;
17 extern BYTE data Start;
18 extern BYTE idata YkNo,YkHf,YkStatus,Yk_En;
19
20 extern BYTE xdata Second ;// _at_ 0x00;
21 extern BYTE xdata Minute ;// _at_ 0x02;
22 extern BYTE xdata Hour ;// _at_ 0x04;
23 extern BYTE xdata Week ;// _at_ 0x06;
24 extern BYTE xdata Day ;// _at_ 0x07;
25 extern BYTE xdata Month ;// _at_ 0x08;
26 extern BYTE xdata Year ;// _at_ 0x09;
27 extern BYTE xdata RegB;
28 BYTE data Trs_Comm,Trs_Comm_Bak;
29 BYTE data Rcv_Comm,Trs_Check;
30 BYTE data House_R,Week_Tmp,No_Tmp;
31
32
33
34
35 void eb90(void)
36 {
37 1 Trs_Buf[0]=0xeb;
38 1 Trs_Buf[1]=0x90;
39 1 Trs_Buf[2]=0x00;
40 1 Trs_Buf[3]=0x00;
41 1 Trs_Buf[4]=0x00;
42 1 Trs_Buf[5]=0x00;
43 1 }
44
45 void Trs_Edit(void)
46 {
47 1 BYTE i,Trs_Length;
48 1 Trs_Flag=0;
49 1 switch (Trs_Comm)
50 1 {
51 2 case (0xaa):
52 2 eb90();
53 2 Trs_Length=5;
54 2 Trs_Buf[6]=Trs_Length;
55 2 Trs_Buf[7]=0;
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 2
56 2 Trs_Buf[8]=Trs_Comm_Bak;
57 2 Trs_Buf[9]=Station;
58 2 Trs_Buf[10]=0;
59 2 Trs_Buf[11]=0x80; //
60 2 Trs_Check=0;
61 2 for(i=8;i<12;i++)
62 2 {
63 3 Trs_Check+=Trs_Buf[i];
64 3 }
65 2 Trs_Buf[12]=Trs_Check;
66 2 Trs_Wp=13;
67 2
68 2 break;
69 2
70 2
71 2
72 2 case (0xbb):
73 2
74 2 eb90();
75 2 Trs_Length=6;
76 2 Trs_Buf[6]=Trs_Length;
77 2 Trs_Buf[7]=0;
78 2 Trs_Buf[8]=Trs_Comm_Bak;
79 2 Trs_Buf[9]=Station;
80 2 Trs_Buf[10]=0;
81 2 Trs_Buf[11]=House_R;
82 2 Trs_Buf[12]=YkStatus;
83 2 Trs_Check=0;
84 2 for(i=8;i<13;i++)
85 2 {
86 3 Trs_Check+=Trs_Buf[i];
87 3 }
88 2 Trs_Buf[13]=Trs_Check;
89 2 Trs_Wp=14;
90 2
91 2 break;
92 2 case (0xd2): // 查询供电时段
93 2
94 2 eb90();
95 2 Trs_Length=13;
96 2 Trs_Buf[6]=Trs_Length;
97 2 Trs_Buf[7]=0;
98 2 Trs_Buf[8]=Trs_Comm;
99 2 Trs_Buf[9]=Station;
100 2 Trs_Buf[10]=0;
101 2 Trs_Buf[11]=0;
102 2 Trs_Buf[12]=0;
103 2
104 2 Trs_Buf[13]=0xff;
105 2 Trs_Buf[14]=Week_Tmp;
106 2 Trs_Buf[15]=No_Tmp;
107 2 Trs_Buf[16]=Read1B(20+10*(Week_Tmp-1)+2*(No_Tmp-1),0); //H Hour
108 2 Trs_Buf[17]=Read1B(20+10*(Week_Tmp-1)+2*(No_Tmp-1)+1,0); //H Minute
109 2
110 2 Trs_Buf[18]=Read1B(90+10*(Week_Tmp-1)+2*(No_Tmp-1),0); //F Hour
111 2 Trs_Buf[19]=Read1B(90+10*(Week_Tmp-1)+2*(No_Tmp-1)+1,0); //F Minute
112 2 Trs_Check=0;
113 2 for(i=8;i<20;i++)
114 2 {
115 3 Trs_Check+=Trs_Buf[i];
116 3 }
117 2 Trs_Buf[20]=Trs_Check;
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 3
118 2 Trs_Wp=21;
119 2
120 2 break;
121 2
122 2 case (0xd8): // 时钟
123 2
124 2 eb90();
125 2 Trs_Length=11;
126 2 Trs_Buf[6]=Trs_Length;
127 2 Trs_Buf[7]=0;
128 2 Trs_Buf[8]=Trs_Comm;
129 2 Trs_Buf[9]=Station;
130 2 Trs_Buf[10]=0;
131 2 Cs12887=0;
132 2 Trs_Buf[11]=Year;
133 2 Trs_Buf[12]=Month;
134 2
135 2 Trs_Buf[13]=Day;
136 2 Trs_Buf[14]=Hour;
137 2 Trs_Buf[15]=Minute;
138 2 Trs_Buf[16]=Second;
139 2 Trs_Buf[17]=Week;
140 2 Cs12887=1;
141 2 Trs_Check=0;
142 2 for(i=8;i<18;i++)
143 2 {
144 3 Trs_Check+=Trs_Buf[i];
145 3 }
146 2 Trs_Buf[18]=Trs_Check;
147 2 Trs_Wp=19;
148 2
149 2 break;
150 2
151 2 default:
152 2 break;
153 2 }
154 1 DIR485=0;
155 1 if(Trs_Buf[0]==0xeb && Trs_Buf[1]==0x90)
156 1 {
157 2 SBUF=0xfe;
158 2 Trs_Rp=0;
159 2 }
160 1 else
161 1 {
162 2 SBUF=Trs_Buf[0];
163 2 Trs_Rp=1;
164 2 }
165 1 }
166
167 void Rcv_Pro(void)
168 {
169 1 BYTE i;
170 1 BYTE Rcv_Check,Rcv_Length,Rcv_Tmp,Tmp,Tmp1;
171 1 if((Rcv_Wp-Rcv_Rp)>(Rcv_Buf[Rcv_Rp+4]+5) && Rcv_Wp>11)
172 1 {
173 2 Rcv_Flag=0;
174 2 Rcv_Wp=0;
175 2 Rcv_Length=Rcv_Buf[Rcv_Rp+4];
176 2 Rcv_Check=0;
177 2 for(i=Rcv_Rp+6;i<Rcv_Rp+Rcv_Length+5;i++)
178 2 {
179 3 Rcv_Check+=Rcv_Buf[i];
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 4
180 3 }
181 2 Rcv_Comm=0;
182 2 if(Rcv_Check==Rcv_Buf[Rcv_Rp+5+Rcv_Length])
183 2 {
184 3 Rcv_Comm=Rcv_Buf[Rcv_Rp+6];
185 3
186 3 }
187 2 switch (Rcv_Comm)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -