📄 ps2simplesoft.lis
字号:
00F2 .dbline 158
00F2 ; {
00F2 ; /*
00F2 ; for(i=0; unshifted[i][0]!=val && unshifted[i][0]; i++)
00F2 ; ;
00F2 ; 上述写法较为灵活,但KEIL非UNIXC标准,不能采用该写法
00F2 ; */
00F2 ; for(i=0; shifted[i][0]!=val && i<59; i++)
00F2 ; ;
00F2 ; if(shifted[i][0] == val)
00F2 ; SHIFT_DATA_PORT = val;//状态指示
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 ; else
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 ; isUp=0;
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 ; switch(val)
0114 ; {
0114 ; case 0x12 : // Left SHIFT
0114 ; shift = 0;
0114 ; break;
0114 ; case 0x59 : // Right SHIFT
0114 ; shift = 0;
0114 ; break;
0114 ; }
0114 ; }
0114 ; }
0114 .dbline 175
0114 ; /*--------------------------------------------------------------------
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 ; void main(void)
0142 ; {
0142 ; PRESS_DATA_DDR = 0XFF;
0142 ; SHIFT_DATA_DDR = 0XFF;
0142 ; IN_SDA;
0142 ; while(1)
0142 ; {
0142 ; check();
0142 ; if(rcvF)
0142 .dbline 192
0142 ; keyHandle(keyVal);
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 ; }
0148 26B6 in R2,0x36
014A 27FE sbrs R2,7
014C FDCF rjmp L32
014E .dbline 193
014E .dbline 193
014E .dbline 194
014E ; }
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
01CC 0895 ret
01CE .dbsym r pRdDat 16 pc
01CE .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -