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

📄 mag_bar.asm

📁 磁卡阅读程序,包括一轨,二轨,二三轨,一二三轨
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*******************************************************************
B035D:		SETB	20H.7
		CLR	20H.4
B0361:		ACALL	B038C
B0363:		CJNE	A,#45H,B036D
		CLR	20H.7
		ACALL	B038C
		CJNE	A,#1FH,B0389
B036D:		SETB	20H.3
		SETB	20H.7
		ACALL	B038C
		JNB	20H.6,B0363
		CLR	20H.6
		JB	20H.4,B0385		
		CLR	20H.3
		SETB	20H.4
		SETB	22H.2
		MOV	R2,#01
		AJMP	B0361
B0385:		CLR	20H.3
		SETB	21H.1
B0389:		CLR	20H.7
		RET
;
;
B038C:		JB	20H.6,B03AE
		JNB	03,B0397
		CLR	A
		MOV	R4,#0DH
		AJMP	B039A
B0397:		MOV 	R4,#07H
		CLR 	A
B039A:		JNB	20H.7,B03A2
		MOV	A,R2
		MOV	R3,A
		MOV	A,R0

;**page 9
		MOV	R1,A
		CLR 	A
B03A2:		JB	20H.4,B03D4
		XCH	A,R2
		RL	A
		CJNE	A,#01,B03B1
		INC	R0
		CJNE	R0,#76H,B03B1
B03AE:		SETB	20H.6
		RET
B03B1:		XCH	A,R2
		PUSH	ACC
		MOV	A,@R0
		ANL	A,R2
		JZ	B03BE
		POP	ACC
		SETB	ACC.7
		AJMP	B03C0
B03BE:		POP	ACC
B03C0:		RR	A
		JB	20H.3,B03DF
		JNB	22H.2,B03CB
		JZ	B0397
		CLR	22H.2
B03CB:		DJNZ	R4,B03A2
		JNB	21H.3,B03D3
		LJMP	B03F2
B03D3:		RET
B03D4:		XCH	A,R2
		RR	A
		CJNE	A,#80H,B03B1	
		DEC	R0
		CJNE	R0,#29H,B03B1
		AJMP	B03AE
B03DF:		XCH	A,R4
		JZ	B03E9
		XCH	A,R4
		JZ	B03E7
		AJMP	B038C
B03E7:		DJNZ	R4,B039A
B03E9:		XCH	A,R4
		JZ	B039A
		CLR	20H.3
		MOV	R4,#06H
		AJMP	B03A2
B03F2:		CJNE	A,#1FH,B03F7
		SETB	21H.6
B03F7:		ANL	A,#3FH
		ADD	A,#20H
		MOV	0DH,A
		RET
;
;
B03FE:		MOV	A,R3
		MOV	R2,A
		MOV	A,R1
		MOV	R0,A
		ACALL	B038C 
		
;**page 10
		JB	20H.6,B043F
		CJNE	A,#45H,B043F
		CLR	20H.1
		MOV	05H,#00
B040F:		JNB	P,B043F
		PUSH	ACC
		XRL	A,05
		MOV	05,A
		JB	20H.1,B0434
		POP	ACC
		CJNE	A,#1FH,B0422
		SETB	20H.1
B0422:		ACALL	B038C
		JNB	20H.6,B040F
		JNB	20H.1,B043F
		JNB	20H.4,B043F
		XCH	A,R2
B042E:		CLR	C
		RRC	A
		DJNZ	R4,B042E
		AJMP	B040F
B0434:		POP	ACC
		ANL	05,#3FH
		MOV	A,05
		CJNE	A,#00,B043F
		RET
B043F:		SETB	21H.1
		RET
;
;
B0442:		PUSH	PSW		;1ST TRACK INTERRUPT SEVICE SUBROUTINE
		MOV	PSW,#00
		XCH	A,@R0
		JB	P1.2,B044E
		SETB	24H.7
		ADD	A,R2
B044E:		XCH	A,@R0
		JNB	24H.7,B045E
		XCH	A,R2
		RL	A
		XCH	A,R2
		CJNE	R2,#01,B045E
		INC	R0
		CJNE	R0,#76H,B045E
		CLR	ET0
B045E:		POP	PSW
		RETI
;*******************************************************************
;*    MAGNETIC CARD 3RD TRACK DATA ADJUST SUBROUTINE
;*******************************************************************
B0461:		SETB	20H.7
		CLR	20H.4
B0465:		ACALL	B0490
B0467:		CJNE	A,#0BH,B0471
		CLR	20H.7
		ACALL	B0490
		CJNE	A,#1FH,B048D
B0471:		SETB	20H.3
		SETB	20H.7
		ACALL	B0490

;**page 11
		JNB	20H.6,B0467
		CLR	20H.6
		JB	20H.4,B0489		
		CLR	20H.3
		SETB	20H.4
		SETB	22H.2
		MOV	R2,#01
		AJMP	B0465
B0489:		CLR	20H.3
		SETB	21H.1
B048D:		CLR	20H.7
		RET
;
;
B0490:		JB	20H.6,B04B3
		JNB	20H.3,B049C
		CLR	A
		MOV	R4,#09H
		LJMP	B049F
B049C:		MOV 	R4,#05
		CLR 	A
B049F:		JNB	20H.7,B04A7
		MOV	A,R2
		MOV	R3,A
		MOV	A,R0
		MOV	R1,A
		CLR 	A
B04A7:		JB	20H.4,B04D9
		XCH	A,R2
		RL	A
		CJNE	A,#01,B04B6
		INC	R0
		CJNE	R0,#D2H,B04B6
B04B3:		SETB	20H.6
		RET
B04B6:		XCH	A,R2
		PUSH	ACC
		MOV	A,@R0
		ANL	A,R2
		JZ	B04C3
		POP	ACC
		SETB	ACC.5
		AJMP	B04C5
B04C3:		POP	ACC
B04C5:		RR	A
		JB	20H.3,B04E4
		JNB	22H.2,B04D0
		JZ	B049C
		CLR	22H.2
B04D0:		DJNZ	R4,B04A7
		JNB	21H.3,B04D8
		LJMP	B04F7
B04D8:		RET
B04D9:		XCH	A,R2
		RR	A
		CJNE	A,#80H,B04B6	
		DEC	R0
		CJNE	R0,#8EH,B04B6
		AJMP	B04B3
		
;**page 12       
B04E4:		XCH	A,R4
		JZ	B04EE
		XCH	A,R4
		JZ	B04EC
		AJMP	B0490
B04EC:		DJNZ	R4,B049F
B04EE:		XCH	A,R4
		JZ	B049F
		CLR	20H.3
		MOV	R4,#04
		AJMP	B04A7
B04F7:		CJNE	A,#1FH,B04FC
		SETB	21H.6
B04FC:		ANL	A,#0FH
		ORL	A,#30H
		MOV	0DH,A
		JB	24H.0,B0500
		CJNE	A,#3BH,B050D
		MOV	0DH,#2BH
		SETB	24H.0
B050D:		RET
;
;
B050E:		MOV	A,R3
		MOV	R2,A
		MOV	A,R1
		MOV	R0,A
		ACALL	B0490 
		JB	20H.6,B0552
		JB	20H.2,B051A
B051A:		CJNE	A,#0BH,B0552
		CLR	20H.1
		MOV	05,#00
B0522:		JNB	P,B0552
		PUSH	ACC
		XRL	A,05
		MOV	05,A
		JB	20H.1,B0547
		POP	ACC
		CJNE	A,#1FH,B0535
		SETB	20H.1
B0535:		ACALL	B0490
		JNB	20H.6,B0522
		JNB	20H.1,B0552
		JNB	20H.4,B0552
		XCH	A,R2
B0541:		CLR	C
		RRC	A
		DJNZ	R4,B0541
		AJMP	B0522
B0547:		POP	ACC
		ANL	05,#0FH
		MOV	A,05  
		CJNE	A,#00,B0552
		RET
B0552:		SETB	21H.1
		RET
;
;

;**page 13       
B0555:		PUSH	PSW		;1ST TRACK INTERRUPT SEVICE SUBROUTINE
		MOV	PSW,#10H
		CLR	0C8H.6	;T2CON.6
		XCH	A,@R0
		JB	P1.3,B0563
		SETB	22H.0
		ADD	A,R2
B0563:		XCH	A,@R0
		JNB	22H.0,B0573
		XCH	A,R2
		RL	A
		XCH	A,R2
		CJNE	R2,#01,B0573
		INC	R0
		CJNE	R0,#D2H,B0573
		CLR	IEC.5
B0573:		POP	PSW
		RETI
;*******************************************************************
;*    SIO SUBROUTINE COLLECT
;*******************************************************************
B0576:	
;get magnetic data and send them to computer via communication
		SETB	TR1
		CLR	TI
		CLR	RI
		SETB	ES
		JB	24H.2,B0586
		LCALL	B05AD
		SETB	24H.2
