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

📄 misc.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -