80C196单片机鼠标接口程序设计实例
>
SP_CONEQU11H:Byte
SP_STATEQU11H:Byte
IOC1EQU16H:Byte
SPEQU18H:Word
;
;通用寄存器预定义
RSEGATICH
AX:DSW1
DX:DSW1
ALEQUAX:BYTE
AHEQU(AX+1):BYTE
DLEQUDX:BYTE
DHEQU(DX+1):BYTE
SCRNWEQU640;显示屏宽度
SCRNHEQU480;显示屏高度
;
;变量区
RSEGAT20H
M_X:DSW1;光标X值
M_Y:DSW1:光标Y值
M_BUF:DSB4;接收缓冲区
M_P:DSW1;接收指针
BX:DSW1
LRB_OK:DSB1;鼠标状态
;Bit7:存在,Bit5,左键,Bit4:右键
;
CSEGAT2000H
DCWINIT
CSEGAT200CH
DCWSIOINT
DCWINIT
DCW0
DCB0,0,0,0,0,0
DCB08DH
DCB000H
DCB027H,0FEH
;
CSEGAT2080H
INIT:LDSP,#0100H;设堆栈指针
LDM_X,#SCRNW/2;初始化指针
LDM_Y,#SCRNH/2
ANDBLRB_OK,#7CH
LDM_P,#M_BUF
CLRBINT_PEND;清除中断
LDBINT_MASK,#40H;开串行中断
LDBAL,SP_STAT;清除RI/TI
LDBSP_CON,#09H;设串口模式
LDBBAUD_RT,#9BH;1200,12MHz
LDBBAUD_RT,#80H
EI
ANDBIOP2,#0FEH;P2.2=0
LDAX,#8000H;延迟200ms
DLY0:DECAX
JNEDLY0
LDBAL,LRB_OK
LBSAL,7,M_OK
ANDBINT_MASK,#0BFH
M_OK:NOP
;………
;
;清单二:取鼠标消息,
AL=鼠标及按钮状态,BX=X,DX=YGET_M: 《80C196单片机鼠标接口程序设计实例(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/175620.html
SP_CONEQU11H:Byte
SP_STATEQU11H:Byte
IOC1EQU16H:Byte
SPEQU18H:Word
;
;通用寄存器预定义
RSEGATICH
AX:DSW1
DX:DSW1
ALEQUAX:BYTE
AHEQU(AX+1):BYTE
DLEQUDX:BYTE
DHEQU(DX+1):BYTE
SCRNWEQU640;显示屏宽度
SCRNHEQU480;显示屏高度
;
;变量区
RSEGAT20H
M_X:DSW1;光标X值
M_Y:DSW1:光标Y值
M_BUF:DSB4;接收缓冲区
M_P:DSW1;接收指针
BX:DSW1
LRB_OK:DSB1;鼠标状态
;Bit7:存在,Bit5,左键,Bit4:右键
;
CSEGAT2000H
DCWINIT
CSEGAT200CH
DCWSIOINT
DCWINIT
DCW0
DCB0,0,0,0,0,0
DCB08DH
DCB000H
DCB027H,0FEH
;
CSEGAT2080H
INIT:LDSP,#0100H;设堆栈指针
LDM_X,#SCRNW/2;初始化指针
LDM_Y,#SCRNH/2
ANDBLRB_OK,#7CH
LDM_P,#M_BUF
CLRBINT_PEND;清除中断
LDBINT_MASK,#40H;开串行中断
LDBAL,SP_STAT;清除RI/TI
LDBSP_CON,#09H;设串口模式
LDBBAUD_RT,#9BH;1200,12MHz
LDBBAUD_RT,#80H
EI
ANDBIOP2,#0FEH;P2.2=0
LDAX,#8000H;延迟200ms
DLY0:DECAX
JNEDLY0
LDBAL,LRB_OK
LBSAL,7,M_OK
ANDBINT_MASK,#0BFH
M_OK:NOP
;………
;
;清单二:取鼠标消息,
AL=鼠标及按钮状态,BX=X,DX=YGET_M: 《80C196单片机鼠标接口程序设计实例(第3页)》