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

📄 02-8a-5.lst

📁 这里有11个用ICCAVR开发的源代码,经DEMO板调试后已经通过.
💻 LST
字号:
__start:
__text_start:
    001A EFCF      LDI	R28,0xFF
    001B E0D2      LDI	R29,2
    001C BFCD      OUT	0x3D,R28
    001D BFDE      OUT	0x3E,R29
    001E 51C0      SUBI	R28,0x10
    001F 40D0      SBCI	R29,0
    0020 EA0A      LDI	R16,0xAA
    0021 8308      STD	Y+0,R16
    0022 2400      CLR	R0
    0023 E0E0      LDI	R30,0
    0024 E0F1      LDI	R31,1
    0025 E011      LDI	R17,1
    0026 30E0      CPI	R30,0
    0027 07F1      CPC	R31,R17
    0028 F011      BEQ	0x002B
    0029 9201      ST	R0,Z+
    002A CFFB      RJMP	0x0026
    002B 8300      STD	Z+0,R16
    002C E3E4      LDI	R30,0x34
    002D E0F0      LDI	R31,0
    002E E0A0      LDI	R26,0
    002F E0B1      LDI	R27,1
    0030 E010      LDI	R17,0
    0031 33E4      CPI	R30,0x34
    0032 07F1      CPC	R31,R17
    0033 F021      BEQ	0x0038
    0034 95C8      LPM
    0035 9631      ADIW	R30,1
    0036 920D      ST	R0,X+
    0037 CFF9      RJMP	0x0031
    0038 D01D      RCALL	_main
_exit:
    0039 CFFF      RJMP	_exit
FILE: D:\xij\demo\demo_diy02-8a\1\C语言\02-8A-5\5.c
(0001) #include	"iom48v.h"
(0002) 
(0003) void		port_init()
(0004) {
(0005)  PORTB=0XFF;DDRB=0XFF;//设置PB输输出
_port_init:
    003A EF8F      LDI	R24,0xFF
    003B B985      OUT	0x05,R24
    003C B984      OUT	0x04,R24
(0006)  PORTD=0XFF;DDRD=0;//设置PD口为输入
    003D B98B      OUT	0x0B,R24
    003E 2422      CLR	R2
    003F B82A      OUT	0x0A,R2
    0040 9508      RET
(0007) }
(0008) 
(0009) void delay_us(int time)
(0010) {   //微秒延时  
(0011)  do
(0012)  {
(0013)   time--;
_delay_us:
  time                 --> R16
    0041 5001      SUBI	R16,1
    0042 4010      SBCI	R17,0
(0014)  }	
(0015)   while (time>1);
    0043 E081      LDI	R24,1
    0044 E090      LDI	R25,0
    0045 1780      CP	R24,R16
    0046 0791      CPC	R25,R17
    0047 F3CC      BLT	0x0041
    0048 9508      RET
_delay_ms:
  time                 --> R20
    0049 D025      RCALL	push_gset1
    004A 01A8      MOVW	R20,R16
(0016) }	  
(0017) 
(0018) void delay_ms(unsigned int time)
(0019) {   //毫秒延时
    004B C005      RJMP	0x0051
(0020)  while(time!=0)
(0021)  {		
(0022)   delay_us(1000);
    004C EE08      LDI	R16,0xE8
    004D E013      LDI	R17,3
    004E DFF2      RCALL	_delay_us
(0023)   time--;
    004F 5041      SUBI	R20,1
    0050 4050      SBCI	R21,0
    0051 3040      CPI	R20,0
    0052 0745      CPC	R20,R21
    0053 F7C1      BNE	0x004C
    0054 D01D      RCALL	pop_gset1
    0055 9508      RET
(0024)  }
(0025) }
(0026) 
(0027) void		main()
(0028) {
(0029)  unsigned		  char i;
(0030)  port_init();	  //端口初始化
_main:
  i                    --> R20
    0056 DFE3      RCALL	_port_init
    0057 C00D      RJMP	0x0065
(0031)  while(1){
(0032)  i=PIND&0x04;   		  //读出PD2口状态
    0058 B149      IN	R20,0x09
    0059 7044      ANDI	R20,4
(0033)  if(i==0){
    005A F441      BNE	0x0063
(0034)  	 PORTB^=0x7;
    005B E087      LDI	R24,7
    005C B025      IN	R2,0x05
    005D 2628      EOR	R2,R24
    005E B825      OUT	0x05,R2
(0035) 	 delay_ms(200);
    005F EC08      LDI	R16,0xC8
    0060 E010      LDI	R17,0
    0061 DFE7      RCALL	_delay_ms
(0036) 	 }
    0062 C002      RJMP	0x0065
(0037)  else
(0038)  	 PORTB=0XFF; 
FILE: <library>
    0063 EF8F      LDI	R24,0xFF
    0064 B985      OUT	0x05,R24
    0065 CFF2      RJMP	0x0058
    0066 9508      RET
push_gset5:
    0067 92FA      ST	R15,-Y
    0068 92EA      ST	R14,-Y
push_gset4:
    0069 92DA      ST	R13,-Y
    006A 92CA      ST	R12,-Y
push_gset3:
    006B 92BA      ST	R11,-Y
    006C 92AA      ST	R10,-Y
push_gset2:
    006D 937A      ST	R23,-Y
    006E 936A      ST	R22,-Y
push_gset1:
    006F 935A      ST	R21,-Y
    0070 934A      ST	R20,-Y
    0071 9508      RET
pop_gset1:
    0072 E0E1      LDI	R30,1
pop:
    0073 9149      LD	R20,Y+
    0074 9159      LD	R21,Y+
    0075 FDE0      SBRC	R30,0
    0076 9508      RET
    0077 9169      LD	R22,Y+
    0078 9179      LD	R23,Y+
    0079 FDE1      SBRC	R30,1
    007A 9508      RET
    007B 90A9      LD	R10,Y+
    007C 90B9      LD	R11,Y+
    007D FDE2      SBRC	R30,2
    007E 9508      RET
    007F 90C9      LD	R12,Y+
    0080 90D9      LD	R13,Y+
    0081 FDE3      SBRC	R30,3
    0082 9508      RET
    0083 90E9      LD	R14,Y+
    0084 90F9      LD	R15,Y+
    0085 9508      RET

⌨️ 快捷键说明

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