📄 鼠标.lst
字号:
01FE 308109 PS23DMSI81: JNB PS2CLK, PS23DMSI82
0201 DFFB DJNZ R7, PS23DMSI81
0203 DEF9 DJNZ R6, PS23DMSI81
0205 DDF7 DJNZ R5, PS23DMSI81
0207 0202CA PS23DMS81O: LJMP MOUSE3DOUT
020A 12039F PS23DMSI82: LCALL PS2D2HRECEIVE
020D 7D04 MOV R5, #MSBYTEWAITTIMEA
020F 7E0E MOV R6, #MSBYTEWAITTIMEB
0211 7F40 MOV R7, #MSBYTEWAITTIMEC
0213 308109 PS23DMSI83: JNB PS2CLK, PS23DMSI84
0216 DFFB DJNZ R7, PS23DMSI83
0218 DEF9 DJNZ R6, PS23DMSI83
021A DDF7 DJNZ R5, PS23DMSI83
021C 0202CA LJMP MOUSE3DOUT
021F 12039F PS23DMSI84: LCALL PS2D2HRECEIVE
0222 EF MOV A, R7
0223 B40314 CJNE A, #03H, PS23DMS91O ;检测是否3D鼠标
0226 7FE8 MOV R7, #0E8H ;Set Resolution命令
0228 120325 LCALL PS2H2DSEND
022B 7D04 MOV R5, #MSBYTEWAITTIMEA
022D 7E0E MOV R6, #MSBYTEWAITTIMEB
022F 7F40 MOV R7, #MSBYTEWAITTIMEC
0231 308109 PS23DMSI91: JNB PS2CLK, PS23DMSI92
0234 DFFB DJNZ R7, PS23DMSI91
0236 DEF9 DJNZ R6, PS23DMSI91
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 7
12-16-05
15:46:38
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0238 DDF7 DJNZ R5, PS23DMSI91
023A 0202CA PS23DMS91O: LJMP MOUSE3DOUT
023D 12039F PS23DMSI92: LCALL PS2D2HRECEIVE
0240 7F00 MOV R7, #00H ;1 counts/mm
0242 120325 LCALL PS2H2DSEND
0245 7D04 MOV R5, #MSBYTEWAITTIMEA
0247 7E0E MOV R6, #MSBYTEWAITTIMEB
0249 7F40 MOV R7, #MSBYTEWAITTIMEC
024B 308109 PS23DMSIA1: JNB PS2CLK, PS23DMSIA2
024E DFFB DJNZ R7, PS23DMSIA1
0250 DEF9 DJNZ R6, PS23DMSIA1
0252 DDF7 DJNZ R5, PS23DMSIA1
0254 0202CA PS23DMSA1O: LJMP MOUSE3DOUT
0257 12039F PS23DMSIA2: LCALL PS2D2HRECEIVE
025A 7FE6 MOV R7, #0E6H ;Set scaling 1:1
025C 120325 LCALL PS2H2DSEND
025F 7D04 MOV R5, #MSBYTEWAITTIMEA
0261 7E0E MOV R6, #MSBYTEWAITTIMEB
0263 7F40 MOV R7, #MSBYTEWAITTIMEC
0265 308109 PS23DMSIB1: JNB PS2CLK, PS23DMSIB2
0268 DFFB DJNZ R7, PS23DMSIB1
026A DEF9 DJNZ R6, PS23DMSIB1
026C DDF7 DJNZ R5, PS23DMSIB1
026E 0202CA PS23DMSB1O: LJMP MOUSE3DOUT
0271 12039F PS23DMSIB2: LCALL PS2D2HRECEIVE
0274 7FF3 MOV R7, #0F3H ;Set Sample Rate命令
0276 120325 LCALL PS2H2DSEND
0279 7D04 MOV R5, #MSBYTEWAITTIMEA
027B 7E0E MOV R6, #MSBYTEWAITTIMEB
027D 7F40 MOV R7, #MSBYTEWAITTIMEC
027F 308109 PS23DMSIC1: JNB PS2CLK, PS23DMSIC2
0282 DFFB DJNZ R7, PS23DMSIC1
0284 DEF9 DJNZ R6, PS23DMSIC1
0286 DDF7 DJNZ R5, PS23DMSIC1
0288 0202CA PS23DMSC1O: LJMP MOUSE3DOUT
028B 12039F PS23DMSIC2: LCALL PS2D2HRECEIVE
028E 7F28 MOV R7, #028H ;40
0290 120325 LCALL PS2H2DSEND
0293 7D04 MOV R5, #MSBYTEWAITTIMEA
0295 7E0E MOV R6, #MSBYTEWAITTIMEB
0297 7F40 MOV R7, #MSBYTEWAITTIMEC
0299 308109 PS23DMSID1: JNB PS2CLK, PS23DMSID2
029C DFFB DJNZ R7, PS23DMSID1
029E DEF9 DJNZ R6, PS23DMSID1
02A0 DDF7 DJNZ R5, PS23DMSID1
02A2 0202CA PS23DMSD1O: LJMP MOUSE3DOUT
02A5 12039F PS23DMSID2: LCALL PS2D2HRECEIVE
02A8 7FF4 MOV R7, #0F4H ;Enable Device命令
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 8
12-16-05
15:46:38
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
02AA 120325 LCALL PS2H2DSEND
02AD 7D04 MOV R5, #MSBYTEWAITTIMEA
02AF 7E0E MOV R6, #MSBYTEWAITTIMEB
02B1 7F40 MOV R7, #MSBYTEWAITTIMEC
02B3 308109 PS23DMSIE1: JNB PS2CLK, PS23DMSIE2
02B6 DFFB DJNZ R7, PS23DMSIE1
02B8 DEF9 DJNZ R6, PS23DMSIE1
02BA DDF7 DJNZ R5, PS23DMSIE1
02BC 0202CA PS23DMSE1O: LJMP MOUSE3DOUT
02BF 12039F PS23DMSIE2: LCALL PS2D2HRECEIVE
02C2 EF MOV A, R7
02C3 B4FA04 CJNE A, #0FAH, MOUSE3DOUT
02C6 7F00 MOV R7, #00H
02C8 8002 SJMP MOUSE3DOK
02CA 7F01 MOUSE3DOUT: MOV R7, #01H
02CC D0E0 MOUSE3DOK: POP ACC
02CE FE MOV R6, A
02CF D0E0 POP ACC
02D1 FD MOV R5, A
02D2 D0E0 POP ACC
02D4 D0D0 POP PSW
02D6 22 RET
;
;-----------------------------------------------
; 3D鼠标数据接收程序
; 参数R0(指针)
; 返回值R7:0接受成功
;-----------------------------------------------
MOUSEDAWTIME EQU 200
THREEDMOUSER:
02D7 C0D0 PUSH PSW
02D9 C0E0 PUSH ACC
02DB D281 SETB PS2CLK
02DD 7FC8 MOV R7, #MOUSEDAWTIME
02DF 308105 TDMR01: JNB PS2CLK, TDMR02
02E2 DFFB DJNZ R7, TDMR01
02E4 0F INC R7
02E5 8037 SJMP OUTTDMR
02E7 12039F TDMR02: LCALL PS2D2HRECEIVE
02EA EF MOV A, R7
02EB F6 MOV @R0, A
02EC 08 INC R0
02ED 7FC8 MOV R7, #MOUSEDAWTIME
02EF 308105 TDMR11: JNB PS2CLK, TDMR12
02F2 DFFB DJNZ R7, TDMR11
02F4 0F INC R7
02F5 8027 SJMP OUTTDMR
02F7 12039F TDMR12: LCALL PS2D2HRECEIVE
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 9
12-16-05
15:46:38
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
02FA EF MOV A, R7
02FB F6 MOV @R0, A
02FC 08 INC R0
02FD 7FC8 MOV R7, #MOUSEDAWTIME
02FF 308105 TDMR31: JNB PS2CLK, TDMR32
0302 DFFB DJNZ R7, TDMR31
0304 0F INC R7
0305 8017 SJMP OUTTDMR
0307 12039F TDMR32: LCALL PS2D2HRECEIVE
030A EF MOV A, R7
030B F6 MOV @R0, A
030C 08 INC R0
030D 7FC8 MOV R7, #MOUSEDAWTIME
030F 308105 TDMR41: JNB PS2CLK, TDMR42
0312 DFFB DJNZ R7, TDMR41
0314 0F INC R7
0315 8007 SJMP OUTTDMR
0317 12039F TDMR42: LCALL PS2D2HRECEIVE
031A EF MOV A, R7
031B F6 MOV @R0, A
031C 7F00 MOV R7, #00H
031E C281 OUTTDMR: CLR PS2CLK
0320 D0E0 POP ACC
0322 D0D0 POP PSW
0324 22 RET
;
;-----------------------------------------------
; PS/2 Host-to-Device Communication (Send)
; 参数在R7中
; 返回值R7(0正确发送)
;-----------------------------------------------
PS2WATCHTIME EQU 50
PS2H2DSEND:
0325 C0D0 PUSH PSW
0327 C0E0 PUSH ACC
0329 EE MOV A, R6
032A C0E0 PUSH ACC
032C EF MOV A, R7 ;取参数
032D C281 CLR PS2CLK ;PS/2时钟线下拉
032F 7E00 MOV R6, #00H ;保持100uS以上
0331 7F02 MOV R7, #02H
0333 120407 LCALL DELAY3D
0336 C280 CLR PS2DTL ;数据线下拉
0338 00 NOP
0339 D281 SETB PS2CLK ;时钟线释放
033B A2D0 MOV C, P ;暂存奇偶校验位
033D B3 CPL C ;奇校验
033E 7F09 MOV R7, #9
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 10
12-16-05
15:46:38
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0340 7E32 PS2SEND1: MOV R6, #PS2WATCHTIME
0342 308104 PS2SEND11: JNB PS2CLK, PS2SEND12 ;JB PS2CLK, $发送8位数据+奇偶校验位
0345 DEFB DJNZ R6, PS2SEND11
0347 804E SJMP PS2SOUT
0349 13 PS2SEND12: RRC A
034A 9280 MOV PS2DTL, C
034C 7E32 MOV R6, #PS2WATCHTIME
034E 208104 PS2SEND14: JB PS2CLK, PS2SEND15 ;JNB PS2CLK, $
0351 DEFB DJNZ R6, PS2SEND14
0353 8042 SJMP PS2SOUT
0355 DFE9 PS2SEND15: DJNZ R7, PS2SEND1
0357 1F DEC R7
0358 7E32 MOV R6, #PS2WATCHTIME
035A 308104 PS2SEND21: JNB PS2CLK, PS2SEND22 ;JB PS2CLK, $发送停止位
035D DEFB DJNZ R6, PS2SEND21
035F 8036 SJMP PS2SOUT
0361 D280 PS2SEND22: SETB PS2DTL
0363 1F DEC R7
0364 7E32 MOV R6, #PS2WATCHTIME
0366 208104 PS2SEND23: JB PS2CLK, PS2SEND24 ;JNB PS2CLK, $
0369 DEFB DJNZ R6, PS2SEND23
036B 802A SJMP PS2SOUT
036D 7E32 PS2SEND24: MOV R6, #PS2WATCHTIME
036F 1F DEC R7
0370 308004 PS2SEND25: JNB PS2DTL, PS2SEND26 ;JB PS2DTL, $等待ACK
0373 DEFB DJNZ R6, PS2SEND25
0375 8020 SJMP PS2SOUT
0377 7E32 PS2SEND26: MOV R6, #PS2WATCHTIME
0379 1F DEC R7
037A 308104 PS2SEND27: JNB PS2CLK, PS2SEND28 ;JB PS2CLK, $
037D DEFB DJNZ R6, PS2SEND27
037F 8016 SJMP PS2SOUT
0381 7E32 PS2SEND28: MOV R6, #PS2WATCHTIME
0383 1F DEC R7
0384 208104 PS2SEND29: JB PS2CLK, PS2SEND2A ;JNB PS2CLK, $
0387 DEFB DJNZ R6, PS2SEND29
0389 800C SJMP PS2SOUT
038B 7E32 PS2SEND2A: MOV R6, #PS2WATCHTIME
038D 1F DEC R7
038E 208004 PS2SEND2B: JB PS2DTL, PS2SEND2C ;JNB PS2DTL, $
0391 DEFB DJNZ R6, PS2SEND2B
0393 8002 SJMP PS2SOUT
0395 7F00 PS2SEND2C: MOV R7, #00H
0397 D0E0 PS2SOUT: POP ACC
0399 FE MOV R6, A
039A D0E0 POP ACC
039C D0D0 POP PSW
039E 22 RET
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 11
12-16-05
15:46:38
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
;
;-----------------------------------------------
; PS/2 Device-to-Host Communication (Receive)
; 返回值在R7中
; Cy为数据有效标志1正确,0错误
;-----------------------------------------------
PS2D2HRECEIVE:
039F C0E0 PUSH ACC
03A1 C0F0 PUSH B
03A3 EE MOV A, R6
03A4 C0E0 PUSH ACC
03A6 7E32 MOV R6, #PS2WATCHTIME
03A8 308105 PS2RECEI01:JNB PS2CLK, PS2RECEI02 ;JB PS2CLK, $PS2CLK为PS/2时钟线
03AB DEFB DJNZ R6, PS2RECEI01
03AD C3 CLR C
03AE 804F SJMP PS2REXIT
03B0 A280 PS2RECEI02:MOV C, PS2DTL ;检查起始位是否为0
03B2 B3 CPL C
03B3 504A JNC PS2REXIT ;起始位错误
03B5 7E32 MOV R6, #PS2WATCHTIME
03B7 208105 PS2RECEI03:JB PS2CLK, PS2RECEI04 ;JNB PS2CLK, $
03BA DEFB DJNZ R6, PS2RECEI03
03BC C3 CLR C
03BD 8040 SJMP PS2REXIT
03BF 7F09 PS2RECEI04:MOV R7, #9
03C1 13 PS2REC1: RRC A ;接收8位数据+奇偶校验位
03C2 7E32 MOV R6, #PS2WATCHTIME
03C4 308105 PS2RECEI11:JNB PS2CLK, PS2RECEI12 ;JB PS2CLK, $等待时钟下降沿
03C7 DEFB DJNZ R6, PS2RECEI11
03C9 C3 CLR C
03CA 8033 SJMP PS2REXIT
03CC A280 PS2RECEI12:MOV C, PS2DTL
03CE 7E32 MOV R6, #PS2WATCHTIME
03D0 208105 PS2RECEI14:JB PS2CLK, PS2RECEI15 ;JNB PS2CLK, $
03D3 DEFB DJNZ R6, PS2RECEI14
03D5 C3 CLR C
03D6 8027 SJMP PS2REXIT
03D8 DFE7 PS2RECEI15:DJNZ R7, PS2REC1
03DA FF MOV R7, A
03DB 92F0 MOV B.0, C ;奇校验
03DD A2D0 MOV C, P
03DF 92E0 MOV ACC.0, C
03E1 65F0 XRL A, B
03E3 A2E0 MOV C, ACC.0
03E5 5018 JNC PS2REXIT ;奇偶校验错误
03E7 7E32 MOV R6, #PS2WATCHTIME
03E9 308105 PS2RECEI16:JNB PS2CLK, PS2RECEI17 ;JB PS2CLK, $检测停止位
03EC DEFB DJNZ R6, PS2RECEI16
E:\楼然苗\应用源程序\PS2论文2\论文程序\鼠标.ASM
页 12
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -