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

📄 keyscan.lis

📁 3510 TFT彩屏的测试程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00F0                   .dbline 89
 00F0           ;               if(KeyNow!=KeyCode)
 00F0 20900100          lds R2,_KeyCode
 00F4 30900300          lds R3,_KeyNow
 00F8 3214              cp R3,R2
 00FA 39F0              breq L20
 00FC                   .dbline 90
 00FC           ;               {
 00FC                   .dbline 91
 00FC           ;                       KeyCode=KeyNow;
 00FC 232C              mov R2,R3
 00FE 20920100          sts _KeyCode,R2
 0102                   .dbline 92
 0102           ;                       KeyCnt=0;
 0102 2224              clr R2
 0104 20920000          sts _KeyCnt,R2
 0108                   .dbline 93
 0108           ;               }
 0108 12C0              xjmp L21
 010A           L20:
 010A                   .dbline 95
 010A           ;               else
 010A           ;               {       //起滤波作用,修改这里的数字可以调整按键的灵敏度
 010A                   .dbline 96
 010A           ;                       KeyCnt++;
 010A 80910000          lds R24,_KeyCnt
 010E 8F5F              subi R24,255    ; addi 1
 0110 80930000          sts _KeyCnt,R24
 0114                   .dbline 97
 0114           ;                       if(KeyCnt>5)
 0114 85E0              ldi R24,5
 0116 20900000          lds R2,_KeyCnt
 011A 8215              cp R24,R2
 011C 40F4              brsh L22
 011E                   .dbline 98
 011E           ;                       {
 011E                   .dbline 99
 011E           ;                               KeyCnt=0;
 011E 2224              clr R2
 0120 20920000          sts _KeyCnt,R2
 0124                   .dbline 100
 0124           ;                               set_bit(flag1,fkeyreq);
 0124 80910900          lds R24,_flag1
 0128 8160              ori R24,1
 012A 80930900          sts _flag1,R24
 012E                   .dbline 101
 012E           ;                       }
 012E           L22:
 012E                   .dbline 102
 012E           ;               }
 012E           L21:
 012E                   .dbline 103
 012E           ;       }
 012E           L18:
 012E                   .dbline 104
 012E           ;       if(get_bit(flag1,fkeyreq))
 012E 20900900          lds R2,_flag1
 0132 20FE              sbrs R2,0
 0134 1BC0              rjmp L24
 0136                   .dbline 105
 0136           ;       {
 0136                   .dbline 106
 0136           ;               clr_bit(flag1,fkeyreq);
 0136 822D              mov R24,R2
 0138 8E7F              andi R24,254
 013A 80930900          sts _flag1,R24
 013E                   .dbline 107
 013E           ;               if(KeyCode!=KeyOld)
 013E 20900200          lds R2,_KeyOld
 0142 30900100          lds R3,_KeyCode
 0146 3214              cp R3,R2
 0148 61F0              breq L26
 014A                   .dbline 108
 014A           ;               {
 014A                   .dbline 110
 014A           ;                       //无连键
 014A           ;                       if(!(get_bit(flag1,fkeyhid)))
 014A 82FD              sbrc R24,2
 014C 0FC0              rjmp L27
 014E                   .dbline 111
 014E           ;                       {
 014E                   .dbline 112
 014E           ;                               set_bit(flag1,fkeyhid); //有按键时,设置按键屏蔽,屏蔽掉其它按键
 014E 8460              ori R24,4
 0150 80930900          sts _flag1,R24
 0154                   .dbline 113
 0154           ;                               KeyOld=KeyCode;
 0154 232C              mov R2,R3
 0156 20920200          sts _KeyOld,R2
 015A                   .dbline 114
 015A           ;                               set_bit(flag1,fkeyeff);
 015A 8260              ori R24,2
 015C 80930900          sts _flag1,R24
 0160                   .dbline 115
 0160           ;                       }
 0160                   .dbline 117
 0160           ;                       //keyccnt=40;
 0160           ;               }
 0160 05C0              xjmp L27
 0162           L26:
 0162                   .dbline 119
 0162           ;               else
 0162           ;               {
 0162                   .dbline 121
 0162           ;                       //有连键现象
 0162           ;                       set_bit(flag1,fkeyhid);
 0162 80910900          lds R24,_flag1
 0166 8460              ori R24,4
 0168 80930900          sts _flag1,R24
 016C                   .dbline 132
 016C           ;                       /*if((KeyCode==3)||(KeyCode==4))                //这里的数字对应有连键现象的键值
 016C           ;                       {
 016C           ;                               keyccnt--;
 016C           ;                               if(keyccnt==0)
 016C           ;                               {
 016C           ;                                       keyccnt=6;
 016C           ;                                       set_bit(flag1,fkeyeff);
 016C           ;                                       set_bit(flag1,fkeysucc);
 016C           ;                               }
 016C           ;                       }*/
 016C           ;               }
 016C           L27:
 016C                   .dbline 133
 016C           ;       }
 016C           L24:
 016C                   .dbline 134
 016C 20900300          lds R2,_KeyNow
 0170 2220              tst R2
 0172 29F4              brne L30
 0174                   .dbline 135
 0174 80910900          lds R24,_flag1
 0178 8B7F              andi R24,251
 017A 80930900          sts _flag1,R24
 017E           L30:
 017E                   .dbline -2
 017E           L15:
 017E 0E940000          xcall pop_gset3x
 0182                   .dbline 0 ; func end
 0182 0895              ret
 0184                   .dbsym r temp 10 c
 0184                   .dbend
 0184                   .dbfunc e Key_Pr _Key_Pr fV
                        .even
 0184           _Key_Pr::
 0184 0E940000          xcall push_gset3x
 0188 2397              sbiw R28,3
 018A                   .dbline -1
 018A                   .dbline 147
 018A           ;       if(!KeyNow)     //没有任何按键时,清除按键屏蔽
 018A           ;               clr_bit(flag1,fkeyhid);                                      
 018A           ; }
 018A           ; //**************************************//
 018A           ; //    函数名称:void Key_Pr()
 018A           ; //    输--入:KeyCode
 018A           ; //    输--出:data_buffer[0]
 018A           ; //    功--能:按键处理
 018A           ; //    影响标志:
 018A           ; //    创--建:
 018A           ; //    修--改:
 018A           ; //**************************************//
 018A           ; void Key_Pr(void)
 018A           ; {
 018A                   .dbline 148
 018A           ;       if(get_bit(flag1,fkeyeff))
 018A 20900900          lds R2,_flag1
 018E 21FE              sbrs R2,1
 0190 3EC1              rjmp L33
 0192                   .dbline 149
 0192           ;       {
 0192                   .dbline 150
 0192           ;               fBuzzring|=(1<<fbuzzeff)|(1<<fbuzzring);
 0192 80910000          lds R24,_fBuzzring
 0196 8360              ori R24,3
 0198 80930000          sts _fBuzzring,R24
 019C                   .dbline 151
 019C           ;               BuzzringCnt=2;
 019C 82E0              ldi R24,2
 019E 80930000          sts _BuzzringCnt,R24
 01A2                   .dbline 152
 01A2           ;               clr_bit(flag1,fkeyeff);
 01A2 822D              mov R24,R2
 01A4 8D7F              andi R24,253
 01A6 80930900          sts _flag1,R24
 01AA                   .dbline 153
 01AA           ;               set_bit(flag1,finputeff);
 01AA 8061              ori R24,16
 01AC 80930900          sts _flag1,R24
 01B0                   .dbline 154
 01B0           ;               if(KeyOld==10)
 01B0 80910200          lds R24,_KeyOld
 01B4 8A30              cpi R24,10
 01B6 19F4              brne L35
 01B8                   .dbline 155
 01B8           ;                       KeyOld=0;
 01B8 2224              clr R2
 01BA 20920200          sts _KeyOld,R2
 01BE           L35:
 01BE                   .dbline 159
 01BE           ;               //******************
 01BE           ;               //**各按键功能处理
 01BE           ;               //******************
 01BE           ;               switch(KeyOld)
 01BE A0900200          lds R10,_KeyOld
 01C2 BB24              clr R11
 01C4 AA20              tst R10
 01C6 19F4              brne X2
 01C8 BB20              tst R11
 01CA 09F4              brne X6
 01CC 20C1              xjmp L38
 01CE           X6:
 01CE           X2:
 01CE C501              movw R24,R10
 01D0 8130              cpi R24,1
 01D2 E0E0              ldi R30,0
 01D4 9E07              cpc R25,R30
 01D6 09F4              brne X7
 01D8 33C0              xjmp L40
 01DA           X7:
 01DA 8230              cpi R24,2
 01DC E0E0              ldi R30,0
 01DE 9E07              cpc R25,R30
 01E0 09F4              brne X8
 01E2 59C0              xjmp L44
 01E4           X8:
 01E4 8330              cpi R24,3
 01E6 E0E0              ldi R30,0
 01E8 9E07              cpc R25,R30
 01EA 09F4              brne X9
 01EC 6AC0              xjmp L46
 01EE           X9:
 01EE 8430              cpi R24,4
 01F0 E0E0              ldi R30,0
 01F2 9E07              cpc R25,R30
 01F4 09F4              brne X10
 01F6 88C0              xjmp L50
 01F8           X10:
 01F8 8530              cpi R24,5
 01FA E0E0              ldi R30,0
 01FC 9E07              cpc R25,R30
 01FE 09F4              brne X11
 0200 99C0              xjmp L52
 0202           X11:
 0202 8630              cpi R24,6
 0204 E0E0              ldi R30,0
 0206 9E07              cpc R25,R30
 0208 09F4              brne X12
 020A AAC0              xjmp L53
 020C           X12:
 020C 8730              cpi R24,7
 020E E0E0              ldi R30,0
 0210 9E07              cpc R25,R30
 0212 09F4              brne X13
 0214 FCC0              xjmp L38
 0216           X13:
 0216 8830              cpi R24,8
 0218 E0E0              ldi R30,0
 021A 9E07              cpc R25,R30
 021C 09F4              brne X14
 021E B6C0              xjmp L56
 0220           X14:
 0220 8930              cpi R24,9
 0222 E0E0              ldi R30,0
 0224 9E07              cpc R25,R30
 0226 09F4              brne X15
 0228 F2C0              xjmp L38
 022A           X15:
 022A 8B30              cpi R24,11
 022C E0E0              ldi R30,0
 022E 9E07              cpc R25,R30
 0230 09F4              brne X16
 0232 C2C0              xjmp L60
 0234           X16:
 0234 8C30              cpi R24,12
 0236 E0E0              ldi R30,0
 0238 9E07              cpc R25,R30
 023A 09F4              brne X17
 023C D3C0              xjmp L62
 023E           X17:
 023E E7C0              xjmp L38
 0240           X3:
 0240                   .dbline 160
 0240           ;               {
 0240           L40:
 0240                   .dbline 162
 0240           ;                       case 1: //confirm键
 0240           ;                       {       
 0240                   .dbline 163

⌨️ 快捷键说明

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