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

📄 ps2simplehard.lis

📁 ATmega16应用例子
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00F2                   .dbline -1
 00F2                   .dbline 158
 00F2           ;       {
 00F2           ;               isUp=0;                                 
 00F2           ;               switch(val)
 00F2           ;               {
 00F2           ;                       case 0x12 :                     // Left SHIFT
 00F2           ;                               shift = 0;
 00F2           ;                               break;
 00F2           ;                       case 0x59 :                     // Right SHIFT
 00F2           ;                               shift = 0;
 00F2           ;                               break;
 00F2           ;               }
 00F2                   .dbline 159
 00F2           ;       }
 00F2                   .dbline 159
 00F2 03B9              out 0x3,R16
 00F4                   .dbline 159
 00F4 84E8              ldi R24,132
 00F6 86BF              out 0x36,R24
 00F8                   .dbline 159
 00F8                   .dbline 159
 00F8                   .dbline 160
 00F8           L19:
 00F8                   .dbline 160
 00F8           L20:
 00F8                   .dbline 160
 00F8           ; }
 00F8 26B6              in R2,0x36
 00FA 27FE              sbrs R2,7
 00FC FDCF              rjmp L19
 00FE                   .dbline 160
 00FE                   .dbline 160
 00FE                   .dbline 161
 00FE           ; /*--------------------------------------------------------------------
 00FE 81B1              in R24,0x1
 0100 887F              andi R24,248
 0102 8831              cpi R24,24
 0104 11F0              breq L22
 0106                   .dbline 162
 0106           ; 函数名称:
 0106 0027              clr R16
 0108 01C0              xjmp L18
 010A           L22:
 010A                   .dbline 163
 010A           ; 函数功能:
 010A 01E0              ldi R16,1
 010C                   .dbline -2
 010C           L18:
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbsym r wrDAdr 16 c
 010E                   .dbend
 010E                   .dbfunc e I2C_SendWrDAdr_ _I2C_SendWrDAdr_ fc
 010E           ;         wrDAdr -> R20,R21
                        .even
 010E           _I2C_SendWrDAdr_::
 010E 0E940000          xcall push_gset1
 0112 A801              movw R20,R16
 0114                   .dbline -1
 0114                   .dbline 174
 0114           ; 注意事项:
 0114           ; 提示说明:
 0114           ; 输    入:
 0114           ; 返    回:
 0114           ; --------------------------------------------------------------------*/
 0114           ; void int1_init()
 0114           ; {
 0114           ;       IN_SCK;                                 // set SCK_DDR (PD3/INT1) as input
 0114           ;       SET_SCK;                                        // set SCK_PORT as high level,avoid triggering
 0114           ;       MCUCR |= 0b11110011;            // set PD3/INT1 as low level active
 0114           ;       GICR  |= 0b10000000;            // enable global interrupt
 0114                   .dbline 175
 0114           ;       SEI();                                          // enable external interrupt
 0114 40FF              sbrs R20,0
 0116 0BC0              rjmp L25
 0118                   .dbline 176
 0118           ; }
 0118 042F              mov R16,R20
 011A 1127              clr R17
 011C 012F              mov R16,R17
 011E 1127              clr R17
 0120 07FD              sbrc R16,7
 0122 1095              com R17
 0124 E6DF              xcall _I2C_SendWrDAdr
 0126 0023              tst R16
 0128 11F4              brne L27
 012A                   .dbline 177
 012A           ; /*--------------------------------------------------------------------
 012A 0027              clr R16
 012C 07C0              xjmp L24
 012E           L27:
 012E           L25:
 012E                   .dbline 178
 012E           ; 函数名称:
 012E 042F              mov R16,R20
 0130 E0DF              xcall _I2C_SendWrDAdr
 0132 0023              tst R16
 0134 11F4              brne L29
 0136                   .dbline 179
 0136           ; 函数功能:
 0136 0027              clr R16
 0138 01C0              xjmp L24
 013A           L29:
 013A                   .dbline 180
 013A           ; 注意事项:
 013A 01E0              ldi R16,1
 013C                   .dbline -2
 013C           L24:
 013C 0E940000          xcall pop_gset1
 0140                   .dbline 0 ; func end
 0140 0895              ret
 0142                   .dbsym r wrDAdr 20 i
 0142                   .dbend
 0142                   .dbfunc e I2C_SendRdDAdr _I2C_SendRdDAdr fc
 0142           ;         rdDAdr -> R16
                        .even
 0142           _I2C_SendRdDAdr::
 0142                   .dbline -1
 0142                   .dbline 191
 0142           ; 提示说明:
 0142           ; 输    入:
 0142           ; 返    回:
 0142           ; --------------------------------------------------------------------*/
 0142           ; void main(void)
 0142           ; {
 0142           ;     PRESS_DATA_DDR = 0XFF;
 0142           ;       SHIFT_DATA_DDR = 0XFF;
 0142           ;       IN_SDA;
 0142           ;       int1_init();
 0142           ;       while(1)
 0142                   .dbline 192
 0142           ;       {
 0142                   .dbline 192
 0142 03B9              out 0x3,R16
 0144                   .dbline 192
 0144 84E8              ldi R24,132
 0146 86BF              out 0x36,R24
 0148                   .dbline 192
 0148                   .dbline 192
 0148                   .dbline 193
 0148           L32:
 0148                   .dbline 193
 0148           L33:
 0148                   .dbline 193
 0148           ;               if(rcvF)
 0148 26B6              in R2,0x36
 014A 27FE              sbrs R2,7
 014C FDCF              rjmp L32
 014E                   .dbline 193
 014E                   .dbline 193
 014E                   .dbline 194
 014E           ;                       keyHandle(keyVal);
 014E 81B1              in R24,0x1
 0150 887F              andi R24,248
 0152 8034              cpi R24,64
 0154 11F0              breq L35
 0156                   .dbline 195
 0156           ;       }
 0156 0027              clr R16
 0158 01C0              xjmp L31
 015A           L35:
 015A                   .dbline 196
 015A           ; }
 015A 01E0              ldi R16,1
 015C                   .dbline -2
 015C           L31:
 015C                   .dbline 0 ; func end
 015C 0895              ret
 015E                   .dbsym r rdDAdr 16 c
 015E                   .dbend
 015E                   .dbfunc e I2C_SendRdDAdr_ _I2C_SendRdDAdr_ fc
 015E           ;         rdDAdr -> R20
                        .even
 015E           _I2C_SendRdDAdr_::
 015E 0E940000          xcall push_gset1
 0162 402F              mov R20,R16
 0164                   .dbline -1
 0164                   .dbline 207
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164           ; 
 0164                   .dbline 208
 0164           ; 
 0164 40FF              sbrs R20,0
 0166 0BC0              rjmp L38
 0168                   .dbline 209
 0168           ; 
 0168 042F              mov R16,R20
 016A 1127              clr R17
 016C 012F              mov R16,R17
 016E 1127              clr R17
 0170 07FD              sbrc R16,7
 0172 1095              com R17
 0174 BEDF              xcall _I2C_SendWrDAdr
 0176 0023              tst R16
 0178 11F4              brne L40
 017A                   .dbline 210
 017A           ; 
 017A 0027              clr R16
 017C 07C0              xjmp L37
 017E           L40:
 017E           L38:
 017E                   .dbline 211
 017E           ; 
 017E 042F              mov R16,R20
 0180 B8DF              xcall _I2C_SendWrDAdr
 0182 0023              tst R16
 0184 11F4              brne L42
 0186                   .dbline 212
 0186           ; 
 0186 0027              clr R16
 0188 01C0              xjmp L37
 018A           L42:
 018A                   .dbline 213
 018A           ; 
 018A 01E0              ldi R16,1
 018C                   .dbline -2
 018C           L37:
 018C 0E940000          xcall pop_gset1
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbsym r rdDAdr 20 c
 0192                   .dbend
 0192                   .dbfunc e I2C_SendDat _I2C_SendDat fc
 0192           ;      configDat -> R16
                        .even
 0192           _I2C_SendDat::
 0192                   .dbline -1
 0192                   .dbline 224
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192           ; 
 0192                   .dbline 225
 0192           ; 
 0192                   .dbline 225
 0192 03B9              out 0x3,R16
 0194                   .dbline 225
 0194 84E8              ldi R24,132
 0196 86BF              out 0x36,R24
 0198                   .dbline 225
 0198                   .dbline 225
 0198                   .dbline 226
 0198           L45:
 0198                   .dbline 226
 0198           L46:
 0198                   .dbline 226
 0198           ; 
 0198 26B6              in R2,0x36
 019A 27FE              sbrs R2,7
 019C FDCF              rjmp L45
 019E                   .dbline 226
 019E                   .dbline 226
 019E                   .dbline 227
 019E           ; 
 019E 81B1              in R24,0x1
 01A0 887F              andi R24,248
 01A2 8832              cpi R24,40
 01A4 11F0              breq L48
 01A6                   .dbline 228
 01A6           ; 
 01A6 0027              clr R16
 01A8 01C0              xjmp L44
 01AA           L48:
 01AA                   .dbline 229
 01AA           ; 
 01AA 01E0              ldi R16,1
 01AC                   .dbline -2
 01AC           L44:
 01AC                   .dbline 0 ; func end
 01AC 0895              ret
 01AE                   .dbsym r configDat 16 c
 01AE                   .dbend
 01AE                   .dbfunc e I2C_RcvNAckDat _I2C_RcvNAckDat fc
 01AE           ;         pRdDat -> R16,R17
                        .even
 01AE           _I2C_RcvNAckDat::
 01AE                   .dbline -1
 01AE                   .dbline 240
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE           ; 
 01AE                   .dbline 241
 01AE           ; 
 01AE 84E8              ldi R24,132
 01B0 86BF              out 0x36,R24
 01B2                   .dbline 242
 01B2           L51:
 01B2                   .dbline 242
 01B2           L52:
 01B2                   .dbline 242
 01B2           ; 
 01B2 26B6              in R2,0x36
 01B4 27FE              sbrs R2,7
 01B6 FDCF              rjmp L51
 01B8                   .dbline 242
 01B8                   .dbline 242
 01B8                   .dbline 243
 01B8           ; 
 01B8 81B1              in R24,0x1
 01BA 887F              andi R24,248
 01BC 8835              cpi R24,88
 01BE 11F0              breq L54
 01C0                   .dbline 244
 01C0           ; 
 01C0 0027              clr R16
 01C2 04C0              xjmp L50
 01C4           L54:
 01C4                   .dbline 245
 01C4           ; 
 01C4 23B0              in R2,0x3
 01C6 F801              movw R30,R16
 01C8 2082              std z+0,R2
 01CA                   .dbline 246
 01CA           ; 
 01CA 01E0              ldi R16,1
 01CC                   .dbline -2
 01CC           L50:
 01CC                   .dbline 0 ; func end

⌨️ 快捷键说明

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