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

📄 p31n-v1.1.2.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	ljmp own

down:	clr f_0
	ljmp mmain

own:	ret


;******************************
;      显示终端机号
;******************************
key_f1: lcall get_pos_name

kkf10:  mov r7,#80

kkf13:  lcall key_in

	mov a,v_key
	cjne a,#k_f1a,kkf14
	mov v0_key,#0ffh
	ret


kkf14:  cjne a,#k_f1p,kkf15
	mov v0_key,#0ffh
	ret


kkf15:  cjne a,#k_f1m,kkf16
	mov v0_key,#0ffh
	ret

kkf16:  cjne a,#k_f2p,kkf17
	mov v0_key,#0ffh
	ret

kkf17:  cjne a,#k_f2m,kkf18
	mov v0_key,#0ffh
	ret

kkf18:  cjne a,#kb_cl,kkf19
	ret


kkf19:  djnz r7,kkf13

	ret



;*************************************
;      Display Sale/Deposit/Fetch Sum
;*************************************
key_f2: lcall sum_ds
	jnb bit_c,kkf20

	ret


kkf20:  mov r7,#100

k_f20:  lcall key_in

	mov a,v_key
	cjne a,#kb_cl,k_f21

	ret


k_f21:  cjne a,#kb_f2,k_f22

	sjmp kkf30


k_f22:  djnz r7,k_f20

	ret

	;;;;;;
kkf30:  mov r0,#ddsp0
	mov r2,#4
	mov a,#null

kkf32:  mov @r0,a
	inc r0
	djnz r2,kkf32

	mov dptr,#sum6
	mov r2,#2

kkf34:  movx a,@dptr
	mov b,a
	swap a
	anl a,#0fh
	jnz kkf35

	mov a,#null

kkf35:  mov @r0,a
	inc r0

	mov a,b
	anl a,#0fh
	jnz kkf37

	mov a,#null

kkf37:  mov @r0,a
	inc r0
	inc dptr

	djnz r2,kkf34

	dec r0
	cjne @r0,#null,kkf39

	mov @r0,#0

kkf39:  mov r0,#ddsp0
	mov r1,#ddsp1
	mov r2,#8
	lcall copy_s


	mov r7,#100

k_f30:  lcall key_in

	mov a,v_key
	cjne a,#kb_cl,k_f31

	ret


k_f31:  cjne a,#kb_f2,k_f32

	ljmp key_f2


k_f32:  djnz r7,k_f30

	ret


;*************************************
;Display Sale/Deposit/Fetch Record
;"KEY+F1+="==>Enter;"+"==>Preious;"-"==>Next
;    "."==>No.;CardAdress;Time;RecordAddress
;*************************************
;keyf1equ: mov a,s_succ
;	jz kkf41

;	ret

;kkf41:  mov adr_l,end_l
;	mov a,end_h
;	mov adr_h,a
;	jnz kkf42

;	mov a,end_l
;	jnz kkf42

;	mov adr_l,#mx_sl
;	mov adr_h,#mx_sh

;kkf42:  clr c
;	mov a,adr_l
;	subb a,#1
;	mov adr_l,a

;	mov a,adr_h
;	subb a,#0
;	mov adr_h,a

;	mov reg2,#0
;	mov reg3,#1

;kkf45:  lcall get_sale

;	mov r0,#reg3
;	mov r1,#ddsp03
;	lcall bndec2

;	mov reg4,#0

;	mov r0,#d_exp2
;	mov r1,#exp_rm5
;	lcall bin2dec

;	mov r0,#ddsp03
;	mov a,@r0
;	orl a,#80h
;	mov @r0,a

;	lcall expense2disp

;	mov r0,#ddsp0
;	mov r1,#ddsp1
;	mov r2,#8
;	lcall copy_s

;k_f40:  lcall key_in

;	mov a,v_key
;	cjne a,#kb_cl,k_f43

;	ret


;k_f43:  cjne a,#kb_p,k_f45

;	mov a,adr_l
;	add a,#1
;	mov r3,a
;	clr a
;	addc a,adr_h
;	mov r2,a
;	cjne a,#mx_sh,kf431
;	mov a,r3
;	cjne a,#mx_sl,kf431
;kf431:  jc kf433

;	mov r3,#0
;	mov r2,#0

;kf433:  mov a,r2
;	cjne a,end_h,kf435
;	mov a,r3
;	cjne a,end_l,kf435

;	sjmp k_f40

;kf435:  mov adr_h,r2
;	mov adr_l,r3
 ;
;	clr c
;	mov a,reg3
;	subb a,#1
;	mov reg3,a
;	mov a,reg2
;	subb a,#0
;	mov reg2,a
 ;
;	ljmp kkf45


;k_f45:  cjne a,#kb_m,k_f47

