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

📄 linkkey.lis

📁 ATmega16应用例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module LinkKey.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICC_H\SoftExt.H
 0000                   .dbfunc e speaData _speaData fV
 0000           ;              y -> y+4
 0000           ;              j -> y+0
 0000           ;              i -> R10
 0000           ;            len -> R12
 0000           ;            dat -> y+16
                        .even
 0000           _speaData::
 0000 0E940000          xcall push_arg4
 0004 0E940000          xcall push_gset4
 0008 2897              sbiw R28,8
 000A CC88              ldd R12,y+20
 000C                   .dbline -1
 000C                   .dbline 116
 000C           ; /*********************************************************************
 000C           ;       微 雪 电 子   WaveShare   http://www.waveShare.net              
 000C           ;                                                                           
 000C           ; 目    的:   测试"LinkKeyBoard"模块
 000C           ;               
 000C           ; 目标系统:   基于任何AVR单片机
 000C           ; 
 000C           ; 应用软件:   ICCAVR          
 000C           ;   
 000C           ; 版    本:   Version 1.0                                                       
 000C           ; 
 000C           ; 圆版时间:   2005-03-2
 000C           ;               
 000C           ; 开发人员:   SEE
 000C           ; 
 000C           ; 说    明:   若用于商业用途,请保留此段文字或注明代码来源
 000C           ;               
 000C           ;       深 圳 微 雪 电 子 保 留 所 有 的 版 权     
 000C           ; *********************************************************************/
 000C           ; 
 000C           ; /*01010101010101010101010101010101010101010101010101010101010101010101
 000C           ; ----------------------------------------------------------------------
 000C           ; 版本更新记录:
 000C           ; 
 000C           ; ----------------------------------------------------------------------
 000C           ; 
 000C           ; 接入模块: LinkKeyBoard
 000C           ; 接口说明: LinkKeyBoard                       M16SmartGuider                  
 000C           ;                               K0        ---------    PA0
 000C           ;                               K1    ---------    PA1
 000C           ;                               K2        ---------    PA2
 000C           ;                               K3    ---------    PA3
 000C           ;                               K4    ---------    PA4
 000C           ;                               K5    ---------    PA5
 000C           ;                               K6    ---------    PA6
 000C           ;                               K7    ---------    PA7  
 000C           ; ----------------------------------------------------------------------
 000C           ; 注意事项:
 000C           ;               * 将相应的LED-SW短接使能
 000C           ; ----------------------------------------------------------------------
 000C           ; 10101010101010101010101010101010101010101010101010101010101010101010*/
 000C           ; 
 000C           ; #include <iom16v.h>
 000C           ; #include "E:\ICC_H\CmmICC.H"
 000C           ; 
 000C           ; #define        LED_DDR  DDRB
 000C           ; #define        LED_PORT PORTB
 000C           ; #define  KEY_DDR  DDRA
 000C           ; #define  KEY_PORT PORTA
 000C           ; #define  KEY_PIN  PINA
 000C           ; 
 000C           ; /*--------------------------------------------------------------------
 000C           ; 函数名称:
 000C           ; 函数功能:键盘检测
 000C           ; 注意事项:
 000C           ; 提示说明:
 000C           ; 输    入:
 000C           ; 返    回:
 000C           ; --------------------------------------------------------------------*/
 000C           ; void scanKey()
 000C           ; {
 000C           ; 
 000C           ;       KEY_DDR = 0X01;
 000C           ;       KEY_PORT = 0xFE;
 000C           ;       delay50us(1);
 000C           ;       if(KEY_PIN==0xFC)
 000C           ;               LED_PORT=0x01;
 000C           ;       if(KEY_PIN==0xFA)       
 000C           ;               LED_PORT=0x02;
 000C           ;       if(KEY_PIN==0xF6)       
 000C           ;               LED_PORT=0x03;
 000C           ;       if(KEY_PIN==0xEE)       
 000C           ;               LED_PORT=0x04;
 000C           ;       if(KEY_PIN==0xDE)       
 000C           ;               LED_PORT=0x05;
 000C           ;       if(KEY_PIN==0xBE)       
 000C           ;               LED_PORT=0x06;
 000C           ;       if(KEY_PIN==0x7E)       
 000C           ;               LED_PORT=0x07;
 000C           ; 
 000C           ;       KEY_DDR = 0X02;
 000C           ;       KEY_PORT = 0xFD;
 000C           ;       delay50us(1);
 000C           ;       if(KEY_PIN==0xF9)       
 000C           ;               LED_PORT=0x08;
 000C           ;       if(KEY_PIN==0xF5)       
 000C           ;               LED_PORT=0x09;
 000C           ;       if(KEY_PIN==0xED)       
 000C           ;               LED_PORT=0x0A;
 000C           ;       if(KEY_PIN==0xDD)       
 000C           ;               LED_PORT=0x0B;
 000C           ;       if(KEY_PIN==0xBD)       
 000C           ;               LED_PORT=0x0C;
 000C           ;       if(KEY_PIN==0x7D)       
 000C           ;               LED_PORT=0x0D;
 000C           ; 
 000C           ;       KEY_DDR = 0X04;
 000C           ;       KEY_PORT = 0xFB;
 000C           ;       delay50us(1);
 000C           ;       if(KEY_PIN==0xF3)       
 000C           ;               LED_PORT=0x0E;
 000C           ;       if(KEY_PIN==0xEB)       
 000C           ;               LED_PORT=0x10;
 000C           ;       if(KEY_PIN==0xDB)       
 000C           ;               LED_PORT=0x11;
 000C           ;       if(KEY_PIN==0xBB)       
 000C           ;               LED_PORT=0x12;
 000C           ;       if(KEY_PIN==0x7B)       
 000C           ;               LED_PORT=0x13;
 000C           ; 
 000C           ;       KEY_DDR = 0X08;
 000C           ;       KEY_PORT = 0xF7;
 000C           ;       delay50us(1);   
 000C           ;       if(KEY_PIN==0xE7)       
 000C           ;               LED_PORT=0x14;
 000C           ;       if(KEY_PIN==0xD7)       
 000C                   .dbline 119
 000C           ;               LED_PORT=0x15;
 000C           ;       if(KEY_PIN==0xB7)       
 000C           ;               LED_PORT=0x16;
 000C AA24              clr R10
 000E 41E0              ldi R20,1
 0010 50E0              ldi R21,0
 0012 60E0              ldi R22,0
 0014 70E0              ldi R23,0
 0016 FE01              movw R30,R28
 0018 4083              std z+0,R20
 001A 5183              std z+1,R21
 001C 6283              std z+2,R22
 001E 7383              std z+3,R23
 0020 46C0              xjmp L5
 0022           L2:
 0022                   .dbline 120
 0022                   .dbline 121
 0022 FE01              movw R30,R28
 0024 2080              ldd R2,z+0
 0026 3180              ldd R3,z+1
 0028 4280              ldd R4,z+2
 002A 5380              ldd R5,z+3
 002C FE01              movw R30,R28
 002E 6088              ldd R6,z+16
 0030 7188              ldd R7,z+17
 0032 8288              ldd R8,z+18
 0034 9388              ldd R9,z+19
 0036 5A92              st -y,R5
 0038 4A92              st -y,R4
 003A 3A92              st -y,R3
 003C 2A92              st -y,R2
 003E 8301              movw R16,R6
 0040 9401              movw R18,R8
 0042 0E940000          xcall div32u
 0046 FE01              movw R30,R28
 0048 0483              std z+4,R16
 004A 1583              std z+5,R17
 004C 2683              std z+6,R18
 004E 3783              std z+7,R19
 0050                   .dbline 122
 0050 4AE0              ldi R20,10
 0052 50E0              ldi R21,0
 0054 60E0              ldi R22,0
 0056 70E0              ldi R23,0
 0058 FE01              movw R30,R28
 005A 2480              ldd R2,z+4
 005C 3580              ldd R3,z+5
 005E 4680              ldd R4,z+6
 0060 5780              ldd R5,z+7
 0062 7A93              st -y,R23
 0064 6A93              st -y,R22
 0066 5A93              st -y,R21
 0068 4A93              st -y,R20
 006A 8101              movw R16,R2
 006C 9201              movw R18,R4
 006E 0E940000          xcall mod32u
 0072 80E0              ldi R24,<_dataElem
 0074 90E0              ldi R25,>_dataElem
 0076 EA2D              mov R30,R10
 0078 FF27              clr R31
 007A E80F              add R30,R24
 007C F91F              adc R31,R25
 007E 0083              std z+0,R16
 0080                   .dbline 123
 0080 FE01              movw R30,R28
 0082 2080              ldd R2,z+0
 0084 3180              ldd R3,z+1
 0086 4280              ldd R4,z+2
 0088 5380              ldd R5,z+3
 008A 4AE0              ldi R20,10
 008C 50E0              ldi R21,0
 008E 60E0              ldi R22,0
 0090 70E0              ldi R23,0
 0092 5A92              st -y,R5
 0094 4A92              st -y,R4
 0096 3A92              st -y,R3
 0098 2A92              st -y,R2
 009A 8A01              movw R16,R20
 009C 9B01              movw R18,R22
 009E 0E940000          xcall empy32u
 00A2 FE01              movw R30,R28
 00A4 0083              std z+0,R16
 00A6 1183              std z+1,R17
 00A8 2283              std z+2,R18
 00AA 3383              std z+3,R19
 00AC                   .dbline 124
 00AC           L3:
 00AC                   .dbline 119
 00AC A394              inc R10
 00AE           L5:
 00AE                   .dbline 119
 00AE AC14              cp R10,R12
 00B0 08F4              brsh X0
 00B2 B7CF              xjmp L2
 00B4           X0:
 00B4                   .dbline -2
 00B4                   .dbline 125
 00B4           ;       if(KEY_PIN==0x77)       
 00B4           ;               LED_PORT=0x17;
 00B4           ; 
 00B4           ;       KEY_DDR = 0X10;
 00B4           ;       KEY_PORT = 0xEF;
 00B4           ;       delay50us(1);   
 00B4           L1:
 00B4 2896              adiw R28,8
 00B6 0E940000          xcall pop_gset4
 00BA 2496              adiw R28,4
 00BC                   .dbline 0 ; func end
 00BC 0895              ret
 00BE                   .dbsym l y 4 l
 00BE                   .dbsym l j 0 l
 00BE                   .dbsym r i 10 c
 00BE                   .dbsym r len 12 C
 00BE                   .dbsym l dat 16 l
 00BE                   .dbend
 00BE                   .dbfile E:\ICC_H\HardExt.H
 00BE                   .dbfunc e delay50us _delay50us fV
 00BE           ;              j -> R20
 00BE           ;              t -> R16,R17
                        .even
 00BE           _delay50us::
 00BE 0E940000          xcall push_gset1
 00C2                   .dbline -1
 00C2                   .dbline 98
 00C2                   .dbline 100
 00C2 07C0              xjmp L10
 00C4           L7:
 00C4                   .dbline 101
 00C4 4427              clr R20
 00C6 01C0              xjmp L14
 00C8           L11:
 00C8                   .dbline 102
 00C8           L12:
 00C8                   .dbline 101
 00C8 4395              inc R20
 00CA           L14:
 00CA                   .dbline 101
 00CA 4634              cpi R20,70
 00CC E8F3              brlo L11
 00CE           L8:
 00CE                   .dbline 100
 00CE 0150              subi R16,1
 00D0 1040              sbci R17,0
 00D2           L10:
 00D2                   .dbline 100
 00D2 2224              clr R2
 00D4 3324              clr R3
 00D6 2016              cp R2,R16
 00D8 3106              cpc R3,R17
 00DA A4F3              brlt L7
 00DC                   .dbline -2
 00DC                   .dbline 103
 00DC           L6:
 00DC 0E940000          xcall pop_gset1
 00E0                   .dbline 0 ; func end
 00E0 0895              ret
 00E2                   .dbsym r j 20 c
 00E2                   .dbsym r t 16 I
 00E2                   .dbend
 00E2                   .dbfunc e delay50ms _delay50ms fV
 00E2           ;              i -> R20,R21
 00E2           ;              t -> R16,R17
                        .even
 00E2           _delay50ms::
 00E2 0E940000          xcall push_gset1
 00E6                   .dbline -1
 00E6                   .dbline 113
 00E6                   .dbline 115
 00E6 0BC0              xjmp L19
 00E8           L16:
 00E8                   .dbline 116
 00E8 4427              clr R20
 00EA 5527              clr R21
 00EC 02C0              xjmp L23
 00EE           L20:
 00EE                   .dbline 117
 00EE           L21:
 00EE                   .dbline 116
 00EE 4F5F              subi R20,255  ; offset = 1
 00F0 5F4F              sbci R21,255
 00F2           L23:
 00F2                   .dbline 116
 00F2 423A              cpi R20,162
 00F4 EDEC              ldi R30,205
 00F6 5E07              cpc R21,R30
 00F8 D0F3              brlo L20
 00FA           L17:
 00FA                   .dbline 115
 00FA 0150              subi R16,1
 00FC 1040              sbci R17,0
 00FE           L19:
 00FE                   .dbline 115
 00FE 2224              clr R2
 0100 3324              clr R3
 0102 2016              cp R2,R16
 0104 3106              cpc R3,R17
 0106 84F3              brlt L16
 0108                   .dbline -2
 0108                   .dbline 118
 0108           L15:
 0108 0E940000          xcall pop_gset1
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbsym r i 20 i
 010E                   .dbsym r t 16 I
 010E                   .dbend
 010E                   .dbfile E:\ProductPro\M16SD\ICCAVR\LinkKeyBoard\LinkKeyBoard\LinkKey.c
 010E                   .dbfunc e scanKey _scanKey fV
                        .even
 010E           _scanKey::
 010E                   .dbline -1
 010E                   .dbline 61
 010E                   .dbline 63
 010E 81E0              ldi R24,1
 0110 8ABB              out 0x1a,R24
 0112                   .dbline 64
 0112 8EEF              ldi R24,254
 0114 8BBB              out 0x1b,R24
 0116                   .dbline 65
 0116 01E0              ldi R16,1
 0118 10E0              ldi R17,0

⌨️ 快捷键说明

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