下面是
下面是出租车计价器程序和基本要求:
请各位大哥大姐们帮我看看下面的程序能能实现这个功能??如果不能可以帮我修改下??在这里先谢谢了!!!
有什么指点的,可以加我的QQ:495357003。谢谢了!!
1、基本要求
(1) 不同情况具有不同的收费标准。
白天
晚上
途中等待(>10min 开始收费)
(2) 能进行手动修改单价
(3) 具有数据的复位功能
(4) IO 口分配的简易要求
距离检测使用霍尔开关A44E
白天/晚上收费标准的转换开关
数据的清零开关
单价的调整(最好使用“+”和“-”按键)
(5) 数据输出(采用LCM103)
单价输出2 位
路程输出2 位
总金额输出3 位
(6) 按键
启动计时开关
数据复位(清零)
白天/晚上转换
出租车计价器程序
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