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

📄 ad_key.lis

📁 M16-Mp3.rar
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module AD_key.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\..\DOCUME~1\浪仔\桌面\教学实验板\M16_VS1003_test\AD_key.c
                        .area vector(rom, abs)
                        .org 56
 0038 0C940000          jmp _AD_handler
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\..\DOCUME~1\浪仔\桌面\教学实验板\M16_VS1003_test\AD_key.c
                        .area vector(rom, abs)
                        .org 36
 0024 0C94AE00          jmp _TC0_handler
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\..\DOCUME~1\浪仔\桌面\教学实验板\M16_VS1003_test\AD_key.c
 0000                   .dbfile C:\DOCUME~1\浪仔\桌面\教学实验板\M16_VS1003_test\AD_key.c
 0000                   .dbfunc e AD_handler _AD_handler fV
                        .even
 0000           _AD_handler::
 0000 2A92              st -y,R2
 0002 3A92              st -y,R3
 0004 4A92              st -y,R4
 0006 5A92              st -y,R5
 0008 0A93              st -y,R16
 000A 8A93              st -y,R24
 000C 9A93              st -y,R25
 000E 2FB6              IN R2,63
 0010 2A92              st -y,R2
 0012                   .dbline -1
 0012                   .dbline 26
 0012           ; 
 0012           ; 
 0012           ; //---------------------------- AD键盘驱动程序 ----------------------------
 0012           ; //
 0012           ; //简易AD键盘驱动程序
 0012           ; //代码作者:廖华明(师兄)
 0012           ; //时间:2009.7.8
 0012           ; //
 0012           ; //------------------------------------------------------------------------
 0012           ; 
 0012           ; #include "AD_key.h"
 0012           ; 
 0012           ; //---------全局变量定义----------//
 0012           ; uint8 AD_data,AD_data1,AD_data2;
 0012           ; uint8 tmp;
 0012           ; uint8 AD_Flag,AD_time;
 0012           ; uint8 key_num;
 0012           ; 
 0012           ; 
 0012           ; //-------------------------------//
 0012           ; //
 0012           ; //        AD中断处理函数
 0012           ; //
 0012           ; //-------------------------------//
 0012           ; void AD_handler(void) 
 0012           ; { 
 0012                   .dbline 27
 0012           ;   AD_data=ADCH; 
 0012 25B0              in R2,0x5
 0014 20920600          sts _AD_data,R2
 0018                   .dbline 29
 0018           ;   
 0018           ;   if(AD_data>=0xF0)
 0018 822D              mov R24,R2
 001A 803F              cpi R24,240
 001C 30F0              brlo L2
 001E           X0:
 001E                   .dbline 30
 001E           ;   {
 001E                   .dbline 31
 001E           ;     AD_Flag=0;
 001E 2224              clr R2
 0020 20920300          sts _AD_Flag,R2
 0024                   .dbline 32
 0024           ;       AD_time=0;
 0024 20920200          sts _AD_time,R2
 0028                   .dbline 33
 0028           ;   }
 0028 81C0              xjmp L3
 002A           L2:
 002A                   .dbline 34
 002A           ;   else if(AD_Flag==0)
 002A 20900300          lds R2,_AD_Flag
 002E 2220              tst R2
 0030 09F0              breq X18
 0032 7CC0              xjmp L4
 0034           X18:
 0034           X1:
 0034                   .dbline 35
 0034           ;   {
 0034                   .dbline 36
 0034           ;     AD_time++;
 0034 80910200          lds R24,_AD_time
 0038 8F5F              subi R24,255    ; addi 1
 003A 80930200          sts _AD_time,R24
 003E                   .dbline 37
 003E           ;       if(AD_time==3)
 003E 8330              cpi R24,3
 0040 09F0              breq X19
 0042 63C0              xjmp L6
 0044           X19:
 0044           X2:
 0044                   .dbline 38
 0044           ;       {
 0044                   .dbline 39
 0044           ;          if(AD_data1>AD_data2) tmp = AD_data2;
 0044 20900400          lds R2,_AD_data2
 0048 3324              clr R3
 004A 40900500          lds R4,_AD_data1
 004E 5524              clr R5
 0050 2414              cp R2,R4
 0052 3504              cpc R3,R5
 0054 1CF4              brge L8
 0056           X3:
 0056                   .dbline 39
 0056 20920100          sts _tmp,R2
 005A 04C0              xjmp L9
 005C           L8:
 005C                   .dbline 40
 005C           ;          else tmp = AD_data1;
 005C 20900500          lds R2,_AD_data1
 0060 20920100          sts _tmp,R2
 0064           L9:
 0064                   .dbline 41
 0064           ;          if(tmp>AD_data) tmp = AD_data;
 0064 20900600          lds R2,_AD_data
 0068 3324              clr R3
 006A 40900100          lds R4,_tmp
 006E 5524              clr R5
 0070 2414              cp R2,R4
 0072 3504              cpc R3,R5
 0074 14F4              brge L10
 0076           X4:
 0076                   .dbline 41
 0076 20920100          sts _tmp,R2
 007A           L10:
 007A                   .dbline 43
 007A           ;          
 007A           ;          if(tmp<0x0F) key_num = 1;
 007A 80910100          lds R24,_tmp
 007E 8F30              cpi R24,15
 0080 20F4              brsh L12
 0082           X5:
 0082                   .dbline 43
 0082 81E0              ldi R24,1
 0084 80930000          sts _key_num,R24
 0088 3CC0              xjmp L13
 008A           L12:
 008A                   .dbline 44
 008A           ;          else if(tmp>0x7C&&tmp<0x8F)key_num=2;
 008A 20900100          lds R2,_tmp
 008E 8CE7              ldi R24,124
 0090 8215              cp R24,R2
 0092 38F4              brsh L14
 0094           X6:
 0094 822D              mov R24,R2
 0096 8F38              cpi R24,143
 0098 20F4              brsh L14
 009A           X7:
 009A                   .dbline 44
 009A 82E0              ldi R24,2
 009C 80930000          sts _key_num,R24
 00A0 30C0              xjmp L15
 00A2           L14:
 00A2                   .dbline 45
 00A2           ;          else if(tmp>0xBC&&tmp<0xCA)key_num=3;
 00A2 20900100          lds R2,_tmp
 00A6 8CEB              ldi R24,188
 00A8 8215              cp R24,R2
 00AA 38F4              brsh L16
 00AC           X8:
 00AC 822D              mov R24,R2
 00AE 8A3C              cpi R24,202
 00B0 20F4              brsh L16
 00B2           X9:
 00B2                   .dbline 45
 00B2 83E0              ldi R24,3
 00B4 80930000          sts _key_num,R24
 00B8 24C0              xjmp L17
 00BA           L16:
 00BA                   .dbline 46
 00BA           ;          else if(tmp>0xA8&&tmp<0xBC)key_num=4;
 00BA 00910100          lds R16,_tmp
 00BE 88EA              ldi R24,168
 00C0 8017              cp R24,R16
 00C2 30F4              brsh L18
 00C4           X10:
 00C4 0C3B              cpi R16,188
 00C6 20F4              brsh L18
 00C8           X11:
 00C8                   .dbline 46
 00C8 84E0              ldi R24,4
 00CA 80930000          sts _key_num,R24
 00CE 19C0              xjmp L19
 00D0           L18:
 00D0                   .dbline 47
 00D0           ;          else if(tmp>0xD2&&tmp<0xDF)key_num=5;
 00D0 00910100          lds R16,_tmp
 00D4 82ED              ldi R24,210
 00D6 8017              cp R24,R16
 00D8 30F4              brsh L20
 00DA           X12:
 00DA 0F3D              cpi R16,223
 00DC 20F4              brsh L20
 00DE           X13:
 00DE                   .dbline 47
 00DE 85E0              ldi R24,5
 00E0 80930000          sts _key_num,R24
 00E4 0EC0              xjmp L21
 00E6           L20:
 00E6                   .dbline 48
 00E6           ;          else if(tmp>0xC9&&tmp<0xD3)key_num=6;
 00E6 00910100          lds R16,_tmp

⌨️ 快捷键说明

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