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

📄 adc_led.lst

📁 这是atmega128单片机的模数转换程序
💻 LST
字号:
__start:
__text_start:
      46 EFCF      LDI	R28,0xFF
      47 E1D0      LDI	R29,0x10
      48 BFCD      OUT	0x3D,R28
      49 BFDE      OUT	0x3E,R29
      4A 51CE      SUBI	R28,0x1E
      4B 40D0      SBCI	R29,0
      4C EA0A      LDI	R16,0xAA
      4D 8308      STD	Y+0,R16
      4E 2400      CLR	R0
      4F E0E0      LDI	R30,0
      50 E0F1      LDI	R31,1
      51 E011      LDI	R17,1
      52 30E0      CPI	R30,0
      53 07F1      CPC	R31,R17
      54 F011      BEQ	0x0057
      55 9201      ST	R0,Z+
      56 CFFB      RJMP	0x0052
      57 8300      STD	Z+0,R16
      58 E8EC      LDI	R30,0x8C
      59 E0F0      LDI	R31,0
      5A E0A0      LDI	R26,0
      5B E0B1      LDI	R27,1
      5C E010      LDI	R17,0
      5D E000      LDI	R16,0
      5E BF0B      OUT	0x3B,R16
      5F 38EC      CPI	R30,0x8C
      60 07F1      CPC	R31,R17
      61 F021      BEQ	0x0066
      62 95C8      LPM
      63 9631      ADIW	R30,1
      64 920D      ST	R0,X+
      65 CFF9      RJMP	0x005F
      66 940E 0072 CALL	_main
_exit:
      68 CFFF      RJMP	_exit
FILE: C:\DOCUME~1\wdd\桌面\模数转换\adc_led\ADC_led.c
(0001) #include<iom128v.h>
(0002) #define uchar unsigned char 
(0003) #define uint unsigned int 
(0004) 
(0005) void s_ms(uint ms)
(0006) {
(0007) 	for(;ms>1;ms--);
_s_ms:
  ms                   --> R16
      69 C002      RJMP	0x006C
      6A 5001      SUBI	R16,1
      6B 4010      SBCI	R17,0
      6C E081      LDI	R24,1
      6D E090      LDI	R25,0
      6E 1780      CP	R24,R16
      6F 0791      CPC	R25,R17
      70 F3C8      BCS	0x006A
      71 9508      RET
(0008) }	
(0009) 
(0010) //ADC0测试,用8位LED显示ADHL
(0011) //主函数
(0012) main()
(0013) {
(0014) uchar adc_l,adc_h,i;
(0015) DDRA=0xff;
_main:
  adc_h                --> R12
  adc_l                --> R10
  i                    --> R20
      72 EF8F      LDI	R24,0xFF
      73 BB8A      OUT	0x1A,R24
(0016) PORTA=0x00;
      74 2422      CLR	R2
      75 BA2B      OUT	0x1B,R2
(0017) DDRB=0xff;
      76 BB87      OUT	0x17,R24
(0018) DDRD=0xff;
      77 BB81      OUT	0x11,R24
(0019) PORTD=0x00;
      78 BA22      OUT	0x12,R2
(0020) DDRF=0x00;
      79 9220 0061 STS	0x0061,R2
(0021) PORTF=0x00;
      7B 9220 0062 STS	0x0062,R2
(0022) DDRG=0xff;
      7D 9380 0064 STS	0x0064,R24
(0023) PORTG=0xff;
      7F 9380 0065 STS	0x0065,R24
      81 C016      RJMP	0x0098
(0024) 
(0025) while(1)
(0026)      { 
(0027)      ADCSRA=0x00;
      82 2422      CLR	R2
      83 B826      OUT	0x06,R2
(0028)      ADMUX=0x40;    //AVCC参考电压 ADC0输入
      84 E480      LDI	R24,0x40
      85 B987      OUT	0x07,R24
(0029)      ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07;   //128分频,循环取值
      86 EE87      LDI	R24,0xE7
      87 B986      OUT	0x06,R24
(0030) 
(0031)      s_ms(500);         //延时
      88 EF04      LDI	R16,0xF4
      89 E011      LDI	R17,1
      8A DFDE      RCALL	_s_ms
(0032) 
(0033)      adc_l=ADCL;
      8B B0A4      IN	R10,0x04
(0034)      adc_h=ADCH;
      8C B0C5      IN	R12,0x05
(0035) 
(0036) 	 PORTA=~adc_l;
      8D 2C2A      MOV	R2,R10
      8E 9420      COM	R2
      8F BA2B      OUT	0x1B,R2
(0037) 	 for(i=0;i<10;i++)
      90 2744      CLR	R20
      91 C004      RJMP	0x0096
(0038) 	    {
(0039) 		 s_ms(60000);
FILE: <library>
      92 E600      LDI	R16,0x60
      93 EE1A      LDI	R17,0xEA
      94 DFD4      RCALL	_s_ms
      95 9543      INC	R20
      96 304A      CPI	R20,0xA
      97 F3D0      BCS	0x0092
      98 CFE9      RJMP	0x0082
      99 9508      RET

⌨️ 快捷键说明

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