B0586:		SETB	21H.3
B0588:		JNB	24H.3,B058F
		ACALL	B038C
		SJMP	B0599
B058F:		JNB	21H.0,B0597
		ACALL	B027F
		LJMP	B0599
B0597:		ACALL	B0490
B0599:		JNB	20H.6,B059E
		AJMP	B05A8
B059E:		SETB	23H.0
		SETB	TI
B05A2:		JB	23H.0,B05A2
		JNB	21H.6,B0588
B05A8:		CLR	21H.3
		CLR	21H.6
		RET
;
;
B05AD:
;send STX char to computer according SW4 status
		JNB	25H.1,B05BA
		MOV	0DH,#02
		SETB	23H.0
		SETB	TI
B05B7:		JB	23H.0,B05B7
B05BA:		RET
;
;
				
;**page 14
B05BB:
;send CR and ETX according to SW3 and SW4 status,23h.0 send finish_sign
		JNB	25H.2,B05C8
		MOV	0DH,#0DH
		SETB	23H.0
		SETB	TI			;setup TI exec SIO interrupt program
B05C5:		JB	23H.0,B05C5
B05C8:		JNB	25H.1,B05D5
        	MOV	0DH,#03
        	SETB	23H.0
        	SETB	TI
B05D2:		JB	23H.0,B05D2
B05D5:		RET
;
;
B05D6:
;SIO interrupt sevice program,the program process only data submiiting
		PUSH	ACC
		JNB	RI,B05DF	;interrupt due to receive?YES,EXIT
		CLR	RI
		AJMP	B05E4
B05DF:		JNB	TI,B05E4	;interrupt due to SUBMITT?YES,CONTINUE
		AJMP	B05E7
B05E4:		POP	ACC
		RETI
B05E7:		JB	23H.0,B05EE
		CLR	TI
		AJMP	B05E4
B05EE:		MOV	A,0DH
		CJNE	A,#FFH,B05F7
		CLR	23H.0
		AJMP	B05E4
B05F7:		LCALL	B05FF
		MOV	0DH,#FFH
		AJMP	B05E4
;
;
B05FF:
;encode parity bit according SW6 and SW5,and send communicatin data to
;computer
		JNB	TI,B05FF
		CLR	TI
		JNB	25H.4,B0611
		MOV	C,P
		JB	25H.5,B060D
		CPL	C
B060D:		MOV	ACC.7,C
		AJMP	B061A 
B0611:		JB	25H.5,B0618
		SETB	ACC.7
		AJMP	B061A
B0618:		CLR	ACC.7
B061A:		MOV	SBUF,A
		RET
;
;
B061D:
;Read DIP SWITCH to determine READER's working mode,SW7-SW8 baud rate:
;on on-9600,on off-4800,off on-2400,0ff off-1200,25h is SW7-SW3's
		

;**page 15
;status,0FH is baud rate status
		MOV	DPTR,#4000H
		MOVX	A,@DPTR
		JB	ACC.2,B0626
		SETB	25H.4			;SW6:ask to parity(ON 1)
B0626:		JB	ACC.3,B062B
		SETB	25H.5			;SW5:ON/OFF(1/0):even/odd parity
B062B:		JB	ACC.4,B0630
		SETB	25H.1			;SW4:add STX/ETX(ON)
B0630:		JB	ACC.5,B0635
		SETB	25H.2			;SW3:add CR(ON)
B0635:		JB	ACC.6,B063A
		SETB	25H.6			;SW2:not used
B063A:		JB	ACC.7,B063F
		SETB	25H.3			;SW1:not used
B063F:		ANL	A,#03			;SW7 and SW8 baud rate
		MOV 	0FH,A
		MOV	DPTR,#B0652
		MOVC	A,@A+DPTR
		MOV	TH1,A
		MOV	A,0FH
		MOV	DPTR,@B0656
		MOVC	A,@A+DPTR
		MOV	0FH,A
		RET
B0652:		DB      FDH,FAH,F4H,E8H
B0656:		DB      02H,04H,08H,10H
;
;
B065A:		MOV	B,#12H			;delay
B065D:		DJNZ	B,B065D
		NOP
		RET
B0A15:
		RETI
		END
;
;
;*******************************************************************
;*    software developer:zz
;*    ShenZhen VIE INFORMATION CO LTD
;*    TEL:
;*******************************************************************

				

⌨️ 快捷键说明

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