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

📄 jianpan.lis

📁 实现3*3 键盘的控制。从而实现用键盘来对单片机进行控制。
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0188                   .dbline 200
 0188           ;  UCSRB = 0x18;
 0188 88E1              ldi R24,24
 018A 8AB9              out 0xa,R24
 018C                   .dbline -2
 018C                   .dbline 201
 018C           ; }
 018C           L42:
 018C                   .dbline 0 ; func end
 018C 0895              ret
 018E                   .dbend
 018E                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 018E           _watchdog_init::
 018E                   .dbline -1
 018E                   .dbline 206
 018E           ; 
 018E           ; //Watchdog initialisation
 018E           ; // prescale: 32K cycles
 018E           ; void watchdog_init(void)
 018E           ; {
 018E                   .dbline 207
 018E           ;  WDR(); //this prevents a timout on enabling
 018E A895              wdr
 0190                   .dbline 208
 0190           ;  WDTCR = 0x0A; //WATCHDOG ENABLED - dont forget to issue WDRs
 0190 8AE0              ldi R24,10
 0192 81BD              out 0x21,R24
 0194                   .dbline -2
 0194                   .dbline 209
 0194           ; }
 0194           L43:
 0194                   .dbline 0 ; func end
 0194 0895              ret
 0196                   .dbend
 0196                   .dbfunc e init_devices _init_devices fV
                        .even
 0196           _init_devices::
 0196                   .dbline -1
 0196                   .dbline 213
 0196           ; 
 0196           ; //call this routine to initialise all peripherals
 0196           ; void init_devices(void)
 0196           ; {
 0196                   .dbline 215
 0196           ;  //stop errant interrupts until set up
 0196           ;  CLI(); //disable all interrupts
 0196 F894              cli
 0198                   .dbline 216
 0198           ;  port_init();
 0198 BADF              xcall _port_init
 019A                   .dbline 217
 019A           ;  timer0_init(); 
 019A C8DF              xcall _timer0_init
 019C                   .dbline 218
 019C           ;  uart0_init();
 019C EDDF              xcall _uart0_init
 019E                   .dbline 221
 019E           ;  //watchdog_init();
 019E           ;  
 019E           ;  MCUCR = 0x00;
 019E 2224              clr R2
 01A0 25BE              out 0x35,R2
 01A2                   .dbline 222
 01A2           ;  GICR  = 0x00;
 01A2 2BBE              out 0x3b,R2
 01A4                   .dbline 223
 01A4           ;  TIMSK = 0x01; //timer interrupt sources
 01A4 81E0              ldi R24,1
 01A6 89BF              out 0x39,R24
 01A8                   .dbline 224
 01A8           ;  SEI(); //re-enable interrupts
 01A8 7894              sei
 01AA                   .dbline -2
 01AA                   .dbline 226
 01AA           ;  //all peripherals are now initialised
 01AA           ; }
 01AA           L44:
 01AA                   .dbline 0 ; func end
 01AA 0895              ret
 01AC                   .dbend
 01AC                   .dbfunc e display _display fV
 01AC           ;            tmp -> R20,R21
                        .even
 01AC           _display::
 01AC 0E940000          xcall push_gset2
 01B0                   .dbline -1
 01B0                   .dbline 229
 01B0           ; //显示
 01B0           ; void display( void )
 01B0           ; {
 01B0                   .dbline 231
 01B0           ;       uint tmp;
 01B0           ;       send( 7, mode );
 01B0 20910800          lds R18,_mode
 01B4 07E0              ldi R16,7
 01B6 34DF              xcall _send
 01B8                   .dbline 232
 01B8           ;       tmp=numL;
 01B8                   .dbline 233
 01B8           ;       switch( NumBitL )
 01B8 40910500          lds R20,_numL
 01BC 50910600          lds R21,_numL+1
 01C0 60910900          lds R22,_NumBitL
 01C4 7727              clr R23
 01C6 6130              cpi R22,1
 01C8 E0E0              ldi R30,0
 01CA 7E07              cpc R23,R30
 01CC 09F4              brne X3
 01CE D1C0              xjmp L53
 01D0           X3:
 01D0 6230              cpi R22,2
 01D2 E0E0              ldi R30,0
 01D4 7E07              cpc R23,R30
 01D6 09F4              brne X4
 01D8 AEC0              xjmp L52
 01DA           X4:
 01DA 6330              cpi R22,3
 01DC E0E0              ldi R30,0
 01DE 7E07              cpc R23,R30
 01E0 09F4              brne X5
 01E2 7DC0              xjmp L51
 01E4           X5:
 01E4 6430              cpi R22,4
 01E6 E0E0              ldi R30,0
 01E8 7E07              cpc R23,R30
 01EA 09F4              brne X6
 01EC 45C0              xjmp L50
 01EE           X6:
 01EE 6530              cpi R22,5
 01F0 E0E0              ldi R30,0
 01F2 7E07              cpc R23,R30
 01F4 09F0              breq L49
 01F6 CCC0              xjmp L46
 01F8           X1:
 01F8                   .dbline 234
 01F8           ;       {
 01F8           L49:
 01F8                   .dbline 235
 01F8           ;               case 5: send( 0, tmp % 10 );
 01F8 2AE0              ldi R18,10
 01FA 30E0              ldi R19,0
 01FC 8A01              movw R16,R20
 01FE 0E940000          xcall mod16u
 0202 202F              mov R18,R16
 0204 0027              clr R16
 0206 0CDF              xcall _send
 0208                   .dbline 236
 0208           ;                       tmp=tmp/10;
 0208                   .dbline 237
 0208           ;                       send( 1, tmp% 10 );
 0208 2AE0              ldi R18,10
 020A 30E0              ldi R19,0
 020C 8A01              movw R16,R20
 020E 0E940000          xcall div16u
 0212 A801              movw R20,R16
 0214 2AE0              ldi R18,10
 0216 30E0              ldi R19,0
 0218 0E940000          xcall mod16u
 021C 202F              mov R18,R16
 021E 01E0              ldi R16,1
 0220 FFDE              xcall _send
 0222                   .dbline 238
 0222           ;                       tmp=tmp/10;
 0222                   .dbline 239
 0222           ;                       send( 2, tmp % 10 );
 0222 2AE0              ldi R18,10
 0224 30E0              ldi R19,0
 0226 8A01              movw R16,R20
 0228 0E940000          xcall div16u
 022C A801              movw R20,R16
 022E 2AE0              ldi R18,10
 0230 30E0              ldi R19,0
 0232 0E940000          xcall mod16u
 0236 202F              mov R18,R16
 0238 02E0              ldi R16,2
 023A F2DE              xcall _send
 023C                   .dbline 240
 023C           ;                       tmp=tmp/10;
 023C                   .dbline 241
 023C           ;                       send( 3, tmp % 10 );
 023C 2AE0              ldi R18,10
 023E 30E0              ldi R19,0
 0240 8A01              movw R16,R20
 0242 0E940000          xcall div16u
 0246 A801              movw R20,R16
 0248 2AE0              ldi R18,10
 024A 30E0              ldi R19,0
 024C 0E940000          xcall mod16u
 0250 202F              mov R18,R16
 0252 03E0              ldi R16,3
 0254 E5DE              xcall _send
 0256                   .dbline 242
 0256           ;                       tmp=tmp/10;
 0256                   .dbline 243
 0256           ;                       send( 4, tmp % 10 );
 0256 2AE0              ldi R18,10
 0258 30E0              ldi R19,0
 025A 8A01              movw R16,R20
 025C 0E940000          xcall div16u
 0260 A801              movw R20,R16
 0262 2AE0              ldi R18,10
 0264 30E0              ldi R19,0
 0266 0E940000          xcall mod16u
 026A 202F              mov R18,R16
 026C 04E0              ldi R16,4
 026E D8DE              xcall _send
 0270                   .dbline 244
 0270           ;                       delay(1);
 0270 01E0              ldi R16,1
 0272 10E0              ldi R17,0
 0274 C5DE              xcall _delay
 0276                   .dbline 245
 0276           ;                       break;
 0276 8FC0              xjmp L47
 0278           L50:
 0278                   .dbline 246
 0278           ;               case 4:send( 0, tmp % 10 );
 0278 2AE0              ldi R18,10
 027A 30E0              ldi R19,0
 027C 8A01              movw R16,R20
 027E 0E940000          xcall mod16u
 0282 202F              mov R18,R16
 0284 0027              clr R16
 0286 CCDE              xcall _send
 0288                   .dbline 247
 0288           ;                       tmp=tmp/10;
 0288                   .dbline 248
 0288           ;                       send( 1, tmp% 10 );
 0288 2AE0              ldi R18,10
 028A 30E0              ldi R19,0
 028C 8A01              movw R16,R20
 028E 0E940000          xcall div16u
 0292 A801              movw R20,R16
 0294 2AE0              ldi R18,10
 0296 30E0              ldi R19,0
 0298 0E940000          xcall mod16u
 029C 202F              mov R18,R16
 029E 01E0              ldi R16,1
 02A0 BFDE              xcall _send
 02A2                   .dbline 249
 02A2           ;                       tmp/=10;
 02A2                   .dbline 250
 02A2           ;                       send( 2, tmp % 10 );
 02A2 2AE0              ldi R18,10
 02A4 30E0              ldi R19,0
 02A6 8A01              movw R16,R20
 02A8 0E940000          xcall div16u
 02AC A801              movw R20,R16
 02AE 2AE0              ldi R18,10
 02B0 30E0              ldi R19,0
 02B2 0E940000          xcall mod16u
 02B6 202F              mov R18,R16
 02B8 02E0              ldi R16,2
 02BA B2DE              xcall _send
 02BC                   .dbline 251
 02BC           ;                       tmp/=10;
 02BC                   .dbline 252
 02BC           ;                       send( 3, tmp % 10 );
 02BC 2AE0              ldi R18,10
 02BE 30E0              ldi R19,0
 02C0 8A01              movw R16,R20
 02C2 0E940000          xcall div16u
 02C6 A801              movw R20,R16
 02C8 2AE0              ldi R18,10
 02CA 30E0              ldi R19,0
 02CC 0E940000          xcall mod16u
 02D0 202F              mov R18,R16
 02D2 03E0              ldi R16,3
 02D4 A5DE              xcall _send
 02D6                   .dbline 253
 02D6           ;                       delay(1);
 02D6 01E0              ldi R16,1
 02D8 10E0              ldi R17,0
 02DA 92DE              xcall _delay
 02DC                   .dbline 254
 02DC           ;                       break;
 02DC 5CC0              xjmp L47
 02DE           L51:
 02DE                   .dbline 255
 02DE           ;               case 3: send( 0, numL % 10 );
 02DE 2AE0              ldi R18,10
 02E0 30E0              ldi R19,0
 02E2 00910500          lds R16,_numL
 02E6 10910600          lds R17,_numL+1
 02EA 0E940000          xcall mod16u
 02EE 202F              mov R18,R16
 02F0 0027              clr R16
 02F2 96DE              xcall _send
 02F4                   .dbline 256
 02F4           ;                       tmp=numL/10;
 02F4                   .dbline 257
 02F4           ;                       send( 1, tmp% 10 );
 02F4 2AE0              ldi R18,10
 02F6 30E0              ldi R19,0
 02F8 00910500          lds R16,_numL
 02FC 10910600          lds R17,_numL+1
 0300 0E940000          xcall div16u
 0304 A801              movw R20,R16
 0306 2AE0              ldi R18,10
 0308 30E0              ldi R19,0
 030A 0E940000          xcall mod16u
 030E 202F              mov R18,R16
 0310 01E0              ldi R16,1
 0312 86DE              xcall _send
 0314                   .dbline 258
 0314           ;                       tmp/=10;
 0314                   .dbline 259
 0314           ;                       send( 2, tmp % 10 );
 0314 2AE0              ldi R18,10
 0316 30E0              ldi R19,0
 0318 8A01              movw R16,R20
 031A 0E940000          xcall div16u
 031E A801              movw R20,R16
 0320 2AE0              ldi R18,10
 0322 30E0              ldi R19,0
 0324 0E940000          xcall mod16u
 0328 202F              mov R18,R16
 032A 02E0              ldi R16,2
 032C 79DE              xcall _send
 032E                   .dbline 260
 032E           ;                       delay(1);
 032E 01E0              ldi R16,1
 0330 10E0              ldi R17,0
 0332 66DE              xcall _delay
 0334                   .dbline 261
 0334           ;                       break;          
 0334 30C0              xjmp L47
 0336           L52:
 0336                   .dbline 262
 0336           ;               case 2: send( 0, numL% 10 );
 0336 2AE0              ldi R18,10
 0338 30E0              ldi R19,0
 033A 00910500          lds R16,_numL
 033E 10910600          lds R17,_numL+1
 0342 0E940000          xcall mod16u
 0346 202F              mov R18,R16
 0348 0027              clr R16
 034A 6ADE              xcall _send
 034C                   .dbline 263

⌨️ 快捷键说明

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