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

📄 matrixkey_.lis

📁 ATmega16应用例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module MatrixKey_.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           ; 功能目的:   测试"MatrixKeyBoard"模块
 000C           ; 
 000C           ; 目标系统:   基于任何AVR单片机
 000C           ; 
 000C           ; 应用软件:   ICCAVR                                               
 000C           ; 
 000C           ; 版    本:   Version 1.0
 000C           ; 
 000C           ; 圆版时间:   2005-03-01
 000C           ; 
 000C           ; 开发人员:   SEE
 000C           ; 
 000C           ; 说    明:   若用于商业用途,请保留此段文字或注明代码来源 
 000C           ; 
 000C           ;       深 圳 微 雪 电 子 保 留 所 有 的 版 权
 000C           ; *********************************************************************/
 000C           ; 
 000C           ; /*01010101010101010101010101010101010101010101010101010101010101010101
 000C           ; ----------------------------------------------------------------------
 000C           ; 版本更新记录:
 000C           ; 
 000C           ; ----------------------------------------------------------------------
 000C           ; 接入模块: MatrixKeyBoard
 000C           ; 接口说明: MatrixKeyBoard     M16SmartGuider                  
 000C           ;                               K0      ---------     PD0
 000C           ;                 K1    ---------     PD1
 000C           ;                                       .       
 000C           ;                                       .
 000C           ;                               K7  ---------     PD7
 000C           ; ----------------------------------------------------------------------
 000C           ; 注意事项:
 000C           ;               * 
 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           ; 
 000C           ; #define OUT_K0        sbi(DDRA,0)
 000C           ; #define OUT_K1        sbi(DDRA,1)
 000C           ; #define OUT_K2        sbi(DDRA,2)
 000C           ; #define OUT_K3        sbi(DDRA,3)
 000C           ; #define IN_K4         cbi(DDRA,4)
 000C           ; #define IN_K5         cbi(DDRA,5)
 000C           ; #define IN_K6         cbi(DDRA,6)
 000C           ; #define IN_K7         cbi(DDRA,7)
 000C           ; 
 000C           ; #define SET_K0                sbi(PORTA,0)
 000C           ; #define SET_K1                sbi(PORTA,1)
 000C           ; #define SET_K2                sbi(PORTA,2)
 000C           ; #define SET_K3                sbi(PORTA,3)
 000C           ; #define CLR_K0                cbi(PORTA,0)
 000C           ; #define CLR_K1                cbi(PORTA,1)
 000C           ; #define CLR_K2                cbi(PORTA,2)
 000C           ; #define CLR_K3                cbi(PORTA,3)
 000C           ; 
 000C           ; #define SET_K4                sbi(PORTA,4)
 000C           ; #define SET_K5                sbi(PORTA,5)
 000C           ; #define SET_K6                sbi(PORTA,6)
 000C           ; #define SET_K7                sbi(PORTA,7)
 000C           ; 
 000C           ; #define GET_K4                gbi(PINA,4)
 000C           ; #define GET_K5                gbi(PINA,5)
 000C           ; #define GET_K6                gbi(PINA,6)
 000C           ; #define GET_K7                gbi(PINA,7)
 000C           ; 
 000C           ; void KeyBoard_setSta(uint8 status)
 000C           ; {
 000C           ;       //SET_K4;               
 000C           ;       //SET_K5;               
 000C           ;       //SET_K6;               
 000C           ;       //SET_K7;       
 000C           ; 
 000C           ;       if( status&0x01 )
 000C           ;               SET_K0;
 000C           ;       else 
 000C           ;               CLR_K0;
 000C           ; 
 000C           ;       if( status&0x02 )
 000C           ;               SET_K1;
 000C           ;       else 
 000C           ;               CLR_K1;
 000C           ; 
 000C           ;       if( status&0x04 )
 000C           ;               SET_K2;
 000C           ;       else 
 000C           ;               CLR_K2;
 000C           ; 
 000C           ;       if( status&0x08 )
 000C           ;               SET_K3;
 000C           ;       else 
 000C           ;               CLR_K3;
 000C           ; }
 000C           ; 
 000C           ; uint8 KeyBoard_getSta()
 000C           ; {
 000C           ;       uint8 status = 0xF0;
 000C           ; 
 000C           ;       if( !GET_K4 )
 000C           ;               status = 0xe0;
 000C           ; 
 000C           ;       if( !GET_K5 )
 000C           ;               status = 0xd0;
 000C           ; 
 000C           ;       if( !GET_K6 )
 000C           ;               status = 0xb0;
 000C           ; 
 000C           ;       if( !GET_K7 )
 000C           ;               status = 0x70;
 000C           ; 
 000C                   .dbline 119
 000C           ;       return status;
 000C           ; }
 000C           ; 
 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           ; /*
 00B4           ; #define KEY_DDR       DDRA
 00B4           ; #define KEY_PORT      PORTA
 00B4           ; #define KEY_PIN       PINA
 00B4           ; */
 00B4           ; /*--------------------------------------------------------------------
 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\MatrixKeyBoard\MatrixKeyBoard\MatrixKey_.c
 010E                   .dbfunc e KeyBoard_setSta _KeyBoard_setSta fV
 010E           ;         status -> R16
                        .even
 010E           _KeyBoard_setSta::
 010E                   .dbline -1
 010E                   .dbline 74
 010E                   .dbline 80

⌨️ 快捷键说明

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