📄 led_test.lis
字号:
.module led_test.c
.area text(rom, con, rel)
0000 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\led_test.c
0000 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 6
0000 ; /**********延时函数*****************/
0000 ; /*-----------------------------------------------
0000 ; delay_us :1us延时函数
0000 ; ------------------------------------------------*/
0000 ; void delay_1us(void)
0000 ; {
0000 .dbline 7
0000 ; asm("nop");
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_us _delay_us fV
0004 ; t -> R20,R21
.even
0004 _delay_us::
0004 4A93 st -y,R20
0006 5A93 st -y,R21
0008 A801 movw R20,R16
000A .dbline -1
000A .dbline 14
000A ; }
000A ; /*-----------------------------------------------
000A ; delay_nus :长延时函数
000A ; 输入参数: t :延时时间 us
000A ; ------------------------------------------------*/
000A ; void delay_us(unsigned int t)
000A ; {
000A 01C0 xjmp L4
000C L3:
000C .dbline 16
000C ; while(t--)
000C ; delay_1us();
000C F9DF xcall _delay_1us
000E L4:
000E .dbline 15
000E 1A01 movw R2,R20
0010 4150 subi R20,1
0012 5040 sbci R21,0
0014 2220 tst R2
0016 D1F7 brne L3
0018 3320 tst R3
001A C1F7 brne L3
001C X0:
001C .dbline -2
001C L2:
001C .dbline 0 ; func end
001C 5991 ld R21,y+
001E 4991 ld R20,y+
0020 0895 ret
0022 .dbsym r t 20 i
0022 .dbend
0022 .dbfunc e delay_1ms _delay_1ms fV
0022 ; i -> R16,R17
.even
0022 _delay_1ms::
0022 .dbline -1
0022 .dbline 22
0022 ; }
0022 ; /*----------------------------------------------
0022 ; delay_ms :1ms延时函数
0022 ; -----------------------------------------------*/
0022 ; void delay_1ms(void)
0022 ; {
0022 .dbline 24
0022 ; unsigned int i;
0022 ; for(i=0;i<1140;i++);
0022 0027 clr R16
0024 1127 clr R17
0026 02C0 xjmp L10
0028 L7:
0028 .dbline 24
0028 L8:
0028 .dbline 24
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C L10:
002C .dbline 24
002C 0437 cpi R16,116
002E E4E0 ldi R30,4
0030 1E07 cpc R17,R30
0032 D0F3 brlo L7
0034 X1:
0034 .dbline -2
0034 L6:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay_ms _delay_ms fV
0036 ; t -> R20,R21
.even
0036 _delay_ms::
0036 4A93 st -y,R20
0038 5A93 st -y,R21
003A A801 movw R20,R16
003C .dbline -1
003C .dbline 31
003C ; }
003C ; /*----------------------------------------------
003C ; delay_nms :长延时函数
003C ; 输入参数: t :延时时间 ms
003C ; -----------------------------------------------*/
003C ; void delay_ms(unsigned int t)
003C ; {
003C 01C0 xjmp L13
003E L12:
003E .dbline 33
003E ; while(t--)
003E ; delay_1ms();
003E F1DF xcall _delay_1ms
0040 L13:
0040 .dbline 32
0040 1A01 movw R2,R20
0042 4150 subi R20,1
0044 5040 sbci R21,0
0046 2220 tst R2
0048 D1F7 brne L12
004A 3320 tst R3
004C C1F7 brne L12
004E X2:
004E .dbline -2
004E L11:
004E .dbline 0 ; func end
004E 5991 ld R21,y+
0050 4991 ld R20,y+
0052 0895 ret
0054 .dbsym r t 20 i
0054 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0000 _Table::
0000 .blkb 2
.area idata
0000 3F06 .byte 63,6
.area data(ram, con, rel)
0002 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0002 .blkb 2
.area idata
0002 5B4F .byte 91,'O
.area data(ram, con, rel)
0004 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0004 .blkb 2
.area idata
0004 666D .byte 'f,'m
.area data(ram, con, rel)
0006 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0006 .blkb 2
.area idata
0006 7D07 .byte 125,7
.area data(ram, con, rel)
0008 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
0008 .blkb 2
.area idata
0008 7F6F .byte 127,'o
.area data(ram, con, rel)
000A .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\delay.h
000A .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\164.h
000A .dbsym e Table _Table A[10:10]c
.area text(rom, con, rel)
0054 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\led\164.h
0054 .dbfunc e Init_164 _Init_164 fV
.even
0054 _Init_164::
0054 .dbline -1
0054 .dbline 18
0054 ; //定义LS164管脚和led控制脚
0054 ; #define DDR_CLK DDRA
0054 ; #define DDR_DATA DDRA
0054 ; #define DDR_CLEAR DDRA
0054 ; #define DDR_SEL DDRC
0054 ; #define PORT_CLK PORTA
0054 ; #define PORT_DATA PORTA
0054 ; #define PORT_CLEAR PORTA
0054 ; #define PORT_SEL PORTC
0054 ; #define CLK PA2
0054 ; #define DATA PA4
0054 ; #define CLEAR PA3
0054 ; #define SEL 0x3C
0054 ;
0054 ; unsigned char Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
0054 ;
0054 ; void Init_164()
0054 ; {
0054 .dbline 19
0054 ; DDR_CLK|=(1<<CLK); //164的时钟,数据,清零
0054 D29A sbi 0x1a,2
0056 .dbline 20
0056 ; DDR_DATA|=(1<<DATA);
0056 D49A sbi 0x1a,4
0058 .dbline 21
0058 ; DDR_CLEAR|=(1<<CLEAR);
0058 D39A sbi 0x1a,3
005A .dbline 22
005A ; DDR_SEL|=SEL; //4位数码管选通端
005A 84B3 in R24,0x14
005C 8C63 ori R24,60
005E 84BB out 0x14,R24
0060 .dbline 23
0060 ; PORT_SEL|=SEL;
0060 85B3 in R24,0x15
0062 8C63 ori R24,60
0064 85BB out 0x15,R24
0066 .dbline -2
0066 L15:
0066 .dbline 0 ; func end
0066 0895 ret
0068 .dbend
0068 .dbfunc e Clear_164 _Clear_164 fV
.even
0068 _Clear_164::
0068 .dbline -1
0068 .dbline 27
0068 ; }
0068 ;
0068 ; void Clear_164()
0068 ; {
0068 .dbline 28
0068 ; PORT_CLEAR|=(1<<CLEAR);
0068 DB9A sbi 0x1b,3
006A .dbline -2
006A L16:
006A .dbline 0 ; func end
006A 0895 ret
006C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -