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

📄 main.lst

📁 一个关于AVR单片机的例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    0129 E5CF      LDI	R28,0x5F
    012A E0D4      LDI	R29,4
    012B BFCD      OUT	0x3D,R28
    012C BFDE      OUT	0x3E,R29
    012D 51C0      SUBI	R28,0x10
    012E 40D0      SBCI	R29,0
    012F EA0A      LDI	R16,0xAA
    0130 8308      STD	Y+0,R16
    0131 2400      CLR	R0
    0132 E4EA      LDI	R30,0x4A
    0133 E0F1      LDI	R31,1
    0134 E011      LDI	R17,1
    0135 36E8      CPI	R30,0x68
    0136 07F1      CPC	R31,R17
    0137 F011      BEQ	0x013A
    0138 9201      ST	R0,Z+
    0139 CFFB      RJMP	0x0135
    013A 8300      STD	Z+0,R16
    013B E6E7      LDI	R30,0x67
    013C E0F1      LDI	R31,1
    013D E6A0      LDI	R26,0x60
    013E E0B0      LDI	R27,0
    013F E012      LDI	R17,2
    0140 35E1      CPI	R30,0x51
    0141 07F1      CPC	R31,R17
    0142 F021      BEQ	0x0147
    0143 95C8      LPM
    0144 9631      ADIW	R30,1
    0145 920D      ST	R0,X+
    0146 CFF9      RJMP	0x0140
    0147 940E0162  CALL	_main
_exit:
    0149 CFFF      RJMP	_exit
