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

📄 lesson4.lst

📁 AVR单片机视频教程的课件和每一次课的源程序是学习AVR单片机的首选 第4节
💻 LST
字号:
__start:
__text_start:
    0040 E5CF      LDI	R28,0x5F
    0041 E0D4      LDI	R29,4
    0042 BFCD      OUT	P3D,R28
    0043 BFDE      OUT	P3E,R29
    0044 51C0      SUBI	R28,0x10
    0045 40D0      SBCI	R29,0
    0046 EA0A      LDI	R16,0xAA
    0047 8308      STD	R16,0+Y
    0048 2400      CLR	R0
    0049 E6E0      LDI	R30,0x60
    004A E0F0      LDI	R31,0
    004B E010      LDI	R17,0
    004C 36E0      CPI	R30,0x60
    004D 07F1      CPC	R31,R17
    004E F011      BEQ	0x0051
    004F 9201      ST	R0,Z+
    0050 CFFB      RJMP	0x004C
    0051 8300      STD	R16,0+Z
    0052 E8E0      LDI	R30,0x80
    0053 E0F0      LDI	R31,0
    0054 E6A0      LDI	R26,0x60
    0055 E0B0      LDI	R27,0
    0056 E010      LDI	R17,0
    0057 38E0      CPI	R30,0x80
    0058 07F1      CPC	R31,R17
    0059 F021      BEQ	0x005E
    005A 95C8      LPM
    005B 9631      ADIW	R30,1
    005C 920D      ST	R0,X+
    005D CFF9      RJMP	0x0057
    005E 940E009B  CALL	_main
_exit:
    0060 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    0061 940E00C2  CALL	push_gset2
FILE: I:\AVR视频教程\视频教程\lesson4\lesson4\lesson4.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) #pragma data:code 
(0006) const  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
(0007) 		           0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
(0008) void delay(uint ms)
(0009) {
(0010)     uint i,j;
(0011) 	for(i=0;i<ms;i++)
    0063 2744      CLR	R20
    0064 2755      CLR	R21
    0065 C00B      RJMP	0x0071
(0012) 	   {
(0013) 	   for(j=0;j<1141;j++);
    0066 2766      CLR	R22
    0067 2777      CLR	R23
    0068 C002      RJMP	0x006B
    0069 5F6F      SUBI	R22,0xFF
    006A 4F7F      SBCI	R23,0xFF
    006B 3765      CPI	R22,0x75
    006C E0E4      LDI	R30,4
    006D 077E      CPC	R23,R30
    006E F3D0      BCS	0x0069
    006F 5F4F      SUBI	R20,0xFF
    0070 4F5F      SBCI	R21,0xFF
    0071 1740      CP	R20,R16
    0072 0751      CPC	R21,R17
    0073 F390      BCS	0x0066
(0014)        }
(0015) }
    0074 940E00C6  CALL	pop_gset2
    0076 9508      RET
_show:
  k                    --> R20
  j                    --> R22
    0077 940E00C2  CALL	push_gset2
    0079 2F42      MOV	R20,R18
    007A 2F60      MOV	R22,R16
(0016) void show(uchar j,uchar k)
(0017) {
(0018)     PORTA|=BIT(3);
    007B 9ADB      SBI	P1B,3
(0019) 	PORTB=table[j];
    007C E082      LDI	R24,2
    007D 9F86      MUL	R24,R22
    007E 01F0      MOVW	R30,R0
    007F E680      LDI	R24,0x60
    0080 E090      LDI	R25,0
    0081 0FE8      ADD	R30,R24
    0082 1FF9      ADC	R31,R25
    0083 9005      LD	R0,R0
    0084 9014      LD	R1,R1
    0085 01F0      MOVW	R30,R0
    0086 BBE8      OUT	P18,R30
(0020) 	PORTA&=~BIT(3);
    0087 98DB      CBI	P1B,3
(0021) 	
(0022) 	PORTB=0XFF;
    0088 EF8F      LDI	R24,0xFF
    0089 BB88      OUT	P18,R24
(0023) 	PORTB&=~BIT(k);
    008A E001      LDI	R16,1
    008B 2F14      MOV	R17,R20
    008C 940E00C9  CALL	lsl8
    008E 2E20      MOV	R2,R16
    008F 9420      COM	R2
    0090 B238      IN	R3,P18
    0091 2032      AND	R3,R2
    0092 BA38      OUT	P18,R3
(0024) 	PORTA|=BIT(4);
    0093 9ADC      SBI	P1B,4
(0025) 	PORTA&=~BIT(4);
    0094 98DC      CBI	P1B,4
(0026) 	delay(1);
    0095 E001      LDI	R16,1
    0096 E010      LDI	R17,0
    0097 DFC9      RCALL	_delay
(0027) }
    0098 940E00C6  CALL	pop_gset2
    009A 9508      RET
(0028) void main()
(0029) {
(0030)     uchar i;
(0031)     DDRA|=BIT(3);
_main:
  i                    --> R20
    009B 9AD3      SBI	P1A,3
(0032) 	DDRA|=BIT(4);
    009C 9AD4      SBI	P1A,4
(0033) 	DDRB=0XFF;
    009D EF8F      LDI	R24,0xFF
    009E BB87      OUT	P17,R24
    009F C009      RJMP	0x00A9
(0034) 	while(1)
(0035) 	{
(0036) 	for(i=1;i<7;i++)
    00A0 E041      LDI	R20,1
    00A1 C005      RJMP	0x00A7
(0037) 	{
(0038) 	   show(i,i-1);
    00A2 2F24      MOV	R18,R20
    00A3 5021      SUBI	R18,1
    00A4 2F04      MOV	R16,R20
    00A5 DFD1      RCALL	_show
    00A6 9543      INC	R20
    00A7 3047      CPI	R20,7
    00A8 F3C8      BCS	0x00A2
    00A9 CFF6      RJMP	0x00A0
(0039) 	}
(0040) 	}
(0041) }FILE: <library>
    00AA 9508      RET
push_gset1:
    00AB 935A      ST	R21,-Y
    00AC 934A      ST	R20,-Y
    00AD 9508      RET
pop_gset1:
    00AE E0E1      LDI	R30,1
pop:
    00AF 9149      LD	R20,Y+
    00B0 9159      LD	R21,Y+
    00B1 FDE0      SBRC	R30,0
    00B2 9508      RET
    00B3 9169      LD	R22,Y+
    00B4 9179      LD	R23,Y+
    00B5 FDE1      SBRC	R30,1
    00B6 9508      RET
    00B7 90A9      LD	R10,Y+
    00B8 90B9      LD	R11,Y+
    00B9 FDE2      SBRC	R30,2
    00BA 9508      RET
    00BB 90C9      LD	R12,Y+
    00BC 90D9      LD	R13,Y+
    00BD FDE3      SBRC	R30,3
    00BE 9508      RET
    00BF 90E9      LD	R14,Y+
    00C0 90F9      LD	R15,Y+
    00C1 9508      RET
push_gset2:
    00C2 937A      ST	R23,-Y
    00C3 936A      ST	R22,-Y
    00C4 940C00AB  JMP	push_gset1
pop_gset2:
    00C6 E0E2      LDI	R30,2
    00C7 940C00AF  JMP	pop
lsl8:
    00C9 2311      TST	R17
    00CA F019      BEQ	0x00CE
    00CB 0F00      LSL	R16
    00CC 951A      DEC	R17
    00CD CFFB      RJMP	lsl8
    00CE 9508      RET

⌨️ 快捷键说明

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