📄 mouse_main.dt
字号:
; ============================================================
; ETOMS USB Demo
; Designer: Dirk Leu
; 2004/10/02
; MCU: ET44M210
; MCU setting value
;============================================================
;
//////////////////////////////////////////////////////////////////////
//
// ET USB MOUSE ET44M210 DEMO CODE V1.0
// PORTE7 AD INPUT (ADCF) -- Mouse X AXIS
// PORTE6 AD INPUT (ADCE) -- Mouse Y AXIS
// PORTB0~2 MOUSE LEFT/RIGHT/MIDDLE KEY (INPUT/PULL-HIGH)
// PORTC0~3 OUTPUT 0 FOR PORTB KEY
// USB LIB:
// 1. ET44_USB_LIB V1.8
// 2. ET44_USB_MACRO V1.3 + Mouse CONTROL
// 3. ET LIB GENERATOR V2.0
//
//////////////////////////////////////////////////////////////////////
// LED KEY DEMO CODE LABEL SETTING
M_CON_FLAG == 0x50
MUSB_OK == 0x00 ;USB CONFIGURATE OK
MK_CON == 0x01 ;KEY CONFIRM
MAD_OK == 0x02
MSOF_T == 0x03 ;SOF TIMER COMING
MK_IDLE == 0x04
MK_WUP == 0x05 ;WAKEUP FROM IDLE
MK_R == 0X06 ;WAKEUP FROM ANOTHER DEVICE
M_TIMER_1ms == 0x51 ;TIMER
MK_STATE == 0x52 ;M KEY STATE
MX_STATE == 0x53 ;X 8 BIT
MY_STATE == 0x54 ;Y 8 BIT
MK_OLD == 0x55
//////////////////////////////////////////////////////////////////////
INCLUDE "ET44M210_REG.H"
ORG 0x0000
JMP M_START
ORG 0x0010
KWAKEUP_INT:
CLR KWUPBIF
BS M_CON_FLAG,MK_WUP
NOP
RETI
ORG 0x0038
BC INTF,ADIF
BS M_CON_FLAG,MAD_OK
NOP
NOP
RETI
//////////////////////////////////////////////////////////////////////
INCLUDE "ET44_USB_LIB.INC"
INCLUDE "ET44_USB_MACRO.INC"
INCLUDE "MOUSE_DEMO_SETTING.H"
//////////////////////////////////////////////////////////////////////
ORG 0x1000
M_START:
DISI
CALL M_IO_INITIAL
CALL M_REG_INITIAL
CLR RAMBS1
MOV A,#ADCCR
MOV IAP1,A ;CHANGE ADCCR.RUN
_ADD_USB_INITIAL_SUB
ENI
M_MAIN_LOOP:
JBC M_CON_FLAG,MUSB_OK,M_MAIN_LOOP
JBS M_CON_FLAG,MK_IDLE,M_GREEN_LOOP
JBC M_CON_FLAG,MSOF_T,M_MAIN_LOOP
BC M_CON_FLAG,MSOF_T
INC M_TIMER_1ms
MOV A,#0x0A
XOR A,M_TIMER_1ms
JBC STTS,Z,M_MAIN_LOOP
M_TIMER_OUT:
CLR M_TIMER_1ms
M_KEY_CHECK:
CALL M_KEY_MANAGEMENT
M_XY_CHECK:
CALL M_AD_MANAGEMENT
_ADD_USB_EP1_WORK_SUB
JMP M_MAIN_LOOP
M_GREEN_LOOP:
BC M_CON_FLAG,MK_R
BC M_CON_FLAG,MK_WUP
CLR KWUPAIF
CLR KWUPBIF
DISI
BANK 0
MOV A,#0x07
MOV KWUBIE,A
BS WDT_CON,GREEN
BANK 1
ENI
W_MWUP_LOOP:
JBS M_CON_FLAG,MK_WUP,$+3
JMP W_MWUP_LOOP
DISI
BANK 0
CLR KWUBIE
CLR KWUPBIF
BC WDT_CON,GREEN
BANK 1
ENI
BC M_CON_FLAG,MK_IDLE
JBS M_CON_FLAG,MK_R,$+3
BS GCNTR,RESUME
N_NOP
JMP M_MAIN_LOOP
//////////////////////////////////////////////////////////////////////
M_AD_MANAGEMENT:
MOV A,#0b11001111 ;ENABLE AD RUN AND SELECT ADCF
MOV IAC1,A
JBC M_CON_FLAG,MAD_OK,$
BC M_CON_FLAG,MAD_OK
CALL IMPROVE_ASIC
MOV MX_STATE,A
MOV A,#0b11001110 ;ENABLE AD RUN AND SELECT ADCE
MOV IAC1,A
JBC M_CON_FLAG,MAD_OK,$
BC M_CON_FLAG,MAD_OK
CALL IMPROVE_ASIC
MOV MY_STATE,A
RET
IMPROVE_ASIC:
SWAPA ADDATA
AND A,#0X0F
ADD A,#0x01
TBL
RETL #0x07
RETL #0x06
RETL #0x05
RETL #0x04
RETL #0x03
RETL #0x02
RETL #0x01
RETL #0x00
RETL #0xFF
RETL #0xFE
RETL #0xFD
RETL #0xFC
RETL #0xFB
RETL #0xFA
RETL #0xF9
RETL #0xF8
//////////////////////////////////////////////////////////////////////
M_KEY_MANAGEMENT:
MOV A,PORTB
AND A,#0b00000111
XOR A,#0b00000111
JBS STTS,Z,M_KEY_MAN0
JBS M_CON_FLAG,MK_CON,M_KEY_MAN1
MOV MK_OLD,A
BS M_CON_FLAG,MK_CON
RET
M_KEY_MAN0:
CLR MK_STATE
CLR MK_OLD
BC M_CON_FLAG,MK_CON
RET
M_KEY_MAN1:
XOR A,MK_OLD
JBS STTS,Z,M_KEY_MAN2
RET
M_KEY_MAN2:
MOV A,MK_OLD
MOV MK_STATE,A
RET
//////////////////////////////////////////////////////////////////////
M_REG_INITIAL:
CLR M_CON_FLAG
CLR MK_STATE
CLR MX_STATE
CLR MY_STATE
RET
//////////////////////////////////////////////////////////////////////
M_IO_INITIAL:
MOV A,#0xC0
MOV IOCE,A ;BIT.7 & 6 INPUT
MOV PORTE,A ;
BC INTF,ADIF ;CLEAR AD INT FLAG
BS PRIE,ADIE ;ENABLE AD FUNCTION
MOV A,#0b00000100 ;PORTE.7 & 6 -> ADCF & E, CONVERSION = 15.6KHz
MOV ADCAIS,A
MOV A,#0b01001111 ;AD INT ENABLE, CHANNEL = ADCF
MOV ADCCR,A
MOV A,#0xFF
MOV IOCB,A
MOV PORTB,A
MOV PUCB,A
MOV A,#0x00
MOV IOCC,A
MOV PORTC,A
RET
//////////////////////////////////////////////////////////////////////
ORG 0x3FFF
DW 0x4010
;============================================================
;Copyright c 2004 by ETOMS Electronics Corp. All right reserved.
;No part of this computer program may be reproduced, stored in a retrieval system, or
;transmitted in any form or by any means, electronic, mechanical, photocopying,
;recording, scanning or otherwise, except as permitted under ETOMS authorization.
;セ筿福祘Αぇ帝
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -