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

📄 key4x4.lis

📁 此为4*4扩展键盘程序
💻 LIS
字号:
                        .module key4x4.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
 0000                   .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.h
 0000                   .dbfunc e s_ms _s_ms fV
 0000           ;              t -> R16,R17
                        .even
 0000           _s_ms::
 0000                   .dbline -1
 0000                   .dbline 3
 0000           ; #include<iom128v.h>
 0000           ; #include"key4x4.h"
 0000           ; #define uchar unsigned char 
 0000                   .dbline 4
 0000           ; #define uint unsigned int 
 0000 02C0              xjmp L5
 0002           L2:
 0002                   .dbline 5
 0002           ; 
 0002                   .dbline 6
 0002           ; //主函数
 0002           L3:
 0002                   .dbline 4
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006           L5:
 0006                   .dbline 4
 0006 81E0              ldi R24,1
 0008 90E0              ldi R25,0
 000A 8017              cp R24,R16
 000C 9107              cpc R25,R17
 000E C8F3              brlo L2
 0010           X0:
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbsym r t 16 i
 0012                   .dbend
 0012                   .dbfunc e key_value _key_value fc
 0012           ;              i -> <dead>
 0012           ;           tem2 -> R10
 0012           ;            rem -> R20
 0012           ;           tem1 -> R22
                        .even
 0012           _key_value::
 0012 0E940000          xcall push_xgsetF00C
 0016                   .dbline -1
 0016                   .dbline 12
 0016           ; main()
 0016           ; {
 0016           ; uchar key;
 0016           ; DDRA=0xff;
 0016           ; DDRC=0xff;
 0016           ; PORTA=0xff;
 0016                   .dbline 14
 0016           ; while(1)
 0016           ;      {
 0016 4427              clr R20
 0018                   .dbline 16
 0018           ;        key=key_value(); //读取4x4键盘
 0018           ;        if(key!=0)       //有按键被按下
 0018 80EF              ldi R24,240
 001A 84BB              out 0x14,R24
 001C                   .dbline 18
 001C           ;          {
 001C           ;          PORTA=~key;    //显示键值
 001C 8FE0              ldi R24,15
 001E 85BB              out 0x15,R24
 0020                   .dbline 20
 0020           ;          }
 0020           ;        }
 0020 0EE1              ldi R16,30
 0022 10E0              ldi R17,0
 0024 EDDF              xcall _s_ms
 0026                   .dbline 21
 0026           ; 
 0026 63B3              in R22,0x13
 0028                   .dbline 23
 0028           ; }
 0028 6F70              andi R22,15
 002A                   .dbline 25
 002A 6F30              cpi R22,15
 002C E1F0              breq L7
 002E           X1:
 002E                   .dbline 26
 002E                   .dbline 27
 002E 00E2              ldi R16,800
 0030 13E0              ldi R17,3
 0032 E6DF              xcall _s_ms
 0034                   .dbline 29
 0034 A3B2              in R10,0x13
 0036                   .dbline 31
 0036 8A2D              mov R24,R10
 0038 8F70              andi R24,15
 003A A82E              mov R10,R24
 003C                   .dbline 33
 003C 6817              cp R22,R24
 003E 99F4              brne L9
 0040           X2:
 0040                   .dbline 34
 0040                   .dbline 35
 0040 8FE0              ldi R24,15
 0042 84BB              out 0x14,R24
 0044                   .dbline 37
 0044 80EF              ldi R24,240
 0046 85BB              out 0x15,R24
 0048                   .dbline 39
 0048 01E0              ldi R16,1
 004A 10E0              ldi R17,0
 004C D9DF              xcall _s_ms
 004E                   .dbline 41
 004E 43B3              in R20,0x13
 0050                   .dbline 43
 0050 407F              andi R20,240
 0052                   .dbline 45
 0052 460F              add R20,R22
 0054                   .dbline 47
 0054 4095              com R20
 0056           L11:
 0056                   .dbline 51
 0056                   .dbline 52
 0056 80EF              ldi R24,240
 0058 85BB              out 0x15,R24
 005A                   .dbline 53
 005A 08EB              ldi R16,3000
 005C 1BE0              ldi R17,11
 005E D0DF              xcall _s_ms
 0060                   .dbline 54
 0060           L12:
 0060                   .dbline 55
 0060 83B3              in R24,0x13
 0062 803F              cpi R24,240
 0064 C1F7              brne L11
 0066           X3:
 0066                   .dbline 56
 0066           L9:
 0066                   .dbline 57
 0066           L7:
 0066                   .dbline 58
 0066 00E7              ldi R16,6000
 0068 17E1              ldi R17,23
 006A CADF              xcall _s_ms
 006C                   .dbline 59
 006C 00E7              ldi R16,6000
 006E 17E1              ldi R17,23
 0070 C7DF              xcall _s_ms
 0072                   .dbline 60
 0072 042F              mov R16,R20
 0074                   .dbline -2
 0074           L6:
 0074                   .dbline 0 ; func end
 0074 0C940000          xjmp pop_xgsetF00C
 0078                   .dbsym l i 1 c
 0078                   .dbsym r tem2 10 c
 0078                   .dbsym r rem 20 c
 0078                   .dbsym r tem1 22 c
 0078                   .dbend
 0078                   .dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
 0078                   .dbfunc e main _main fI
 0078           ;            key -> R10
                        .even
 0078           _main::
 0078                   .dbline -1
 0078                   .dbline 8
 0078                   .dbline 10
 0078 8FEF              ldi R24,255
 007A 8ABB              out 0x1a,R24
 007C                   .dbline 11
 007C 84BB              out 0x14,R24
 007E                   .dbline 12
 007E 8BBB              out 0x1b,R24
 0080 07C0              xjmp L16
 0082           L15:
 0082                   .dbline 14
 0082                   .dbline 15
 0082 C7DF              xcall _key_value
 0084 A02E              mov R10,R16
 0086                   .dbline 16
 0086 0023              tst R16
 0088 19F0              breq L18
 008A           X4:
 008A                   .dbline 17
 008A                   .dbline 18
 008A 2A2C              mov R2,R10
 008C 2094              com R2
 008E 2BBA              out 0x1b,R2
 0090                   .dbline 19
 0090           L18:
 0090                   .dbline 20
 0090           L16:
 0090                   .dbline 13
 0090 F8CF              xjmp L15
 0092           X5:
 0092                   .dbline -2
 0092           L14:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbsym r key 10 c
 0094                   .dbend

⌨️ 快捷键说明

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