FILE: E:\avr\2.5.4\main.c
(0001) // ICC-AVR application builder : 2007-5-25 21:35:24
(0002) // Target : M16
(0003) // Crystal: 7.3728Mhz
(0004) // 用途:演示getchar(),getchar(),printf()等函数的使用。
(0005) // 作者:古欣
(0006) // AVR与虚拟仪器 http://www.avrvi.com
(0007) // 使用7.3728M外部晶振,注意:请短接跳线JP2的1和2,电源跳线连接3.3V或者5V
(0008) // 串口使用JP4的连接方法:1和2短接,使用RS232,请注意查看跳线旁边的示意图
(0009) // 开发板连接:无连线
(0010) 
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include <stdio.h>
(0014) 
(0015) //UART0 initialize
(0016) // desired baud rate: 9600
(0017) // actual: baud rate:9600 (0.0%)
(0018) // char size: 8 bit
(0019) // parity: Disabled
(0020) void uart0_init(void)
(0021) {
(0022)  UCSRB = 0x00; //disable while setting baud rate
_uart0_init:
    014A 2422      CLR	R2
    014B B82A      OUT	0x0A,R2
(0023)  UCSRA = 0x00;
    014C B82B      OUT	0x0B,R2
(0024)  UCSRC = BIT(URSEL) | 0x06;
    014D E886      LDI	R24,0x86
    014E BD80      OUT	0x20,R24
(0025)  UBRRL = 0x2F; //set baud rate lo
    014F E28F      LDI	R24,0x2F
    0150 B989      OUT	0x09,R24
(0026)  UBRRH = 0x00; //set baud rate hi
    0151 BC20      OUT	0x20,R2
(0027)  UCSRB = 0x18;
    0152 E188      LDI	R24,0x18
    0153 B98A      OUT	0x0A,R24
    0154 9508      RET
(0028) }
(0029) 
(0030) void delay(void)
(0031) {
(0032)  unsigned char i=0,j=0;
_delay:
  i                    --> R16
  j                    --> R18
    0155 2700      CLR	R16
    0156 2722      CLR	R18
(0033)  for(i=1;i!=0;i++)
    0157 E001      LDI	R16,1
    0158 C006      RJMP	0x015F
(0034)  {
(0035)   for(j=1;j!=0;j++)
    0159 E021      LDI	R18,1
    015A C001      RJMP	0x015C
    015B 9523      INC	R18
    015C 2322      TST	R18
    015D F7E9      BNE	0x015B
    015E 9503      INC	R16
    015F 2300      TST	R16
    0160 F7C1      BNE	0x0159
    0161 9508      RET
_main:
  i                    --> Y+1
  c                    --> R20
  b                    --> R20
  temp                 --> Y+1
  a                    --> Y+0
    0162 972D      SBIW	R28,0xD
(0036)   ;
(0037)  }
(0038) }
(0039) 
(0040) void main(void)
(0041) {
(0042)  unsigned char i;
(0043)  unsigned char temp[]="           ";
    0163 E58A      LDI	R24,0x5A
    0164 E090      LDI	R25,0
    0165 01FE      MOVW	R30,R28
    0166 9631      ADIW	R30,1
    0167 E00C      LDI	R16,0xC
    0168 E010      LDI	R17,0
    0169 93FA      ST	R31,-Y
    016A 93EA      ST	R30,-Y
    016B 939A      ST	R25,-Y
    016C 938A      ST	R24,-Y
    016D 940E03F6  CALL	asgncblk
(0044)  unsigned char a=0,b=0,c=0;
    016F 2422      CLR	R2
    0170 8228      STD	Y+0,R2
    0171 2744      CLR	R20
(0045)  uart0_init();                 //初始化串口
    0172 DFD7      RCALL	_uart0_init
(0046)  printf("www.avrvi.com\r\n");  //输出字符串
    0173 E608      LDI	R16,0x68
    0174 E010      LDI	R17,0
    0175 940E09FE  CALL	_printf
    0177 C00C      RJMP	0x0184
(0047) /*
(0048)  while(1)
(0049)  {
(0050)   i=getchar();                //读入一个字符
(0051)   putchar((signed char)i);    //输出字符
(0052)   if(i=='a') printf("OK\r\n");//如果输入的是a,输出OK,加回车换行。
(0053)   if(i=='A') printf("GOOD\t");//如果输入的是A,输出GOOD,加一个TAB符号。
(0054)  }
(0055) */
(0056)  while(1)
(0057)  {
(0058)  delay();
    0178 DFDC      RCALL	_delay
(0059)  scanf("%d",&a);
    0179 019E      MOVW	R18,R28
    017A E605      LDI	R16,0x65
    017B E010      LDI	R17,0
    017C 940E0A31  CALL	_scanf
(0060)  printf("%d\r\n",a);
FILE: <library>
    017E 8128      LDD	R18,Y+0
    017F 2733      CLR	R19
    0180 E600      LDI	R16,0x60
    0181 E010      LDI	R17,0
    0182 940E09FE  CALL	_printf
    0184 CFF3      RJMP	0x0178
    0185 962D      ADIW	R28,0xD
    0186 9508      RET
__print:
    0187 940E0336  CALL	push_arg4
    0189 940E037E  CALL	push_gset5
    018B 972A      SBIW	R28,0xA
    018C 2400      CLR	R0
    018D 2411      CLR	R1
    018E 821F      STD	Y+7,R1
    018F 820E      STD	Y+6,R0
    0190 C18F      RJMP	0x0320
    0191 89EE      LDD	R30,Y+22
    0192 89FF      LDD	R31,Y+23
    0193 8180      LDD	R24,Z+0
    0194 3285      CPI	R24,0x25
    0195 F059      BEQ	0x01A1
    0196 8100      LDD	R16,Z+0
    0197 89EC      LDD	R30,Y+20
    0198 89FD      LDD	R31,Y+21
    0199 940E039D  CALL	xicall
    019B 818E      LDD	R24,Y+6
    019C 819F      LDD	R25,Y+7
    019D 9601      ADIW	R24,1
    019E 839F      STD	Y+7,R25
    019F 838E      STD	Y+6,R24
    01A0 C17A      RJMP	0x031B
    01A1 24EE      CLR	R14
    01A2 24FF      CLR	R15
    01A3 E44A      LDI	R20,0x4A
    01A4 E051      LDI	R21,1
    01A5 E260      LDI	R22,0x20
    01A6 898E      LDD	R24,Y+22
    01A7 899F      LDD	R25,Y+23
    01A8 9601      ADIW	R24,1
    01A9 8B9F      STD	Y+23,R25
    01AA 8B8E      STD	Y+22,R24
    01AB 2FE8      MOV	R30,R24
    01AC 2FF9      MOV	R31,R25
    01AD 8020      LDD	R2,Z+0
    01AE 2433      CLR	R3
    01AF 823D      STD	Y+5,R3
    01B0 822C      STD	Y+4,R2
    01B1 2D82      MOV	R24,R2
    01B2 2D93      MOV	R25,R3
    01B3 3588      CPI	R24,0x58
    01B4 E0E0      LDI	R30,0
    01B5 079E      CPC	R25,R30
    01B6 F409      BNE	0x01B8
    01B7 C08B      RJMP	0x0243
    01B8 E588      LDI	R24,0x58
    01B9 1582      CP	R24,R2
    01BA 0593      CPC	R25,R3
    01BB F0A4      BLT	0x01D0
    01BC 818C      LDD	R24,Y+4
    01BD 819D      LDD	R25,Y+5
    01BE 3485      CPI	R24,0x45
    01BF E0E0      LDI	R30,0
    01C0 079E      CPC	R25,R30
    01C1 F409      BNE	0x01C3
    01C2 C153      RJMP	0x0316
    01C3 3485      CPI	R24,0x45
    01C4 E0E0      LDI	R30,0
    01C5 079E      CPC	R25,R30
    01C6 F40C      BGE	0x01C8
    01C7 C043      RJMP	0x020B
    01C8 818C      LDD	R24,Y+4
    01C9 819D      LDD	R25,Y+5
    01CA 3583      CPI	R24,0x53
    01CB E0E0      LDI	R30,0
    01CC 079E      CPC	R25,R30
    01CD F409      BNE	0x01CF
    01CE C0E2      RJMP	0x02B1
    01CF C03B      RJMP	0x020B
    01D0 818C      LDD	R24,Y+4
    01D1 819D      LDD	R25,Y+5
    01D2 368F      CPI	R24,0x6F
    01D3 E0E0      LDI	R30,0
    01D4 079E      CPC	R25,R30
    01D5 F409      BNE	0x01D7
    01D6 C06C      RJMP	0x0243
    01D7 E68F      LDI	R24,0x6F
    01D8 E090      LDI	R25,0
    01D9 802C      LDD	R2,Y+4
    01DA 803D      LDD	R3,Y+5
    01DB 1582      CP	R24,R2
    01DC 0593      CPC	R25,R3
    01DD F0DC      BLT	0x01F9
    01DE 818C      LDD	R24,Y+4
    01DF 819D      LDD	R25,Y+5
    01E0 3683      CPI	R24,0x63
    01E1 E0E0      LDI	R30,0
    01E2 079E      CPC	R25,R30
    01E3 F409      BNE	0x01E5
    01E4 C0B6      RJMP	0x029B
    01E5 3684      CPI	R24,0x64
    01E6 E0E0      LDI	R30,0
    01E7 079E      CPC	R25,R30
    01E8 F409      BNE	0x01EA
    01E9 C02E      RJMP	0x0218
    01EA 3685      CPI	R24,0x65
    01EB E0E0      LDI	R30,0
    01EC 079E      CPC	R25,R30
    01ED F409      BNE	0x01EF
    01EE C127      RJMP	0x0316
    01EF 3686      CPI	R24,0x66
    01F0 E0E0      LDI	R30,0
    01F1 079E      CPC	R25,R30
    01F2 F409      BNE	0x01F4
    01F3 C122      RJMP	0x0316
    01F4 3689      CPI	R24,0x69
    01F5 E0E0      LDI	R30,0
    01F6 079E      CPC	R25,R30
    01F7 F101      BEQ	0x0218
    01F8 C012      RJMP	0x020B
    01F9 818C      LDD	R24,Y+4
    01FA 819D      LDD	R25,Y+5
    01FB 3783      CPI	R24,0x73
    01FC E0E0      LDI	R30,0
    01FD 079E      CPC	R25,R30
    01FE F409      BNE	0x0200
    01FF C0E0      RJMP	0x02E0
    0200 3785      CPI	R24,0x75
    0201 E0E0      LDI	R30,0
    0202 079E      CPC	R25,R30
    0203 F409      BNE	0x0205
    0204 C03E      RJMP	0x0243
    0205 3788      CPI	R24,0x78
    0206 E0E0      LDI	R30,0
    0207 079E      CPC	R25,R30
    0208 F409      BNE	0x020A
    0209 C039      RJMP	0x0243
    020A C000      RJMP	0x020B
    020B 89EE      LDD	R30,Y+22
    020C 89FF      LDD	R31,Y+23
    020D 8100      LDD	R16,Z+0
    020E 89EC      LDD	R30,Y+20
    020F 89FD      LDD	R31,Y+21
    0210 940E039D  CALL	xicall
    0212 818E      LDD	R24,Y+6
    0213 819F      LDD	R25,Y+7
    0214 9601      ADIW	R24,1
    0215 839F      STD	Y+7,R25
    0216 838E      STD	Y+6,R24
    0217 C103      RJMP	0x031B
    0218 8D88      LDD	R24,Y+24
    0219 8D99      LDD	R25,Y+25
    021A 9602      ADIW	R24,2
    021B 8F99      STD	Y+25,R25
    021C 8F88      STD	Y+24,R24
    021D 2FE8      MOV	R30,R24
    021E 2FF9      MOV	R31,R25
    021F 9732      SBIW	R30,2
    0220 8020      LDD	R2,Z+0
    0221 8031      LDD	R3,Z+1
    0222 8639      STD	Y+9,R3
    0223 8628      STD	Y+8,R2
    0224 2D82      MOV	R24,R2
    0225 2D93      MOV	R25,R3
    0226 3080      CPI	R24,0
    0227 E0E0      LDI	R30,0
    0228 079E      CPC	R25,R30
    0229 F474      BGE	0x0238
    022A 2D8E      MOV	R24,R14
    022B 2D9F      MOV	R25,R15
    022C 6088      ORI	R24,0x8
    022D 2EE8      MOV	R14,R24
    022E 2EF9      MOV	R15,R25
    022F E26D      LDI	R22,0x2D
    0230 2D82      MOV	R24,R2
    0231 2D93      MOV	R25,R3
    0232 9580      COM	R24
    0233 9590      COM	R25
    0234 5F8F      SUBI	R24,0xFF
    0235 4F9F      SBCI	R25,0xFF
    0236 8799      STD	Y+9,R25
    0237 8788      STD	Y+8,R24
    0238 E08A      LDI	R24,0xA
    0239 E090      LDI	R25,0
    023A 8399      STD	Y+1,R25
    023B 8388      STD	Y+0,R24
    023C 8528      LDD	R18,Y+8
    023D 8539      LDD	R19,Y+9
    023E 2F04      MOV	R16,R20
    023F 2F15      MOV	R17,R21
    0240 940E0434  CALL	_itoa
    0242 C053      RJMP	0x0296
    0243 8D88      LDD	R24,Y+24
    0244 8D99      LDD	R25,Y+25
    0245 9602      ADIW	R24,2
    0246 8F99      STD	Y+25,R25
    0247 8F88      STD	Y+24,R24
    0248 2FE8      MOV	R30,R24
    0249 2FF9      MOV	R31,R25
    024A 9732      SBIW	R30,2
    024B 8020      LDD	R2,Z+0
    024C 8031      LDD	R3,Z+1
    024D 8639      STD	Y+9,R3
    024E 8628      STD	Y+8,R2
    024F 89EE      LDD	R30,Y+22
    0250 89FF      LDD	R31,Y+23
    0251 8180      LDD	R24,Z+0
    0252 3785      CPI	R24,0x75
    0253 F459      BNE	0x025F
    0254 E08A      LDI	R24,0xA
    0255 E090      LDI	R25,0
    0256 8399      STD	Y+1,R25
    0257 8388      STD	Y+0,R24
    0258 2D22      MOV	R18,R2
    0259 2D33      MOV	R19,R3
    025A 2F04      MOV	R16,R20
    025B 2F15      MOV	R17,R21
    025C 940E078A  CALL	_utoa
    025E C037      RJMP	0x0296
    025F 89EE      LDD	R30,Y+22
    0260 89FF      LDD	R31,Y+23
    0261 8180      LDD	R24,Z+0
    0262 368F      CPI	R24,0x6F
    0263 F459      BNE	0x026F
    0264 E088      LDI	R24,0x8
    0265 E090      LDI	R25,0
    0266 8399      STD	Y+1,R25
    0267 8388      STD	Y+0,R24
    0268 8528      LDD	R18,Y+8
    0269 8539      LDD	R19,Y+9
    026A 2F04      MOV	R16,R20
    026B 2F15      MOV	R17,R21
    026C 940E078A  CALL	_utoa
    026E C027      RJMP	0x0296
    026F E180      LDI	R24,0x10
    0270 E090      LDI	R25,0
    0271 8399      STD	Y+1,R25
    0272 8388      STD	Y+0,R24
    0273 8528      LDD	R18,Y+8
    0274 8539      LDD	R19,Y+9
    0275 2F04      MOV	R16,R20
    0276 2F15      MOV	R17,R21
    0277 940E078A  CALL	_utoa
    0279 89EE      LDD	R30,Y+22
    027A 89FF      LDD	R31,Y+23
    027B 8180      LDD	R24,Z+0
    027C 3588      CPI	R24,0x58
    027D F4C1      BNE	0x0296
    027E E48A      LDI	R24,0x4A
    027F E091      LDI	R25,1
    0280 2EC8      MOV	R12,R24
    0281 2ED9      MOV	R13,R25
    0282 C00E      RJMP	0x0291
    0283 2DEC      MOV	R30,R12
    0284 2DFD      MOV	R31,R13
    0285 8100      LDD	R16,Z+0
    0286 2711      CLR	R17
    0287 940E080C  CALL	_toupper
    0289 2DEC      MOV	R30,R12
    028A 2DFD      MOV	R31,R13
    028B 8300      STD	Z+0,R16
    028C 2D8C      MOV	R24,R12
    028D 2D9D      MOV	R25,R13
    028E 9601      ADIW	R24,1
    028F 2EC8      MOV	R12,R24
    0290 2ED9      MOV	R13,R25
    0291 2DEC      MOV	R30,R12
    0292 2DFD      MOV	R31,R13
    0293 8020      LDD	R2,Z+0
    0294 2022      TST	R2

⌨️ 快捷键说明

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