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

📄 鼠标.lst

📁 鼠标应用程序示范 MCU AT89S51 XAL 12MHz 本程序可以实现鼠标的功能,并将位置显示在LCD上
💻 LST
📖 第 1 页 / 共 4 页
字号:
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 + -