⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 电话单路计费系统!LCD段码显示!电话机设定自由费率,根据反极信号计费及延时计费自由设定!
💻 LST
📖 第 1 页 / 共 5 页
字号:
 261   2              case guoji_N:
 262   2                      key[0] = KeyTemp;
 263   2                      count++;
 264   2                      break;
 265   2              case guoji_N+1:
 266   2                      key[1] = KeyTemp;
 267   2                      count++;
 268   2                      break;
 269   2              case guoji_N+2:
 270   2                      key[2] = KeyTemp;
 271   2                      count++;
 272   2                      break;
 273   2              case guoji_N+3:
 274   2                      key[3] = KeyTemp;
 275   2                      count++;
 276   2                      break;
 277   2              case guoji_N+4:
 278   2                      if(KeyTemp != 0x0c){count =0xff;showerror();break;};
 279   2                      EEWritePage(&key[0],0,guoji_N,4);
 280   2                      DELAY(0xff);
 281   2                      EEReadPage(&p[0],0,guoji_N,4);
 282   2                      if(key[0] != p[0]){count =0xff;showerror();break;};
 283   2                      if(key[3] != p[3]){count =0xff;showerror();break;};
 284   2                      showsucceed();
 285   2                      break;
 286   2      /*
 287   2      设定密码
 288   2      */
 289   2              case password:
 290   2                      key[0] = KeyTemp;
 291   2                      count++;
 292   2                      break;
 293   2              case password+1:
 294   2                      key[1] = KeyTemp;
 295   2                      count++;
 296   2                      break;
 297   2              case password+2:
 298   2                      key[2] = KeyTemp;
 299   2                      count++;
 300   2                      break;
 301   2              case password+3:
 302   2                      key[3] = KeyTemp;
 303   2                      count++;
C51 COMPILER V7.10   MAIN                                                                  05/07/2006 17:33:51 PAGE 6   

 304   2                      break;
 305   2              case password+4:
 306   2                      if(KeyTemp != 0x0c){count =0xff;showerror();break;};
 307   2                      EEWritePage(&key[0],0,password,4);
 308   2                      DELAY(0xff);
 309   2                      EEReadPage(&p[0],0,password,4);
 310   2                      if(key[0] != p[0]){count =0xff;showerror();break;};
 311   2                      if(key[3] != p[3]){count =0xff;showerror();break;};
 312   2                      showsucceed();
 313   2                      break;
 314   2      /*
 315   2      设定线路类型!1为有反极!0为无反极
 316   2      */
 317   2              case linetype:
 318   2                      key[0] = KeyTemp;
 319   2                      count++;
 320   2                      break;
 321   2              case linetype+1:
 322   2                      if(KeyTemp != 0x0c){count =0xff;showerror();break;};
 323   2                      EEWritePage(&key[0],0,linetype,1);
 324   2                      DELAY(0xff);
 325   2                      EEReadPage(&p[0],0,linetype,1);
 326   2                      if(key[0] != p[0]){count =0xff;showerror();break;};
 327   2                      showsucceed();
 328   2                      LineType = key[0];
 329   2                      break;
 330   2      /*
 331   2      修改时间
 332   2      */
 333   2              case modifytime:
 334   2                      key[0] = KeyTemp;
 335   2                      count++;
 336   2                      break;
 337   2              case modifytime+1:
 338   2                      key[1] = KeyTemp;
 339   2                      count++;
 340   2                      break;
 341   2              case modifytime+2:
 342   2                      key[2] = KeyTemp;
 343   2                      count++;
 344   2                      break;
 345   2              case modifytime+3:
 346   2                      key[3] = KeyTemp;
 347   2                      count++;
 348   2                      break;
 349   2              case modifytime+4:
 350   2                      if(KeyTemp != 0x0c){count =0xff;showerror();break;};
 351   2                      times  = key[0]*0x8ca0;
 352   2                      times += key[1]*0xe10;
 353   2                      times += key[2]*0x258;
 354   2                      times += key[3]*0x3c;
 355   2                      showtime();
 356   2                      
 357   2                      break;
 358   2              default:
 359   2                      showerror();
 360   2                      break;
 361   2              }
 362   1      }
 363          void showerror(void){
 364   1              Led2 = 0;
 365   1              DELAY(0XFF);
C51 COMPILER V7.10   MAIN                                                                  05/07/2006 17:33:51 PAGE 7   

 366   1              Led2 = 1;
 367   1              DELAY(0XFF);
 368   1              Led2 = 0;
 369   1              DELAY(0XFF);
 370   1              Led2 = 1;
 371   1              DELAY(0XFF);
 372   1              Led2 = 0;
 373   1              DELAY(0XFF);
 374   1              Led2 = 1;
 375   1              DELAY(0XFF);
 376   1              Led2 = 0;
 377   1              DELAY(0XFF);
 378   1              Led2 = 1;
 379   1              DELAY(0XFF);
 380   1      }
 381          void showsucceed(void){
 382   1              Led1 = 0;
 383   1              DELAY(0X1FF);
 384   1              Led1 = 1;
 385   1      }
