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

📄 独立按键.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0074 0C31              cpi R16,28
 0076 11F4              brne L12
 0078           X2:
 0078                   .dbline 38
 0078           ;       {
 0078                   .dbline 39
 0078           ;         return 0;
 0078 0027              clr R16
 007A 01C0              xjmp L11
 007C           L12:
 007C                   .dbline 42
 007C           ;       }
 007C           ;       else
 007C           ;       {
 007C                   .dbline 43
 007C           ;        return 1;
 007C 01E0              ldi R16,1
 007E                   .dbline -2
 007E           L11:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbsym r j 16 c
 0080                   .dbend
 0080                   .dbfunc e key_scan _key_scan fc
 0080           ;            key -> R20
                        .even
 0080           _key_scan::
 0080 0E940000          xcall push_xgsetF000
 0084                   .dbline -1
 0084                   .dbline 49
 0084           ;       }
 0084           ;       
 0084           ; }
 0084           ; 
 0084           ; uchar key_scan()
 0084           ; {
 0084                   .dbline 51
 0084           ;     uchar key;
 0084           ;     delay(10);
 0084 0AE0              ldi R16,10
 0086 10E0              ldi R17,0
 0088 BBDF              xcall _delay
 008A                   .dbline 52
 008A           ;       if(key_press())
 008A E9DF              xcall _key_press
 008C 0023              tst R16
 008E B1F1              breq L15
 0090           X3:
 0090                   .dbline 53
 0090           ;       {
 0090                   .dbline 54
 0090           ;       key=PIND;
 0090 40B3              in R20,0x10
 0092                   .dbline 55
 0092           ;       key&=0X1c;
 0092 4C71              andi R20,28
 0094                   .dbline 56
 0094           ;       switch(key)
 0094 642F              mov R22,R20
 0096 7727              clr R23
 0098 6431              cpi R22,20
 009A E0E0              ldi R30,0
 009C 7E07              cpc R23,R30
 009E 19F1              breq L26
 00A0           X4:
 00A0 84E1              ldi R24,20
 00A2 90E0              ldi R25,0
 00A4 8617              cp R24,R22
 00A6 9707              cpc R25,R23
 00A8 2CF0              brlt L28
 00AA           X5:
 00AA           L27:
 00AA 6C30              cpi R22,12
 00AC E0E0              ldi R30,0
 00AE 7E07              cpc R23,R30
 00B0 79F0              breq L23
 00B2           X6:
 00B2 1DC0              xjmp L17
 00B4           L28:
 00B4 6831              cpi R22,24
 00B6 E0E0              ldi R30,0
 00B8 7E07              cpc R23,R30
 00BA 09F0              breq L20
 00BC           X7:
 00BC 18C0              xjmp L17
 00BE           L20:
 00BE                   .dbline 60
 00BE           ;       {
 00BE           ;          
 00BE           ;          case 0X18:
 00BE           ;              key_valu++;
 00BE 80911900          lds R24,_key_valu
 00C2 8F5F              subi R24,255    ; addi 1
 00C4 80931900          sts _key_valu,R24
 00C8                   .dbline 61
 00C8           ;                  if(key_valu==16)
 00C8 8031              cpi R24,16
 00CA A1F4              brne L30
 00CC           X8:
 00CC                   .dbline 62
 00CC           ;                       key=0;
 00CC 4427              clr R20
 00CE                   .dbline 63
 00CE           ;                  break;
 00CE 12C0              xjmp L30
 00D0           L23:
 00D0                   .dbline 65
 00D0           ;                case 0X0c: 
 00D0           ;              key_valu--;
 00D0 80911900          lds R24,_key_valu
 00D4 8150              subi R24,1
 00D6 80931900          sts _key_valu,R24
 00DA                   .dbline 66
 00DA           ;                  if(key_valu<0)
 00DA 8030              cpi R24,0
 00DC 58F4              brsh L30
 00DE           X9:
 00DE                   .dbline 67
 00DE           ;                  key_valu=0;
 00DE 2224              clr R2
 00E0 20921900          sts _key_valu,R2
 00E4                   .dbline 68
 00E4           ;                  break;
 00E4 07C0              xjmp L30
 00E6           L26:
 00E6                   .dbline 70
 00E6           ;          case 0X14:
 00E6           ;              key_valu=0;
 00E6 2224              clr R2
 00E8 20921900          sts _key_valu,R2
 00EC                   .dbline 72
 00EC           ;                  
 00EC           ;                       break;
 00EC 03C0              xjmp L30
 00EE           L17:
 00EE                   .dbline 74
 00EE           ;          default:     
 00EE           ;              key_valu=0;         
 00EE 2224              clr R2
 00F0 20921900          sts _key_valu,R2
 00F4                   .dbline 75
 00F4           ;       }
 00F4           L29:
 00F4                   .dbline 76
 00F4           ;         while(key_press());
 00F4           L30:
 00F4                   .dbline 76
 00F4 B4DF              xcall _key_press
 00F6 0023              tst R16
 00F8 E9F7              brne L29
 00FA           X10:
 00FA                   .dbline 77
 00FA           ;       }
 00FA 01C0              xjmp L16
 00FC           L15:
 00FC                   .dbline 79
 00FC           ;       else
 00FC           ;       {
 00FC                   .dbline 80
 00FC           ;         key=16;
 00FC 40E1              ldi R20,16
 00FE                   .dbline 81
 00FE           ;       }
 00FE           L16:
 00FE                   .dbline 82
 00FE           ;       return key_valu;
 00FE 00911900          lds R16,_key_valu
 0102                   .dbline -2
 0102           L14:
 0102                   .dbline 0 ; func end
 0102 0C940000          xjmp pop_xgsetF000
 0106                   .dbsym r key 20 c
 0106                   .dbend
 0106                   .dbfunc e main _main fV
 0106           ;              l -> R10
 0106           ;              i -> R10
                        .even
 0106           _main::
 0106                   .dbline -1
 0106                   .dbline 85
 0106           ; }
 0106           ; void main()
 0106           ; {
 0106                   .dbline 87
 0106           ;     uchar i,l;
 0106           ;     DDRA=0xff;
 0106 8FEF              ldi R24,255
 0108 8ABB              out 0x1a,R24
 010A                   .dbline 88
 010A           ;       DDRB=0XFF;
 010A 87BB              out 0x17,R24
 010C 0BC0              xjmp L34
 010E           L33:
 010E                   .dbline 90
 010E           ;       while(1)
 010E           ;       {
 010E                   .dbline 91
 010E           ;         i=key_press();
 010E A7DF              xcall _key_press
 0110 A02E              mov R10,R16
 0112                   .dbline 92
 0112           ;         if(i)
 0112 0023              tst R16
 0114 39F0              breq L36
 0116           X11:
 0116                   .dbline 93
 0116           ;         {
 0116                   .dbline 94
 0116           ;            l=key_scan();
 0116 B4DF              xcall _key_scan
 0118 A02E              mov R10,R16
 011A                   .dbline 96
 011A           ;                //show(l/10,1);
 011A           ;               show(l%10,0);
 011A 2227              clr R18
 011C 1AE0              ldi R17,10
 011E 0E940000          xcall mod8u
 0122 83DF              xcall _show
 0124                   .dbline 97
 0124           ;         }
 0124           L36:
 0124                   .dbline 98
 0124           ;       }
 0124           L34:
 0124                   .dbline 89
 0124 F4CF              xjmp L33
 0126           X12:
 0126                   .dbline -2
 0126           L32:
 0126                   .dbline 0 ; func end
 0126 0895              ret
 0128                   .dbsym r l 10 c
 0128                   .dbsym r i 10 c
 0128                   .dbend
 0128           ; }

⌨️ 快捷键说明

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