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

📄 motor.lis

📁 直流电机驱动系统设计,以单片机实现电动机的调速控制.
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 039C 34C0              rjmp L47
 039E           L61:
 039E 80910E00          lds R24,_adress
 03A2 90910F00          lds R25,_adress+1
 03A6 8830              cpi R24,8
 03A8 E0E0              ldi R30,0
 03AA 9E07              cpc R25,R30
 03AC E9F0              breq L52
 03AE 8830              cpi R24,8
 03B0 E0E0              ldi R30,0
 03B2 9E07              cpc R25,R30
 03B4 44F1              brlt L47
 03B6           L62:
 03B6 80910E00          lds R24,_adress
 03BA 90910F00          lds R25,_adress+1
 03BE 8C30              cpi R24,12
 03C0 E0E0              ldi R30,0
 03C2 9E07              cpc R25,R30
 03C4 A9F0              breq L54
 03C6 8E30              cpi R24,14
 03C8 E0E0              ldi R30,0
 03CA 9E07              cpc R25,R30
 03CC A9F0              breq L56
 03CE 8031              cpi R24,16
 03D0 E0E0              ldi R30,0
 03D2 9E07              cpc R25,R30
 03D4 A9F0              breq L58
 03D6 17C0              rjmp L47
 03D8           X2:
 03D8                   .dbline 112
 03D8           L48:
 03D8                   .dbline 112
 03D8           ;  {case 0x0000:Data[3]=0xE4;break;
 03D8 84EE              ldi R24,228
 03DA 80931300          sts _Data+3,R24
 03DE                   .dbline 112
 03DE 13C0              rjmp L47
 03E0           L50:
 03E0                   .dbline 113
 03E0           ;   case 0x0004:Data[3]=0xE5;break;
 03E0 85EE              ldi R24,229
 03E2 80931300          sts _Data+3,R24
 03E6                   .dbline 113
 03E6 0FC0              rjmp L47
 03E8           L52:
 03E8                   .dbline 114
 03E8           ;   case 0x0008:Data[3]=0xE6;break;
 03E8 86EE              ldi R24,230
 03EA 80931300          sts _Data+3,R24
 03EE                   .dbline 114
 03EE 0BC0              rjmp L47
 03F0           L54:
 03F0                   .dbline 115
 03F0           ;   case 0x000C:Data[3]=0xE7;break;
 03F0 87EE              ldi R24,231
 03F2 80931300          sts _Data+3,R24
 03F6                   .dbline 115
 03F6 07C0              rjmp L47
 03F8           L56:
 03F8                   .dbline 116
 03F8           ;   case 0x000E:Data[3]=0xE8;break;
 03F8 88EE              ldi R24,232
 03FA 80931300          sts _Data+3,R24
 03FE                   .dbline 116
 03FE 03C0              rjmp L47
 0400           L58:
 0400                   .dbline 117
 0400 89EE              ldi R24,233
 0402 80931300          sts _Data+3,R24
 0406                   .dbline 117
 0406                   .dbline 118
 0406           L47:
 0406                   .dbline -2
 0406                   .dbline 119
 0406           ;   case 0x0010:Data[3]=0xE9;break;
 0406           ;   default :break;}
 0406           ; }
 0406           L39:
 0406 2296              adiw R28,2
 0408                   .dbline 0 ; func end
 0408 0895              ret
 040A                   .dbend
 040A                   .dbfunc e readdata _readdata fV
 040A           ;       tempdata -> R22
 040A           ;       trandata -> R20,R21
 040A           ;           data -> R20
                        .even
 040A           _readdata::
 040A 00D0              rcall push_gset2
 040C 402F              mov R20,R16
 040E                   .dbline -1
 040E                   .dbline 123
 040E           ; 
 040E           ; //***************************读数据函数****************************//
 040E           ; void readdata(char data)
 040E           ; {int trandata;
 040E                   .dbline 125
 040E           ;  char tempdata;
 040E           ;  if(data==0xE)
 040E 4E30              cpi R20,14
 0410 11F4              brne L64
 0412                   .dbline 126
 0412           ;  Eepromdata();
 0412 7FDF              rcall _Eepromdata
 0414 23C0              rjmp L65
 0416           L64:
 0416                   .dbline 128
 0416           ;  else
 0416           ;  {switch(data)
 0416                   .dbline 128
 0416 5527              clr R21
 0418 4130              cpi R20,1
 041A E0E0              ldi R30,0
 041C 5E07              cpc R21,R30
 041E 49F0              breq L69
 0420 4230              cpi R20,2
 0422 E0E0              ldi R30,0
 0424 5E07              cpc R21,R30
 0426 41F0              breq L70
 0428 4330              cpi R20,3
 042A E0E0              ldi R30,0
 042C 5E07              cpc R21,R30
 042E 49F0              breq L71
 0430 0BC0              rjmp L67
 0432           X3:
 0432                   .dbline 129
 0432           L69:
 0432                   .dbline 129
 0432           ;   {case 1:trandata=TCNT1;break; //读TCNT1
 0432 4CB5              in R20,0x2c
 0434 5DB5              in R21,0x2d
 0436                   .dbline 129
 0436 08C0              rjmp L67
 0438           L70:
 0438                   .dbline 130
 0438           ;    case 2:trandata=(int)(tempdata=TCNT0);break;//读TCNT0
 0438 22B6              in R2,0x32
 043A 622D              mov R22,R2
 043C 422D              mov R20,R2
 043E 5527              clr R21
 0440                   .dbline 130
 0440 03C0              rjmp L67
 0442           L71:
 0442                   .dbline 131
 0442           ;    case 3:trandata=GetOutputADC();break;//读A/D转换结果
 0442 F2DD              rcall _GetOutputADC
 0444 402F              mov R20,R16
 0446 512F              mov R21,R17
 0448                   .dbline 131
 0448                   .dbline 132
 0448           ;    default :break;}
 0448           L67:
 0448                   .dbline 133
 0448           ;  Data[6]=(char)trandata;//数据低八位
 0448 40931600          sts _Data+6,R20
 044C                   .dbline 134
 044C           ;  Data[7]=(char)(trandata>>8);//数据高八位
 044C 242E              mov R2,R20
 044E 352E              mov R3,R21
 0450 232C              mov R2,R3
 0452 3324              clr R3
 0454 27FC              sbrc R2,7
 0456 3094              com R3
 0458 20921700          sts _Data+7,R2
 045C                   .dbline 135
 045C           ; }
 045C           L65:
 045C                   .dbline 136
 045C           ;  Putdata(Data);
 045C 00E0              ldi R16,<_Data
 045E 10E0              ldi R17,>_Data
 0460 CFDD              rcall _Putdata
 0462                   .dbline -2
 0462                   .dbline 137
 0462           ; }
 0462           L63:
 0462 00D0              rcall pop_gset2
 0464                   .dbline 0 ; func end
 0464 0895              ret
 0466                   .dbsym r tempdata 22 c
 0466                   .dbsym r trandata 20 I
 0466                   .dbsym r data 20 c
 0466                   .dbend
 0466                   .dbfunc e order _order fV
                        .even
 0466           _order::
 0466 00D0              rcall push_gset1
 0468                   .dbline -1
 0468                   .dbline 141
 0468           ; 
 0468           ; //***************************命令函数******************************//
 0468           ; void order(void)
 0468           ; {switch (Data[4])
 0468                   .dbline 141
 0468 40911400          lds R20,_Data+4
 046C 5527              clr R21
 046E 403C              cpi R20,192
 0470 E0E0              ldi R30,0
 0472 5E07              cpc R21,R30
 0474 09F1              breq L79
 0476 413C              cpi R20,193
 0478 E0E0              ldi R30,0
 047A 5E07              cpc R21,R30
 047C F9F0              breq L80
 047E 423C              cpi R20,194
 0480 E0E0              ldi R30,0
 0482 5E07              cpc R21,R30
 0484 F9F0              breq L81
 0486 433C              cpi R20,195
 0488 E0E0              ldi R30,0
 048A 5E07              cpc R21,R30
 048C 21F1              breq L82
 048E 443C              cpi R20,196
 0490 E0E0              ldi R30,0
 0492 5E07              cpc R21,R30
 0494 49F1              breq L83
 0496 453C              cpi R20,197
 0498 E0E0              ldi R30,0
 049A 5E07              cpc R21,R30
 049C 39F1              breq L84
 049E 463C              cpi R20,198
 04A0 E0E0              ldi R30,0
 04A2 5E07              cpc R21,R30
 04A4 29F1              breq L85
 04A6 483C              cpi R20,200
 04A8 E0E0              ldi R30,0
 04AA 5E07              cpc R21,R30
 04AC 41F1              breq L86
 04AE 493C              cpi R20,201
 04B0 E0E0              ldi R30,0
 04B2 5E07              cpc R21,R30
 04B4 41F1              breq L87
 04B6 2AC0              rjmp L76
 04B8           X4:
 04B8                   .dbline 142
 04B8           L79:
 04B8                   .dbline 142
 04B8           ;  {case 0xC0:PORTB=PORTB|0x04;break;    //停止
 04B8 C29A              sbi 0x18,2
 04BA                   .dbline 142
 04BA 28C0              rjmp L76
 04BC           L80:
 04BC                   .dbline 143
 04BC           ;   case 0xC1:PORTB=PORTB&0xFB;break;    //启动
 04BC 88B3              in R24,0x18
 04BE 8B7F              andi R24,251
 04C0 88BB              out 0x18,R24
 04C2                   .dbline 143
 04C2 24C0              rjmp L76
 04C4           L81:
 04C4                   .dbline 145
 04C4           ;   case 0xC2:                           //正转
 04C4           ;            {PORTB=PORTB&0xFC|0x02;
 04C4                   .dbline 145
 04C4 88B3              in R24,0x18
 04C6 8C7F              andi R24,252
 04C8 8260              ori R24,2
 04CA 88BB              out 0x18,R24
 04CC                   .dbline 146
 04CC           ;                   PORTD=PORTD&0x3F|0x40;
 04CC 82B3              in R24,0x12
 04CE 8F73              andi R24,63
 04D0 8064              ori R24,64
 04D2 82BB              out 0x12,R24
 04D4                   .dbline 147
 04D4           ;                       break;}
 04D4 1BC0              rjmp L76
 04D6           L82:
 04D6                   .dbline 149
 04D6           ;   case 0xC3:                           //反转
 04D6           ;            {PORTB=PORTB&0xFC|0x01;
 04D6                   .dbline 149
 04D6 88B3              in R24,0x18
 04D8 8C7F              andi R24,252
 04DA 8160              ori R24,1
 04DC 88BB              out 0x18,R24
 04DE                   .dbline 150
 04DE           ;                   PORTD=PORTD&0x3F|0x80;
 04DE 82B3              in R24,0x12
 04E0 8F73              andi R24,63
 04E2 8068              ori R24,128
 04E4 82BB              out 0x12,R24
 04E6                   .dbline 151
 04E6           ;                       break;}
 04E6 12C0              rjmp L76
 04E8           L83:
 04E8                   .dbline 152
 04E8           ;   case 0xC4:Upspeed();break;           //加速
 04E8 A8DD              rcall _Upspeed
 04EA                   .dbline 152
 04EA 10C0              rjmp L76
 04EC           L84:
 04EC                   .dbline 153
 04EC           ;   case 0xC5:Downspeed();break;         //减速
 04EC C9DD              rcall _Downspeed
 04EE                   .dbline 153
 04EE 0EC0              rjmp L76
 04F0           L85:
 04F0                   .dbline 155
 04F0           ;   case 0xC6:                           //制动
 04F0           ;            {PORTB=PORTB|0x03;
 04F0                   .dbline 155
 04F0 88B3              in R24,0x18
 04F2 8360              ori R24,3
 04F4 88BB              out 0x18,R24
 04F6                   .dbline 156
 04F6           ;                   PORTD=PORTD&0x3F;
 04F6 82B3              in R24,0x12
 04F8 8F73              andi R24,63
 04FA 82BB              out 0x12,R24
 04FC                   .dbline 157
 04FC           ;                       break;}
 04FC 07C0              rjmp L76
 04FE           L86:
 04FE                   .dbline 158
 04FE           ;   case 0xC8:flage=1;break;             //监控
 04FE 81E0              ldi R24,1
 0500 80930600          sts _flage,R24
 0504                   .dbline 158
 0504 03C0              rjmp L76
 0506           L87:
 0506                   .dbline 159
 0506 2224              clr R2
 0508 20920600          sts _flage,R2
 050C                   .dbline 159
 050C                   .dbline 160
 050C           L76:
 050C                   .dbline -2
 050C                   .dbline 162
 050C           ;   case 0xC9:flage=0;break;             //退出监控
 050C           ;   default :break;
 050C           ;  }
 050C           ; }
 050C           L74:
 050C 00D0              rcall pop_gset1
 050E                   .dbline 0 ; func end
 050E 0895              ret
 0510                   .dbend
 0510                   .dbfunc e Datadisposal _Datadisposal fV
 0510           ;      operation -> R20
 0510           ;           temp -> R22,R23
                        .even
 0510           _Datadisposal::
 0510 00D0              rcall push_gset2
 0512 2297              sbiw R28,2
 0514                   .dbline -1
 0514                   .dbline 167
 0514           ; 
 0514           ; 
 0514           ; //***************************数据处理函数**************************//
 0514           ; void Datadisposal(void)
 0514           ; {char operation;
 0514                   .dbline 169

⌨️ 快捷键说明

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