📄 misc.lis
字号:
0088 E0E0 ldi R30,0
008A 9E07 cpc R25,R30
008C 49F4 brne L21
008E .dbline 140
008E ; {
008E .dbline 141
008E ; if((PINB & (1 << cKey2)) == 0) //Key Pressed
008E B599 sbic 0x16,5
0090 1AC0 rjmp L22
0092 .dbline 142
0092 ; {
0092 .dbline 143
0092 ; wKeyStatus = 0;
0092 2224 clr R2
0094 3324 clr R3
0096 30920500 sts L20+1,R3
009A 20920400 sts L20,R2
009E .dbline 144
009E ; }
009E .dbline 145
009E ; }
009E 13C0 xjmp L22
00A0 L21:
00A0 .dbline 146
00A0 ; else if(wKeyStatus == 0)
00A0 20900400 lds R2,L20
00A4 30900500 lds R3,L20+1
00A8 2220 tst R2
00AA 69F4 brne L25
00AC 3320 tst R3
00AE 59F4 brne L25
00B0 X1:
00B0 .dbline 147
00B0 ; {
00B0 .dbline 148
00B0 ; if(PINB & (1 << cKey2)) //Key Released
00B0 B59B sbis 0x16,5
00B2 09C0 rjmp L27
00B4 .dbline 149
00B4 ; {
00B4 .dbline 150
00B4 ; wKeyStatus = 1;
00B4 81E0 ldi R24,1
00B6 90E0 ldi R25,0
00B8 90930500 sts L20+1,R25
00BC 80930400 sts L20,R24
00C0 .dbline 151
00C0 ; return(true);
00C0 01E0 ldi R16,1
00C2 10E0 ldi R17,0
00C4 02C0 xjmp L19
00C6 L27:
00C6 .dbline 153
00C6 ; }
00C6 ; }
00C6 L25:
00C6 L22:
00C6 .dbline 154
00C6 ; return(false);
00C6 0027 clr R16
00C8 1127 clr R17
00CA .dbline -2
00CA L19:
00CA .dbline 0 ; func end
00CA 0895 ret
00CC .dbend
.area data(ram, con, rel)
0006 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
0006 L30:
0006 .blkb 2
.area idata
0006 0100 .word 1
.area data(ram, con, rel)
0008 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
.area text(rom, con, rel)
00CC .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
00CC .dbfunc e swGet_KEY_DOWN _swGet_KEY_DOWN fi
00CC .dbsym s wKeyStatus L30 i
.even
00CC _swGet_KEY_DOWN::
00CC .dbline -1
00CC .dbline 164
00CC ; }
00CC ;
00CC ; //******************************************************************************
00CC ; // Function : swGet_Key3
00CC ; // Input : none
00CC ; // Output : true - Key3 active; false - Key3 - passitive
00CC ; // Description : Key3 Detection,rising edge active
00CC ; //******************************************************************************
00CC ; INT16U swGet_KEY_DOWN(void)
00CC ; {
00CC .dbline 166
00CC ; static INT16U wKeyStatus = 1;
00CC ; if(wKeyStatus == 1)
00CC 80910600 lds R24,L30
00D0 90910700 lds R25,L30+1
00D4 8130 cpi R24,1
00D6 E0E0 ldi R30,0
00D8 9E07 cpc R25,R30
00DA 49F4 brne L31
00DC .dbline 167
00DC ; {
00DC .dbline 168
00DC ; if((PINB & (1 << cKey3)) == 0) //Key Pressed
00DC B699 sbic 0x16,6
00DE 1AC0 rjmp L32
00E0 .dbline 169
00E0 ; {
00E0 .dbline 170
00E0 ; wKeyStatus = 0;
00E0 2224 clr R2
00E2 3324 clr R3
00E4 30920700 sts L30+1,R3
00E8 20920600 sts L30,R2
00EC .dbline 171
00EC ; }
00EC .dbline 172
00EC ; }
00EC 13C0 xjmp L32
00EE L31:
00EE .dbline 173
00EE ; else if(wKeyStatus == 0)
00EE 20900600 lds R2,L30
00F2 30900700 lds R3,L30+1
00F6 2220 tst R2
00F8 69F4 brne L35
00FA 3320 tst R3
00FC 59F4 brne L35
00FE X2:
00FE .dbline 174
00FE ; {
00FE .dbline 175
00FE ; if(PINB & (1 << cKey3)) //Key Released
00FE B69B sbis 0x16,6
0100 09C0 rjmp L37
0102 .dbline 176
0102 ; {
0102 .dbline 177
0102 ; wKeyStatus = 1;
0102 81E0 ldi R24,1
0104 90E0 ldi R25,0
0106 90930700 sts L30+1,R25
010A 80930600 sts L30,R24
010E .dbline 178
010E ; return(true);
010E 01E0 ldi R16,1
0110 10E0 ldi R17,0
0112 02C0 xjmp L29
0114 L37:
0114 .dbline 180
0114 ; }
0114 ; }
0114 L35:
0114 L32:
0114 .dbline 181
0114 ; return(false);
0114 0027 clr R16
0116 1127 clr R17
0118 .dbline -2
0118 L29:
0118 .dbline 0 ; func end
0118 0895 ret
011A .dbend
.area data(ram, con, rel)
0008 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
0008 L40:
0008 .blkb 2
.area idata
0008 0100 .word 1
.area data(ram, con, rel)
000A .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
.area text(rom, con, rel)
011A .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\misc.c
011A .dbfunc e swGet_KEY_ENTER _swGet_KEY_ENTER fi
011A .dbsym s wKeyStatus L40 i
.even
011A _swGet_KEY_ENTER::
011A .dbline -1
011A .dbline 191
011A ; }
011A ;
011A ; //******************************************************************************
011A ; // Function : swGet_Key4
011A ; // Input : none
011A ; // Output : true - Key4 active; false - Key4 - passitive
011A ; // Description : Key4 Detection,rising edge active
011A ; //******************************************************************************
011A ; INT16U swGet_KEY_ENTER(void)
011A ; {
011A .dbline 193
011A ; static INT16U wKeyStatus = 1;
011A ; if(wKeyStatus == 1)
011A 80910800 lds R24,L40
011E 90910900 lds R25,L40+1
0122 8130 cpi R24,1
0124 E0E0 ldi R30,0
0126 9E07 cpc R25,R30
0128 49F4 brne L41
012A .dbline 194
012A ; {
012A .dbline 195
012A ; if((PINB & (1 << cKey4)) == 0) //Key Pressed
012A B799 sbic 0x16,7
012C 1AC0 rjmp L42
012E .dbline 196
012E ; {
012E .dbline 197
012E ; wKeyStatus = 0;
012E 2224 clr R2
0130 3324 clr R3
0132 30920900 sts L40+1,R3
0136 20920800 sts L40,R2
013A .dbline 198
013A ; }
013A .dbline 199
013A ; }
013A 13C0 xjmp L42
013C L41:
013C .dbline 200
013C ; else if(wKeyStatus == 0)
013C 20900800 lds R2,L40
0140 30900900 lds R3,L40+1
0144 2220 tst R2
0146 69F4 brne L45
0148 3320 tst R3
014A 59F4 brne L45
014C X3:
014C .dbline 201
014C ; {
014C .dbline 202
014C ; if(PINB & (1 << cKey4)) //Key Released
014C B79B sbis 0x16,7
014E 09C0 rjmp L47
0150 .dbline 203
0150 ; {
0150 .dbline 204
0150 ; wKeyStatus = 1;
0150 81E0 ldi R24,1
0152 90E0 ldi R25,0
0154 90930900 sts L40+1,R25
0158 80930800 sts L40,R24
015C .dbline 205
015C ; return(true);
015C 01E0 ldi R16,1
015E 10E0 ldi R17,0
0160 02C0 xjmp L39
0162 L47:
0162 .dbline 207
0162 ; }
0162 ; }
0162 L45:
0162 L42:
0162 .dbline 208
0162 ; return(false);
0162 0027 clr R16
0164 1127 clr R17
0166 .dbline -2
0166 L39:
0166 .dbline 0 ; func end
0166 0895 ret
0168 .dbend
0168 .dbfunc e Key_Detection _Key_Detection fV
.even
0168 _Key_Detection::
0168 .dbline -1
0168 .dbline 218
0168 ; }
0168 ;
0168 ; //******************************************************************************
0168 ; // Function : Key_Detection
0168 ; // Input : none
0168 ; // Output : none
0168 ; // Description : Keys Detection.if active,send Key Event to task
0168 ; //******************************************************************************
0168 ; void Key_Detection(void)
0168 ; {
0168 .dbline 219
0168 ; if(swGet_KEY_ESC()==true)
0168 63DF xcall _swGet_KEY_ESC
016A 0130 cpi R16,1
016C E0E0 ldi R30,0
016E 1E07 cpc R17,R30
0170 29F4 brne L50
0172 .dbline 220
0172 ; {
0172 .dbline 221
0172 ; OS_Event_Post(cPrioLCD,eLCDKeyEsc);
0172 21E0 ldi R18,1
0174 30E0 ldi R19,0
0176 0027 clr R16
0178 0E940000 xcall _OS_Event_Post
017C .dbline 222
017C ; }
017C L50:
017C .dbline 223
017C ; if(swGet_KEY_UP()==true)
017C 80DF xcall _swGet_KEY_UP
017E 0130 cpi R16,1
0180 E0E0 ldi R30,0
0182 1E07 cpc R17,R30
0184 29F4 brne L52
0186 .dbline 224
0186 ; {
0186 .dbline 225
0186 ; OS_Event_Post(cPrioLCD,eLCDKeyUp);
0186 22E0 ldi R18,2
0188 30E0 ldi R19,0
018A 0027 clr R16
018C 0E940000 xcall _OS_Event_Post
0190 .dbline 226
0190 ; }
0190 L52:
0190 .dbline 227
0190 ; if(swGet_KEY_DOWN()==true)
0190 9DDF xcall _swGet_KEY_DOWN
0192 0130 cpi R16,1
0194 E0E0 ldi R30,0
0196 1E07 cpc R17,R30
0198 29F4 brne L54
019A .dbline 228
019A ; {
019A .dbline 229
019A ; OS_Event_Post(cPrioLCD,eLCDKeyDown);
019A 23E0 ldi R18,3
019C 30E0 ldi R19,0
019E 0027 clr R16
01A0 0E940000 xcall _OS_Event_Post
01A4 .dbline 230
01A4 ; }
01A4 L54:
01A4 .dbline 231
01A4 BADF xcall _swGet_KEY_ENTER
01A6 0130 cpi R16,1
01A8 E0E0 ldi R30,0
01AA 1E07 cpc R17,R30
01AC 29F4 brne L56
01AE .dbline 232
01AE .dbline 233
01AE 24E0 ldi R18,4
01B0 30E0 ldi R19,0
01B2 0027 clr R16
01B4 0E940000 xcall _OS_Event_Post
01B8 .dbline 234
01B8 L56:
01B8 .dbline -2
01B8 .dbline 235
01B8 ; if(swGet_KEY_ENTER()==true)
01B8 ; {
01B8 ; OS_Event_Post(cPrioLCD,eLCDKeyEnter);
01B8 ; }
01B8 ; }
01B8 L49:
01B8 .dbline 0 ; func end
01B8 0895 ret
01BA .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -