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

📄 mega128.lst

📁 ATmegal128的JTAG测试程序
💻 LST
字号:
__text_start:
__start:
    0051 EFCF      LDI	R28,0xFF
    0052 E1D0      LDI	R29,0x10
    0053 BFCD      OUT	P3D,R28
    0054 BFDE      OUT	P3E,R29
    0055 51C0      SUBI	R28,0x10
    0056 40D0      SBCI	R29,0
    0057 EA0A      LDI	R16,0xAA
    0058 8308      STD	R16,0+Y
    0059 2400      CLR	R0
    005A E0E4      LDI	R30,4
    005B E0F1      LDI	R31,1
    005C E011      LDI	R17,1
    005D 30E4      CPI	R30,4
    005E 07F1      CPC	R31,R17
    005F F011      BEQ	0x0062
    0060 9201      ST	R0,Z+
    0061 CFFB      RJMP	0x005D
    0062 8300      STD	R16,0+Z
    0063 E9EC      LDI	R30,0x9C
    0064 E0F0      LDI	R31,0
    0065 E0A0      LDI	R26,0
    0066 E0B1      LDI	R27,1
    0067 E010      LDI	R17,0
    0068 3AE0      CPI	R30,0xA0
    0069 07F1      CPC	R31,R17
    006A F021      BEQ	0x006F
    006B 95C8      LPM
    006C 9631      ADIW	R30,1
    006D 920D      ST	R0,X+
    006E CFF9      RJMP	0x0068
    0070 940E00C0  CALL	_main
_exit:
    0071 CFFF      RJMP	_delay_1ms
FILE: D:\jtag_test\led_128.c
(0001) #include <iom128.h>
(0002) #define xtal 16
(0003) const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
(0004) 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
(0005) unsigned char led_buff[4]={0,0,0,0};	  
(0006) void delay_1ms(void)
(0007) 	 {
(0008) 	  unsigned int i;
(0009)  	  for(i=1;i<(unsigned int)(xtal*143-2);i++)
    0072 E001      LDI	R16,1
    0073 E010      LDI	R17,0
    0074 C002      RJMP	0x0077
(0010)       	; 
    0075 5F0F      SUBI	R16,0xFF
    0076 4F1F      SBCI	R17,0xFF
    0077 3E0E      CPI	R16,0xEE
    0078 E0E8      LDI	R30,0x8
    0079 071E      CPC	R17,R30
    007A F3D0      BCS	0x0075
(0011) 	 }
    007B 9508      RET
_led_display:
  i                    --> R20
    007D 940E00D2  CALL	push_gset1
(0012) /*void delay_ms(unsigned int n)
(0013) 	 {
(0014)  	  unsigned int i=0;
(0015)    	  while(i<n)
(0016)    	  		{
(0017) 			 delay_1ms();
(0018) 			 i++;
(0019)    			}
(0020) 	 }*/
(0021) void led_display(void)
(0022) 	 {
(0023) 	  unsigned char i;
(0024) 	  DDRA=0xff;
    007E EF8F      LDI	R24,0xFF
    007F BB8A      OUT	P1A,R24
(0025) 	  PORTA=0xff;
    0080 BB8B      OUT	P1B,R24
(0026) 	  DDRC|=0xf0;
    0081 B384      IN	R24,P14
    0082 6F80      ORI	R24,0xF0
    0083 BB84      OUT	P14,R24
(0027) 	  PORTC|=0xf0;
    0084 B385      IN	R24,P15
    0085 6F80      ORI	R24,0xF0
    0086 BB85      OUT	P15,R24
(0028) 	  for(i=0;i<4;i++)
    0087 2744      CLR	R20
    0088 C017      RJMP	0x00A0
(0029) 	  	 {		  
(0030) 		  PORTA=led_buff[i];
    0089 E080      LDI	R24,0
    008A E091      LDI	R25,1
    008B 2FE4      MOV	R30,R20
    008C 27FF      CLR	R31
    008D 0FE8      ADD	R30,R24
    008E 1FF9      ADC	R31,R25
    008F 8020      LDD	R2,0+Z
    0090 BA2B      OUT	P1B,R2
(0031) 		  PORTC&=~(1<<(i+4));
    0091 2F14      MOV	R17,R20
    0092 5F1C      SUBI	R17,0xFC
    0093 E001      LDI	R16,1
    0095 940E00E9  CALL	lsl8
    0096 2E20      MOV	R2,R16
    0097 9420      COM	R2
    0098 B235      IN	R3,P15
    0099 2032      AND	R3,R2
    009A BA35      OUT	P15,R3
(0032) 		  delay_1ms();
    009B DFD6      RCALL	0x0072
(0033) 		  PORTC|=0xf0;
    009C B385      IN	R24,P15
    009D 6F80      ORI	R24,0xF0
    009E BB85      OUT	P15,R24
(0034) 		 }
    009F 9543      INC	R20
    00A0 3044      CPI	R20,4
    00A1 F338      BCS	0x0089
(0035) 	 }
    00A3 940E00D5  CALL	pop_gset1
    00A4 9508      RET
