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

📄 key.lis

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LIS
字号:
                        .module key.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\abol\file\EMD\programme\key.c
 0000                   .dbfunc e key_1 _key_1 fc
 0000           ;          ktime -> R20
                        .even
 0000           _key_1::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 17
 0002           ; /********************************************************/
 0002           ; /*                            ABOL                                                            */
 0002           ; /*                868MHZ数码管显示接收器                              */
 0002           ; /*     作者:于朝晖     2008-5-24 9:30:00                              */
 0002           ; /*     目标MCU:MEGA16  晶振:INT RC 8MHZ                               */
 0002           ; /* 文件名称:key.c            键盘(按键)                            */
 0002           ; /* 编译:ICC-AVR application builder                                  */
 0002           ; /* 当前版本: 1.0                                                                             */
 0002           ; /* 修改日期: 2008.5.24                                                                               */
 0002           ; /********************************************************/
 0002           ; #include <iom88v.h> 
 0002           ; #include <macros.h>
 0002           ; #include "init.h"
 0002           ; #include "delay.h"
 0002           ; 
 0002           ; unsigned char key_1(void)                      //判键盘是否活动函数
 0002           ; { 
 0002                   .dbline 18
 0002           ;   unsigned char ktime=0;    
 0002 4427              clr R20
 0004                   .dbline 19
 0004           ;   if((PIND&0x80)==0)
 0004 4F99              sbic 0x9,7
 0006 14C0              rjmp L2
 0008                   .dbline 20
 0008           ;   {//8
 0008                   .dbline 21
 0008           ;   delay(50);
 0008 02E3              ldi R16,50
 000A 10E0              ldi R17,0
 000C 00D0              rcall _delay
 000E                   .dbline 22
 000E           ;   if((PIND&0x80)==0)
 000E 4F99              sbic 0x9,7
 0010 0FC0              rjmp L4
 0012                   .dbline 23
 0012           ;     {
 0012 0AC0              rjmp L7
 0014           L6:
 0014                   .dbline 25
 0014           ;               while(!(PIND&0x80)) 
 0014           ;               {
 0014                   .dbline 26
 0014           ;               WDR();
 0014 A895              wdr
 0016                   .dbline 27
 0016           ;               delay(100); 
 0016 04E6              ldi R16,100
 0018 10E0              ldi R17,0
 001A 00D0              rcall _delay
 001C                   .dbline 28
 001C           ;               ktime++;         
 001C 4395              inc R20
 001E                   .dbline 29
 001E           ;                       if(ktime>20)
 001E 84E1              ldi R24,20
 0020 8417              cp R24,R20
 0022 10F4              brsh L9
 0024                   .dbline 30
 0024           ;                   {
 0024                   .dbline 31
 0024           ;                       return 2;
 0024 02E0              ldi R16,2
 0026 05C0              rjmp L1
 0028           L9:
 0028                   .dbline 33
 0028           L7:
 0028                   .dbline 24
 0028 4F9B              sbis 0x9,7
 002A F4CF              rjmp L6
 002C                   .dbline 34
 002C           ;                       } 
 002C           ;               } 
 002C           ;       return 1;
 002C 01E0              ldi R16,1
 002E 01C0              rjmp L1
 0030           L4:
 0030                   .dbline 36
 0030           ;        }
 0030           ;    }
 0030           L2:
 0030                   .dbline 37
 0030           ;        return 0;      
 0030 0027              clr R16
 0032                   .dbline -2
 0032           L1:
 0032 00D0              rcall pop_gset1
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r ktime 20 c
 0036                   .dbend
 0036                   .dbfunc e key_2 _key_2 fc
 0036           ;          ktime -> R20
                        .even
 0036           _key_2::
 0036 00D0              rcall push_gset1
 0038                   .dbline -1
 0038                   .dbline 42
 0038           ; 
 0038           ; }
 0038           ;  
 0038           ; unsigned char key_2(void)                      //判键盘是否活动函数
 0038           ; { 
 0038                   .dbline 43
 0038           ;   unsigned char ktime=0;   
 0038 4427              clr R20
 003A                   .dbline 44
 003A           ;   if((PIND&0x40)==0)
 003A 4E99              sbic 0x9,6
 003C 14C0              rjmp L12
 003E                   .dbline 45
 003E           ;   {//8
 003E                   .dbline 46
 003E           ;   delay(50);
 003E 02E3              ldi R16,50
 0040 10E0              ldi R17,0
 0042 00D0              rcall _delay
 0044                   .dbline 47
 0044           ;   if((PIND&0x40)==0)
 0044 4E99              sbic 0x9,6
 0046 0FC0              rjmp L14
 0048                   .dbline 48
 0048           ;     {
 0048 0AC0              rjmp L17
 004A           L16:
 004A                   .dbline 50
 004A           ;               while(!(PIND&0x40)) 
 004A           ;               {
 004A                   .dbline 51
 004A           ;               WDR();
 004A A895              wdr
 004C                   .dbline 52
 004C           ;               delay(100); 
 004C 04E6              ldi R16,100
 004E 10E0              ldi R17,0
 0050 00D0              rcall _delay
 0052                   .dbline 53
 0052           ;               ktime++;         
 0052 4395              inc R20
 0054                   .dbline 54
 0054           ;                       if(ktime>20)
 0054 84E1              ldi R24,20
 0056 8417              cp R24,R20
 0058 10F4              brsh L19
 005A                   .dbline 55
 005A           ;                   {
 005A                   .dbline 56
 005A           ;                       return 2;
 005A 02E0              ldi R16,2
 005C 05C0              rjmp L11
 005E           L19:
 005E                   .dbline 58
 005E           L17:
 005E                   .dbline 49
 005E 4E9B              sbis 0x9,6
 0060 F4CF              rjmp L16
 0062                   .dbline 59
 0062           ;                       } 
 0062           ;               } 
 0062           ;       return 1;
 0062 01E0              ldi R16,1
 0064 01C0              rjmp L11
 0066           L14:
 0066                   .dbline 61
 0066           ;        }
 0066           ;    }
 0066           L12:
 0066                   .dbline 62
 0066           ;        return 0;      
 0066 0027              clr R16
 0068                   .dbline -2
 0068           L11:
 0068 00D0              rcall pop_gset1
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r ktime 20 c
 006C                   .dbend
 006C                   .dbfunc e key_3 _key_3 fc
 006C           ;          ktime -> R20
                        .even
 006C           _key_3::
 006C 00D0              rcall push_gset1
 006E                   .dbline -1
 006E                   .dbline 66
 006E           ; 
 006E           ; }  
 006E           ; unsigned char key_3(void)                      //判键盘是否活动函数
 006E           ; { 
 006E                   .dbline 67
 006E           ;   unsigned char ktime=0;     
 006E 4427              clr R20
 0070                   .dbline 68
 0070           ;   if((PIND&0x20)==0)
 0070 4D99              sbic 0x9,5
 0072 14C0              rjmp L22
 0074                   .dbline 69
 0074           ;   {//8
 0074                   .dbline 70
 0074           ;   delay(50);
 0074 02E3              ldi R16,50
 0076 10E0              ldi R17,0
 0078 00D0              rcall _delay
 007A                   .dbline 71
 007A           ;   if((PIND&0x20)==0)
 007A 4D99              sbic 0x9,5
 007C 0FC0              rjmp L24
 007E                   .dbline 72
 007E           ;     {
 007E 0AC0              rjmp L27
 0080           L26:
 0080                   .dbline 74
 0080           ;               while(!(PIND&0x20)) 
 0080           ;               {
 0080                   .dbline 75
 0080           ;               WDR();
 0080 A895              wdr
 0082                   .dbline 76
 0082           ;               delay(100); 
 0082 04E6              ldi R16,100
 0084 10E0              ldi R17,0
 0086 00D0              rcall _delay
 0088                   .dbline 77
 0088           ;               ktime++;         
 0088 4395              inc R20
 008A                   .dbline 78
 008A           ;                       if(ktime>20)
 008A 84E1              ldi R24,20
 008C 8417              cp R24,R20
 008E 10F4              brsh L29
 0090                   .dbline 79
 0090           ;                   {
 0090                   .dbline 80
 0090           ;                       return 2;
 0090 02E0              ldi R16,2
 0092 05C0              rjmp L21
 0094           L29:
 0094                   .dbline 82
 0094           L27:
 0094                   .dbline 73
 0094 4D9B              sbis 0x9,5
 0096 F4CF              rjmp L26
 0098                   .dbline 83
 0098           ;                       } 
 0098           ;               } 
 0098           ;       return 1;
 0098 01E0              ldi R16,1
 009A 01C0              rjmp L21
 009C           L24:
 009C                   .dbline 85
 009C           ;        }
 009C           ;    }
 009C           L22:
 009C                   .dbline 86
 009C           ;        return 0;      
 009C 0027              clr R16
 009E                   .dbline -2
 009E           L21:
 009E 00D0              rcall pop_gset1
 00A0                   .dbline 0 ; func end
 00A0 0895              ret
 00A2                   .dbsym r ktime 20 c
 00A2                   .dbend

⌨️ 快捷键说明

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