C51 COMPILER V7.10   MAIN                                                                  05/07/2006 17:33:51 PAGE 8   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com0098 (BEGIN)
0000         L?0153:
0000 120000      E     LCALL   ?C?IMUL
0003 E4                CLR     A
0004 FC                MOV     R4,A
0005 FD                MOV     R5,A
0006         L?0154:
0006 E500        R     MOV     A,times+03H
0008 2F                ADD     A,R7
0009 F500        R     MOV     times+03H,A
000B E500        R     MOV     A,times+02H
000D 3E                ADDC    A,R6
000E F500        R     MOV     times+02H,A
0010 ED                MOV     A,R5
0011 3500        R     ADDC    A,times+01H
0013 F500        R     MOV     times+01H,A
0015 EC                MOV     A,R4
0016 3500        R     ADDC    A,times
0018 F500        R     MOV     times,A
001A 22                RET     
001B         L?0157:
001B         L?0158:
001B 7B00              MOV     R3,#00H
001D 7A00        R     MOV     R2,#HIGH key
001F 7900        R     MOV     R1,#LOW key
0021 22                RET     
             ; FUNCTION Com0098 (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 32
                                           ; SOURCE LINE # 33
0000 C2B1              CLR     Led1
                                           ; SOURCE LINE # 34
0002 C2B0              CLR     Led2
                                           ; SOURCE LINE # 35
0004 120000      E     LCALL   init
                                           ; SOURCE LINE # 36
0007 120000      E     LCALL   SETUP_LCD
                                           ; SOURCE LINE # 37
000A D2B1              SETB    Led1
                                           ; SOURCE LINE # 38
000C D2B0              SETB    Led2
000E         ?C0001:
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
000E 30000A      R     JNB     lift_bit,?C0004
                                           ; SOURCE LINE # 42
0011 A291              MOV     C,status1
0013 9200        R     MOV     status3,C
                                           ; SOURCE LINE # 43
0015 120000      E     LCALL   ClrLCD
                                           ; SOURCE LINE # 44
0018 E4                CLR     A
0019 F500        R     MOV     times3,A
                                           ; SOURCE LINE # 45
001B         ?C0004:
                                           ; SOURCE LINE # 47
001B 300020      R     JNB     lift_bit,?C0005
                                           ; SOURCE LINE # 48
C51 COMPILER V7.10   MAIN                                                                  05/07/2006 17:33:51 PAGE 9   

001E D200        R     SETB    scankey_bit
                                           ; SOURCE LINE # 49
0020 120000      R     LCALL   getkey
                                           ; SOURCE LINE # 50
0023 120000      R     LCALL   set_menu
                                           ; SOURCE LINE # 51
0026 A200        R     MOV     C,polarity_bit
0028 B000        R     ANL     C,/set_sign
002A 50EF              JNC     ?C0004
                                           ; SOURCE LINE # 52
002C AF00        R     MOV     R7,times+03H
002E AE00        R     MOV     R6,times+02H
0030 AD00        R     MOV     R5,times+01H
0032 AC00        R     MOV     R4,times
0034 120000      E     LCALL   _ShowCountTime
0037 7E00              MOV     R6,#00H
0039 120000      E     LCALL   _showmoney
                                           ; SOURCE LINE # 54
003C 80DD              SJMP    ?C0004
003E         ?C0005:
                                           ; SOURCE LINE # 55
003E 120000      E     LCALL   showtime
                                           ; SOURCE LINE # 56
0041 120000      R     LCALL   clrbuf
                                           ; SOURCE LINE # 57
0044 80C8              SJMP    ?C0001
             ; FUNCTION main (END)

             ; FUNCTION getkey (BEGIN)
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
0000 D293              SETB    STD
                                           ; SOURCE LINE # 62
0002 309351            JNB     STD,?C0014
                                           ; SOURCE LINE # 63
0005 E590              MOV     A,P1
0007 C4                SWAP    A
0008 540F              ANL     A,#0FH
000A F500        R     MOV     KeyTemp,A
                                           ; SOURCE LINE # 64
000C 900000      R     MOV     DPTR,#keycode
000F 93                MOVC    A,@A+DPTR
0010 F500        R     MOV     KeyTemp,A
                                           ; SOURCE LINE # 66
0012 7400        R     MOV     A,#LOW key
0014 2500        R     ADD     A,nkey
0016 F8                MOV     R0,A
0017 A600        R     MOV     @R0,KeyTemp
                                           ; SOURCE LINE # 68
0019 E500        R     MOV     A,KeyTemp
001B B40B06            CJNE    A,#0BH,?C0010
001E E500        R     MOV     A,nkey
0020 7002              JNZ     ?C0010
                                           ; SOURCE LINE # 69
0022 D200        R     SETB    set_sign
0024         ?C0010:
                                           ; SOURCE LINE # 71
0024 2093FD            JB      STD,?C0010
0027         ?C0011:
                                           ; SOURCE LINE # 72
0027 E4                CLR     A
0028 F500        R     MOV     times3,A
C51 COMPILER V7.10   MAIN                                                                  05/07/2006 17:33:51 PAGE 10  

                                           ; SOURCE LINE # 73
002A D200        R     SETB    KeyACT
                                           ; SOURCE LINE # 74
002C E500        R     MOV     A,KeyTemp
002E B40C05            CJNE    A,#0CH,?C0012
0031 200002      R     JB      LineType,?C0012
                                           ; SOURCE LINE # 75
0034 D200        R     SETB    polarity_bit
0036         ?C0012:
                                           ; SOURCE LINE # 76
0036 E500        R     MOV     A,nkey
0038 C3                CLR     C
0039 9414              SUBB    A,#014H
003B 5002              JNC     ?C0013
003D 0500        R     INC     nkey
003F         ?C0013:
                                           ; SOURCE LINE # 77
003F C200        E     CLR     ?ShowLCD?BIT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -