📄 data.lst
字号:
C51 COMPILER V6.23a DATA 01/13/2006 09:40:04 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE DATA
OBJECT MODULE PLACED IN Data.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Data.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "_POS.h"
2 #include "AppSjk.h"
3 #include "AppData.h"
4
5 extern uint UCardBal_0;//交易金额
6 uchar SBH[2];
7 extern void display(char line,uchar *buff);
8 extern uchar Get_Money(uchar *buff);//输入钱数
9
10 bit sbhflag=NOK;
11 bit ZBHFlag=NOK;
12 bit GLKFlag=NOK;
13 uchar XLFlag;
14
15 extern uint LineNum;
16 extern uchar BusNum[2];//车辆自编号
17 extern uchar OpCardNum[2];//承包人编号
18 extern uchar GLCardNum[3];//管理卡发行卡号
19 extern bit ReadUCInc();
20
21 long ReadLen()
22 {
23 1 uchar xdata ret1,ret2,buff[9],buff1[9];
24 1 int i;
25 1 long len=0;
26 1 for(i=0;i<8;i++) buff[i]=_FlashByteRead(LENPAGE ,LSZLENADDR+i );
27 1 ret1=ValidData(buff);
28 1 for(i=0;i<8;i++) buff1[i]=_FlashByteRead(LENPAGEBAK ,LSZLENADDR+i );
29 1 ret2=ValidData(buff1);
30 1 if((ret1==OK)&&(ret2==OK)) {len=buff[2]+buff[3]*0x100;}//TTTTTTTT
31 1 else if((ret1==OK)&&(ret2!=OK)){len=buff[2]+buff[3]*0x100;_FlashSectormodfiy(LENPAGEBAK,buff,LSZLENADDR,8)
-;}
32 1 else if((ret1!=OK)&&(ret2==OK)){len=buff1[2]+buff1[3]*0x100;_FlashSectormodfiy(LENPAGE,buff1,LSZLENADDR,8)
-;}
33 1 else len=-1;//{len=FixLen();sprintf(str,"len=%02ld ",len);_Display(0,0,str,11);_GetChar();}
34 1 //sprintf(str,"len=%02ld ",len);_Display(0,0,str,11);_GetChar();
35 1 return len;
36 1 }
37 /*
38 uint FixLen()
39 {
40 uint xdata len,i,j,n;
41 uchar xdata page;
42 uchar xdata buffer[33];
43 ulong xdata beg_addr;
44 uchar xdata buff[32]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
45 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
46 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
47 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
48
49 len=9000;
50 for (n=0;n<len;n++)
51 {
52 i=9000-n;
53 for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGE;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByteRead
C51 COMPILER V6.23a DATA 01/13/2006 09:40:04 PAGE 2
-(page ,beg_addr );}
54 if(memcmp(buffer,buff,32)==0)
55 {for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGEBAK;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByt
-eRead(page ,beg_addr );}
56 if(memcmp(buffer,buff,32)!=0)return i+1;}
57 else return i+1;
58 }
59 }
60 */
61 uchar WriteLen(uint len)
62 {
63 1 uchar xdata tmp[9];
64 1 uchar i,j;
65 1
66 1 memset(tmp,0,8);
67 1 tmp[CC_PHPB]=CC_PB1;tmp[CC_PHPB+1]=CC_PB2;
68 1 tmp[2]=(uchar)len;
69 1 tmp[3]=(uchar)(len>>8);
70 1 _Calc_crc(CRC16, 6, tmp, tmp+6);
71 1 for(i=0;i<3;i++){if(_FlashSectormodfiy(LENPAGE,tmp,LSZLENADDR,8)==TRUE)break;}
72 1 for(j=0;j<3;j++){if(_FlashSectormodfiy(LENPAGEBAK,tmp,LSZLENADDR,8)==TRUE)break;}
73 1 if((i==3)&&(j==3))return NOK;
74 1 else return OK;
75 1 }
76
77 /*uchar ReadLSZ(uchar pagelen,uint beginaddr,uchar *buffer)
78 {
79 uchar xdata ret1,ret2,buff[33],buff1[33];
80 _FlashRead(LSZPAGE+pagelen,beginaddr,32,buff);
81 ret1=ValidFlow(buff);
82 if(ret1==OK){memcpy(buffer,buff,32);return OK;}
83 /*else
84 {
85 _FlashRead(LSZPAGEBAK+pagelen,beginaddr,32,buff1);
86 ret2=ValidFlow(buff1);if(ret2==OK){memcpy(buffer,buff1,32);return OK;}
87 else {memset(buff1,0xff,32);memcpy(buffer,buff1,32);return NOK;}
88 }*/
89 //}
90
91 uchar WriteLSZ(uchar *buff,ulong beginaddr, uint length)
92 {
93 1 uint i,j,m,beg_addr;
94 1 uchar page1,page2;
95 1 //FlashSectorerase(20);
96 1 for(i=0;i<length;i++)
97 1 {
98 2 page1=(beginaddr+i)/PAGELENGTH+LSZPAGE;
99 2 page2=(beginaddr+i)/PAGELENGTH+LSZPAGEBAK;
100 2 beg_addr=(beginaddr+i)%PAGELENGTH;
101 2 for(j=0;j<3;j++){if(_FlashByteWrite(page1,beg_addr,buff[i])==TRUE)break;}
102 2 for(m=0;m<3;m++){if(_FlashByteWrite(page2,beg_addr,buff[i])==TRUE)break;}
103 2 }
104 1 if((j==3)&&(m==3))return NOK;
105 1 else return OK;
106 1 }
107
108 uchar InitLSZ()
109 {
110 1 uchar xdata i;
111 1 long xdata len;
112 1 for (i=0;i<3;i++)
113 1 {
C51 COMPILER V6.23a DATA 01/13/2006 09:40:04 PAGE 3
114 2 WriteLen(0);
115 2 len=ReadLen();
116 2 if(len==0) break;
117 2 }
118 1 if((i==3)&&(len!=0))return NOK;
119 1 for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGE+i)!=TRUE) return NOK;_delay_1ms(50);}
120 1 for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGEBAK+i)!=TRUE) return NOK;_delay_1ms(50);}
121 1 Clear_GLKFlag();
122 1 return OK;
123 1 }
124 /*
125 uchar InitLSZ()
126 {
127 uchar i;
128
129
130 _FlashSectorErase(LENPAGE);_FlashSectorErase(LENPAGEBAK);
131 _FlashSectorErase(HMDPAGE);_FlashSectorErase(HMDPAGEBAK);
132 for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGE+i)!=TRUE) return NOK;_delay_1ms(50);}
133 for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGEBAK+i)!=TRUE) return NOK;_delay_1ms(50);}
134 return OK;
135 }*/
136
137 uchar ValidData(uchar *buff)
138 {
139 1 uchar xdata crc[2];
140 1
141 1 _Calc_crc(CRC16,6,buff,crc);
142 1 if((crc[0]!=buff[ 6])||(crc[1]!=buff[ 7])) return NOK;
143 1 if(buff[CC_PHPB]!=CC_PB1)return NOK;
144 1 if(buff[CC_PHPB+1]!=CC_PB2)return NOK;
145 1 return OK;
146 1 }
147
148 uchar ValidFlow(uchar *tm)//检测CRC
149 {
150 1 uchar xdata crc[2]; //check CRC
151 1 _Calc_crc(CRC16,14,tm,crc);
152 1 if((crc[0]!=tm[14])||(crc[1]!=tm[15])) return NOK;
153 1 return OK;
154 1 }
155
156 void re_crc(uchar *crc,uchar *buffer,uint length, uchar *out)
157 {
158 1 uint len;
159 1 uchar xdata buff[35]; //max==100
160 1 len=length/LSZLENGTH;
161 1 buff[0]=crc[0];
162 1 buff[1]=crc[1];
163 1 memcpy(buff+2,buffer,32);
164 1 _Calc_crc(CRC16,34,buff,out);
165 1 }
166
167 uchar InitJHLSZ()
168 {
169 1 if(_FlashSectorErase(JHPAGE)!=TRUE) return NOK;
170 1 return OK;
171 1 }
172
173
174 uchar WriteJHLSZ(uchar page,uchar *buff,uint beginaddr, uint length)
175 {
C51 COMPILER V6.23a DATA 01/13/2006 09:40:04 PAGE 4
176 1 uint i,j,m,beg_addr;
177 1 for(i=0;i<length;i++)
178 1 {
179 2 beg_addr=beginaddr+i;
180 2 for(j=0;j<3;j++){if(_FlashByteWrite(page,beg_addr,buff[i])==TRUE)break;}
181 2 }
182 1 if(j==3) return NOK;
183 1 else return OK;
184 1 }
*** WARNING C280 IN LINE 176 OF DATA.C: 'm': unreferenced local variable
185
186 void DownLoad()
187 {
188 1 ulong i;
189 1 uint j,beginaddr,len;
190 1 uchar xdata key,uret,page;
191 1
192 1 _pRecBuf=0;i=0;_Clr();
193 1 while(1)
194 1 {
195 2 _Display(0,1,"正在连接主机 ",16);_Display(0,2,"按取消键退出 ",16);
196 2 key=_GetKey(111);if(key==KeyB_No)return;
197 2 uret = _ComR232();
198 2 if(uret==CC_TONGXUN_2){if(_R232Buf[CC_ADDRINF+1]==0x02)break;}
199 2 i++;if(i>20){_pRecBuf=0;i=0;}
200 2 }
201 1 len=(uint)_R232Buf[CC_ADDRINF+4]+(uint)_R232Buf[CC_ADDRINF+5]*0x100;
202 1 // page=_R232Buf[CC_ADDRINF+11]; if((page<1)||(page>8))page=0; else page--;
203 1 _S232Buf[CC_ADDRINF]=CC_TONGXUN_2;_S232Buf[CC_ADDRINF+1]=2;_S232Buf[CC_ADDRINF+2]=0;_S232Buf[CC_ADDRINF+3
-]=0;
204 1 _ComS232(4);_pRecBuf=0;i=0;
205 1 _Clr();display(2, "正在下载... ");
206 1 if(InitJHLSZ()==NOK){_Clr();display(2, "初始化失败 ");display(3, "请重新下载 ");_GetChar();
-return;}
207 1 for(j=0;j<len;j++)
208 1 {
209 2 while(1)
210 2 {
211 3 uret = _ComR232();
212 3 if(uret==CC_TONGXUN_2)
213 3 {
214 4 //beginaddr=(uint)page*32*16+((uint)_R232Buf[CC_ADDRINF+2]-1)*0x20;
215 4 beginaddr=(((uint)_R232Buf[CC_ADDRINF+2]+(uint)_R232Buf[CC_ADDRINF+3]*0x100-1)*JHLENGTH)%PAGELENGTH;
216 4 page=JHPAGE+(((uint)_R232Buf[CC_ADDRINF+2]+(uint)_R232Buf[CC_ADDRINF+3]*0x100-1)*JHLENGTH)/PAGELENGTH;
217 4 WriteJHLSZ(page,_R232Buf+CC_ADDRINF+4,beginaddr,JHLENGTH);
218 4 _S232Buf[CC_ADDRINF]=CC_TONGXUN_2;_S232Buf[CC_ADDRINF+1]=2;_S232Buf[CC_ADDRINF+2]=_R232Buf[CC_ADDRINF+2]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -