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

📄 lesson3_1.lst

📁 AVR单片机视频教程的课件和每一次课的源程序是学习AVR单片机的首选 第三节
💻 LST
字号:
__start:
__text_start:
    0030 E5CF      LDI	R28,0x5F
    0031 E0D4      LDI	R29,4
    0032 BFCD      OUT	P3D,R28
    0033 BFDE      OUT	P3E,R29
    0034 51C0      SUBI	R28,0x10
    0035 40D0      SBCI	R29,0
    0036 EA0A      LDI	R16,0xAA
    0037 8308      STD	R16,0+Y
    0038 2400      CLR	R0
    0039 E6E0      LDI	R30,0x60
    003A E0F0      LDI	R31,0
    003B E010      LDI	R17,0
    003C 36E0      CPI	R30,0x60
    003D 07F1      CPC	R31,R17
    003E F011      BEQ	0x0041
    003F 9201      ST	R0,Z+
    0040 CFFB      RJMP	0x003C
    0041 8300      STD	R16,0+Z
    0042 E6E0      LDI	R30,0x60
    0043 E0F0      LDI	R31,0
    0044 E6A0      LDI	R26,0x60
    0045 E0B0      LDI	R27,0
    0046 E010      LDI	R17,0
    0047 36E0      CPI	R30,0x60
    0048 07F1      CPC	R31,R17
    0049 F021      BEQ	0x004E
    004A 95C8      LPM
    004B 9631      ADIW	R30,1
    004C 920D      ST	R0,X+
    004D CFF9      RJMP	0x0047
    004E 940E0067  CALL	_main
_exit:
    0050 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    0051 940E00A1  CALL	push_gset2
FILE: I:\AVR视频教程\视频教程\lesson3\lesson3_1\lesson3_1.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) void delay(uint ms)
(0006) {
(0007)     uint i,j;
(0008) 	for(i=0;i<ms;i++)
    0053 2744      CLR	R20
    0054 2755      CLR	R21
    0055 C00B      RJMP	0x0061
(0009) 	   {
(0010) 	   for(j=0;j<1141;j++);
    0056 2766      CLR	R22
    0057 2777      CLR	R23
    0058 C002      RJMP	0x005B
    0059 5F6F      SUBI	R22,0xFF
    005A 4F7F      SBCI	R23,0xFF
    005B 3765      CPI	R22,0x75
    005C E0E4      LDI	R30,4
    005D 077E      CPC	R23,R30
    005E F3D0      BCS	0x0059
    005F 5F4F      SUBI	R20,0xFF
    0060 4F5F      SBCI	R21,0xFF
    0061 1740      CP	R20,R16
    0062 0751      CPC	R21,R17
    0063 F390      BCS	0x0056
(0011)        }
(0012) }
    0064 940E00A5  CALL	pop_gset2
    0066 9508      RET
(0013) void main()
(0014) {
(0015)    uchar k;
(0016)    DDRA|=BIT(2);
_main:
  k                    --> R20
    0067 9AD2      SBI	P1A,2
(0017)    PORTA|=BIT(2);
    0068 9ADA      SBI	P1B,2
(0018)    
(0019)    DDRB=0XFF;
    0069 EF8F      LDI	R24,0xFF
    006A BB87      OUT	P17,R24
(0020)    PORTB=0XFF;
    006B BB88      OUT	P18,R24
    006C C01B      RJMP	0x0088
(0021)    while(1)
(0022)    {
(0023)    for(k=0;k<8;k++)
    006D 2744      CLR	R20
    006E C017      RJMP	0x0086
(0024)    { 
(0025)    PORTB&=~BIT(k);
    006F E001      LDI	R16,1
    0070 2F14      MOV	R17,R20
    0071 940E00A8  CALL	lsl8
    0073 2E20      MOV	R2,R16
    0074 9420      COM	R2
    0075 B238      IN	R3,P18
    0076 2032      AND	R3,R2
    0077 BA38      OUT	P18,R3
(0026)    delay(500);
    0078 EF04      LDI	R16,0xF4
    0079 E011      LDI	R17,1
    007A DFD6      RCALL	_delay
(0027)    
(0028)    PORTB|=BIT(k);
    007B E001      LDI	R16,1
    007C 2F14      MOV	R17,R20
    007D 940E00A8  CALL	lsl8
    007F B228      IN	R2,P18
    0080 2A20      OR	R2,R16
    0081 BA28      OUT	P18,R2
(0029)    delay(500);
    0082 EF04      LDI	R16,0xF4
    0083 E011      LDI	R17,1
    0084 DFCC      RCALL	_delay
    0085 9543      INC	R20
    0086 3048      CPI	R20,0x8
    0087 F338      BCS	0x006F
    0088 CFE4      RJMP	0x006D
(0030)    }
(0031)    }
(0032) }FILE: <library>
    0089 9508      RET
push_gset1:
    008A 935A      ST	R21,-Y
    008B 934A      ST	R20,-Y
    008C 9508      RET
pop_gset1:
    008D E0E1      LDI	R30,1
pop:
    008E 9149      LD	R20,Y+
    008F 9159      LD	R21,Y+
    0090 FDE0      SBRC	R30,0
    0091 9508      RET
    0092 9169      LD	R22,Y+
    0093 9179      LD	R23,Y+
    0094 FDE1      SBRC	R30,1
    0095 9508      RET
    0096 90A9      LD	R10,Y+
    0097 90B9      LD	R11,Y+
    0098 FDE2      SBRC	R30,2
    0099 9508      RET
    009A 90C9      LD	R12,Y+
    009B 90D9      LD	R13,Y+
    009C FDE3      SBRC	R30,3
    009D 9508      RET
    009E 90E9      LD	R14,Y+
    009F 90F9      LD	R15,Y+
    00A0 9508      RET
push_gset2:
    00A1 937A      ST	R23,-Y
    00A2 936A      ST	R22,-Y
    00A3 940C008A  JMP	push_gset1
pop_gset2:
    00A5 E0E2      LDI	R30,2
    00A6 940C008E  JMP	pop
lsl8:
    00A8 2311      TST	R17
    00A9 F019      BEQ	0x00AD
    00AA 0F00      LSL	R16
    00AB 951A      DEC	R17
    00AC CFFB      RJMP	lsl8
    00AD 9508      RET

⌨️ 快捷键说明

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