📄 3192uc.lst
字号:
259 1 }
260 /********************************************************************************/
261 /************ Read data from 93c46 funcation ************/
262 /********************************************************************************/
263 uchar RDSU3(uchar x)
264 {
265 1 uchar y;
266 1 INSB();
267 1 WRBYTE(x|0x80);
268 1 y=RDBYTE();
269 1 CS=1;
270 1 return (y);
271 1 }
272 /********************************************************************************/
273 /************ Write data to 93c46 funcation ************/
274 /********************************************************************************/
275 void WRU3(uchar x,uchar y)
276 {
277 1 INSB();
278 1 WRBYTE(0X30);
279 1 INSB();
280 1 WRBYTE(0X40|y);
281 1 WRBYTE(x);
282 1 SK=0;
283 1 CS=1;
284 1 while(!DOI);
285 1 CS=0;
286 1 INSB();
287 1 WRBYTE(0X00);
288 1 SK=0;
289 1 CS=1;
290 1 }
291 /********************************************************************************/
292 /************ start EEPROM funcation ************/
293 /********************************************************************************/
294 void INSB(void)
295 {
296 1 SK=0;
297 1 DOI=0;
298 1 CS=1;
299 1 SK=1;
300 1 SK=0;
301 1 DOI=1;
302 1 SK=1;
303 1 SK=0;
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 6
304 1 CS=0;
305 1 }
306 /********************************************************************************/
307 /************ write 8bit funcation ************/
308 /********************************************************************************/
309 void WRBYTE(uchar x)
310 {
311 1 uchar i;
312 1 i=8;
313 1 while(i--){
314 2 DI=(bit)(x&0x80);
315 2 x<<=1;
316 2 SK=1;
317 2 SK=0;
318 2 }
319 1 }
320 /********************************************************************************/
321 /************ read 8 data funcation ************/
322 /********************************************************************************/
323 uchar RDBYTE(void)
324 {
325 1 uchar x;
326 1 uchar j=8;
327 1 x=0;
328 1 while(j--)
329 1 {
330 2 DOI=1;
331 2 x<<=1;
332 2 SK=1;
333 2 SK=0;
334 2 if (DOI) x|=0x01;
335 2 }
336 1 return x;
337 1 }
338
339 /*void CTR(void)
340 {
341 EN1H=ENH;
342 EN1L=ENL;
343 EN1F=ENF;
344 if((SETTH<TMPH)|((SETTL<TMPL)&(SETTH=TMPH)))CTR0();
345 else{
346 PIDCASEL=SETTL-TMPL;
347 PIDCASEH=SETTH-TMPH;
348 if(SETTH>TMPH)CTRMAX();
349 else{
350 ENH=PIDCASEH;
351 ENL=PIDCASEL;
352 ENF=0;
353 }
354 }
355 CTR1();
356 }
357 void CTR0(void)
358 {
359 PIDCASEL=TMPL-SETTL;
360 PIDCASEH=TMPH-SETTH;
361 if(TMPH>SETTH)CTRMIN();
362 else{
363 ENH=PIDCASEH;
364 ENL=PIDCASEL;
365 ENF=1;
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 7
366 }
367 }
368 void CTR1(void)
369 {
370 PIDF=ENF;
371 PID1F=EN1F;
372 F0=1;
373 ADDF(&ENL,&EN1L); //L(R0),1L(R1)
374 DENH=PIDCASET;
375 DENL=PIDCASEH;
376 DENF=F0;
377 }
378 void CTRMAX(void)
379 {
380 if(MAXMIN>=4){
381 PNH=0X00;
382 PNL=0X65;
383 }
384 ECTR();
385 }
386 void CTRMIN(void)
387 {
388 if(MAXMIN>=4){
389 PNH=0X00;
390 PNL=0X00;
391 }
392 ECTR();
393 }
394 void ECTR(void)
395 {
396 //OUTL();
397 EA=0;
398 PWMBAK=PNL;
399 if(PNH>0)PWMBAK=0X65;
400 if(PNL>=0x65)PWMBAK=0X65;
401 EA=1;
402 }
403 void ADDF(uchar *x,uchar *y)
404 {
405 while(1)
406 {
407 if(F0){
408 if(PID1F^PIDF){
409 PIDCASEH=(*x)+(*y);
410 PIDCASET=(*(x+1))+(*(y+1));
411 F0=PIDF;
412 break;
413 }
414 if(*(x+1)<*(y+1)){
415 PIDCASEH=(*y)-(*x);
416 PIDCASET=(*(y+1))-(*(x+1));
417 F0=~PIDF;
418 break;
419 }
420 PIDCASEH=(*x)-(*y);
421 PIDCASET=(*(x+1))-(*(y+1));
422 F0=PIDF;
423 break;
424 }
425 if(PID1F^PIDF)
426 {
427 if((*(x+1)<*(y+1))){
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 8
428 PIDCASEH=(*y)-(*x);
429 PIDCASET=(*(y+1))-(*(x+1));
430 F0=PID1F;
431 break;
432 }
433 PIDCASEH=(*x)-(*y);
434 PIDCASET=(*(x+1))-(*(y+1));
435 F0=PID1F;
436 break;
437 }
438 PIDCASEH=(*x)+(*y);
439 PIDCASET=(*(x+1))-(*(y+1));
440 F0=PIDF;
441 break;
442 }
443 }
444 void ready(void)
445 {
446 uchar i;
447 SETDGT=5;
448 while(1){
449 if(!NEWKeyF)STADLY2();
450 KEYDOWN=1;
451 NEWKeyF=0;
452 if(BX3>0x00)STADLY2();
453 if(BY0!=0x40)STADLY1();
454 if(ADJDLY)STADLY5();
455 i=18;
456 while(i--){
457 array_r0[i]=DEFAULT1[i];
458 }
459 WRU3();
460 break;
461 }
462 }
463 void STADLY2(void)
464 {
465 if(!SAMOK)STADLY();
466 else{
467 SAMOK=0;
468 while(SETDGT--){
469 STADLY();
470 }
471 ADJDLY=0;
472 while(!SAMOK);
473 SAMOK=0;
474 TMPL=AD_RESULTL+ABSDL;
475 TMPH=AD_RESULTH+ABSDH;
476 if(TMPH>=0x80){
477 SIGN=0;
478 BINTBCD(TMPL,(TMPH-0x80));
479 }
480 else{
481 SIGN=1;
482 if(TMPL>0X00)BINTBCD(((0XFF-TMPL)+1),(0X7F-TMPH));
483 else BINTBCD(0X00,(0X80-TMPH));
484 }
485
486 }
487 }
488 /*void BINTBCD(uchar x,uchar y)
489 {
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 9
490 uint i;
491 i=0;
492 i=i+y;
493 i<<=8;
494 i=i+x;
495 if(i>=10000){
496 array[0]=1;
497 i=i-10000;
498 }
499 else array[0]=0;
500 //array[0]=i/10000;
501 //if(array[0]!=0x00)i=i-array[0]*10000;
502 array[1]=i/1000;
503 if(array[1]>0x00)i=i-array[1]*1000;
504 array[2]=i/100;
505 if(array[2]>0x00)i=i-array[2]*100;
506 array[3]=i/10;
507 }
508 uint BCDTBIN(void)
509 {
510 uint i;
511 uchar j;
512 i=0;
513 for(j=0;j<=3;j++){
514 i=i+array[j];
515 i=i*10;
516 }
517 return (i);
518 }
519 /* while(j--){
520 array[j]=RRL[j];
521 }
522 SIGN=0;
523 if((KEYBUF0&0X80)==0X80)SIGN=1;
524 KEYBUF0&=0X7F;
525 bcdth=BCDTBIN();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -