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

📄 cac.lst

📁 我写的L297步进电机的驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
    01F5 B105      IN	R16,0x05
    01F6 2711      CLR	R17
(0031) temp2=(temp2<<8)+temp1;
    01F7 0118      MOVW	R2,R16
    01F8 2C32      MOV	R3,R2
    01F9 2422      CLR	R2
    01FA 0E22      ADD	R2,R18
    01FB 1E33      ADC	R3,R19
    01FC 0181      MOVW	R16,R2
(0032) return temp2;
    01FD 9508      RET
(0033) }
(0034) void ADC_init(void)
(0035) {	ADMUX=0x01;		//选择通道PA0;外部REF+5V
_ADC_init:
    01FE E081      LDI	R24,1
    01FF B987      OUT	0x07,R24
(0036) 	ADCSRA|=((1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0));
    0200 B186      IN	R24,0x06
    0201 6E87      ORI	R24,0xE7
    0202 B986      OUT	0x06,R24
    0203 9508      RET
_main:
  i                    --> R20
  j                    --> R22
    0204 9724      SBIW	R28,4
(0037) 				//使能AD;启动AD;自由转换模式;8分频
(0038) 	// ADCSRA=0xc2;			
(0039) }
(0040) 
(0041) void main(void)
(0042) {uint i,j;
(0043) //uchar a;
(0044) PORTA = 0x00;
    0205 2422      CLR	R2
    0206 BA2B      OUT	0x1B,R2
(0045) DDRA  = 0xFF;
    0207 EF8F      LDI	R24,0xFF
    0208 BB8A      OUT	0x1A,R24
(0046) PORTB = 0x01;
    0209 E081      LDI	R24,1
    020A BB88      OUT	0x18,R24
(0047) DDRB  = 0xFF;
    020B EF8F      LDI	R24,0xFF
    020C BB87      OUT	0x17,R24
(0048) PORTC = 0x00; //m103 output only
    020D BA25      OUT	0x15,R2
(0049) DDRC  = 0x00;
    020E BA24      OUT	0x14,R2
(0050) PORTD = 0x00;
    020F BA22      OUT	0x12,R2
(0051) DDRD  = 0x0f;
    0210 E08F      LDI	R24,0xF
    0211 BB81      OUT	0x11,R24
(0052) PORTE = 0x00;
    0212 B823      OUT	0x03,R2
(0053)  DDRE  = 0xF0; 
    0213 EF80      LDI	R24,0xF0
    0214 B982      OUT	0x02,R24
(0054)  PORTF = 0x00;
    0215 92200062  STS	Data+2,R2
(0055)  DDRF  = 0x00;
    0217 92200061  STS	Data+1,R2
(0056)  PORTG = 0x00;
    0219 92200065  STS	0x65,R2
(0057)  DDRG  = 0x00;
    021B 92200064  STS	0x64,R2
(0058)   
(0059) LCM_init();//液晶初始化
    021D DEEF      RCALL	_LCM_init
(0060) //DisHZ(0x89,11,"正在启动...");
(0061)  /*// ADMUX=(1<<REFS0)|(1<<REFS1);//选择第一通道ADC0,内部REF(2.56V)
(0062)   ADMUX=0x01;
(0063)   ADCSRA=0xe5;//8M32分频,125k速率,自由模式;启动AD转换器*/
(0064) 
(0065) 
(0066)  ADC_init();
    021E DFDF      RCALL	_ADC_init
(0067)  
(0068)   delay_nms(10);//延迟100ms等待系统稳定后读取数据
    021F E00A      LDI	R16,0xA
    0220 E010      LDI	R17,0
    0221 DF8B      RCALL	_delay_nms
    0222 C07E      RJMP	0x02A1
(0069) 
(0070)  
(0071)    while(1)
(0072)    {
(0073) 
(0074)    i=ADC_convert();
    0223 DFCF      RCALL	_ADC_convert
    0224 01A8      MOVW	R20,R16
(0075)    j=0;
    0225 2766      CLR	R22
    0226 2777      CLR	R23
(0076)    change(i,Data);
    0227 E620      LDI	R18,0x60
    0228 E030      LDI	R19,0
    0229 DF92      RCALL	_change
(0077)    DisHZXY(0,0,10,"AD测试程序");
    022A E784      LDI	R24,0x74
    022B E090      LDI	R25,0
    022C 839B      STD	Y+3,R25
    022D 838A      STD	Y+2,R24
    022E E08A      LDI	R24,0xA
    022F E090      LDI	R25,0
    0230 8399      STD	Y+1,R25
    0231 8388      STD	Y+0,R24
    0232 2722      CLR	R18
    0233 2733      CLR	R19
    0234 2700      CLR	R16
    0235 2711      CLR	R17
    0236 DEFC      RCALL	_DisHZXY
(0078)    DisHZXY(3,1,4,Data);
    0237 E680      LDI	R24,0x60
    0238 E090      LDI	R25,0
    0239 839B      STD	Y+3,R25
    023A 838A      STD	Y+2,R24
    023B E084      LDI	R24,4
    023C E090      LDI	R25,0
    023D 8399      STD	Y+1,R25
    023E 8388      STD	Y+0,R24
    023F E021      LDI	R18,1
    0240 E030      LDI	R19,0
    0241 E003      LDI	R16,3
    0242 E010      LDI	R17,0
    0243 DEEF      RCALL	_DisHZXY
(0079)    if(i>650)
    0244 E88A      LDI	R24,0x8A
    0245 E092      LDI	R25,2
    0246 1784      CP	R24,R20
    0247 0795      CPC	R25,R21
    0248 F508      BCC	0x026A
(0080)   { DisHZXY(2,3,4,"正转");
    0249 E68F      LDI	R24,0x6F
    024A E090      LDI	R25,0
    024B 839B      STD	Y+3,R25
    024C 838A      STD	Y+2,R24
    024D E084      LDI	R24,4
    024E E090      LDI	R25,0
    024F 8399      STD	Y+1,R25
    0250 8388      STD	Y+0,R24
    0251 E023      LDI	R18,3
    0252 E030      LDI	R19,0
    0253 E002      LDI	R16,2
    0254 E010      LDI	R17,0
    0255 DEDD      RCALL	_DisHZXY
(0081)    PORTA|=(1<<2);
    0256 9ADA      SBI	0x1B,2
(0082)    PORTC|=(1<<6);
    0257 9AAE      SBI	0x15,6
    0258 C00A      RJMP	0x0263
(0083)    while(j<=2000)
(0084)    {
(0085)    PORTA|=(1<<3);
    0259 9ADB      SBI	0x1B,3
(0086)    delay_nus(17);   
    025A E101      LDI	R16,0x11
    025B E010      LDI	R17,0
    025C DF37      RCALL	_delay_nus
(0087)    PORTA&=~(1<<3);
    025D 98DB      CBI	0x1B,3
(0088)    delay_nus(17);
    025E E101      LDI	R16,0x11
    025F E010      LDI	R17,0
    0260 DF33      RCALL	_delay_nus
(0089)    j++;
    0261 5F6F      SUBI	R22,0xFF
    0262 4F7F      SBCI	R23,0xFF
    0263 ED80      LDI	R24,0xD0
    0264 E097      LDI	R25,7
    0265 1786      CP	R24,R22
    0266 0797      CPC	R25,R23
    0267 F788      BCC	0x0259
(0090)    }
(0091)    PORTC&=~(1<<6);
    0268 98AE      CBI	0x15,6
(0092)    }
    0269 C037      RJMP	0x02A1
(0093)    else if(i<0xC8&&i>0x64)
    026A 3C48      CPI	R20,0xC8
    026B E0E0      LDI	R30,0
    026C 075E      CPC	R21,R30
    026D F530      BCC	0x0294
    026E E684      LDI	R24,0x64
    026F E090      LDI	R25,0
    0270 1784      CP	R24,R20
    0271 0795      CPC	R25,R21
    0272 F508      BCC	0x0294
(0094)    {DisHZXY(2,3,4,"反转");
    0273 E68A      LDI	R24,0x6A
    0274 E090      LDI	R25,0
    0275 839B      STD	Y+3,R25
    0276 838A      STD	Y+2,R24
    0277 E084      LDI	R24,4
    0278 E090      LDI	R25,0
    0279 8399      STD	Y+1,R25
    027A 8388      STD	Y+0,R24
    027B E023      LDI	R18,3
    027C E030      LDI	R19,0
    027D E002      LDI	R16,2
    027E E010      LDI	R17,0
    027F DEB3      RCALL	_DisHZXY
(0095)    PORTA&=~(1<<2);
    0280 98DA      CBI	0x1B,2
(0096)    PORTC|=(1<<6);
    0281 9AAE      SBI	0x15,6
    0282 C00A      RJMP	0x028D
(0097)    while(j<=2000)
(0098)    {
(0099)    PORTA|=(1<<3);
    0283 9ADB      SBI	0x1B,3
(0100)    delay_nus(17);   
    0284 E101      LDI	R16,0x11
    0285 E010      LDI	R17,0
    0286 DF0D      RCALL	_delay_nus
(0101)    PORTA&=~(1<<3);
    0287 98DB      CBI	0x1B,3
(0102)    delay_nus(17);
    0288 E101      LDI	R16,0x11
    0289 E010      LDI	R17,0
    028A DF09      RCALL	_delay_nus
(0103)    j++;
    028B 5F6F      SUBI	R22,0xFF
    028C 4F7F      SBCI	R23,0xFF
    028D ED80      LDI	R24,0xD0
    028E E097      LDI	R25,7
    028F 1786      CP	R24,R22
    0290 0797      CPC	R25,R23
    0291 F788      BCC	0x0283
(0104)    }
(0105)    PORTC&=~(1<<6);
    0292 98AE      CBI	0x15,6
(0106)    }
    0293 C00D      RJMP	0x02A1
(0107)    else 
(0108)    DisHZXY(2,3,4,"停止");
FILE: <library>
    0294 E685      LDI	R24,0x65
    0295 E090      LDI	R25,0
    0296 839B      STD	Y+3,R25
    0297 838A      STD	Y+2,R24
    0298 E084      LDI	R24,4
    0299 E090      LDI	R25,0
    029A 8399      STD	Y+1,R25
    029B 8388      STD	Y+0,R24
    029C E023      LDI	R18,3
    029D E030      LDI	R19,0
    029E E002      LDI	R16,2
    029F E010      LDI	R17,0
    02A0 DE92      RCALL	_DisHZXY
    02A1 CF81      RJMP	0x0223
    02A2 9624      ADIW	R28,4
    02A3 9508      RET
mod16u:
    02A4 9468      BSET	6
    02A5 C001      RJMP	xdiv16u
div16u:
    02A6 94E8      BCLR	6
xdiv16u:
    02A7 92EA      ST	R14,-Y
    02A8 92FA      ST	R15,-Y
    02A9 938A      ST	R24,-Y
    02AA 24EE      CLR	R14
    02AB 24FF      CLR	R15
    02AC E180      LDI	R24,0x10
    02AD 0F00      LSL	R16
    02AE 1F11      ROL	R17
    02AF 1CEE      ROL	R14
    02B0 1CFF      ROL	R15
    02B1 16E2      CP	R14,R18
    02B2 06F3      CPC	R15,R19
    02B3 F018      BCS	0x02B7
    02B4 1AE2      SUB	R14,R18
    02B5 0AF3      SBC	R15,R19
    02B6 9503      INC	R16
    02B7 958A      DEC	R24
    02B8 F7A1      BNE	0x02AD
    02B9 F416      BRTC	0x02BC
    02BA 2D0E      MOV	R16,R14
    02BB 2D1F      MOV	R17,R15
    02BC 9189      LD	R24,Y+
    02BD 90F9      LD	R15,Y+
    02BE 90E9      LD	R14,Y+
    02BF 9508      RET
pop_gset2:
    02C0 E0E2      LDI	R30,2
    02C1 940C02D8  JMP	pop
pop_gset3:
    02C3 E0E4      LDI	R30,4
    02C4 940C02D8  JMP	pop
pop_gset4:
    02C6 E0E8      LDI	R30,0x8
    02C7 940C02D8  JMP	pop
pop_gset5:
    02C9 27EE      CLR	R30
    02CA 940C02D8  JMP	pop
push_gset5:
    02CC 92FA      ST	R15,-Y
    02CD 92EA      ST	R14,-Y
push_gset4:
    02CE 92DA      ST	R13,-Y
    02CF 92CA      ST	R12,-Y
push_gset3:
    02D0 92BA      ST	R11,-Y
    02D1 92AA      ST	R10,-Y
push_gset2:
    02D2 937A      ST	R23,-Y
    02D3 936A      ST	R22,-Y
push_gset1:
    02D4 935A      ST	R21,-Y
    02D5 934A      ST	R20,-Y
    02D6 9508      RET
pop_gset1:
    02D7 E0E1      LDI	R30,1
pop:
    02D8 9149      LD	R20,Y+
    02D9 9159      LD	R21,Y+
    02DA FDE0      SBRC	R30,0
    02DB 9508      RET
    02DC 9169      LD	R22,Y+
    02DD 9179      LD	R23,Y+
    02DE FDE1      SBRC	R30,1
    02DF 9508      RET
    02E0 90A9      LD	R10,Y+
    02E1 90B9      LD	R11,Y+
    02E2 FDE2      SBRC	R30,2
    02E3 9508      RET
    02E4 90C9      LD	R12,Y+
    02E5 90D9      LD	R13,Y+
    02E6 FDE3      SBRC	R30,3
    02E7 9508      RET
    02E8 90E9      LD	R14,Y+
    02E9 90F9      LD	R15,Y+
    02EA 9508      RET

⌨️ 快捷键说明

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