📄 计价器存储.lst
字号:
607 4 }
608 3 }
609 2
610 2 if(k==0)
611 2 second++; //秒加1
612 2 //if(second==10) TR0=0;
613 2 if(second>=60) //到60清0,分加1
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 11
614 2 {
615 3 if(w==1)
616 3 {
617 4 hour1++;
618 4 if(hour1==2)
619 4 {
620 5 hour1=0;
621 5 w=0;
622 5 }
623 4 }
624 3 second=0;
625 3 minite++;
626 3 if(x==1&EX1==1) //是否在进行中断(中途等待程序)
627 3 {
628 4 y++; //没进行y+1
629 4 if(y==1) //是否等待1分钟
630 4 {
631 5 y=0; //清0
632 5 zongjia[0]=jiage[3]; //价格显示位显示中途等待价
633 5 zongjia[1]=jiage[4];
634 5 zongjia[5]=zongjia[5]+jiage[3];if(zongjia[5]>9) //总价加中途等待价
635 5 {
636 6 n=1; zongjia[5]=zongjia[5]%10;
637 6 }
638 5 zongjia[6]=zongjia[6]+jiage[4];if(n==1)
639 5 {
640 6 zongjia[6]++;n=0;
641 6 }
642 5 zongjia[6]=zongjia[6]-18; if(zongjia[6]>27)
643 5 {
644 6 n=1; zongjia[6]=zongjia[6]-10;
645 6 }
646 5 if(n==1)
647 5 {
648 6 zongjia[7]++;
649 6 n=0;
650 6 if(zongjia[7]>9)
651 6 zongjia[7]=0;
652 6 }
653 5 }
654 4 }
655 3 if(minite>=60) //分到60清0
656 3 {
657 4 minite=0;
658 4 hour++; //时加1
659 4 if(hour>=24) //时到24清0
660 4 {
661 5 hour=0;
662 5 }
663 4 /* if(w==1)
664 4 {
665 4 hour1++;
666 4 if(hour1==24)
667 4 {
668 4 hour1=0;
669 4 w=0;
670 4 }
671 4 } */
672 4 }
673 3 }
674 2 shijian[0]=second%10;
675 2 shijian[1]=second/10;
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 12
676 2 shijian[3]=minite%10;
677 2 shijian[4]=minite/10;
678 2 shijian[6]=hour%10;
679 2 shijian[7]=hour/10;
680 2 }
681 1 TH0=(65536-100)/256;
682 1 TL0=(65536-100)%256;
683 1 }
684
685 void int1(void) interrupt 2 using 0
686 {
687 1 x=0; //进入中断标志
688 1 tcnt2++;
689 1 if(tcnt2>5000)
690 1 {
691 2 tcnt2=0;
692 2 tcnt3++;
693 2 switch(m) //判断白天还是晚上
694 2 {
695 3 case 0: zongjia[0]=jiage[0]; //白天总价0、1位显示白天单价
696 3 zongjia[1]=jiage[1];
697 3 break;
698 3 case 1: zongjia[0]=jiage[6]; //晚上总价0、1位显示白天单价
699 3 zongjia[1]=jiage[7];
700 3 break;
701 3 }
702 2 if(tcnt3<=20)
703 2 {
704 3 zongjia[6]=23;
705 3 }
706 2 else
707 2 {
708 3 c++;
709 3 if(c==10)
710 3 {
711 4 c=0;
712 4 switch(m) //判断白天还是晚上
713 4 {
714 5 case 0: zongjia[5]=zongjia[5]+jiage[0];if(zongjia[5]>9) //白天:总价加白天单价
715 5 {
716 6 n=1; zongjia[5]=zongjia[5]%10;
717 6 }
718 5 zongjia[6]=zongjia[6]+jiage[1];if(n==1)
719 5 {
720 6 zongjia[6]++;n=0;
721 6 }
722 5 zongjia[6]=zongjia[6]-18;if(zongjia[6]>27)
723 5 {
724 6 n=1; zongjia[6]=zongjia[6]-10;
725 6 }
726 5 if(n==1)
727 5 {
728 6 zongjia[7]++;
729 6 n=0;
730 6 if(zongjia[7]>9)
731 6 zongjia[7]=0;
732 6 }
733 5 break;
734 5 case 1: zongjia[5]=zongjia[5]+jiage[6];if(zongjia[5]>9) //晚上:总价加晚上单价
735 5 {
736 6 n=1; zongjia[5]=zongjia[5]%10;
737 6 }
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 13
738 5 zongjia[6]=zongjia[6]+jiage[7];if(n==1)
739 5 {
740 6 zongjia[6]++;n=0;
741 6 }
742 5 zongjia[6]=zongjia[6]-18;if(zongjia[6]>27)
743 5 {
744 6 n=1; zongjia[6]=zongjia[6]-10;
745 6 }
746 5 if(n==1)
747 5 {
748 6 zongjia[7]++;
749 6 n=0;
750 6 if(zongjia[7]>9)
751 6 zongjia[7]=0;
752 6 }
753 5 zongjia[0]=jiage[6];
754 5 zongjia[1]=jiage[7];
755 5 break;
756 5 }
757 4 }
758 3 }
759 2
760 2 lucheng[5]++; //路程位加1
761 2 if(lucheng[5]>9)
762 2 {
763 3 n=1; //大于9进1位
764 3 lucheng[5]=lucheng[5]%10; //本位10取余
765 3 }
766 2 if(n==1) //是否有进位
767 2 {
768 3 n=0; //进位清0
769 3 lucheng[6]++; //上一位加1
770 3 if(lucheng[6]>27) //是否到有小数点的9
771 3 {
772 4 n=1; //进位
773 4 lucheng[6]=lucheng[6]-10; //本位减10
774 4 }
775 3 }
776 2 if(n==1) //是否有进位
777 2 {
778 3 n=0; //进位清0
779 3 lucheng[7]++; //加1
780 3 if(lucheng[7]>9) //如果大于9清0
781 3 {
782 4 lucheng[7]=0;
783 4 }
784 3 }
785 2 }
786 1 x=1; //中断完成标志
787 1 }
788
789 void t1(void) interrupt 3 using 2
790 {
791 1 P3^=0;
792 1 P3^=1;
793 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2690 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = ---- ----
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 14
PDATA SIZE = ---- ----
DATA SIZE = 81 18
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 + -