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

📄 mdls40466.lst

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LST
字号:
__start:
__text_start:
      45 E5CF      LDI	R28,0x5F
      46 E0D4      LDI	R29,4
      47 BFCD      OUT	0x3D,R28
      48 BFDE      OUT	0x3E,R29
      49 51CE      SUBI	R28,0x1E
      4A 40D0      SBCI	R29,0
      4B EA0A      LDI	R16,0xAA
      4C 8308      STD	Y+0,R16
      4D 2400      CLR	R0
      4E E6E0      LDI	R30,0x60
      4F E0F0      LDI	R31,0
      50 E010      LDI	R17,0
      51 36E1      CPI	R30,0x61
      52 07F1      CPC	R31,R17
      53 F011      BEQ	0x0056
      54 9201      ST	R0,Z+
      55 CFFB      RJMP	0x0051
      56 8300      STD	Z+0,R16
      57 E8EA      LDI	R30,0x8A
      58 E0F0      LDI	R31,0
      59 E6A0      LDI	R26,0x60
      5A E0B0      LDI	R27,0
      5B E010      LDI	R17,0
      5C E000      LDI	R16,0
      5D BF0B      OUT	0x3B,R16
      5E 38EA      CPI	R30,0x8A
      5F 07F1      CPC	R31,R17
      60 F021      BEQ	0x0065
      61 95C8      LPM
      62 9631      ADIW	R30,1
      63 920D      ST	R0,X+
      64 CFF9      RJMP	0x005E
      65 940E 00B5 CALL	_main
_exit:
      67 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
      68 940E 014C CALL	push_xgsetF000
