📄 main.lst
字号:
169 3 {
170 4 while(!key3)display(setfen,setmiao);
171 4 setfen--;
172 4 if(setfen==0||setfen>=250)
173 4 setfen=0;
174 4 IapEraseSector(512);
175 4 IapProgramByte(512,setfen); //写入函数
176 4 }
177 3 }
178 2 // display(setfen,setmiao);
179 2 break;
C51 COMPILER V9.00 MAIN 05/08/2013 21:45:00 PAGE 4
180 2 case 3:
181 2 if(key2==0)
182 2 {
183 3 delay(5);
184 3 if(key2==0)
185 3 {
186 4 while(!key2)display(setdf,setdm);
187 4 setdm++;
188 4 if(setdm>59)
189 4 setdm=59;
190 4 IapEraseSector(0);
191 4 IapProgramByte(0,setmiao); //写设定闭合时间秒
192 4 IapProgramByte(1,setdm); //写设定断开时间秒
193 4 }
194 3 }
195 2 if(key3==0)
196 2 {
197 3 delay(5);
198 3 if(key3==0)
199 3 {
200 4 while(!key3)
201 4 display(setdf,setdm);
202 4 setdm--;
203 4 if(setdm==0||setdm>=250)
204 4 setdm=0;
205 4 IapEraseSector(0);
206 4 IapProgramByte(0,setmiao); //写设定闭合时间秒
207 4 IapProgramByte(1,setdm); ////写设定断开时间秒
208 4 }
209 3 }
210 2 break;
211 2 case 4:if(key2==0)
212 2 {
213 3 delay(5);
214 3 if(key2==0)
215 3 {
216 4 while(!key2)
217 4 display(setdf,setdm);;
218 4 setdf++;
219 4 if(setdf>10)
220 4 setdf=10;
221 4 IapEraseSector(512);
222 4 IapProgramByte(512,setfen); //写设定闭合时间分
223 4 IapProgramByte(513,setdf); //写设定断开时间秒
224 4 }
225 3 }
226 2 if(key3==0)
227 2 {
228 3 delay(5);
229 3 if(key3==0)
230 3 {
231 4 while(!key3)
232 4 display(setdf,setdm);
233 4 setdf--;
234 4 if(setdf==0||setdf>=250)
235 4 setdf=0;
236 4 IapEraseSector(512);
237 4 IapProgramByte(512,setfen); //写设定闭合时间分
238 4 IapProgramByte(513,setdf); //写设定断开时间分
239 4 }
240 3 }
241 2 //
C51 COMPILER V9.00 MAIN 05/08/2013 21:45:00 PAGE 5
242 2 break;
243 2 default : break;
244 2 }
245 1 }
246 /********************************************************************
247 定时器T0初始化
248 *********************************************************************/
249 void cshh()
250 {
251 1 TMOD|=0X01; //定义定时器工作方式
252 1 TH0=0Xa6;
253 1 TL0=0X01;
254 1 ET0=1;
255 1 TR0=1; //开定时器
256 1 EA=1; //开中断
257 1 }
258 /********************************************************************
259 初始化函数
260 *********************************************************************/
261 void init_all(void)
262 {
263 1 P2M1=0;
264 1 P2M0=0xff;
265 1 P1M1=0;
266 1 P1M0=0x0f;
267 1 P3M1&=0x7f;
268 1 P3M0|=0x80;
269 1 P3=0xff;
270 1 }
271 /********************************************************************
272 主函数
273 *********************************************************************/
274 void main()
275 {
276 1 init_all();
277 1 setfen=IapReadByte(512); //读设定闭合秒
278 1 setdf= IapReadByte(513); //读设定断开秒
279 1 setmiao=IapReadByte(0); //读设定闭合分
280 1 setdm=IapReadByte(1); //读设定断开秒
281 1 cshh(); //定时器初始化
282 1 while(1)
283 1 {
284 2 if(keynum==0) //实时计时模式
285 2 {
286 3 display(fen,miao);
287 3 }
288 2 if(keynum>0&&keynum<3) //设定闭合分和秒模式
289 2 display(setfen,setmiao);
290 2 if(keynum>=3&&keynum<5) //设定断开分和秒模式
291 2 display(setdf,setdm);
292 2 keyscan();
293 2 }
294 1 }
295 /********************************************************************
296 定时器中断函数
297 *********************************************************************/
298 void timer1(void)interrupt 1
299 {
300 1 TH0=0Xa6; //定时初值
301 1 TL0=0X01; //定时初值
302 1 cnt++;
303 1 if(cnt>=40)
C51 COMPILER V9.00 MAIN 05/08/2013 21:45:00 PAGE 6
304 1 {
305 2 cnt=0;
306 2 miao++;
307 2 if(miao>=60)
308 2 {
309 3 miao=0;
310 3 fen++;
311 3 }
312 2 }
313 1 if((fen>=setfen)&&(miao>=setmiao)&&flag)
314 1 {
315 2 flag=0;
316 2 jdq=0;
317 2 miao=0;
318 2 fen=0;
319 2 }
320 1 if((fen>=setdf)&&(miao>=setdm)&&(flag==0))
321 1 {
322 2 jdq=1;
323 2 miao=0;
324 2 fen=0;
325 2 flag=1;
326 2 }
327 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 851 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -