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

📄 kbsub.lis

📁 飞思卡尔U08开发平台下可以自由运行
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0102 A6AA              lda #-86
 0104 E704              sta 4,X
 0106 2062              bra L18
 0108           L32:
 0108           ; 	        else if(KB_P==0xED&&tmp==0xB7)tmp=0x55;
 0108 B600              lda 0
 010A A1ED              cmp #-19
 010C 260C              bne L34
 010E E604              lda 4,X
 0110 A1B7              cmp #-73
 0112 2606              bne L34
 0114 A655              lda #85
 0116 E704              sta 4,X
 0118 2050              bra L18
 011A           L34:
 011A           ; 	        else if(KB_P==0xEB&&tmp==0xB7)tmp=0xA3;
 011A B600              lda 0
 011C A1EB              cmp #-21
 011E 260C              bne L36
 0120 E604              lda 4,X
 0122 A1B7              cmp #-73
 0124 2606              bne L36
 0126 A6A3              lda #-93
 0128 E704              sta 4,X
 012A 203E              bra L18
 012C           L36:
 012C           ; 	        else if(KB_P==0xBE&&tmp==0xE7)tmp=0xA6;
 012C B600              lda 0
 012E A1BE              cmp #-66
 0130 260C              bne L38
 0132 E604              lda 4,X
 0134 A1E7              cmp #-25
 0136 2606              bne L38
 0138 A6A6              lda #-90
 013A E704              sta 4,X
 013C 202C              bra L18
 013E           L38:
 013E           ; 	        else if(KB_P==0xBD&&tmp==0xE7)tmp=0xA5;
 013E B600              lda 0
 0140 A1BD              cmp #-67
 0142 260C              bne L40
 0144 E604              lda 4,X
 0146 A1E7              cmp #-25
 0148 2606              bne L40
 014A A6A5              lda #-91
 014C E704              sta 4,X
 014E 201A              bra L18
 0150           L40:
 0150           ; 	        else tmp=KB_P&tmp;
 0150 B600              lda 0
 0152 E404              and 4,X
 0154 E704              sta 4,X
 0156           ;                   break;
 0156 2012              bra L18
 0158           L20:
 0158 E602              lda 2,X
 015A 48                lsla
 015B AB10              add #16
 015D E702              sta 2,X
 015F           L17:
 015F 6C03              inc 3,X
 0161           L19:
 0161 E603              lda 3,X
 0163 A103              cmp #3
 0165 2203              bhi X4
 0167 CC0078            jmp L16
 016A           X4:
 016A           L18:
 016A E603              lda 3,X
 016C A104              cmp #4
 016E 2609              bne L15
 0170 A6FF              lda #-1
 0172 E704              sta 4,X
 0174 2003              bra L15
 0176           L14:
 0176 CC0069            jmp L13
 0179           L15:
 0179           ; 	     }
 0179           ; 	     
 0179           ; 	     else                  //本行无键按下,扫描下一列
 0179           ; 		    line1=(line1<<1)+0x10; 
 0179           ; 		 
 0179           ; 	 }	
 0179           ; 	 
 0179           ; 	
 0179           ; 	  if(j==4)   tmp=0xff;
 0179           ; 	  break;
 0179           ; 	 }
 0179           ; 	  return(tmp);
 0179 E604              lda 4,X
 017B 201C              bra L3
 017D           X0:
 017D           ; 	        
 017D           ; 	        //*/
 017D           ; 	        }
 017D           ; 		    break;
 017D           L8:
 017D F6                lda ,X
 017E 48                lsla
 017F AA01              ora #1
 0181 F7                sta ,X
 0182           L5:
 0182 6C01              inc 1,X
 0184           L7:
 0184 E601              lda 1,X
 0186 A104              cmp #4
 0188 2203              bhi X5
 018A CC0037            jmp L4
 018D           X5:
 018D           L6:
 018D           ; 	     }
 018D           ; 	     else                  //本行无键按下,扫描下一行
 018D           ; 		    line=(line<<1)|0x01; 
 018D           ; 	 }	
 018D           ; 	  if(i==5)   tmp=0xff;
 018D E601              lda 1,X
 018F A105              cmp #5
 0191 2604              bne L44
 0193 A6FF              lda #-1
 0195 E704              sta 4,X
 0197           L44:
 0197           ; 	  return(tmp);
 0197 E604              lda 4,X
 0199           L3:
 0199 A706              ais #6
 019B                   .dbline 0 ; func end
 019B 81                rts
                        .area lit
 0000           _KB_Table::
 0000 EE31              .byte 238,49
 0002 DE32              .byte 222,50
 0004 BE33              .byte 190,51
 0006 ED34              .byte 237,52
 0008 DD35              .byte 221,53
 000A BD36              .byte 189,54
 000C EB37              .byte 235,55
 000E E72A              .byte 231,42
 0010 B723              .byte 183,35
 0012 E661              .byte 230,'a
 0014 C662              .byte 198,'b
 0016 A663              .byte 166,'c
 0018 E564              .byte 229,'d
 001A C565              .byte 197,'e
 001C A566              .byte 165,'f
 001E E367              .byte 227,'g
 0020 AA41              .byte 170,'A
 0022 9642              .byte 150,'B
 0024 B643              .byte 182,'C
 0026 5544              .byte 'U,'D
 0028 9545              .byte 149,'E
 002A B546              .byte 181,'F
 002C A347              .byte 163,'G
 002E 00                .byte 0
                        .area text
                ;       KeyPress -> 0,X
                ;              i -> 1,X
                ;              j -> 2,X
                ;       KB_valve -> 5,X
 019C           _KB_Def::
 019C A7FD              ais #-3
 019E 95                tsx
 019F           ;  }
 019F           ; /*KB_Def:键值转为定义值函数----------------------------*
 019F           ; *功  能:键值转为定义值                                 *
 019F           ; *参  数:键值                                           *
 019F           ; *返  回:键定义值                                       *
 019F           ; *-----------------------------------------------------*/
 019F           ; //键盘定义表
 019F           ; const unsigned char KB_Table[]= 
 019F           ; {0xEE,'1',0xDE,'2',0xBE,'3',0xED,'4',0xDD,'5',0xBD,'6',0xEB,'7',0xE7,'*',0xB7,'#',
 019F           ;  0xE6,'a',0xC6,'b',0xA6,'c',0xE5,'d', 0xC5,'e', 0xA5,'f',0xE3,'g',//按键*1,*2,*3,*4,*5,*6,*7
 019F           ;  0xAA,'A',0x96,'B',0xB6,'C',0x55,'D', 0x95,'E', 0xB5,'F',0xA3,'G',//按键#1,#2,#3,#4,#5,#6,#7
 019F           ;  0x00};
 019F           ; unsigned char KB_Def(unsigned char KB_valve)
 019F           ;  {
 019F           ;    unsigned char KeyPress;
 019F           ;    unsigned char i;
 019F           ;    unsigned char j;
 019F           ;    i=0;
 019F 6F01              clr 1,X
 01A1 203C              bra L48
 01A3           L47:
 01A3           ;    while(1)
 01A3           ;    {
 01A3           ;      j=KB_Table[i];
 01A3 3F00              clr *__r0
 01A5 E601              lda 1,X
 01A7 AB00              add #<_KB_Table
 01A9 B700              sta *__r1
 01AB B600              lda *__r0
 01AD A900              adc #>_KB_Table
 01AF B700              sta *__r0
 01B1 5500              ldhx *__r0
 01B3 F6                lda ,x
 01B4 95                tsx
 01B5 E702              sta 2,X
 01B7           ;      //与0(定义表结束标志)相比较
 01B7           ;      if (j==0)                   //=0,即表中无次定义值
 01B7 2605              bne L50
 01B9           ;         {KeyPress=0xff; break;}  //返回0xff
 01B9 A6FF              lda #-1
 01BB F7                sta ,X
 01BC 2023              bra L49
 01BE           L50:
 01BE           ;      else
 01BE           ;         //与键值相比较
 01BE           ;         if (j==KB_valve)         //找到       
 01BE E602              lda 2,X
 01C0 E105              cmp 5,X
 01C2 2615              bne L52
 01C4           ;            {KeyPress=KB_Table[i+1];break;} //取键定义值
 01C4 3F00              clr *__r0
 01C6 E601              lda 1,X
 01C8 AB01              add #<_KB_Table+1
 01CA B700              sta *__r1
 01CC B600              lda *__r0
 01CE A901              adc #>_KB_Table+1
 01D0 B700              sta *__r0
 01D2 5500              ldhx *__r0
 01D4 F6                lda ,x
 01D5 95                tsx
 01D6 F7                sta ,X
 01D7 2008              bra L49
 01D9           L52:
 01D9 E601              lda 1,X
 01DB AB02              add #2
 01DD E701              sta 1,X
 01DF           L48:
 01DF 20C2              bra L47
 01E1           L49:
 01E1           ;         else
 01E1           ;            i+=2;              //指向下一个键值,继续判断
 01E1           ;     };
 01E1           ;     return KeyPress;
 01E1 F6                lda ,X
 01E2           L46:
 01E2 A703              ais #3
 01E4                   .dbline 0 ; func end
 01E4 81                rts

⌨️ 快捷键说明

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