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

📄 key.lis

📁 基于ATmega64的MP3程序
💻 LIS
字号:
                        .module key.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\TDDownload\MP3BOA~1.8\key.c
 0000                   .dbfunc e key_init _key_init fV
                        .even
 0000           _key_init::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; //ICC-AVR application builder : 2005-11-12 17:11:59
 0000           ; // Target : M16
 0000           ; // Crystal: 8.0000Mhz
 0000           ; // copyright:鲁军波(endylu)
 0000           ; // www.shop34612283.taobao.com
 0000           ; // www.adembed.com
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "main.h"
 0000           ; 
 0000           ; uint8 key_state;
 0000           ; extern uint8 key_value;
 0000           ; 
 0000           ; //=======================================================================
 0000           ; void key_init(void)
 0000           ; {
 0000                   .dbline 17
 0000           ;  key_ddr&=~all_key;
 0000 81B3              in R24,0x11
 0002 8770              andi R24,7
 0004 81BB              out 0x11,R24
 0006                   .dbline 18
 0006           ;  key_port|=all_key;
 0006 82B3              in R24,0x12
 0008 886F              ori R24,248
 000A 82BB              out 0x12,R24
 000C                   .dbline 21
 000C           ; 
 000C           ;  //t/c0初始化
 000C           ;  TCCR0=0X0D;
 000C 8DE0              ldi R24,13
 000E 83BF              out 0x33,R24
 0010                   .dbline 22
 0010           ;  TCNT0=0X00;
 0010 2224              clr R2
 0012 22BE              out 0x32,R2
 0014                   .dbline 23
 0014           ;  OCR0=0XF0;         //定时30ms
 0014 80EF              ldi R24,240
 0016 8CBF              out 0x3c,R24
 0018                   .dbline 24
 0018           ;  TIMSK|=0X02;
 0018 89B7              in R24,0x39
 001A 8260              ori R24,2
 001C 89BF              out 0x39,R24
 001E                   .dbline -2
 001E           L1:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbend
 0020                   .dbfunc e read_keyboard _read_keyboard fV
                        .even
 0020           _read_keyboard::
 0020                   .dbline -1
 0020                   .dbline 30
 0020           ;  
 0020           ; }
 0020           ; 
 0020           ; //=======================================================================
 0020           ; void read_keyboard(void)
 0020           ; {
 0020                   .dbline 31
 0020           ;  switch(key_state)
 0020 00910000          lds R16,_key_state
 0024 1127              clr R17
 0026 0030              cpi R16,0
 0028 0107              cpc R16,R17
 002A 49F0              breq L6
 002C           X0:
 002C 0130              cpi R16,1
 002E E0E0              ldi R30,0
 0030 1E07              cpc R17,R30
 0032 79F0              breq L9
 0034 0230              cpi R16,2
 0036 E0E0              ldi R30,0
 0038 1E07              cpc R17,R30
 003A F9F0              breq L12
 003C 25C0              xjmp L3
 003E           X1:
 003E                   .dbline 32
 003E           ;  {
 003E           L6:
 003E                   .dbline 34
 003E           ;   case 0:
 003E           ;          if((key_pin&all_key)!=all_key)
 003E 80B3              in R24,0x10
 0040 887F              andi R24,248
 0042 883F              cpi R24,248
 0044 09F1              breq L4
 0046                   .dbline 35
 0046           ;                   key_state++;
 0046 80910000          lds R24,_key_state
 004A 8F5F              subi R24,255    ; addi 1
 004C 80930000          sts _key_state,R24
 0050                   .dbline 36
 0050           ;                break;
 0050 1BC0              xjmp L4
 0052           L9:
 0052                   .dbline 38
 0052           ;   case 1:
 0052           ;          if((key_pin&all_key)!=all_key)
 0052 80B3              in R24,0x10
 0054 887F              andi R24,248
 0056 883F              cpi R24,248
 0058 51F0              breq L10
 005A                   .dbline 39
 005A           ;                   {
 005A                   .dbline 40
 005A           ;                        key_state++;
 005A 80910000          lds R24,_key_state
 005E 8F5F              subi R24,255    ; addi 1
 0060 80930000          sts _key_state,R24
 0064                   .dbline 41
 0064           ;                        key_value=key_pin&all_key;
 0064 80B3              in R24,0x10
 0066 887F              andi R24,248
 0068 80930000          sts _key_value,R24
 006C                   .dbline 42
 006C           ;                       }
 006C 0DC0              xjmp L4
 006E           L10:
 006E                   .dbline 43
 006E           ;                else key_state--;
 006E 80910000          lds R24,_key_state
 0072 8150              subi R24,1
 0074 80930000          sts _key_state,R24
 0078                   .dbline 44
 0078           ;                break;
 0078 07C0              xjmp L4
 007A           L12:
 007A                   .dbline 46
 007A           ;   case 2:
 007A           ;          if((key_pin&all_key)==all_key)
 007A 80B3              in R24,0x10
 007C 887F              andi R24,248
 007E 883F              cpi R24,248
 0080 19F4              brne L4
 0082                   .dbline 47
 0082           ;                   {key_state=0;
 0082                   .dbline 47
 0082 2224              clr R2
 0084 20920000          sts _key_state,R2
 0088                   .dbline 48
 0088           ;                       }
 0088                   .dbline 49
 0088           ;                break;
 0088           L3:
 0088           L4:
 0088                   .dbline -2
 0088           L2:
 0088                   .dbline 0 ; func end
 0088 0895              ret
 008A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\TDDownload\MP3BOA~1.8\key.c
 0000           _key_state::
 0000                   .blkb 1
 0001                   .dbsym e key_state _key_state c

⌨️ 快捷键说明

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