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

📄 lesson4.lst

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LST
字号:
__start:
__text_start:
      23 E5CF      LDI	R28,0x5F
      24 E0D4      LDI	R29,4
      25 BFCD      OUT	0x3D,R28
      26 BFDE      OUT	0x3E,R29
      27 51C0      SUBI	R28,0x10
      28 40D0      SBCI	R29,0
      29 EA0A      LDI	R16,0xAA
      2A 8308      STD	Y+0,R16
      2B 2400      CLR	R0
      2C E6E0      LDI	R30,0x60
      2D E0F0      LDI	R31,0
      2E E010      LDI	R17,0
      2F 36E0      CPI	R30,0x60
      30 07F1      CPC	R31,R17
      31 F011      BEQ	0x0034
      32 9201      ST	R0,Z+
      33 CFFB      RJMP	0x002F
      34 8300      STD	Z+0,R16
      35 E4E6      LDI	R30,0x46
      36 E0F0      LDI	R31,0
      37 E6A0      LDI	R26,0x60
      38 E0B0      LDI	R27,0
      39 E010      LDI	R17,0
      3A E000      LDI	R16,0
      3B BF0B      OUT	0x3B,R16
      3C 34E6      CPI	R30,0x46
      3D 07F1      CPC	R31,R17
      3E F021      BEQ	0x0043
      3F 95C8      LPM
      40 9631      ADIW	R30,1
      41 920D      ST	R0,X+
      42 CFF9      RJMP	0x003C
      43 D037      RCALL	_main
_exit:
      44 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
      45 D068      RCALL	push_xgsetF000
FILE: G:\学习\avr\天祥电子AVR视频教程\chengxu\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++)
      46 2744      CLR	R20
      47 2755      CLR	R21
      48 C00B      RJMP	0x0054
(0012) 	   {
(0013) 	   for(j=0;j<1141;j++);
      49 2766      CLR	R22
      4A 2777      CLR	R23
      4B C002      RJMP	0x004E
      4C 5F6F      SUBI	R22,0xFF
      4D 4F7F      SBCI	R23,0xFF
      4E 3765      CPI	R22,0x75
      4F E0E4      LDI	R30,4
      50 077E      CPC	R23,R30
      51 F3D0      BCS	0x004C
      52 5F4F      SUBI	R20,0xFF
      53 4F5F      SBCI	R21,0xFF
      54 1740      CP	R20,R16
      55 0751      CPC	R21,R17
      56 F390      BCS	0x0049
      57 C05B      RJMP	pop_xgsetF000
_show:
  k                    --> R10
  j                    --> R12
      58 92AA      ST	R10,-Y
      59 92CA      ST	R12,-Y
      5A 2EA2      MOV	R10,R18
      5B 2EC0      MOV	R12,R16
(0014)        }
(0015) }
(0016) void show(uchar j,uchar k)
(0017) {
(0018)     PORTA|=BIT(3);
      5C 9ADB      SBI	0x1B,3
(0019) 	PORTB=table[j];
      5D E286      LDI	R24,0x26
      5E E090      LDI	R25,0
      5F 2DEC      MOV	R30,R12
      60 27FF      CLR	R31
      61 0FEE      LSL	R30
      62 1FFF      ROL	R31
      63 0FE8      ADD	R30,R24
      64 1FF9      ADC	R31,R25
      65 9025      LPM	R2,Z+
      66 9034      LPM	R3,0(Z)
      67 BA28      OUT	0x18,R2
(0020) 	PORTA&=~BIT(3);
      68 98DB      CBI	0x1B,3
(0021) 	PORTB=0XFF;
      69 EF8F      LDI	R24,0xFF
      6A BB88      OUT	0x18,R24
(0022) 	PORTB&=~BIT(k);
      6B E001      LDI	R16,1
      6C 2D1A      MOV	R17,R10
      6D D04A      RCALL	lsl8
      6E 2E20      MOV	R2,R16
      6F 9420      COM	R2
      70 B238      IN	R3,0x18
      71 2032      AND	R3,R2
      72 BA38      OUT	0x18,R3
(0023) 	PORTA|=BIT(4);
      73 9ADC      SBI	0x1B,4
(0024) 	PORTA&=~BIT(4);
      74 98DC      CBI	0x1B,4
(0025) 	delay(50);
      75 E302      LDI	R16,0x32
      76 E010      LDI	R17,0
      77 DFCD      RCALL	_delay
      78 90C9      LD	R12,Y+
      79 90A9      LD	R10,Y+
      7A 9508      RET
(0026) }
(0027) void main()
(0028) {
(0029)         uchar i,j;
(0030)         DDRA|=BIT(3);
_main:
  j                    --> R20
  i                    --> R22
      7B 9AD3      SBI	0x1A,3
(0031) 	DDRA|=BIT(4);
      7C 9AD4      SBI	0x1A,4
(0032) 	DDRB=0XFF;
      7D EF8F      LDI	R24,0xFF
      7E BB87      OUT	0x17,R24
      7F C014      RJMP	0x0094
(0033) 	while(1)
(0034) 	{
(0035) 	 for(j=0;j<600;j++)
      80 2744      CLR	R20
      81 C010      RJMP	0x0092
(0036) 	  for(i=0;i<6;i++)
      82 2766      CLR	R22
      83 C00B      RJMP	0x008F
(0037) 	   show((i+j/100)%6,i);
FILE: <library>
      84 2F26      MOV	R18,R22
      85 E614      LDI	R17,0x64
      86 2F04      MOV	R16,R20
      87 D010      RCALL	div8u
      88 2E20      MOV	R2,R16
      89 2F06      MOV	R16,R22
      8A 0D02      ADD	R16,R2
      8B E016      LDI	R17,6
      8C D009      RCALL	mod8u
      8D DFCA      RCALL	_show
      8E 9563      INC	R22
      8F 3066      CPI	R22,6
      90 F398      BCS	0x0084
      91 9543      INC	R20
      92 3548      CPI	R20,0x58
      93 F370      BCS	0x0082
      94 CFEB      RJMP	0x0080
      95 9508      RET
mod8u:
      96 9468      BSET	6
      97 C001      RJMP	xdiv8u
div8u:
      98 94E8      BCLR	6
xdiv8u:
      99 932A      ST	R18,-Y
      9A 92FA      ST	R15,-Y
      9B 92EA      ST	R14,-Y
      9C 24FF      CLR	R15
      9D 24EE      CLR	R14
      9E E120      LDI	R18,0x10
      9F 0F00      LSL	R16
      A0 1CFF      ROL	R15
      A1 1CEE      ROL	R14
      A2 16E1      CP	R14,R17
      A3 F010      BCS	0x00A6
      A4 1AE1      SUB	R14,R17
      A5 9503      INC	R16
      A6 952A      DEC	R18
      A7 F7B9      BNE	0x009F
      A8 F40E      BRTC	0x00AA
      A9 2D0E      MOV	R16,R14
      AA 90E9      LD	R14,Y+
      AB 90F9      LD	R15,Y+
      AC 9129      LD	R18,Y+
      AD 9508      RET
push_xgsetF000:
      AE 937A      ST	R23,-Y
      AF 936A      ST	R22,-Y
      B0 935A      ST	R21,-Y
      B1 934A      ST	R20,-Y
      B2 9508      RET
pop_xgsetF000:
      B3 9149      LD	R20,Y+
      B4 9159      LD	R21,Y+
      B5 9169      LD	R22,Y+
      B6 9179      LD	R23,Y+
      B7 9508      RET
lsl8:
      B8 2311      TST	R17
      B9 F019      BEQ	0x00BD
      BA 0F00      LSL	R16
      BB 951A      DEC	R17
      BC CFFB      RJMP	lsl8
      BD 9508      RET

⌨️ 快捷键说明

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