📄 数码管.lis
字号:
.module _数码管.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0000 .dbfunc e DelayUS _DelayUS fV
0000 ; time -> R16,R17
.even
0000 _DelayUS::
0000 .dbline -1
0000 .dbline 9
0000 ; //内部晶振 8M
0000 ; //包含所需头文件
0000 ; #include <ioM16v.h>
0000 ; #include <macros.h>
0000 ; #include"delay.h"
0000 ;
0000 ;
0000 ;
0000 ; /*------宏定义------*/
0000 02C0 xjmp L3
0002 L2:
0002 .dbline 11
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 L3:
0006 .dbline 10
0006 ; #define uchar unsigned char
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 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r time 16 i
0012 .dbend
0012 .dbfunc e DelayMS _DelayMS fV
0012 ; i -> R20,R21
0012 ; time -> R16,R17
.even
0012 _DelayMS::
0012 0E940000 xcall push_gset1
0016 .dbline -1
0016 .dbline 20
0016 ; #define uint unsigned int
0016 ;
0016 ; uchar led_date[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
0016 ; uchar led_seg[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
0016 ; //端口初始化
0016 ; void port_init(void)
0016 ; {
0016 ; PORTA = 0x00;//A口数据置0
0016 ; DDRA = 0xFF;//A口方向设为输出
0016 ; PORTB = 0xFF;//B口数据置1
0016 09C0 xjmp L7
0018 L6:
0018 .dbline 23
0018 ; DDRB = 0xFF;//B口方向设为输出
0018 ; PORTC = 0x00;
0018 ; DDRC = 0x00;
0018 .dbline 24
0018 ; PORTD = 0x00;
0018 41E0 ldi R20,1
001A 50E0 ldi R21,0
001C 02C0 xjmp L12
001E L9:
001E .dbline 25
001E L10:
001E .dbline 24
001E 4F5F subi R20,255 ; offset = 1
0020 5F4F sbci R21,255
0022 L12:
0022 .dbline 24
0022 4637 cpi R20,118
0024 E4E0 ldi R30,4
0026 5E07 cpc R21,R30
0028 D0F3 brlo L9
002A .dbline 26
002A L7:
002A .dbline 22
002A 1801 movw R2,R16
002C 0150 subi R16,1
002E 1040 sbci R17,0
0030 2220 tst R2
0032 91F7 brne L6
0034 3320 tst R3
0036 81F7 brne L6
0038 X0:
0038 .dbline -2
0038 L5:
0038 0E940000 xcall pop_gset1
003C .dbline 0 ; func end
003C 0895 ret
003E .dbsym r i 20 i
003E .dbsym r time 16 i
003E .dbend
.area data(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0000 _led_date::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
000A .blkb 2
.area idata
000A 8883 .byte 136,131
.area data(ram, con, rel)
000C .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
000C .blkb 2
.area idata
000C C6A1 .byte 198,161
.area data(ram, con, rel)
000E .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
000E .blkb 2
.area idata
000E 868E .byte 134,142
.area data(ram, con, rel)
0010 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管/delay.h
0010 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
0010 .dbsym e led_date _led_date A[16:16]c
0010 _led_seg::
0010 .blkb 2
.area idata
0010 FEFD .byte 254,253
.area data(ram, con, rel)
0012 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
0012 .blkb 2
.area idata
0012 FBF7 .byte 251,247
.area data(ram, con, rel)
0014 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
0014 .blkb 2
.area idata
0014 EFDF .byte 239,223
.area data(ram, con, rel)
0016 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
0016 .blkb 2
.area idata
0016 BF7F .byte 191,127
.area data(ram, con, rel)
0018 .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
0018 .dbsym e led_seg _led_seg A[8:8]c
.area text(rom, con, rel)
003E .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\AVRMega16\数码管\数码管.c
003E .dbfunc e port_init _port_init fV
.even
003E _port_init::
003E .dbline -1
003E .dbline 17
003E .dbline 18
003E 2224 clr R2
0040 2BBA out 0x1b,R2
0042 .dbline 19
0042 8FEF ldi R24,255
0044 8ABB out 0x1a,R24
0046 .dbline 20
0046 88BB out 0x18,R24
0048 .dbline 21
0048 87BB out 0x17,R24
004A .dbline 22
004A 25BA out 0x15,R2
004C .dbline 23
004C 24BA out 0x14,R2
004E .dbline 24
004E 22BA out 0x12,R2
0050 .dbline 25
0050 ; DDRD = 0x00;
0050 21BA out 0x11,R2
0052 .dbline -2
0052 L13:
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbend
0054 .dbfunc e init_devices _init_devices fV
.even
0054 _init_devices::
0054 .dbline -1
0054 .dbline 30
0054 ; }
0054 ;
0054 ;
0054 ; void init_devices(void)
0054 ; {
0054 .dbline 31
0054 ; CLI(); //禁止所有中断
0054 F894 cli
0056 .dbline 32
0056 ; MCUCR = 0x00;//外部中断触发方式
0056 2224 clr R2
0058 25BE out 0x35,R2
005A .dbline 33
005A ; MCUCSR = 0x80;//禁止JTAG
005A 80E8 ldi R24,128
005C 84BF out 0x34,R24
005E .dbline 34
005E ; GICR = 0x00;//外部中断使能
005E 2BBE out 0x3b,R2
0060 .dbline 35
0060 ; port_init();
0060 EEDF xcall _port_init
0062 .dbline -2
0062 L14:
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbend
0064 .dbfunc e main _main fV
0064 ; j -> R20
0064 ; i -> R22
.even
0064 _main::
0064 .dbline -1
0064 .dbline 40
0064 ; //SEI();//开全局中断
0064 ; }
0064 ; //主函数
0064 ; void main(void)
0064 ; {
0064 .dbline 41
0064 ; uchar j=0,i=0;
0064 4427 clr R20
0066 .dbline 41
0066 6627 clr R22
0068 .dbline 42
0068 ; init_devices();
0068 F5DF xcall _init_devices
006A 1EC0 xjmp L17
006C L16:
006C .dbline 44
006C ; while(1)
006C ; {
006C .dbline 45
006C ; for(j=0;j<8;j++)
006C 4427 clr R20
006E 1AC0 xjmp L22
0070 L19:
0070 .dbline 46
0070 ; {
0070 .dbline 47
0070 ; PORTB=led_seg[j];//设置数码管选通位段
0070 80E0 ldi R24,<_led_seg
0072 90E0 ldi R25,>_led_seg
0074 E42F mov R30,R20
0076 FF27 clr R31
0078 E80F add R30,R24
007A F91F adc R31,R25
007C 2080 ldd R2,z+0
007E 28BA out 0x18,R2
0080 .dbline 48
0080 ; for(i=0;i<16;i++)
0080 6627 clr R22
0082 0DC0 xjmp L26
0084 L23:
0084 .dbline 49
0084 .dbline 50
0084 80E0 ldi R24,<_led_date
0086 90E0 ldi R25,>_led_date
0088 E62F mov R30,R22
008A FF27 clr R31
008C E80F add R30,R24
008E F91F adc R31,R25
0090 8081 ldd R24,z+0
0092 8F77 andi R24,127
0094 8BBB out 0x1b,R24
0096 .dbline 51
0096 0CE2 ldi R16,300
0098 11E0 ldi R17,1
009A BBDF xcall _DelayMS
009C .dbline 52
009C L24:
009C .dbline 48
009C 6395 inc R22
009E L26:
009E .dbline 48
009E 6031 cpi R22,16
00A0 88F3 brlo L23
00A2 .dbline 53
00A2 L20:
00A2 .dbline 45
00A2 4395 inc R20
00A4 L22:
00A4 .dbline 45
00A4 4830 cpi R20,8
00A6 20F3 brlo L19
00A8 .dbline 54
00A8 L17:
00A8 .dbline 43
00A8 E1CF xjmp L16
00AA X1:
00AA .dbline -2
00AA L15:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbsym r j 20 c
00AC .dbsym r i 22 c
00AC .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -