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

📄 usb_proc.asm

📁 Holteck HT82M9XX的USB Mouse的Firmware汇编代码
💻 ASM
字号:
include         HT82K96E.inc
include         usbrf.inc
include         usbfifo.inc


START_VAR               EQU                     20H
extern                  STALL                   :byte

;usbproc    .section   AT 310H   'code'
usbproc    .section   AT 320H   'code'
;-------------------------------------------------------------------

Ram_init:      ;clear RAM {20~BF}
        mov      a,start_var             ;
        mov      mp0,a                   ;
        mov      a,160                   ;
next_addr2:                             ; 将User RAM[20H~BFH]清为0
        clr      wdt                     ;
        clr      r0                      ;
        inc      mp0                     ;
        sdz      acc                     ;
        jmp      next_addr2              ;
        set      STALL                   ; 将所有Endpoint STALL住
        ret
;-----------------------------------------------------------------------------------
start_timer:
        mov     a,10000000b             ;
        mov     tmr0c,a                 ; 设TMR0为Internal mode
        mov     a,10000000b             ;
        mov     tmr1c,a                 ; 设TMR1为Internal mode

        mov     a,88h                   ;
        mov     tmr0,a                  ; 设TMR0为每80uSec timeout一次

        mov     a,00000111b             ;
        mov     intc,a                  ; 打开USB INT,TMR0 INT
        set     timer0_on               ; 打开TMR0开始计时

        ;======================================================================
;StartTMR1:
        ;mov     A, 0FFH-0DCH            ;
        ;mov     TMR1L, A                ;
        ;mov     A, 0FFH-005H            ;
        ;mov     TMR1H, A                ;
        ;mov     A, 98H                  ;
        ;mov     TMR1C, A                ;
        ;set     INTC.3                  ;
        ;======================================================================
        ret
;------------------------------------------------------------------------------
config_USB:
        mov     a,01001000b             ; 48H:6MHz,打开USB clock
        ;mov     a,01000000b             ; 40H:6MHz
        mov     CLK_ctrl_reg,a          ; 设定6MHz/12MHz

        mov     a,200                   ;
wait_liu:
        sdz     acc                     ;
        jmp     wait_liu                ;

        ;mov     a,01100000b             ; 60H:设定Internal ADC reference voltage,选择USB mode
        mov     a,01000000b             ; 40H:设定Internal ADC reference voltage
        mov     Int_reg,a               ; 清除所有的pipe interrupt

        ret
;------------------------------------------------------------------------------
public          Ram_init
public          config_USB
public          start_timer
;public  StartTMR1

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -