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

📄 ad.lst

📁 avr基础程序大全
💻 LST
字号:
Interrupt Vectors
    00000 940C 0037 JMP	__text_start|__start

Program Code (text area)
__text_start|__start:
    00037 E5CF      LDI	R28,0x5F
    00038 E0D4      LDI	R29,4
    00039 BFCD      OUT	0x3D,R28
    0003A BFDE      OUT	0x3E,R29
    0003B 51CE      SUBI	R28,0x1E
    0003C 40D0      SBCI	R29,0
    0003D EA0A      LDI	R16,0xAA
    0003E 8308      ST	Y,R16
    0003F 2400      CLR	R0
    00040 E7EA      LDI	R30,0x7A
    00041 E0F0      LDI	R31,0
    00042 E010      LDI	R17,0
    00043 37EA      CPI	R30,0x7A
    00044 07F1      CPC	R31,R17
    00045 F011      BEQ	0x0048
    00046 9201      ST	Z+,R0
    00047 CFFB      RJMP	0x0043
    00048 8300      ST	Z,R16
    00049 E5E4      LDI	R30,0x54
    0004A E0F0      LDI	R31,0
    0004B E6A0      LDI	R26,0x60
    0004C E0B0      LDI	R27,0
    0004D E010      LDI	R17,0
    0004E E000      LDI	R16,0
    0004F BF0B      OUT	0x3B,R16
    00050 36EE      CPI	R30,0x6E
    00051 07F1      CPC	R31,R17
    00052 F021      BEQ	0x0057
    00053 95C8      LPM
    00054 9631      ADIW	R30,1
    00055 920D      ST	X+,R0
    00056 CFF9      RJMP	0x0050
    00057 940E 00A4 CALL	_main
_exit:
    00059 CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    0005A 940E 00D6 CALL	push_xgsetF000
FILE: F:\51&av配套光盘\51&avr配套程序\avr程序\15AD转换\AD.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) 
(0006) uchar const table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
(0007) 		  
(0008) uchar const LED_W[8] = {0,1,2,3,4,5,6,7};				   
(0009) void delay(uint ms)
(0010) {
(0011)         uint i,j;
(0012) 	for(i=0;i<ms;i++)
    0005C 2744      CLR	R20
    0005D 2755      CLR	R21
    0005E C00B      RJMP	0x006A
(0013) 	   {
(0014) 	   for(j=0;j<1141;j++);
    0005F 2766      CLR	R22
    00060 2777      CLR	R23
    00061 C002      RJMP	0x0064
    00062 5F6F      SUBI	R22,0xFF
    00063 4F7F      SBCI	R23,0xFF
    00064 3765      CPI	R22,0x75
    00065 E0E4      LDI	R30,4
    00066 077E      CPC	R23,R30
    00067 F3D0      BCS	0x0062
    00068 5F4F      SUBI	R20,0xFF
    00069 4F5F      SBCI	R21,0xFF
    0006A 1740      CP	R20,R16
    0006B 0751      CPC	R21,R17
    0006C F390      BCS	0x005F
    0006D 940C 00DB JMP	pop_xgsetF000
_show:
  k                    --> R10
  j                    --> R12
    0006F 92AA      ST	-Y,R10
    00070 92CA      ST	-Y,R12
    00071 2EA2      MOV	R10,R18
    00072 2EC0      MOV	R12,R16
(0015)        }
(0016) }
(0017) void show(uchar j,uchar k)
(0018) {
(0019)       
(0020) 	  	 DDRA=0xff;			
    00073 EF8F      LDI	R24,0xFF
    00074 BB8A      OUT	0x1A,R24
(0021) 		PORTA = table[j];		 // i 值的 个位数
    00075 E680      LDI	R24,0x60
    00076 E090      LDI	R25,0
    00077 2DEC      MOV	R30,R12
    00078 27FF      CLR	R31
    00079 0FE8      ADD	R30,R24
    0007A 1FF9      ADC	R31,R25
    0007B 8020      LD	R2,Z
    0007C BA2B      OUT	0x1B,R2
(0022) 		PORTC = LED_W[k];		 //点亮第一位数码管
    0007D E68A      LDI	R24,0x6A
    0007E E090      LDI	R25,0
    0007F 2DEA      MOV	R30,R10
    00080 27FF      CLR	R31
    00081 0FE8      ADD	R30,R24
    00082 1FF9      ADC	R31,R25
    00083 8020      LD	R2,Z
    00084 BA25      OUT	0x15,R2
(0023) 		
(0024) 		delay(2);
    00085 E002      LDI	R16,2
    00086 E010      LDI	R17,0
    00087 DFD2      RCALL	_delay
    00088 90C9      LD	R12,Y+
    00089 90A9      LD	R10,Y+
    0008A 9508      RET
_mega16_ad:
  addata               --> R10
    0008B 92AA      ST	-Y,R10
    0008C 92BA      ST	-Y,R11
(0025) 	
(0026) 		
(0027) 	
(0028) }
(0029) 
(0030) 
(0031) uint mega16_ad()
(0032) {
(0033)      uint addata;
(0034) 	 DDRA&=~BIT(PA0);
    0008D 98D0      CBI	0x1A,0
(0035) 	 PORTA&=~BIT(PA0);
    0008E 98D8      CBI	0x1B,0
(0036) 	 ADMUX=0x40;
    0008F E480      LDI	R24,0x40
    00090 B987      OUT	0x07,R24
(0037) 	 ADCSR=0X80;
    00091 E880      LDI	R24,0x80
    00092 B986      OUT	0x06,R24
(0038) 	 ADCSR|=BIT(ADSC);
    00093 9A36      SBI	0x06,6
(0039) 	 while(!(ADCSR&(BIT(ADIF))));
    00094 9B34      SBIS	0x06,4
    00095 CFFE      RJMP	0x0094
(0040)      addata=ADCL;
    00096 B0A4      IN	R10,0x04
    00097 24BB      CLR	R11
(0041) 	 addata=addata+ADCH*256;
    00098 B125      IN	R18,0x05
    00099 2733      CLR	R19
    0009A E000      LDI	R16,0
    0009B E011      LDI	R17,1
    0009C 940E 00C6 CALL	empy16s
    0009E 0EA0      ADD	R10,R16
    0009F 1EB1      ADC	R11,R17
(0042) 	 return addata;
    000A0 0185      MOVW	R16,R10
    000A1 90B9      LD	R11,Y+
    000A2 90A9      LD	R10,Y+
    000A3 9508      RET
_main:
  i                    --> Y,+1
  a                    --> R20
  ad                   --> Y,+0
  ada                  --> R10
    000A4 9728      SBIW	R28,0x8
(0043) }   
(0044) 
(0045) void main()
(0046) {
(0047)    uint ada,i,ad[]={0,0,0,0},a=5000;
    000A5 E782      LDI	R24,0x72
    000A6 E090      LDI	R25,0
    000A7 01FE      MOVW	R30,R28
    000A8 E008      LDI	R16,0x8
    000A9 E010      LDI	R17,0
    000AA 93FA      ST	-Y,R31
    000AB 93EA      ST	-Y,R30
    000AC 939A      ST	-Y,R25
    000AD 938A      ST	-Y,R24
    000AE 940E 00E0 CALL	asgnblk
    000B0 E848      LDI	R20,0x88
    000B1 E153      LDI	R21,0x13
(0048)        
(0049) 		DDRC=0XFF;		
    000B2 EF8F      LDI	R24,0xFF
    000B3 BB84      OUT	0x14,R24
(0050) 		PORTC=0X00;
    000B4 2422      CLR	R2
    000B5 BA25      OUT	0x15,R2
    000B6 C00C      RJMP	0x00C3
(0051)    while(1)
(0052)    {
(0053)       ada=mega16_ad();//999  0999
    000B7 DFD3      RCALL	_mega16_ad
    000B8 0158      MOVW	R10,R16
(0054) 	  
(0055) 	 if(ada>600)
    000B9 E588      LDI	R24,0x58
    000BA E092      LDI	R25,2
    000BB 1780      CP	R24,R16
    000BC 0791      CPC	R25,R17
    000BD F418      BCC	0x00C1
(0056) 	  {
(0057) 	   			 DDRA|=BIT(7);
    000BE 9AD7      SBI	0x1A,7
(0058) 	 			 PORTA&=~BIT(7);
    000BF 98DF      CBI	0x1B,7
(0059) 	  }
    000C0 C002      RJMP	0x00C3
(0060) 	  else
(0061) 	  {
(0062) 	   	  DDRA|=BIT(7);
    000C1 9AD7      SBI	0x1A,7
(0063) 		  PORTA|=BIT(7);
FILE: <library>
    000C2 9ADF      SBI	0x1B,7
    000C3 CFF3      RJMP	0x00B7
    000C4 9628      ADIW	R28,0x8
    000C5 9508      RET
empy16s:
    000C6 920A      ST	-Y,R0
    000C7 921A      ST	-Y,R1
    000C8 938A      ST	-Y,R24
    000C9 939A      ST	-Y,R25
    000CA 9F02      MUL	R16,R18
    000CB 01C0      MOVW	R24,R0
    000CC 9F12      MUL	R17,R18
    000CD 0D90      ADD	R25,R0
    000CE 9F03      MUL	R16,R19
    000CF 0D90      ADD	R25,R0
    000D0 018C      MOVW	R16,R24
    000D1 9199      LD	R25,Y+
    000D2 9189      LD	R24,Y+
    000D3 9019      LD	R1,Y+
    000D4 9009      LD	R0,Y+
    000D5 9508      RET
push_xgsetF000:
    000D6 937A      ST	-Y,R23
    000D7 936A      ST	-Y,R22
    000D8 935A      ST	-Y,R21
    000D9 934A      ST	-Y,R20
    000DA 9508      RET
pop_xgsetF000:
    000DB 9149      LD	R20,Y+
    000DC 9159      LD	R21,Y+
    000DD 9169      LD	R22,Y+
    000DE 9179      LD	R23,Y+
    000DF 9508      RET
asgnblk:
    000E0 93AA      ST	-Y,R26
    000E1 93BA      ST	-Y,R27
    000E2 93EA      ST	-Y,R30
    000E3 93FA      ST	-Y,R31
    000E4 920A      ST	-Y,R0
    000E5 81AF      LDD	R26,Y+7
    000E6 85B8      LDD	R27,Y+8
    000E7 81ED      LDD	R30,Y+5
    000E8 81FE      LDD	R31,Y+6
    000E9 3000      CPI	R16,0
    000EA 0701      CPC	R16,R17
    000EB F029      BEQ	0x00F1
    000EC 9001      LD	R0,Z+
    000ED 920D      ST	X+,R0
    000EE 5001      SUBI	R16,1
    000EF 4010      SBCI	R17,0
    000F0 CFF8      RJMP	0x00E9
    000F1 9009      LD	R0,Y+
    000F2 91F9      LD	R31,Y+
    000F3 91E9      LD	R30,Y+
    000F4 91B9      LD	R27,Y+
    000F5 91A9      LD	R26,Y+
    000F6 9624      ADIW	R28,4
    000F7 9508      RET

⌨️ 快捷键说明

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