正文

出租车计价器程序2005-09-26 08:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/niao0311/5344.html

分享到:

ORG 0000H

          Z8279 EQU 0FF82H
          D8279 EQU 0FF80H

INII8279: MOV DPTR,#Z8279
          MOV A, #0D1H
          MOVX @DPTR,A
WAIT:     MOVX  A, @DPTR
          JB   ACC.7, WAIT
      MOV A,#00H  
      MOVX @DPTR,A
      MOV A,#2AH
      MOVX @DPTR,A                                 8279初始化;

   
      MOV A,#00H
 
      PUSH PSW
      PUSH DPH
      PUSH DPL
      PUSH ACC
KK:   MOV DPTR,#Z8279
      MOVX A,@DPTR
      ANL A,#07H
      JNZ READ
      MOV A,#00H
      SJMP KK         是否有键按下;
                
READ: MOV A,#40H
      MOVX @DPTR,A
      MOV DPTR,#D8279
      MOVX A,@DPTR

      CJNE A,#0EH,KK       是否是开车键0E


  
      POP ACC
      POP DPL
      POP DPH
      POP PSW
      MOV R4,#00H
AG:   MOV A,#00H        再次启动
 
   
TT:
     
        MOV R6,#8
        DL3: MOV R7,#200
DL2:  MOV R5,#250
DL1: NOP
 
        DJNZ R5,DL1        
        DJNZ R7,DL2
        DJNZ R6,DL3        产生一个延时
        ADD A,#01H        路程自动加一

        PUSH ACC
        MOV DPTR,#Z8279                    
 MOVX A,@DPTR
 ANL A,#07H
 JNZ READ1
       SJMP GO1
READ1:MOV A,#40H
      MOVX @DPTR,A
      MOV DPTR,#D8279
      MOVX A,@DPTR
      CJNE A,#0FH,GO1       是否是停车键0F
      LJMP OVER

GO1:
      POP ACC
PUSH  ACC
PUSH  ACC
      MOV B,#100
      DIV AB
      MOV 76H,A
      MOV A,#10
      XCH A,B
      DIV AB        数值转换为非压缩BCD码
 
      MOV 74H,B
      MOV 75H,A
      MOV 77H,#00H
POP   ACC
      CJNE  A,#2,LL
LL:   JC L2

      SUBB A,#2 
      MOV B,#2
      MUL AB
      ADD A,#5
      MOV R3,A
      AJMP L4
L2:   MOV A,#5        有路程算出票价


L4:   MOV B,#100
      DIV AB
      MOV 72H,A
      MOV A,#10
      XCH A,B        数值转换为非压缩BCD码
      DIV AB

      MOV 70H,B
      MOV 71H,A
      MOV 73H,#0

 
DISLED: PUSH DPH       显示
        PUSH DPL

        MOV DPTR, #Z8279
        MOV A,#90H
        MOVX @DPTR,A
        MOV R0,#70H
        MOV R7,#08H 
        MOV DPTR,#D8279
DL0:    MOV A,@R0
        ADD A,#0CH
        MOVC A,@A+PC
        MOVX @DPTR,A
        INC R0
        DJNZ R7,DL0
        POP DPL
        POP DPH
        POP ACC

        AJMP TT                                            
LEDSEG:DB 3FH,06H,5BH,4FH,66H,6DH
       DB 7DH,07H,7FH,6FH,77H,7CH
       DB 39H,5EH,79H,71H
OVER: 
               如果停车把路程和票价以压          缩的BCD码保存起来
        MOV R1,#70H       
 MOV R0,#60H

BC: MOV A,R0
 MOV R3,#4
        ADD A,R4
 MOV R0,A

      
TOG1:
 MOV B,@R1
        ANL B,#0FH
        INC R1
 MOV A,@R1
 ANL A,#0FH
 SWAP A
        ORL A,B
 
        MOV @R0,A
 INC R1
 INC R0
 DJNZ R3,TOG1
 INC R4
 INC R4
 INC R4
 INC R4

WAIT1: 
        MOV DPTR,#Z8279
 MOVX A,@DPTR
 ANL A,#07H
 JNZ READ2     
        SJMP GO2
READ2:  MOV A,#40H
        MOVX @DPTR,A
        MOV DPTR,#D8279
        MOVX A,@DPTR
        CJNE A,#0EH,GO2       等待再次拉客
        LJMP AG        等待是否回放
GO2:    CJNE A,#07H,WAIT1
        AJMP HFF
 
HFF: MOV R0,#60H
HF1: MOV R4,#4
 MOV R1,#70H
HF:
   
 MOV A,R0
 MOV A @R0
 MOV B,@R0
        ANL A,#0FH
 MOV @R1,A
 ANL B,#0F0H
 MOV A,B
 SWAP A
 INC R1
 MOV @R1 A
 INC R0
 INC R1
       DJNZ R4,HF
 MOV A,R0 


DISLED1: PUSH ACC
  PUSH DPH
         PUSH DPL
           
        MOV DPTR,#Z8279
        MOV A,#90H
        MOVX @DPTR,A
        MOV R0,#70H
        MOV R7,#08H 
        MOV DPTR,#D8279
DL:     MOV A,@R0
        ADD A,#0BH
        MOVC A,@A+PC
        MOVX @DPTR,A
        INC R0
        DJNZ R7,DL
 
 
 POP DPL
 POP DPL
 
LJMP DD
LEDSEG1:DB 3FH,06H,5BH,4FH,66H,6DH
       DB 7DH,07H,7FH,6FH,77H,7CH
       DB 39H,5EH,79H,71H

DD:    MOV DPTR,#Z8279
       MOVX A,@DPTR
       ANL A,#07H
       JNZ READ4
       SJMP DD
READ4: MOV A,#40H
       MOVX @DPTR,A
       MOV DPTR,#D8279
       MOVX A,@DPTR
       CJNE A,#07H,AGG
       POP ACC
       MOV R0,A
       AJMP HF1     
AGG:   LJMP AG       等待再次拉客
     
 END 

阅读(6025) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册