_led_fill:
  i                    --> R20
  index                --> R16
    00A6 940E00D2  CALL	push_gset1
(0036) void led_fill(unsigned char index)
(0037) 	 {	 
(0038) 	  unsigned char i;
(0039) 	  for(i=0;i<4;i++)
    00A7 2744      CLR	R20
    00A8 C013      RJMP	0x00BC
(0040) 	     {
(0041) 		  led_buff[i]=seg_table[index+i];
    00A9 2E24      MOV	R2,R20
    00AA 2433      CLR	R3
    00AB 2FE0      MOV	R30,R16
    00AC 27FF      CLR	R31
    00AD 0DE2      ADD	R30,R2
    00AE 1DF3      ADC	R31,R3
    00AF E88C      LDI	R24,0x8C
    00B0 E090      LDI	R25,0
    00B1 0FE8      ADD	R30,R24
    00B2 1FF9      ADC	R31,R25
    00B3 91E4      LD	R30,R30
    00B4 E080      LDI	R24,0
    00B5 E091      LDI	R25,1
    00B6 2FA4      MOV	R26,R20
    00B7 27BB      CLR	R27
    00B8 0FA8      ADD	R26,R24
    00B9 1FB9      ADC	R27,R25
    00BA 93EC      ST	R30,0(X)
(0042) 		 }
    00BB 9543      INC	R20
    00BC 3044      CPI	R20,4
    00BD F358      BCS	0x00A9
(0043) 	 }	 
    00BF 940E00D5  CALL	pop_gset1
    00C0 9508      RET
(0044) void main(void)
(0045) 	 {
_main:
  j                    --> R20
  i                    --> R22
    00C1 C00F      RJMP	0x00D1
(0046) 	  unsigned char i,j;
(0047) 	  while(1)
(0048) 	  	   {
(0049) 		    for(j=0;j<4;j++)
    00C2 2744      CLR	R20
    00C3 C00B      RJMP	0x00CF
(0050) 				{
(0051) 		    	 led_fill(4*j);
    00C4 E084      LDI	R24,4
    00C5 9F84      MUL	R24,R20
    00C6 0180      MOVW	R16,R0
    00C7 DFDD      RCALL	0x00A5
(0052) 				 for(i=0;i<200;i++)
    00C8 2766      CLR	R22
    00C9 C002      RJMP	0x00CC
(0053) 			     	led_display();
    00CA DFB1      RCALL	0x007C
    00CB 9563      INC	R22
    00CC 3C68      CPI	R22,0xC8
    00CD F3E0      BCS	0x00CA
(0054) 				} 
    00CE 9543      INC	R20
    00CF 3044      CPI	R20,4
    00D0 F398      BCS	0x00C4
(0055) 		   }
    00D1 CFF0      RJMP	0x00C2
(0056) 	 }
FILE: <library>
    00D2 9508      RET
push_gset1:
    00D3 935A      ST	R21,-Y
    00D4 934A      ST	R20,-Y
    00D5 9508      RET
pop_gset1:
    00D6 E0E1      LDI	R30,1
pop:
    00D7 9149      LD	R20,Y+
    00D8 9159      LD	R21,Y+
    00D9 FDE0      SBRC	R30,0
    00DA 9508      RET
    00DB 9169      LD	R22,Y+
    00DC 9179      LD	R23,Y+
    00DD FDE1      SBRC	R30,1
    00DE 9508      RET
    00DF 90A9      LD	R10,Y+
    00E0 90B9      LD	R11,Y+
    00E1 FDE2      SBRC	R30,2
    00E2 9508      RET
    00E3 90C9      LD	R12,Y+
    00E4 90D9      LD	R13,Y+
    00E5 FDE3      SBRC	R30,3
    00E6 9508      RET
    00E7 90E9      LD	R14,Y+
    00E8 90F9      LD	R15,Y+
    00E9 9508      RET
lsl8:
    00EA 2311      TST	R17
    00EB F019      BEQ	0x00EF
    00EC 0F00      LSL	R16
    00ED 951A      DEC	R17
    00EE CFFB      RJMP	0x00EA
    00EF 9508      RET

⌨️ 快捷键说明

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