📄 独立按键.lis
字号:
.module _独立按键.c
.area text(rom, con, rel)
0000 .dbfile 独立按键.c
.area data(ram, con, rel)
0000 .dbfile 独立按键.c
0000 _table::
0000 .blkb 2
.area idata
0000 3F06 .byte 63,6
.area data(ram, con, rel)
0002 .dbfile 独立按键.c
0002 .blkb 2
.area idata
0002 5B4F .byte 91,'O
.area data(ram, con, rel)
0004 .dbfile 独立按键.c
0004 .blkb 2
.area idata
0004 666D .byte 'f,'m
.area data(ram, con, rel)
0006 .dbfile 独立按键.c
0006 .blkb 2
.area idata
0006 7D07 .byte 125,7
.area data(ram, con, rel)
0008 .dbfile 独立按键.c
0008 .blkb 2
.area idata
0008 7F6F .byte 127,'o
.area data(ram, con, rel)
000A .dbfile 独立按键.c
000A .blkb 2
.area idata
000A 777C .byte 'w,124
.area data(ram, con, rel)
000C .dbfile 独立按键.c
000C .blkb 2
.area idata
000C 395E .byte 57,94
.area data(ram, con, rel)
000E .dbfile 独立按键.c
000E .blkb 2
.area idata
000E 7971 .byte 'y,'q
.area data(ram, con, rel)
0010 .dbfile 独立按键.c
0010 .blkb 1
.area idata
0010 00 .byte 0
.area data(ram, con, rel)
0011 .dbfile 独立按键.c
0011 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0011 .dbsym e table _table A[17:17]c
0011 _LED_W::
0011 .blkb 2
.area idata
0011 0001 .byte 0,1
.area data(ram, con, rel)
0013 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0013 .blkb 2
.area idata
0013 0203 .byte 2,3
.area data(ram, con, rel)
0015 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0015 .blkb 2
.area idata
0015 0405 .byte 4,5
.area data(ram, con, rel)
0017 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0017 .blkb 2
.area idata
0017 0607 .byte 6,7
.area data(ram, con, rel)
0019 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0019 .dbsym e LED_W _LED_W A[8:8]c
0019 _key_valu::
0019 .blkb 1
.area idata
0019 00 .byte 0
.area data(ram, con, rel)
001A .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
001A .dbsym e key_valu _key_valu c
.area text(rom, con, rel)
0000 .dbfile E:\AVR自编程序\11实验板\9独立按键\独立按键.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; ms -> R16,R17
.even
0000 _delay::
0000 0E940000 xcall push_xgsetF000
0004 .dbline -1
0004 .dbline 11
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ;
0004 ; uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
0004 ; 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
0004 ; uchar const LED_W[8] = {0,1,2,3,4,5,6,7};
0004 ; uchar key_valu=0;
0004 ; void delay(uint ms)
0004 ; {
0004 .dbline 13
0004 ; uint i,j;
0004 ; for(i=0;i<ms;i++)
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 14
000A ; {
000A .dbline 15
000A ; for(j=0;j<1141;j++);
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 15
0010 L7:
0010 .dbline 15
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 15
0014 6537 cpi R22,117
0016 E4E0 ldi R30,4
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C X0:
001C .dbline 16
001C ; }
001C L3:
001C .dbline 13
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 13
0020 4017 cp R20,R16
0022 5107 cpc R21,R17
0024 90F3 brlo L2
0026 X1:
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 0C940000 xjmp pop_xgsetF000
002A .dbsym r i 20 i
002A .dbsym r j 22 i
002A .dbsym r ms 16 i
002A .dbend
002A .dbfunc e show _show fV
002A ; k -> R10
002A ; j -> R12
.even
002A _show::
002A AA92 st -y,R10
002C CA92 st -y,R12
002E A22E mov R10,R18
0030 C02E mov R12,R16
0032 .dbline -1
0032 .dbline 19
0032 ; }
0032 ; void show(uchar j,uchar k)
0032 ; {
0032 .dbline 20
0032 ; PORTA = table[j]; // i 值的 个位数
0032 80E0 ldi R24,<_table
0034 90E0 ldi R25,>_table
0036 EC2D mov R30,R12
0038 FF27 clr R31
003A E80F add R30,R24
003C F91F adc R31,R25
003E 2080 ldd R2,z+0
0040 2BBA out 0x1b,R2
0042 .dbline 21
0042 ; PORTC = LED_W[k]; //点亮第一位数码管
0042 80E0 ldi R24,<_LED_W
0044 90E0 ldi R25,>_LED_W
0046 EA2D mov R30,R10
0048 FF27 clr R31
004A E80F add R30,R24
004C F91F adc R31,R25
004E 2080 ldd R2,z+0
0050 25BA out 0x15,R2
0052 .dbline 23
0052 ;
0052 ; delay(2);
0052 02E0 ldi R16,2
0054 10E0 ldi R17,0
0056 D4DF xcall _delay
0058 .dbline -2
0058 L10:
0058 .dbline 0 ; func end
0058 C990 ld R12,y+
005A A990 ld R10,y+
005C 0895 ret
005E .dbsym r k 10 c
005E .dbsym r j 12 c
005E .dbend
005E .dbfunc e key_press _key_press fc
005E ; j -> R16
.even
005E _key_press::
005E .dbline -1
005E .dbline 28
005E ;
005E ; }
005E ;
005E ; uchar key_press()
005E ; {
005E .dbline 30
005E ; uchar j;
005E ; DDRD|=0X1c;
005E 81B3 in R24,0x11
0060 8C61 ori R24,28
0062 81BB out 0x11,R24
0064 .dbline 31
0064 ; PORTD|=0X1c;
0064 82B3 in R24,0x12
0066 8C61 ori R24,28
0068 82BB out 0x12,R24
006A .dbline 33
006A ;
006A ; DDRD&=0Xe3;
006A 81B3 in R24,0x11
006C 837E andi R24,227
006E 81BB out 0x11,R24
0070 .dbline 35
0070 ;
0070 ; j=PIND;
0070 00B3 in R16,0x10
0072 .dbline 36
0072 ; j=j&0X1c;//00001111
0072 0C71 andi R16,28
0074 .dbline 37
0074 ; if(j==0X1c)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -