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

📄 mouse_main.dt

📁 標準&#63748 鼠應用程式, 其中包含: X, Y座標輸入 &#1048715 固定時間輸出X,Y座標值給主機. 按鍵輸入 &#1048715 固定時間輸出按鍵值給主機.
💻 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 + -