📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR\project\afa-1\icc\afa-001\main.c
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; a -> R20
0000 ; b -> R22
0000 ; i -> R16
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 9
0004 ; /*
0004 ; 内部1 M晶振。
0004 ; I/O口实验,发光二极管循环显示。
0004 ; 程序采用单任务方式,软件延时。
0004 ; */
0004 ; #include "iom16v.h"
0004 ;
0004 ; /*延时函数*/
0004 ; void delay_ms(unsigned char i) {
0004 .dbline 12
0004 41E0 ldi R20,1
0006 06C0 xjmp L5
0008 L2:
0008 .dbline 12
0008 ;
0008 ; unsigned char a, b;
0008 ; for (a = 1; a < i; a++) {
0008 .dbline 13
0008 61E0 ldi R22,1
000A 01C0 xjmp L9
000C L6:
000C .dbline 13
000C .dbline 14
000C .dbline 15
000C L7:
000C .dbline 13
000C 6395 inc R22
000E L9:
000E .dbline 13
000E 6623 tst R22
0010 E9F7 brne L6
0012 .dbline 16
0012 L3:
0012 .dbline 12
0012 4395 inc R20
0014 L5:
0014 .dbline 12
0014 4017 cp R20,R16
0016 C0F3 brlo L2
0018 .dbline -2
0018 L1:
0018 0E940000 xcall pop_gset2
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r a 20 c
001E .dbsym r b 22 c
001E .dbsym r i 16 c
001E .dbend
001E .dbfunc e main _main fV
001E ; i -> R20
.even
001E _main::
001E .dbline -1
001E .dbline 19
001E ; for (b = 1; b; b++) {
001E ; ;
001E ; }
001E ; }
001E ; }
001E ;
001E ; void main(void) {
001E .dbline 23
001E ;
001E ; unsigned char i;
001E ;
001E ; DDRA = 0x00; /*方向输入*/
001E 2224 clr R2
0020 2ABA out 0x1a,R2
0022 .dbline 24
0022 ; PORTA = 0xFF; /*打开上拉*/
0022 8FEF ldi R24,255
0024 8BBB out 0x1b,R24
0026 .dbline 25
0026 ; DDRB = 0xFF; /*方向输出*/
0026 87BB out 0x17,R24
0028 .dbline 26
0028 ; PORTB = 0xFF; /*高电平*/
0028 88BB out 0x18,R24
002A .dbline 27
002A ; DDRC = 0x00;
002A 24BA out 0x14,R2
002C .dbline 28
002C ; PORTC = 0xFF;
002C 85BB out 0x15,R24
002E .dbline 29
002E ; DDRD = 0x00;
002E 21BA out 0x11,R2
0030 .dbline 30
0030 ; PORTD = 0xFF;
0030 82BB out 0x12,R24
0032 1EC0 xjmp L12
0034 L11:
0034 .dbline 32
0034 ;
0034 ; while (1) {
0034 .dbline 33
0034 4427 clr R20
0036 0AC0 xjmp L17
0038 L14:
0038 .dbline 33
0038 .dbline 34
0038 01E0 ldi R16,1
003A 142F mov R17,R20
003C 0E940000 xcall lsl8
0040 202E mov R2,R16
0042 2094 com R2
0044 28BA out 0x18,R2
0046 .dbline 35
0046 08EC ldi R16,200
0048 DBDF xcall _delay_ms
004A .dbline 36
004A L15:
004A .dbline 33
004A 4395 inc R20
004C L17:
004C .dbline 33
004C ; for (i = 0; i < 8; i ++) {
004C 4830 cpi R20,8
004E A0F3 brlo L14
0050 .dbline 37
0050 48E0 ldi R20,8
0052 0BC0 xjmp L21
0054 L18:
0054 .dbline 37
0054 .dbline 38
0054 142F mov R17,R20
0056 1150 subi R17,1
0058 01E0 ldi R16,1
005A 0E940000 xcall lsl8
005E 202E mov R2,R16
0060 2094 com R2
0062 28BA out 0x18,R2
0064 .dbline 39
0064 08EC ldi R16,200
0066 CCDF xcall _delay_ms
0068 .dbline 40
0068 L19:
0068 .dbline 37
0068 4A95 dec R20
006A L21:
006A .dbline 37
006A 2224 clr R2
006C 2416 cp R2,R20
006E 90F3 brlo L18
0070 .dbline 41
0070 L12:
0070 .dbline 32
0070 E1CF xjmp L11
0072 X0:
0072 .dbline -2
0072 L10:
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbsym r i 20 c
0074 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -