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

📄 main.lis

📁 cypresscy74294ic键盘和鼠标原码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0000                   cpu LMM
                        .module main.c
                        .area lit(rom, con, rel)
 0000           _FirstKeyArray::
 0000 5000              .byte 'P,0
 0002 00                .byte 0
 0003 1928              .byte 25,40
 0005 0D                .byte 13
 0006 0604              .byte 6,4
 0008 09                .byte 9
 0009 1B04              .byte 27,4
 000B 08                .byte 8
 000C 1D04              .byte 29,4
 000E 07                .byte 7
 000F A300              .byte 163,0
 0011 00                .byte 0
 0012 0A04              .byte 10,4
 0014 0A                .byte 10
 0015 0904              .byte 9,4
 0017 06                .byte 6
 0018 0704              .byte 7,4
 001A 05                .byte 5
 001B 1604              .byte 22,4
 001D 04                .byte 4
 001E 0400              .byte 4,0
 0020 00                .byte 0
 0021 2C00              .byte 44,0
 0023 00                .byte 0
 0024 3308              .byte 51,8
 0026 0F                .byte 15
 0027 1728              .byte 23,40
 0029 0B                .byte 11
 002A 1504              .byte 21,4
 002C 03                .byte 3
 002D 0804              .byte 8,4
 002F 02                .byte 2
 0030 1A04              .byte 26,4
 0032 01                .byte 1
 0033 1428              .byte 20,40
 0035 0A                .byte 10
 0036 4F00              .byte 'O,0
 0038 00                .byte 0
 0039 A500              .byte 165,0
 003B 00                .byte 0
 003C 0528              .byte 5,40
 003E 01                .byte 1
 003F 1108              .byte 17,8
 0041 07                .byte 7
 0042 1008              .byte 16,8
 0044 06                .byte 6
 0045 4C00              .byte 'L,0
 0047 00                .byte 0
 0048 2A00              .byte 42,0
 004A 00                .byte 0
 004B 0B08              .byte 11,8
 004D 02                .byte 2
 004E 0D08              .byte 13,8
 0050 04                .byte 4
 0051 0E28              .byte 14,40
 0053 05                .byte 5
 0054 0F28              .byte 15,40
 0056 11                .byte 17
 0057 2800              .byte 40,0
 0059 00                .byte 0
 005A 1F28              .byte 31,40
 005C 10                .byte 16
 005D 1C28              .byte 28,40
 005F 0E                .byte 14
 0060 1808              .byte 24,8
 0062 0C                .byte 12
 0063 0C28              .byte 12,40
 0065 03                .byte 3
 0066 1228              .byte 18,40
 0068 08                .byte 8
 0069 1328              .byte 19,40
 006B 09                .byte 9
 006C 00000000000000000000      .word 0,0,0,0,0
 0076 0000              .byte 0,0
 0078                   .dbfile ./CSD_KeyProcess.c
 0078                   .dbsym e FirstKeyArray _FirstKeyArray A[120:40:3]c
 0078           _ShiftKeyArray::
 0078 3133              .byte 49,51
 007A 2E34              .byte 46,52
 007C 3437              .byte 52,55
 007E 3636              .byte 54,54
 0080 3720              .byte 55,32
 0082 262D              .byte 38,45
 0084 3827              .byte 56,39
 0086 3822              .byte 56,34
 0088 1E                .byte 30
 0089 0000              .byte 0,0
 008B                   .dbsym e ShiftKeyArray _ShiftKeyArray A[19:19]c
 008B           _NumKeyArray::
 008B 1E1F              .byte 30,31
 008D 2021              .byte 32,33
 008F 2223              .byte 34,35
 0091 2425              .byte 36,37
 0093 2627              .byte 38,39
 0095 000000            .byte 0,0,0
 0098                   .dbsym e NumKeyArray _NumKeyArray A[13:13]c
 0098           _ArrowKeyArray::
 0098 52                .byte 'R
 0099 000000            .byte 0,0,0
 009C                   .dbsym e ArrowKeyArray _ArrowKeyArray A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile ./CSD_KeyProcess.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;              i -> X+2
 0000           ;              j -> X+0
 0000           ;        MsTimes -> X-5
 0000           _delay_ms::
 0000                   .dbline -1
 0000 10                push X
 0001 4F                mov X,SP
 0002 3804              add SP,4
 0004                   .dbline 243
 0004           ; //----------------------------------------------------------------------------
 0004           ; // C main ( unisen Cyber Station K.B. Qwert Mode Keyboard )
 0004           ; // 2007-1 ver 1.00
 0004           ; // 应 增加 NumLock,ArrowLock,Shift,Ctrl四个LED灯
 0004           ; //----------------------------------------------------------------------------
 0004           ; 
 0004           ; #include <m8c.h>        // part specific constants and macros
 0004           ; #include <string.h>
 0004           ; #include "PSoCAPI.h"    // PSoC API definitions for all User Modules
 0004           ; #include "CSD_KeyProcess.c"
 0004           ; 
 0004           ; int KB_empty_cnt;
 0004           ; BYTE KB_save;
 0004           ; /*
 0004           ; //GPIO 操作例程,先在 Device Editer 中将其中一个IO口 命名为
 0004           ; #define Beep_BIT_Enable  Beep_BIT_Data_ADDR |=  Beep_BIT_MASK
 0004           ; #define Beep_BIT_Disable Beep_BIT_Data_ADDR &= ~Beep_BIT_MASK
 0004           ; //如何判断以上IO的高低电平?
 0004           ; //如何控制IO高低电平?
 0004           ; 
 0004           ; //下面是 中断服务程序的定义方法:
 0004           ; #pragma interrupt_handler timer_handler
 0004           ; ...
 0004           ; void timer_handler()
 0004           ; {
 0004           ; ...
 0004           ; }
 0004           ; 
 0004           ; //在 boot.tpl 中,将对应的中断向量表中 填写 ljmp timer_handler
 0004           ; */
 0004           ; 
 0004           ; //memcmp(RPT_DATA,USB_INTERFACE_0_OUT_RPT_DATA,8);  //从 USB 得到USB HOST送来的数据
 0004           ; 
 0004           ; BYTE abKeyboardData[8] = {0,0,0,0,0,0,0,0};
 0004           ; //                        ^   ^
 0004           ; //                        |   |
 0004           ; //                     ctrl   Alpha
 0004           ; 
 0004           ; //M8C_Reset;
 0004           ; char KeyPressMainFlg; 
 0004           ; 
 0004           ; void main()
 0004           ; {  
 0004           ;   M8C_EnableGInt;                     //Enable Global Interrupts  
 0004           ; 
 0004           ;   Beep_Start(); Beep_Switch(0);
 0004           ;   
 0004           ;   LED_ShiftCAP_Start(); LED_ShiftCAP_Switch(0);  
 0004           ;   
 0004           ;   CSD_1_Start();//CSD 电容式键盘初始化   
 0004           ;   CSD_1_InitializeBaselines() ; //scan all sensors first time, init baseline  
 0004           ;   CSD_1_SetDefaultFingerThresholds() ;//设置 电容式键盘 Finger Thresholds  
 0004           ;   
 0004           ;       USBFS_1_Start(0, USB_5V_OPERATION);     //Start USBFS Operation using device 0  
 0004           ;                                               //and with 5V operation  
 0004           ;       while(!USBFS_1_bGetConfiguration());    //Wait for Device to enumerate 等待USB HOST取得USB描述符
 0004           ;       //Enumeration is completed load endpoint 1. Do not toggle the first time  
 0004           ;       USBFS_1_LoadInEP(1, abKeyboardData, 8, USB_NO_TOGGLE);  
 0004           ; 
 0004           ;   //M8C_EnableWatchDog;                 //(CPU_SCR0 &= ~CPU_SCR0_PORS_MASK)     
 0004           ;   memset( abKeyboardData,0,8 );
 0004           ;   KB_empty_cnt = 0; KB_save = 0; KeyPressMainFlg = 0;
 0004           ;   while( 1 )
 0004           ;   { 
 0004           ;       memset( ScanArrayImage,0,5 );//将键盘位图清零
 0004           ;       KeyPressMainFlg = KeyPressMain();//扫描键盘
 0004           ;       while(!USBFS_1_bGetEPAckState(1));    //Wait for ACK before loading data 等待 USB HOST ACK 协议发生
 0004           ;       //ACK has occurred, load the endpoint and toggle the data bit  
 0004           ;     //扫描键盘
 0004           ;     if( KeyPressMainFlg == 1 ) //产生了键盘码
 0004           ;     {
 0004           ;        if( USB_KeyAct[1]==KB_save && KB_empty_cnt<1 )//防抖动
 0004           ;                  continue;
 0004           ;                else
 0004           ;                { 
 0004           ;                  KB_empty_cnt = 0; KB_save = USB_KeyAct[1]; 
 0004           ;                }
 0004           ;        //向 USB 送键盘扫描码
 0004           ;        BeepDelayXXms( 50 ); //响铃,表示按键有效
 0004           ;        memset( abKeyboardData,0,8 );
 0004           ;        abKeyboardData[0] = USB_KeyAct[0];
 0004           ;        abKeyboardData[2] = USB_KeyAct[1];
 0004           ;        USBFS_1_LoadInEP(1, abKeyboardData, 8, USB_TOGGLE);//将键盘码送USB
 0004           ;        memset( abKeyboardData,0,8 );
 0004           ;        while(!USBFS_1_bGetEPAckState(1));
 0004           ;        USBFS_1_LoadInEP(1, abKeyboardData, 8, USB_TOGGLE);//将键盘抬起送USB
 0004           ;     }else
 0004           ;     {
 0004           ;          KB_empty_cnt ++;
 0004           ;     }
 0004           ;   }  
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004           ; }
 0004                   .dbline 245
 0004           ; }
 0004           ; }
 0004 560300            mov [X+3],0
 0007 560200            mov [X+2],0
 000A 801D              xjmp L6
 000C           L3:
 000C                   .dbline 246
 000C           ; }
 000C 560100            mov [X+1],0
 000F 560000            mov [X+0],0
 0012           L7:
 0012                   .dbline 247
 0012           L8:
 0012                   .dbline 246
 0012 7701              inc [X+1]
 0014 0F0000            adc [X+0],0
 0017                   .dbline 246
 0017 5201              mov A,[X+1]

⌨️ 快捷键说明

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