;	mov r3,adr_l
;	mov a,adr_h
;	mov r2,a
;	jnz kf451
;	mov a,r3
;	jnz kf451
 ;
;	mov r2,#mx_sh
;	mov r3,#mx_sl
 ;
; kf451: clr c
;	mov a,r3
;	subb a,#1
;	mov r3,a
 ;
;	mov a,r2
;	subb a,#0
;	mov r2,a
;	cjne a,end_h,kf453
;	mov a,r3
;	cjne a,end_l,kf453
 ;
;	ljmp k_f40

;kf453:  mov adr_h,r2
;	mov adr_l,r3

;	mov a,reg3
;	add a,#1
;	mov reg3,a
;	mov a,reg2
;	addc a,#0
;	mov reg2,a
;	ljmp kkf45

;k_f47:  cjne a,#kb_dot,k_f49

;	inc reg4
;	anl reg4,#3
;	mov a,reg4
;	cjne a,#0,kf471
 ;
;	mov r0,#reg3
;	sjmp kf477

;kf471:   cjne a,#1,kf473

;	mov r0,#dadr_l
;	sjmp kf477

;kf473:   cjne a,#2,kf475

;	mov r0,#d_hor
;	mov r1,#ddsp0
;	mov a,@r0
;	mov b,#10
;	div ab
;	mov @r1,a
;	inc r1
;	mov @r1,b
;	inc r1
 ;
;	inc r0
;	mov a,@r0
;	mov b,#10
;	div ab
;	mov @r1,a
;	inc r1
;	mov @r1,b
;	sjmp kf479
 ;
;kf475:  mov r0,#adr_l

;kf477:  mov r1,#ddsp03
;	lcall bndec2

;kf479:  mov a,#ddsp03
;	clr c
;	subb a,reg4
;	mov r0,a
;	mov a,@r0
;	orl a,#80h
;	mov @r0,a

;	mov r0,#ddsp0
;	mov r1,#ddsp1
;	mov r2,#4
;	lcall copy_s

;k_f49:   ljmp k_f40



;******************************
get_sale:
	mov r2,adr_h
	mov r3,adr_l
	mov dptr,#d_sal
	mov r1,#1
	mov reclen,#s_recl
	lcall g_addr
	;
	mov r0,#dflag
	mov r3,#s_recl

getsl52:movx a,@dptr
	mov @r0,a

	lcall indptr

	inc r0
	djnz r3,getsl52

	;
	ret


;*************************************
;Display End_h,End_l && beg_h,Beg_l
;*************************************
keyf1d: mov r0,#beg_l
	mov r1,#ddsp03
	lcall bndec2

	mov r0,#end_l
	mov r1,#ddsp07
	lcall bndec2

	mov r0,#ddsp0
	mov r1,#ddsp1
	mov r2,#8
	lcall copy_s

	mov r7,#80

kfd13:  lcall key_in

	mov a,v_key
	cjne a,#kb_cl,kfd15

	ret

kfd15:  djnz r7,kfd13

	ret

;******************************
;    Show Card's Address
;******************************
keyf16: mov r0,#ddsp0
        mov @r0,#0ch

        inc r0
        mov @r0,#0ah

        inc r0
        mov @r0,#15h

        inc r0
        mov @r0,#0dh

        mov r7,#12
        inc r0
keyf16_0:
        mov @r0,#12h
        inc r0
        djnz r7,keyf16_0
keyf16_1:

        lcall  card_id
        jb    rf_chk,keyf16_2
        ljmp  keyf16_3
keyf16_2:
        lcall   key_in
        mov     a,v_key
        cjne    a,#kb_cl,keyf16_1

        lcall   key_in
        lcall   key_in
        ret

keyf16_3:
        jnb    f0,keyf16err
        lcall  divsub

        lcall  clrbp
        mov    r2,#0
        mov    r3,#80
kf16_w:
        djnz   r2,$
        djnz   r3,kf16_w
        lcall  setbp

        mov    r2,#2
        mov    r0,#rf1ram
        mov    r1,#ddsp04
        lcall  ram2disp

        mov     r2,#4
        mov     r0,#rf0ram
        inc     r0
        mov     r1,#ddsp1
        lcall   ram2disp

        mov     r4,#1
        lcall   d0lay
        ljmp    keyf16_1


keyf16err:
        mov   r_err,#err_7
        ljmp  deal_error
        ret

ram2disp:
        mov    a,@r0
        mov    b,a
        anl    a,#0f0h
        swap   a
        mov    @r1,a
        inc    r1
        mov    a,b
        anl    a,#0fh
        mov    @r1,a
        inc    r0
        inc    r1
        djnz   r2,ram2disp
        ret

;******************************
;       Clear Deposit State
;******************************
keyf1cl:
	mov a,state
	anl a,#0fh

	cjne a,#2,kk_f1cl

	clr f_cny

	mov r_err,#11
	lcall get_code
	ljmp kkf10

kk_f1cl:ret


;******************************
;       Set Ration State
;******************************
keyf2en:
	mov a,state
	cjne a,#33,kk_f1n

	ret


kk_f1n: anl a,#0fh
	cjne a,#2,kk_f2n

	ret


kk_f2n: mov r_err,#12
	lcall get_code

	mov r0,#rat_2
	mov r1,#exp_rm5

	lcall bin2dec

	lcall expense2disp

	lcall clr_bit
	lcall clr_augend

kk_f5n: lcall key_in

	mov a,v_key
	cjne a,#kb_en,kk_f6n

	lcall disp2expense

	mov r0,#exp_rm5
	mov r1,#rat_2

	lcall dec2bin

	setb f_rat

	ret



kk_f6n: cjne a,#kb_cl,kk_f7n

	jb f_n,kkf79n

        lcall   key_in
        lcall   key_in
	ret


kk_f7n: cjne a,#kb_p,kkf77n

kkf77n: jnc kk_f5n

	mov a,state
	cjne a,#17,kkf78n

	sjmp kk_f5n


kkf78n: jb f_n,kk_f8n

kkf79n: lcall clr_bit
	lcall clr_expense
	lcall clr_augend

	mov r0,#ddsp04
	mov r1,#ddsp04

	mov r2,#3
	lcall setnul

	mov @r0,#0
	mov @r1,#0

kk_f8n: lcall kb_deal
	sjmp kk_f5n


;******************************
;       Clear Ration State
;******************************
keyf2cl:
	mov a,state
	cjne a,#33,kk_f2c
	ret


kk_f2c: cjne a,#17,kk_f5c

	ret


kk_f5c: anl a,#0fh
	cjne a,#2,kk_f8c

	ret


kk_f8c: clr f_rat

	mov r_err,#13
	lcall get_code
	ljmp kkf10



;*************************************************************
;******************************
err_in: mov r_err,#err_9
	lcall error_code

	lcall clrbp

	mov r4,#30
	lcall d0lay

	lcall setbp

	mov r4,#10
	lcall d0lay

	ret


;******************************
;******************************
in_err: lcall err_in

	jb f_rat,iner0

	lcall clear_input

	clr f0

	mov c,f_cny
	cpl c
	mov f_a_s,c

	ret


iner0:
    ;lcall card_test

	;jnb rf_chk,in_err

	clr f_tj

	clr f0
	ljmp xig5
	ret

;**********************************************************
;*************************************************************
;******************************
err_in2: mov r_err,#err_16
	lcall error_code

	lcall clrbp

	mov r4,#30
	lcall d0lay

	lcall setbp

	mov r4,#10
	lcall d0lay

	ret


;******************************
;******************************
in_err2: lcall err_in2

;;;	jb f_rat,iner02

	lcall clear_input

	clr f0

	mov c,f_cny
	cpl c
	mov f_a_s,c

	ret


iner02:
    ;lcall card_test

	;jnb rf_chk,in_err

	clr f_tj

	clr f0
	ljmp xig5
	ret

;**********************************************************

;*******************************
;*******************************
clear_input:
	lcall clr_expense
	lcall clr_bit

	mov r0,#ddsp04
	mov r1,#ddsp14

	mov r2,#3
	lcall setnul

	mov @r0,#0
	mov @r1,#0

	lcall surplus2disp

	mov r2,#4
	mov r0,#ddsp0
	mov r1,#ddsp1
	lcall copy_s

	ret


;*******************************
;       Set Null
;*******************************
setnul: mov a,#null

setram: mov @r0,a
	mov @r1,a
	inc r0
	inc r1
	djnz r2,setram

	ret


;*******************************
;*******************************
copy_s: mov a,@r0
	mov @r1,a

	inc r0
	inc r1

	djnz r2,copy_s

	ret


;*******************************
;       清除消费累加和,ds1307RAM
;===============================
clrsum: mov bytecount,#08h		;8 bytes
	clr ea
	lcall send_start

	mov a,#ds1307w
	lcall send_byte

	mov a,#17h			;address
	lcall send_byte

clr_loop:
	mov a,#00h
	lcall send_byte

	djnz bytecount,clr_loop

	lcall send_stop			;send the commnand of stop
	setb ea
	ret


;*******************************
;       Clear Augend
;===============================
clr_augend:
	mov r0,#augend0
	mov r2,#6

cnw0:   mov @r0,#0
	inc r0

	djnz r2,cnw0

	ret


;*******************************
;       Clear Expense
;===============================
clr_expense:
	mov r0,#exp_rm0

	mov r2,#6
	clr a

cnf0:   mov @r0,a
	inc r0
	djnz r2,cnf0

	ret


;******************

⌨️ 快捷键说明

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