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

📄 dac_tlc5615.lis

📁 ATmega16-TLC5615
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 005C 4F70              andi R20,15
 005E                   .dbline 76
 005E           ;       if(i!=0x0f)                                                     //判断是否有键按下
 005E 4F30              cpi R20,15
 0060 B1F0              breq L14
 0062           X3:
 0062                   .dbline 77
 0062           ;       {
 0062                   .dbline 78
 0062           ;               PORTC=0x00;
 0062 2224              clr R2
 0064 25BA              out 0x15,R2
 0066                   .dbline 79
 0066           ;               DDRC =0x0f;                                             //设置端口低4位输出,高四位输入
 0066 8FE0              ldi R24,15
 0068 84BB              out 0x14,R24
 006A                   .dbline 80
 006A           ;               PORTC=0xf0;                                             //高四位内部上拉
 006A 80EF              ldi R24,240
 006C 85BB              out 0x15,R24
 006E                   .dbline 81
 006E           ;               delay_nus(10);                                  //短暂延时,去抖
 006E 0AE0              ldi R16,10
 0070 10E0              ldi R17,0
 0072 C6DF              xcall _delay_nus
 0074                   .dbline 82
 0074           ;               if((PINC&0xf0)!=0xf0)                   //再次判断是否有键按下
 0074 83B3              in R24,0x13
 0076 807F              andi R24,240
 0078 803F              cpi R24,240
 007A 49F0              breq L16
 007C           X4:
 007C                   .dbline 83
 007C           ;               {
 007C                   .dbline 84
 007C           ;                       i+=(PINC&0xf0);                         //读取端口电平
 007C 83B3              in R24,0x13
 007E 807F              andi R24,240
 0080 480F              add R20,R24
 0082           L18:
 0082                   .dbline 85
 0082           ;                       while((PINC&0xf0)!=0xf0);       //等待按键释放
 0082           L19:
 0082                   .dbline 85
 0082 83B3              in R24,0x13
 0084 807F              andi R24,240
 0086 803F              cpi R24,240
 0088 E1F7              brne L18
 008A           X5:
 008A                   .dbline 86
 008A           ;                       return i;                                       //返回键值
 008A 042F              mov R16,R20
 008C 01C0              xjmp L13
 008E           L16:
 008E                   .dbline 88
 008E           ;               }
 008E           ;       }
 008E           L14:
 008E                   .dbline 89
 008E           ;       return null;                                            //无按键按下返回null
 008E 0027              clr R16
 0090                   .dbline -2
 0090           L13:
 0090                   .dbline 0 ; func end
 0090 5991              ld R21,y+
 0092 4991              ld R20,y+
 0094 0895              ret
 0096                   .dbsym r i 20 c
 0096                   .dbend
 0096                   .dbfunc e Key_Num _Key_Num fc
 0096           ;            key -> R16
                        .even
 0096           _Key_Num::
 0096 4A93              st -y,R20
 0098 5A93              st -y,R21
 009A                   .dbline -1
 009A                   .dbline 99
 009A           ; }
 009A           ; 
 009A           ; /*******************************************************/
 009A           ; /******   函数名称: Key_Num()                     ******/
 009A           ; /******   功    能: 转换键值为0-f十六进制数       ******/
 009A           ; /******   参    数: key--键值                     ******/
 009A           ; /******   返回值  : 0-f                           ******/
 009A           ; /*******************************************************/
 009A           ; unsigned char Key_Num(unsigned char key)
 009A           ; {
 009A                   .dbline 100
 009A           ;       switch(key)
 009A 402F              mov R20,R16
 009C 5527              clr R21
 009E 473B              cpi R20,183
 00A0 E0E0              ldi R30,0
 00A2 5E07              cpc R21,R30
 00A4 09F4              brne X24
 00A6 54C0              xjmp L27
 00A8           X24:
 00A8           X6:
 00A8 4B3B              cpi R20,187
 00AA E0E0              ldi R30,0
 00AC 5E07              cpc R21,R30
 00AE 09F4              brne X25
 00B0 57C0              xjmp L31
 00B2           X25:
 00B2           X7:
 00B2 4D3B              cpi R20,189
 00B4 E0E0              ldi R30,0
 00B6 5E07              cpc R21,R30
 00B8 09F4              brne X26
 00BA 5AC0              xjmp L35
 00BC           X26:
 00BC           X8:
 00BC 4E3B              cpi R20,190
 00BE E0E0              ldi R30,0
 00C0 5E07              cpc R21,R30
 00C2 09F4              brne X27
 00C4 5DC0              xjmp L39
 00C6           X27:
 00C6           X9:
 00C6 8EEB              ldi R24,190
 00C8 90E0              ldi R25,0
 00CA 8417              cp R24,R20
 00CC 9507              cpc R25,R21
 00CE ACF0              brlt L42
 00D0           X10:
 00D0           L41:
 00D0 4737              cpi R20,119
 00D2 E0E0              ldi R30,0
 00D4 5E07              cpc R21,R30
 00D6 09F4              brne X28
 00D8 3DC0              xjmp L28
 00DA           X28:
 00DA           X11:
 00DA 4B37              cpi R20,123
 00DC E0E0              ldi R30,0
 00DE 5E07              cpc R21,R30
 00E0 09F4              brne X29
 00E2 40C0              xjmp L32
 00E4           X29:
 00E4           X12:
 00E4 4D37              cpi R20,125
 00E6 E0E0              ldi R30,0
 00E8 5E07              cpc R21,R30
 00EA 09F4              brne X30
 00EC 43C0              xjmp L36
 00EE           X30:
 00EE           X13:
 00EE 4E37              cpi R20,126
 00F0 E0E0              ldi R30,0
 00F2 5E07              cpc R21,R30
 00F4 09F4              brne X31
 00F6 46C0              xjmp L40
 00F8           X31:
 00F8           X14:
 00F8 47C0              xjmp L22
 00FA           L42:
 00FA 473D              cpi R20,215
 00FC E0E0              ldi R30,0
 00FE 5E07              cpc R21,R30
 0100 29F1              breq L26
 0102           X15:
 0102 4B3D              cpi R20,219
 0104 E0E0              ldi R30,0
 0106 5E07              cpc R21,R30
 0108 49F1              breq L30
 010A           X16:
 010A 4D3D              cpi R20,221
 010C E0E0              ldi R30,0
 010E 5E07              cpc R21,R30
 0110 69F1              breq L34
 0112           X17:
 0112 4E3D              cpi R20,222
 0114 E0E0              ldi R30,0
 0116 5E07              cpc R21,R30
 0118 09F4              brne X32
 011A 30C0              xjmp L38
 011C           X32:
 011C           X18:
 011C 473D              cpi R20,215
 011E E0E0              ldi R30,0
 0120 5E07              cpc R21,R30
 0122 0CF4              brge X33
 0124 31C0              xjmp L22
 0126           X33:
 0126           X19:
 0126           L43:
 0126 473E              cpi R20,231
 0128 E0E0              ldi R30,0
 012A 5E07              cpc R21,R30
 012C 69F0              breq L25
 012E           X20:
 012E 4B3E              cpi R20,235
 0130 E0E0              ldi R30,0
 0132 5E07              cpc R21,R30
 0134 89F0              breq L29
 0136           X21:
 0136 4D3E              cpi R20,237
 0138 E0E0              ldi R30,0
 013A 5E07              cpc R21,R30
 013C A9F0              breq L33
 013E           X22:
 013E 4E3E              cpi R20,238
 0140 E0E0              ldi R30,0
 0142 5E07              cpc R21,R30
 0144 C9F0              breq L37
 0146           X23:
 0146 20C0              xjmp L22
 0148           L25:
 0148                   .dbline 102
 0148           ;       {
 0148           ;               case 0xe7:return 0;                             //按键0
 0148 0027              clr R16
 014A 1FC0              xjmp L21
 014C           L26:
 014C                   .dbline 103
 014C           ;               case 0xd7:return 1;                             //按键1
 014C 01E0              ldi R16,1
 014E 1DC0              xjmp L21
 0150           L27:
 0150                   .dbline 104
 0150           ;               case 0xb7:return 2;                             //按键2
 0150 02E0              ldi R16,2
 0152 1BC0              xjmp L21
 0154           L28:
 0154                   .dbline 105
 0154           ;               case 0x77:return 3;                             //按键3
 0154 03E0              ldi R16,3
 0156 19C0              xjmp L21
 0158           L29:
 0158                   .dbline 106
 0158           ;               case 0xeb:return 4;                             //按键4
 0158 04E0              ldi R16,4
 015A 17C0              xjmp L21
 015C           L30:
 015C                   .dbline 107
 015C           ;               case 0xdb:return 5;                             //按键5
 015C 05E0              ldi R16,5
 015E 15C0              xjmp L21
 0160           L31:
 0160                   .dbline 108
 0160           ;               case 0xbb:return 6;                             //按键6
 0160 06E0              ldi R16,6
 0162 13C0              xjmp L21
 0164           L32:
 0164                   .dbline 109
 0164           ;               case 0x7b:return 7;                             //按键7
 0164 07E0              ldi R16,7
 0166 11C0              xjmp L21
 0168           L33:
 0168                   .dbline 110
 0168           ;               case 0xed:return 8;                             //按键8
 0168 08E0              ldi R16,8
 016A 0FC0              xjmp L21
 016C           L34:
 016C                   .dbline 111

⌨️ 快捷键说明

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