FILE: G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.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 uchar table[]="I LIKE AVR !";
(0007) const uchar table1[]="WWW.TXMCU.COM";
(0008) const uchar table2[]="I LOVE YOU !";
(0009) const uchar table3[]="WWW.ZJSRU.NET";
(0010) uchar k;
(0011) 
(0012) void delay(uint ms)
(0013) {
(0014)         uint i,j;
(0015) 	for(i=0;i<ms;i++)
      6A 2744      CLR	R20
      6B 2755      CLR	R21
      6C C00B      RJMP	0x0078
(0016) 	   {
(0017) 	   for(j=0;j<1141;j++);
      6D 2766      CLR	R22
      6E 2777      CLR	R23
      6F C002      RJMP	0x0072
      70 5F6F      SUBI	R22,0xFF
      71 4F7F      SBCI	R23,0xFF
      72 3765      CPI	R22,0x75
      73 E0E4      LDI	R30,4
      74 077E      CPC	R23,R30
      75 F3D0      BCS	0x0070
      76 5F4F      SUBI	R20,0xFF
      77 4F5F      SBCI	R21,0xFF
      78 1740      CP	R20,R16
      79 0751      CPC	R21,R17
      7A F390      BCS	0x006D
      7B 940C 0151 JMP	pop_xgsetF000
_write_com:
  com                  --> R10
      7D 92AA      ST	R10,-Y
      7E 2EA0      MOV	R10,R16
(0018)        }
(0019) }
(0020) void write_com(uchar com)
(0021) {
(0022)        PORTD&=~BIT(4);
      7F 9894      CBI	0x12,4
(0023) 	   PORTD&=~BIT(5);
      80 9895      CBI	0x12,5
(0024) 	   PORTB=com;
      81 BAA8      OUT	0x18,R10
(0025) 	   PORTD|=BIT(k);
      82 9110 0060 LDS	R17,k
      84 E001      LDI	R16,1
      85 940E 0156 CALL	lsl8
      87 B222      IN	R2,0x12
      88 2A20      OR	R2,R16
      89 BA22      OUT	0x12,R2
(0026) 	   delay(1);
      8A E001      LDI	R16,1
      8B E010      LDI	R17,0
      8C DFDB      RCALL	_delay
(0027) 	   PORTD&=~BIT(k);
      8D 9110 0060 LDS	R17,k
      8F E001      LDI	R16,1
      90 940E 0156 CALL	lsl8
      92 2E20      MOV	R2,R16
      93 9420      COM	R2
      94 B232      IN	R3,0x12
      95 2032      AND	R3,R2
      96 BA32      OUT	0x12,R3
      97 90A9      LD	R10,Y+
      98 9508      RET
_write_dat:
  dat                  --> R10
      99 92AA      ST	R10,-Y
      9A 2EA0      MOV	R10,R16
(0028) }
(0029) 
(0030) void write_dat(uchar dat)
(0031) {     
(0032)        PORTD|=BIT(4);
      9B 9A94      SBI	0x12,4
(0033) 	   PORTD&=~BIT(5);
      9C 9895      CBI	0x12,5
(0034) 	   PORTB=dat;
      9D BAA8      OUT	0x18,R10
(0035) 	   PORTD|=BIT(k);
      9E 9110 0060 LDS	R17,k
      A0 E001      LDI	R16,1
      A1 940E 0156 CALL	lsl8
      A3 B222      IN	R2,0x12
      A4 2A20      OR	R2,R16
      A5 BA22      OUT	0x12,R2
(0036) 	   delay(1);
      A6 E001      LDI	R16,1
      A7 E010      LDI	R17,0
      A8 DFBF      RCALL	_delay
(0037) 	   PORTD&=~BIT(k);
      A9 9110 0060 LDS	R17,k
      AB E001      LDI	R16,1
      AC 940E 0156 CALL	lsl8
      AE 2E20      MOV	R2,R16
      AF 9420      COM	R2
      B0 B232      IN	R3,0x12
      B1 2032      AND	R3,R2
      B2 BA32      OUT	0x12,R3
      B3 90A9      LD	R10,Y+
      B4 9508      RET
(0038) }
(0039) void  main()
(0040) {
(0041)       uchar i;
(0042) 	  for(k=6;k<8;k++)
_main:
  i                    --> R20
      B5 E086      LDI	R24,6
      B6 9380 0060 STS	k,R24
      B8 C08D      RJMP	0x0146
(0043) 	  {
(0044) 	  DDRB=0XFF;
      B9 EF8F      LDI	R24,0xFF
      BA BB87      OUT	0x17,R24
(0045) 	  DDRD|=BIT(4)|BIT(5)|BIT(k);
      BB 9110 0060 LDS	R17,k
      BD E001      LDI	R16,1
      BE 940E 0156 CALL	lsl8
      C0 2F80      MOV	R24,R16
      C1 6380      ORI	R24,0x30
      C2 B221      IN	R2,0x11
      C3 2A28      OR	R2,R24
      C4 BA21      OUT	0x11,R2
(0046) 	  PORTD&=~BIT(k);
      C5 9110 0060 LDS	R17,k
      C7 E001      LDI	R16,1
      C8 940E 0156 CALL	lsl8
      CA 2E20      MOV	R2,R16
      CB 9420      COM	R2
      CC B232      IN	R3,0x12
      CD 2032      AND	R3,R2
      CE BA32      OUT	0x12,R3
(0047) 	  write_com(0X38);
      CF E308      LDI	R16,0x38
      D0 DFAC      RCALL	_write_com
(0048) 	  delay(5);
      D1 E005      LDI	R16,5
      D2 E010      LDI	R17,0
      D3 DF94      RCALL	_delay
(0049) 	  write_com(0X01);/*清屏*/
      D4 E001      LDI	R16,1
      D5 DFA7      RCALL	_write_com
(0050) 	  delay(5);
      D6 E005      LDI	R16,5
      D7 E010      LDI	R17,0
      D8 DF8F      RCALL	_delay
(0051) 	  write_com(0X0C);
      D9 E00C      LDI	R16,0xC
      DA DFA2      RCALL	_write_com
(0052) 	  delay(5);
      DB E005      LDI	R16,5
      DC E010      LDI	R17,0
      DD DF8A      RCALL	_delay
(0053) 	  write_com(0X06);
      DE E006      LDI	R16,6
      DF DF9D      RCALL	_write_com
(0054) 	  delay(5);
      E0 E005      LDI	R16,5
      E1 E010      LDI	R17,0
      E2 DF85      RCALL	_delay
(0055) 	  write_com(0X80+27);
      E3 E90B      LDI	R16,0x9B
      E4 DF98      RCALL	_write_com
(0056) 	  delay(5);
      E5 E005      LDI	R16,5
      E6 E010      LDI	R17,0
      E7 DF80      RCALL	_delay
(0057) 	  if(k==6)
      E8 9180 0060 LDS	R24,k
      EA 3086      CPI	R24,6
      EB F489      BNE	0x00FD
(0058) 	  for(i=0;i<12;i++)
      EC 2744      CLR	R20
      ED C00C      RJMP	0x00FA
(0059) 	  {
(0060) 	     write_dat(table[i]);
      EE E584      LDI	R24,0x54
      EF E090      LDI	R25,0
      F0 2FE4      MOV	R30,R20
      F1 27FF      CLR	R31
      F2 0FE8      ADD	R30,R24
      F3 1FF9      ADC	R31,R25
      F4 9104      LPM	R16,0(Z)
      F5 DFA3      RCALL	_write_dat
(0061) 		 delay(50);
      F6 E302      LDI	R16,0x32
      F7 E010      LDI	R17,0
      F8 DF6F      RCALL	_delay
      F9 9543      INC	R20
      FA 304C      CPI	R20,0xC
      FB F390      BCS	0x00EE
      FC C010      RJMP	0x010D
(0062) 	  }
(0063)       else
(0064) 	  	  for(i=0;i<12;i++)
      FD 2744      CLR	R20
      FE C00C      RJMP	0x010B
(0065) 	  {
(0066) 	     write_dat(table2[i]);
      FF E68F      LDI	R24,0x6F
     100 E090      LDI	R25,0
     101 2FE4      MOV	R30,R20
     102 27FF      CLR	R31
     103 0FE8      ADD	R30,R24
     104 1FF9      ADC	R31,R25
     105 9104      LPM	R16,0(Z)
     106 DF92      RCALL	_write_dat
(0067) 		 delay(50);
     107 E302      LDI	R16,0x32
     108 E010      LDI	R17,0
     109 DF5E      RCALL	_delay
     10A 9543      INC	R20
     10B 304C      CPI	R20,0xC
     10C F390      BCS	0x00FF
(0068) 	  }
(0069) 	  write_com(0X80+0X43);
     10D EC03      LDI	R16,0xC3
     10E DF6E      RCALL	_write_com
(0070) 	  delay(5);
     10F E005      LDI	R16,5
     110 E010      LDI	R17,0
     111 DF56      RCALL	_delay
(0071)        if(k==6)
     112 9180 0060 LDS	R24,k
     114 3086      CPI	R24,6
     115 F489      BNE	0x0127
(0072) 	    for(i=0;i<13;i++)
     116 2744      CLR	R20
     117 C00C      RJMP	0x0124
(0073) 	  {
(0074) 	     write_dat(table1[i]);
     118 E681      LDI	R24,0x61
     119 E090      LDI	R25,0
     11A 2FE4      MOV	R30,R20
     11B 27FF      CLR	R31
     11C 0FE8      ADD	R30,R24
     11D 1FF9      ADC	R31,R25
     11E 9104      LPM	R16,0(Z)
     11F DF79      RCALL	_write_dat
(0075) 		 delay(5);
     120 E005      LDI	R16,5
     121 E010      LDI	R17,0
     122 DF45      RCALL	_delay
     123 9543      INC	R20
     124 304D      CPI	R20,0xD
     125 F390      BCS	0x0118
     126 C010      RJMP	0x0137
(0076) 	  }
(0077)       else
(0078) 	    for(i=0;i<13;i++)
     127 2744      CLR	R20
     128 C00C      RJMP	0x0135
(0079) 	  {
(0080) 	     write_dat(table3[i]);
     129 E78C      LDI	R24,0x7C
     12A E090      LDI	R25,0
     12B 2FE4      MOV	R30,R20
     12C 27FF      CLR	R31
     12D 0FE8      ADD	R30,R24
     12E 1FF9      ADC	R31,R25
     12F 9104      LPM	R16,0(Z)
     130 DF68      RCALL	_write_dat
(0081) 		 delay(5);
     131 E005      LDI	R16,5
     132 E010      LDI	R17,0
     133 DF34      RCALL	_delay
     134 9543      INC	R20
     135 304D      CPI	R20,0xD
     136 F390      BCS	0x0129
(0082) 	  }
(0083) 	  for(i=0;i<10;i++)
     137 2744      CLR	R20
     138 C006      RJMP	0x013F
(0084) 	  {
(0085) 	     write_com(0X1D);/*左移*/
     139 E10D      LDI	R16,0x1D
     13A DF42      RCALL	_write_com
(0086) 		 delay(500);
FILE: <library>
     13B EF04      LDI	R16,0xF4
     13C E011      LDI	R17,1
     13D DF2A      RCALL	_delay
     13E 9543      INC	R20
     13F 304A      CPI	R20,0xA
     140 F3C0      BCS	0x0139
     141 9180 0060 LDS	R24,k
     143 5F8F      SUBI	R24,0xFF
     144 9380 0060 STS	k,R24
     146 9180 0060 LDS	R24,k
     148 3088      CPI	R24,0x8
     149 F408      BCC	0x014B
     14A CF6E      RJMP	0x00B9
     14B 9508      RET
push_xgsetF000:
     14C 937A      ST	R23,-Y
     14D 936A      ST	R22,-Y
     14E 935A      ST	R21,-Y
     14F 934A      ST	R20,-Y
     150 9508      RET
pop_xgsetF000:
     151 9149      LD	R20,Y+
     152 9159      LD	R21,Y+
     153 9169      LD	R22,Y+
     154 9179      LD	R23,Y+
     155 9508      RET
lsl8:
     156 2311      TST	R17
     157 F019      BEQ	0x015B
     158 0F00      LSL	R16
     159 951A      DEC	R17
     15A CFFB      RJMP	lsl8
     15B 9508      RET

⌨️ 快捷键说明

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