📄 yijia.lst
字号:
250 3 udf=1; /*设置更新显示标志 */
251 3 }
252 2 if(udf) /*更新显示的操作 */
253 2 {
254 3 updatedisp(skv,k1f,shift);
255 3
256 3 udf=0;
257 3 }
258 2 } /*end of while loop */
259 1
260 1 }
261 /*更新显示,*disp--显示内容,twif--是否闪烁标志,twip--闪烁位 */
262 void updatedisp(unsigned char* disp,bit twif,unsigned char twip)
263 {
264 1 if(twif) /*闪烁 */
265 1 {
266 2 if(twip==0)
267 2 ch451_write(CH451_TWINKLE1);
268 2 else if(twip==1)
269 2 ch451_write(CH451_TWINKLE2);
270 2 else if(twip==2)
271 2 ch451_write(CH451_TWINKLE3);
272 2 else if(twip==3)
273 2 ch451_write(CH451_TWINKLE4);
274 2 }
275 1 else
276 1 ch451_write(CH451_TWINKLE); /*不闪烁 */
277 1 /*显示各个位数据 */
278 1 ch451_write(CH451_DIG0 | disp[0]);
279 1 ch451_write(CH451_DIG1 | disp[1]);
280 1 ch451_write(CH451_DIG2 | disp[2]);
281 1 ch451_write(CH451_DIG3 | disp[3]);
282 1 }
283
284 /*读操作,ax:地址,以字为单位*/
285 U16 read93(U8 ax)
286 {
287 1 char i;
288 1 U8 db,ay;
289 1 U16 dx;
290 1 /* 前导条件 */
291 1 c=0;
292 1 d=0;
293 1 s=0;
294 1 s=1;
295 1 d=1;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 6
296 1 c=1;
297 1 c=0;
298 1 /* 发送读操作码 */
299 1 d=1;
300 1 c=1;
301 1 c=0;
302 1 d=0;
303 1 c=1;
304 1 c=0;
305 1 /* 发送地址 */
306 1 for(i=5;i>=0;i--)
307 1 {
308 2 ay=(ax>>i) & 1;
309 2 if(ay==1)
310 2 d=1;
311 2 else
312 2 d=0;
313 2 c=1;
314 2 c=0;
315 2 }
316 1 /*输出前导0
c=0;
c=1; */
319 1 /*读数据*/
320 1 dx=0;
321 1 for(i=15;i>=0;i--)
322 1 {
323 2 c=1;
324 2 if(q==1)
325 2 db=1;
326 2 else
327 2 db=0;
328 2 dx=dx | (db<<i);
329 2 c=0;
330 2 }
331 1
332 1 s=0;
333 1 return dx;
334 1 }
335
336 /*写操作,ax:地址,dx:数据,以字为单位*/
337 /*总的写操作之前,要调用擦写使能函数*/
338 /*总的写操作之后,要调用擦写禁止函数*/
339 void write93(U8 ax, U16 dx)
340 {
341 1 char i;
342 1 U8 ay;
343 1 /* 前导条件 */
344 1 c=0;
345 1 d=0;
346 1 s=0;
347 1 s=1;
348 1 d=1;
349 1 c=1;
350 1 c=0;
351 1 /* 发送写操作码 */
352 1 d=0;
353 1 c=1;
354 1 c=0;
355 1 d=1;
356 1 c=1;
357 1 c=0;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 7
358 1 /* 发送地址 */
359 1 for(i=5;i>=0;i--)
360 1 {
361 2 ay=(dx>>i) & 1;
362 2 if(ay==1)
363 2 d=1;
364 2 else
365 2 d=0;
366 2 c=1;
367 2 c=0;
368 2 }
369 1 /* 发送数据 */
370 1 for(i=15;i>=0;i--)
371 1 {
372 2 ay=(dx>>i) & 1;
373 2 if(ay==1)
374 2 d=1;
375 2 else
376 2 d=0;
377 2 c=1;
378 2 c=0;
379 2 }
380 1 /*启动写操作*/
381 1
382 1 s=0;
383 1 q=1;
384 1 s=1;
385 1 /*等待写操作结束*/
386 1 while(q==0)
387 1 {
388 2 c=1;
389 2 c=0;
390 2 }
391 1 /* delay();
delay(); */
393 1 s=0;
394 1 }
395
396 /*擦写使能*/
397 void erwren93(void)
398 {
399 1 char i;
400 1 /* 前导条件 */
401 1 c=0;
402 1 d=0;
403 1 s=0;
404 1 s=1;
405 1 d=1;
406 1 c=1;
407 1 c=0;
408 1 /* 发送操作码 */
409 1 d=0;
410 1 c=1;
411 1 c=0;
412 1 c=1;
413 1 c=0;
414 1 /* 发送"地址" */
415 1 for(i=0;i<6;i++)
416 1 {
417 2 d=1;
418 2 c=1;
419 2 c=0;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 8
420 2 }
421 1
422 1 s=0;
423 1 }
424
425 /*擦写禁止*/
426 void erwrdisen93(void)
427 {
428 1 char i;
429 1 /* 前导条件 */
430 1 c=0;
431 1 d=0;
432 1 s=0;
433 1 s=1;
434 1 d=1;
435 1 c=1;
436 1 c=0;
437 1 /* 发送操作码 */
438 1 d=0;
439 1 c=1;
440 1 c=0;
441 1 c=1;
442 1 c=0;
443 1 /* 发送"地址" */
444 1 for(i=0;i<6;i++)
445 1 {
446 2 d=0;
447 2 c=1;
448 2 c=0;
449 2 }
450 1
451 1 s=0;
452 1 }
453
454 /*擦除操作,ax:地址*/
455 void erase93(U8 ax)
456 {
457 1 char i;
458 1 /* 前导条件 */
459 1 c=0;
460 1 d=0;
461 1 s=0;
462 1 s=1;
463 1 d=1;
464 1 c=0;
465 1 c=1;
466 1 /* 发送操作码 */
467 1 d=1;
468 1 c=0;
469 1 c=1;
470 1 c=0;
471 1 c=1;
472 1 /* 发送地址 */
473 1 for(i=5;i>=0;i--)
474 1 {
475 2 d=(ax>>i) & 1;
476 2 c=0;
477 2 c=1;
478 2 }
479 1
480 1 /*启动擦除操作*/
481 1 s=0;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 9
482 1 s=1;
483 1 /*等待擦除操作结束*/
484 1 while(q==0);
485 1 /* delay();
delay(); */
487 1 s=0;
488 1 }
489
490 /*擦除全部操作*/
491
492 void eraseall93(void)
493 {
494 1 char i;
495 1 /* 前导条件 */
496 1 c=0;
497 1 d=0;
498 1 s=0;
499 1 s=1;
500 1 d=1;
501 1 c=0;
502 1 c=1;
503 1 /* 发送操作码 */
504 1 d=0;
505 1 c=0;
506 1 c=1;
507 1 c=0;
508 1 c=1;
509 1
510 1 d=1;
511 1 c=0;
512 1 c=1;
513 1 /* 发送地址 */
514 1 for(i=4;i>=0;i--)
515 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -