📄 main.lst
字号:
40 3 }
41 2 }
42 1 }
43
44 /**********************************
45 ********Power On Reset*************
46 **********************************/
47 VOID Power_On()
48 {
49 1 BAT_DECT=1;
50 1 AC_DECT=1;
51 1 P4=0x00;
52 1 P3=0xff;
53 1 P2=0xff;
54 1 P0=0x7f;
55 1 Delay(20);
56 1 if(!P3_2)
57 1 mode=Input_code_mode;
58 1 else
59 1 mode=Initialization_mode;
60 1 timer1_count=0;
61 1 date.year=6;
62 1 date.month=3;
63 1 date.day=1;
64 1 time.hour=12;
65 1 time.min=0;
C51 COMPILER V7.50 MAIN 05/27/2006 14:00:50 PAGE 15
66 1 time.sec=0;
67 1 icon_buf=0x00;
68 1 PT0=1;
69 1 TMOD=V_TMOD;
70 1 TH0=V_TH0;TL0=V_TL0;
71 1 TH1=V_TH1;TL1=V_TL1;
72 1 TR0=1;ET0=1;TR1=1;ET1=1;EA=1;
73 1 if(!Key_Short_Test())
74 1 {
75 2 Beep_on=TRUE;
76 2 while(1)
77 2 {
78 3 Beep();
79 3 Wait_n_s(2);
80 3 }
81 2 }
82 1 RS232_Init();
83 1 CS5532_Init();
84 1 LCD_Init(LCD_MODE,LCD_GLITTER);
85 1 keyprocess=FALSE;keydone=TRUE;
86 1 Beep_on=TRUE;colon=FALSE;Cal_flag=FALSE;
87 1 }
88
89 /**********************************
90 ********Power Down mode***********
91 **********************************/
92 VOID Power_Down()
93 {
94 1 P4=0xff;
95 1 LIGHT=TRUE;
96 1 Cls_Icon_Buf();
97 1 while(mode==Power_down_mode)
98 1 {
99 2 if(keyprocess)
100 2 {
101 3 keydone=FALSE;
102 3 keyprocess=FALSE;
103 3 if(keypre[0]==K_ON_OFF)
104 3 {
105 4 Beep();
106 4 P4=0x00;
107 4 Delay(20);
108 4 RS232_Init();
109 4 CS5532_Init();
110 4 LCD_Init(LCD_MODE,LCD_GLITTER);
111 4 if(Light_on)
112 4 LIGHT=FALSE;
113 4 else
114 4 LIGHT=TRUE;
115 4 Set_Logo_Display();
116 4 Set_SCALE_Display();
117 4 Set_Ver_no_Display(Soft_ver_no);
118 4 Display();
119 4 Wait_n_ms(50);
120 4 while(!Zero_Setting_When_Power_Up())
121 4 {
122 5 Set_INIT0_On_Lcd1_Display();
123 5 Display();
124 5 }
125 4 unit_price_entered=FALSE;
126 4 mode=Sales_mode;
127 4 Sold_Quantity=0;
C51 COMPILER V7.50 MAIN 05/27/2006 14:00:50 PAGE 16
128 4 Sum_Price=0;
129 4 }
130 3 keydone=TRUE;
131 3 }
132 2 PCON|=0x01;
133 2 }
134 1 }
135
136 /**********************************
137 *********Input Code mode***********
138 **********************************/
139 VOID Input_Code()
140 {
141 1 INT8 data i;
142 1 static input_count=0;
143 1 BYTE Option_Table[TABLE_LEN];
144 1 Beep_on=TRUE;
145 1 if(Read_extern_eeprom(Option_Table))
146 1 {
147 2 if(Option_Table[EEPROM_ID]==0xa5&&Option_Table[EEPROM_ID+1]==0x5a)
148 2 {
149 3 if(Save_Option_Table(Option_Table))
150 3 {
151 4 Set_COPY_SUCCESS_Display();
152 4 Display();
153 4 Wait_n_s(2);
154 4 }
155 3 }
156 2 }
157 1 if(!Read_Cal_Password(Option_Table))
158 1 {
159 2 Set_NOEEP_On_Lcd1_Display();
160 2 Display();
161 2 while(1);
162 2 }
163 1 Full_Display();
164 1 Wait_n_s(2);
165 1 for(i=9;i>=0;i--)
166 1 {
167 2 Set_Lcd1_Buf(i+'0',0,5);
168 2 Set_Lcd2_Buf(i+'0',0,7);
169 2 Set_Lcd3_Buf(i+'0',0,7);
170 2 Display();
171 2 Wait_n_ms(50);
172 2 }
173 1 Set_INPUT_CODE_Display();
174 1 Display();
175 1 while(!P3_2);
176 1 while(mode==Input_code_mode)
177 1 {
178 2 if(keyprocess)
179 2 {
180 3 keydone=FALSE;
181 3 keyprocess=FALSE;
182 3 numeric=0;
183 3 if(!keypre[1]&&!keypre[2]&&!keypre[3])
184 3 {
185 4 switch(keypre[0])
186 4 {
187 5 case K_ENTER:
188 5 Beep();
189 5 if(Password_Compare(Option_Table,lcd2_buf))
C51 COMPILER V7.50 MAIN 05/27/2006 14:00:50 PAGE 17
190 5 mode=Calibration_mode;
191 5 else if(input_count>3)
192 5 {
193 6 Cal_flag=FALSE;
194 6 mode=Initialization_mode;
195 6 }
196 5 else
197 5 {
198 6 Alarm();
199 6 input_count++;
200 6 }
201 5 break;
202 5 case K_CLEAR:
203 5 Beep();
204 5 Set_INPUT_CODE_Display();
205 5 break;
206 5 case K_00:
207 5 Beep();
208 5 numeric+='0';
209 5 Lcd_Buf_Left_Shift(lcd2_buf,2,numeric,0);
210 5 Lcd_Buf_Left_Shift(lcd2_buf,2,numeric,0);
211 5 break;
212 5 case K_9:numeric++;
213 5 case K_8:numeric++;
214 5 case K_7:numeric++;
215 5 case K_6:numeric++;
216 5 case K_5:numeric++;
217 5 case K_4:numeric++;
218 5 case K_3:numeric++;
219 5 case K_2:numeric++;
220 5 case K_1:numeric++;
221 5 case K_0:numeric+='0';
222 5 Beep();
223 5 Lcd_Buf_Left_Shift(lcd2_buf,2,numeric,0);
224 5 break;
225 5 }
226 4 }
227 3 else if(keypre[3])
228 3 {
229 4 Beep();
230 4 Cal_flag=FALSE;
231 4 mode=Initialization_mode;
232 4 }
233 3 keydone=TRUE;
234 3 }
235 2 if(half_sec)
236 2 {
237 3 half_sec=FALSE;
238 3 Display();
239 3 }
240 2 }
241 1 }
242 /**********************************
243 ********Calibration mode***********
244 **********************************/
245 VOID Calibration_Key_Processing()
246 {
247 1 if(keyprocess)
248 1 {
249 2 keydone=FALSE;
250 2 keyprocess=FALSE;
251 2 numeric=0;
C51 COMPILER V7.50 MAIN 05/27/2006 14:00:50 PAGE 18
252 2 if(!keypre[1]&&!keypre[2]&&!keypre[3])
253 2 {
254 3 switch(keypre[0])
255 3 {
256 4 case K_ENTER:
257 4 Beep();
258 4 Cal_Weight=Get_Cal_Weight_from_display_buf();
259 4 if(Cal_Weight!=0&&Cal_Weight<=30000)
260 4 {
261 5 factor_calcul=TRUE;
262 5 Calculate_One_Count();
263 5 Save_Cal_One_count(One_count);
264 5 Set_One_count_Display(One_count);
265 5 Delay(2);
266 5 Cal_counts++;
267 5 if(Cal_counts>99)
268 5 Cal_counts=99;
269 5 Save_Cal_counts(&Cal_counts);
270 5 }
271 4 else
272 4 Alarm();
273 4 break;
274 4 case K_ADD:
275 4 Beep();
276 4 if(factor_calcul)
277 4 {
278 5 One_count=One_count+1;
279 5 //Save_Cal_One_count(One_count);
280 5 Set_One_count_Display(One_count);
281 5 }
282 4 break;
283 4 case K_SUB:
284 4 Beep();
285 4 if(factor_calcul)
286 4 {
287 5 One_count=One_count-1;
288 5 //Save_Cal_One_count(One_count);
289 5 Set_One_count_Display(One_count);
290 5 }
291 4 break;
292 4 case K_CLEAR:
293 4 Beep();
294 4 Cal_Weight=0;
295 4 Set_Cal_Weight_Display(Cal_Weight);
296 4 break;
297 4 case K_00:
298 4 Beep();
299 4 numeric+='0';
300 4 Lcd_Buf_Left_Shift(lcd2_buf,4,numeric,0);
301 4 Lcd_Buf_Left_Shift(lcd2_buf,4,numeric,0);
302 4 Cal_Weight=Get_Cal_Weight_from_display_buf();
303 4 Set_Cal_Weight_Display(Cal_Weight);
304 4 break;
305 4 case K_9:numeric++;
306 4 case K_8:numeric++;
307 4 case K_7:numeric++;
308 4 case K_6:numeric++;
309 4 case K_5:numeric++;
310 4 case K_4:numeric++;
311 4 case K_3:numeric++;
312 4 case K_2:numeric++;
313 4 case K_1:numeric++;
C51 COMPILER V7.50 MAIN 05/27/2006 14:00:50 PAGE 19
314 4 case K_0:numeric+='0';
315 4 Beep();
316 4 Lcd_Buf_Left_Shift(lcd2_buf,4,numeric,0);
317 4 Cal_Weight=Get_Cal_Weight_from_display_buf();
318 4 Set_Cal_Weight_Display(Cal_Weight);
319 4 break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -