📄 keydis_drv.lis
字号:
014E X3:
014E .dbline 187
014E ; break;
014E L31:
014E .dbline 191
014E ; }
014E ;
014E ; case 0xFD :
014E ; {
014E .dbline 192
014E ; KeyStatu = Key_Press;
014E 2224 clr R2
0150 20920100 sts L10,R2
0154 .dbline 193
0154 ; return Key_7;
0154 07E0 ldi R16,7
0156 22C0 rjmp L9
0158 X4:
0158 .dbline 194
0158 ; break;
0158 L32:
0158 .dbline 198
0158 ; }
0158 ;
0158 ; case 0xFB :
0158 ; {
0158 .dbline 199
0158 ; KeyStatu = Key_Press;
0158 2224 clr R2
015A 20920100 sts L10,R2
015E .dbline 200
015E ; return Key_6;
015E 06E0 ldi R16,6
0160 1DC0 rjmp L9
0162 X5:
0162 .dbline 201
0162 ; break;
0162 L33:
0162 .dbline 205
0162 ; }
0162 ;
0162 ; case 0xF7 :
0162 ; {
0162 .dbline 206
0162 ; KeyStatu = Key_Press;
0162 2224 clr R2
0164 20920100 sts L10,R2
0168 .dbline 207
0168 ; return Key_5;
0168 05E0 ldi R16,5
016A 18C0 rjmp L9
016C X6:
016C .dbline 208
016C ; break;
016C L34:
016C .dbline 212
016C ; }
016C ;
016C ; case 0xEF :
016C ; {
016C .dbline 213
016C ; KeyStatu = Key_Press;
016C 2224 clr R2
016E 20920100 sts L10,R2
0172 .dbline 214
0172 ; return Key_4;
0172 04E0 ldi R16,4
0174 13C0 rjmp L9
0176 X7:
0176 .dbline 215
0176 ; break;
0176 L35:
0176 .dbline 219
0176 ; }
0176 ;
0176 ; case 0xDF :
0176 ; {
0176 .dbline 220
0176 ; KeyStatu = Key_Press;
0176 2224 clr R2
0178 20920100 sts L10,R2
017C .dbline 221
017C ; return Key_3;
017C 03E0 ldi R16,3
017E 0EC0 rjmp L9
0180 X8:
0180 .dbline 222
0180 ; break;
0180 L36:
0180 .dbline 226
0180 ; }
0180 ;
0180 ; case 0xBF :
0180 ; {
0180 .dbline 227
0180 ; KeyStatu = Key_Press;
0180 2224 clr R2
0182 20920100 sts L10,R2
0186 .dbline 228
0186 ; return Key_2;
0186 02E0 ldi R16,2
0188 09C0 rjmp L9
018A X9:
018A .dbline 229
018A ; break;
018A L37:
018A .dbline 233
018A ; }
018A ;
018A ; case 0x7F :
018A ; {
018A .dbline 234
018A ; KeyStatu = Key_Press;
018A 2224 clr R2
018C 20920100 sts L10,R2
0190 .dbline 235
0190 ; return Key_1;
0190 01E0 ldi R16,1
0192 04C0 rjmp L9
0194 X10:
0194 .dbline 236
0194 ; break;
0194 L27:
0194 .dbline 239
0194 ; }
0194 ; }
0194 ; KeyStatu = Key_Press; //读到的端口状态无法解析
0194 2224 clr R2
0196 20920100 sts L10,R2
019A .dbline 240
019A ; } //End Of "if (KeyPin == 0)"
019A .dbline 241
019A ; break;
019A L13:
019A L14:
019A .dbline 244
019A ; } //End Of " case Key_Release :"
019A ; } //End Of "switch (KeyStatu)"
019A ; return Key_Null;
019A 0027 clr R16
019C .dbline -2
019C L9:
019C .dbline 0 ; func end
019C 0895 ret
019E .dbend
019E .dbfunc e Port_refresh _Port_refresh fV
019E ; i -> R16
.even
019E _Port_refresh::
019E .dbline -1
019E .dbline 254
019E ; }
019E ;
019E ; /***********************************************************
019E ; * 函数说明:端口通讯程序 *
019E ; * 输入: 无 *
019E ; * 输出: 无 *
019E ; * 调用函数: *
019E ; ***********************************************************/
019E ; void Port_refresh (void)
019E ; {
019E .dbline 257
019E ; unsigned char i;
019E ;
019E ; SS_Low; //模拟#SS的下跳沿
019E 2A98 cbi 0x5,2
01A0 .dbline 259
01A0 ;
01A0 ; for (i=0; i<ExtPortNum; i++)
01A0 0027 clr R16
01A2 14C0 rjmp L46
01A4 L43:
01A4 .dbline 260
01A4 ; {
01A4 .dbline 261
01A4 ; SPDR = PortBuffer[i]; //刷新虚拟端口的一个字节
01A4 80E0 ldi R24,<_PortBuffer
01A6 90E0 ldi R25,>_PortBuffer
01A8 E02F mov R30,R16
01AA FF27 clr R31
01AC E80F add R30,R24
01AE F91F adc R31,R25
01B0 2080 ldd R2,z+0
01B2 2EBC out 0x2e,R2
01B4 L47:
01B4 .dbline 262
01B4 L48:
01B4 .dbline 262
01B4 2DB4 in R2,0x2d
01B6 27FE sbrs R2,7
01B8 FDCF rjmp L47
01BA .dbline 263
01BA 80E0 ldi R24,<_PortBuffer
01BC 90E0 ldi R25,>_PortBuffer
01BE E02F mov R30,R16
01C0 FF27 clr R31
01C2 E80F add R30,R24
01C4 F91F adc R31,R25
01C6 2EB4 in R2,0x2e
01C8 2082 std z+0,R2
01CA .dbline 264
01CA L44:
01CA .dbline 259
01CA 0395 inc R16
01CC L46:
01CC .dbline 259
01CC 0330 cpi R16,3
01CE 50F3 brlo L43
01D0 .dbline 266
01D0 ; while(!(SPSR&(1<<SPIF))); //等待通讯完成
01D0 ; PortBuffer[i] = SPDR; //读回的数据返写回端口缓冲区
01D0 ; }
01D0 ;
01D0 ; SS_High; //模拟#SS的上跳沿
01D0 2A9A sbi 0x5,2
01D2 .dbline -2
01D2 L42:
01D2 .dbline 0 ; func end
01D2 0895 ret
01D4 .dbsym r i 16 c
01D4 .dbend
.area bss(ram, con, rel)
0001 .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\KeyDis_Drv.c
0001 _KeyBuffer::
0001 .blkb 1
0002 .dbsym e KeyBuffer _KeyBuffer c
0002 _LEDDisBuffer::
0002 .blkb 8
000A .dbsym e LEDDisBuffer _LEDDisBuffer A[8:8]c
000A _PortBuffer::
000A .blkb 3
000D .dbsym e PortBuffer _PortBuffer A[3:3]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -