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

📄 jianpan.lis

📁 实现3*3 键盘的控制。从而实现用键盘来对单片机进行控制。
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 049C           L89:
 049C                   .dbline 322
 049C           ;                       for( i = 0; i < 5; i ++ ) { display(); }                //延时
 049C 8A2D              mov R24,R10
 049E 8530              cpi R24,5
 04A0 D8F3              brlo L86
 04A2                   .dbline 324
 04A2           ;                       //backspace
 04A2           ;                       if((KeySet[KeyIndex]==1|(KeySet[KeyIndex]==2))&&(flag==STATE))
 04A2 80E0              ldi R24,<_KeySet
 04A4 90E0              ldi R25,>_KeySet
 04A6 E42F              mov R30,R20
 04A8 FF27              clr R31
 04AA E80F              add R30,R24
 04AC F91F              adc R31,R25
 04AE E491              lpm R30,Z
 04B0 E130              cpi R30,1
 04B2 21F4              brne L92
 04B4 81E0              ldi R24,1
 04B6 90E0              ldi R25,0
 04B8 6C01              movw R12,R24
 04BA 02C0              xjmp L93
 04BC           L92:
 04BC CC24              clr R12
 04BE DD24              clr R13
 04C0           L93:
 04C0 80E0              ldi R24,<_KeySet
 04C2 90E0              ldi R25,>_KeySet
 04C4 E42F              mov R30,R20
 04C6 FF27              clr R31
 04C8 E80F              add R30,R24
 04CA F91F              adc R31,R25
 04CC E491              lpm R30,Z
 04CE E230              cpi R30,2
 04D0 21F4              brne L94
 04D2 81E0              ldi R24,1
 04D4 90E0              ldi R25,0
 04D6 5C01              movw R10,R24
 04D8 02C0              xjmp L95
 04DA           L94:
 04DA AA24              clr R10
 04DC BB24              clr R11
 04DE           L95:
 04DE 1601              movw R2,R12
 04E0 2A28              or R2,R10
 04E2 3B28              or R3,R11
 04E4 2220              tst R2
 04E6 11F4              brne X8
 04E8 3320              tst R3
 04EA D9F0              breq L90
 04EC           X8:
 04EC 6F30              cpi R22,15
 04EE C9F4              brne L90
 04F0                   .dbline 325
 04F0           ;                       {
 04F0                   .dbline 326
 04F0           ;                        trans_buf[0]=KeySet[KeyIndex];
 04F0                   .dbline 327
 04F0           ;                        flag=1;
 04F0                   .dbline 328
 04F0           ;                        numH=10*KeySet[KeyIndex]+flag;
 04F0                   .dbline 329
 04F0           ;                        NumBitH=num_bit(numH);
 04F0 80E0              ldi R24,<_KeySet
 04F2 90E0              ldi R25,>_KeySet
 04F4 242E              mov R2,R20
 04F6 3324              clr R3
 04F8 280E              add R2,R24
 04FA 391E              adc R3,R25
 04FC F101              movw R30,R2
 04FE E491              lpm R30,Z
 0500 E0931400          sts _trans_buf,R30
 0504 61E0              ldi R22,1
 0506 F101              movw R30,R2
 0508 E491              lpm R30,Z
 050A 8AE0              ldi R24,10
 050C 8E9F              mul R24,R30
 050E 202C              mov R2,R0
 0510 260E              add R2,R22
 0512 20920700          sts _numH,R2
 0516 022D              mov R16,R2
 0518 1127              clr R17
 051A 72DF              xcall _num_bit
 051C 00930A00          sts _NumBitH,R16
 0520                   .dbline 330
 0520           ;                       }
 0520 DBC0              xjmp L91
 0522           L90:
 0522                   .dbline 331
 0522           ;                       else if(KeySet[KeyIndex]==3&&(flag==STATE))
 0522 80E0              ldi R24,<_KeySet
 0524 90E0              ldi R25,>_KeySet
 0526 E42F              mov R30,R20
 0528 FF27              clr R31
 052A E80F              add R30,R24
 052C F91F              adc R31,R25
 052E E491              lpm R30,Z
 0530 E330              cpi R30,3
 0532 61F4              brne L96
 0534 6F30              cpi R22,15
 0536 51F4              brne L96
 0538                   .dbline 332
 0538           ;                       {
 0538                   .dbline 333
 0538           ;                        trans_buf[0]=KeySet[KeyIndex];
 0538                   .dbline 334
 0538           ;                        transmit();
 0538 E42F              mov R30,R20
 053A FF27              clr R31
 053C E80F              add R30,R24
 053E F91F              adc R31,R25
 0540 E491              lpm R30,Z
 0542 E0931400          sts _trans_buf,R30
 0546 C1DD              xcall _transmit
 0548                   .dbline 335
 0548           ;                        flag=0xff;
 0548 6FEF              ldi R22,255
 054A                   .dbline 336
 054A           ;                       }
 054A C6C0              xjmp L97
 054C           L96:
 054C                   .dbline 337
 054C           ;                       else if((flag>=PAR1)&&(flag<=PAR7)&&( KeySet[KeyIndex]!=ENTER)&&( KeySet[KeyIndex]!=CANCEL))
 054C 6130              cpi R22,1
 054E 60F1              brlo L98
 0550 87E0              ldi R24,7
 0552 8617              cp R24,R22
 0554 48F1              brlo L98
 0556 80E0              ldi R24,<_KeySet
 0558 90E0              ldi R25,>_KeySet
 055A E42F              mov R30,R20
 055C FF27              clr R31
 055E E80F              add R30,R24
 0560 F91F              adc R31,R25
 0562 2490              lpm R2,Z
 0564 3324              clr R3
 0566 822D              mov R24,R2
 0568 8F30              cpi R24,15
 056A F1F0              breq L98
 056C 8C30              cpi R24,12
 056E E1F0              breq L98
 0570                   .dbline 338
 0570           ;                       {
 0570                   .dbline 339
 0570           ;                        numL=10*numL+KeySet[KeyIndex];
 0570                   .dbline 340
 0570           ;                        NumBitL=num_bit(numL);
 0570 80E0              ldi R24,<_KeySet
 0572 90E0              ldi R25,>_KeySet
 0574 E42F              mov R30,R20
 0576 FF27              clr R31
 0578 E80F              add R30,R24
 057A F91F              adc R31,R25
 057C 2490              lpm R2,Z
 057E 3324              clr R3
 0580 20910500          lds R18,_numL
 0584 30910600          lds R19,_numL+1
 0588 0AE0              ldi R16,10
 058A 10E0              ldi R17,0
 058C 0E940000          xcall empy16s
 0590 2801              movw R4,R16
 0592 420C              add R4,R2
 0594 531C              adc R5,R3
 0596 50920600          sts _numL+1,R5
 059A 40920500          sts _numL,R4
 059E 8201              movw R16,R4
 05A0 2FDF              xcall _num_bit
 05A2 00930900          sts _NumBitL,R16
 05A6                   .dbline 341
 05A6           ;                       }
 05A6 98C0              xjmp L99
 05A8           L98:
 05A8                   .dbline 342
 05A8           ;                       else if(KeySet[KeyIndex]==CANCEL)
 05A8 80E0              ldi R24,<_KeySet
 05AA 90E0              ldi R25,>_KeySet
 05AC E42F              mov R30,R20
 05AE FF27              clr R31
 05B0 E80F              add R30,R24
 05B2 F91F              adc R31,R25
 05B4 E491              lpm R30,Z
 05B6 EC30              cpi R30,12
 05B8 81F4              brne L100
 05BA                   .dbline 343
 05BA           ;                       {
 05BA                   .dbline 344
 05BA           ;                        numL = numL/10;
 05BA                   .dbline 345
 05BA           ;                        NumBitL = num_bit(numL);
 05BA 2AE0              ldi R18,10
 05BC 30E0              ldi R19,0
 05BE 00910500          lds R16,_numL
 05C2 10910600          lds R17,_numL+1
 05C6 0E940000          xcall div16u
 05CA 10930600          sts _numL+1,R17
 05CE 00930500          sts _numL,R16
 05D2 16DF              xcall _num_bit
 05D4 00930900          sts _NumBitL,R16
 05D8                   .dbline 346
 05D8           ;                       }
 05D8 7FC0              xjmp L101
 05DA           L100:
 05DA                   .dbline 347
 05DA           ;                       else if(KeySet[KeyIndex]==ENTER)
 05DA 80E0              ldi R24,<_KeySet
 05DC 90E0              ldi R25,>_KeySet
 05DE E42F              mov R30,R20
 05E0 FF27              clr R31
 05E2 E80F              add R30,R24
 05E4 F91F              adc R31,R25
 05E6 E491              lpm R30,Z
 05E8 EF30              cpi R30,15
 05EA 09F0              breq X10
 05EC 3CC0              xjmp L102
 05EE           X10:
 05EE                   .dbline 348
 05EE           ;                       {
 05EE                   .dbline 349
 05EE           ;                        trans_buf[flag]=numL;
 05EE 80E0              ldi R24,<_trans_buf
 05F0 90E0              ldi R25,>_trans_buf
 05F2 E62F              mov R30,R22
 05F4 FF27              clr R31
 05F6 E80F              add R30,R24
 05F8 F91F              adc R31,R25
 05FA 20900500          lds R2,_numL
 05FE 30900600          lds R3,_numL+1
 0602 2082              std z+0,R2
 0604                   .dbline 350
 0604           ;                        flag++;
 0604                   .dbline 351
 0604           ;                        numH++;
 0604                   .dbline 352
 0604           ;                        numL=0;
 0604                   .dbline 353
 0604           ;                        NumBitL=0;
 0604                   .dbline 354
 0604           ;                        if ((flag==Model1_flag)&&(numH/10==1))//模式1参数个数Model1_flag
 0604 6395              inc R22
 0606 80910700          lds R24,_numH
 060A 8F5F              subi R24,255    ; addi 1
 060C 80930700          sts _numH,R24
 0610 2224              clr R2
 0612 3324              clr R3
 0614 30920600          sts _numL+1,R3
 0618 20920500          sts _numL,R2
 061C 20920900          sts _NumBitL,R2
 0620 6830              cpi R22,8
 0622 71F4              brne L104
 0624 1AE0              ldi R17,10
 0626 082F              mov R16,R24
 0628 0E940000          xcall div8u
 062C 0130              cpi R16,1
 062E 41F4              brne L104
 0630                   .dbline 355
 0630           ;                        {
 0630                   .dbline 356
 0630           ;                         flag=0xff;
 0630                   .dbline 357
 0630           ;                         transmit();
 0630 6FEF              ldi R22,255
 0632 4BDD              xcall _transmit
 0634                   .dbline 358
 0634           ;                         numH=0;
 0634                   .dbline 359
 0634           ;                         NumBitH=0;
 0634 2224              clr R2
 0636 20920700          sts _numH,R2
 063A 20920A00          sts _NumBitH,R2
 063E                   .dbline 360
 063E           ;                        }
 063E 4CC0              xjmp L103
 0640           L104:
 0640                   .dbline 361
 0640           ;                        else if ((flag==Model2_flag)&&(numH/10==2))//模式2参数个数Model2_flag
 0640 6430              cpi R22,4
 0642 09F0              breq X11
 0644 49C0              xjmp L103
 0646           X11:
 0646 1AE0              ldi R17,10
 0648 00910700          lds R16,_numH
 064C 0E940000          xcall div8u
 0650 0230              cpi R16,2
 0652 09F0              breq X12
 0654 41C0              xjmp L103
 0656           X12:
 0656                   .dbline 362
 0656           ;                        {
 0656                   .dbline 363
 0656           ;                         flag=0xff;
 0656                   .dbline 364
 0656           ;                         transmit();
 0656 6FEF              ldi R22,255
 0658 38DD              xcall _transmit
 065A                   .dbline 365
 065A           ;                         numH=0;
 065A                   .dbline 366
 065A           ;                         NumBitH=0;
 065A 2224              clr R2
 065C 20920700          sts _numH,R2
 0660 20920A00          sts _NumBitH,R2
 0664                   .dbline 367
 0664           ;                        }
 0664                   .dbline 368
 0664           ;                       }
 0664 39C0              xjmp L103
 0666           L102:
 0666                   .dbline 369
 0666           ;                       else if(((KeySet[KeyIndex]!=1)|(KeySet[KeyIndex]!=2)|(KeySet[KeyIndex]!=3))&&(flag==STATE)) {edit();}
 0666 80E0              ldi R24,<_KeySet
 0668 90E0              ldi R25,>_KeySet
 066A E42F              mov R30,R20
 066C FF27              clr R31
 066E E80F              add R30,R24
 0670 F91F              adc R31,R25
 0672 E491              lpm R30,Z
 0674 E130              cpi R30,1
 0676 21F0              breq L110
 0678 81E0              ldi R24,1
 067A 90E0              ldi R25,0
 067C 7C01              movw R14,R24
 067E 02C0              xjmp L111
 0680           L110:
 0680 EE24              clr R14
 0682 FF24              clr R15
 0684           L111:
 0684 80E0              ldi R24,<_KeySet
 0686 90E0              ldi R25,>_KeySet
 0688 E42F              mov R30,R20
 068A FF27              clr R31
 068C E80F              add R30,R24
 068E F91F              adc R31,R25
 0690 E491              lpm R30,Z
 0692 E230              cpi R30,2
 0694 21F0              breq L112
 0696 81E0              ldi R24,1

⌨️ 快捷键说明

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