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

📄 minid_20050711.lis

📁 平缝机的单片机伺服控制系统源代码。本程序为用单片机控制永磁同步电机的低成本方案
💻 LIS
字号:
                        .module MiniD_20050711.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\PMax\单片机源代码\函数库\MiniD\MiniD_20050711.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; //ICC-AVR application builder : 2005-7-11 14:38:07
 0000           ; // Target : M48
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include "Minid.h"
 0000           ; 
 0000           ; 
 0000           ; //函数定义
 0000           ; void adc_init(void);                                         //ADC initialize
 0000           ; void adc_isr(void);
 0000           ; word AdcPedal(word adcp);                                             //踏板信号转换为对应的控制值
 0000           ; 
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 16
 0000           ;  PORTB = 0xff;
 0000 8FEF              ldi R24,255
 0002 85B9              out 0x5,R24
 0004                   .dbline 17
 0004           ;  DDRB  = 0x00;
 0004 2224              clr R2
 0006 24B8              out 0x4,R2
 0008                   .dbline 18
 0008           ;  PORTC = 0xff; //m103 output only
 0008 88B9              out 0x8,R24
 000A                   .dbline 19
 000A           ;  DDRC  = 0x00;
 000A 27B8              out 0x7,R2
 000C                   .dbline 20
 000C           ;  PORTD = 0xff;
 000C 8BB9              out 0xb,R24
 000E                   .dbline 21
 000E           ;  DDRD  = 0x00;
 000E 2AB8              out 0xa,R2
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
 0012                   .dbfunc e init_devices _init_devices fV
                        .even
 0012           _init_devices::
 0012                   .dbline -1
 0012                   .dbline 26
 0012           ; }
 0012           ; 
 0012           ; //call this routine to initialize all peripherals
 0012           ; void init_devices(void)
 0012           ; {
 0012                   .dbline 28
 0012           ;  //stop errant interrupts until set up
 0012           ;  CLI(); //disable all interrupts
 0012 F894              cli
 0014                   .dbline 29
 0014           ;  port_init();
 0014 F5DF              rcall _port_init
 0016                   .dbline 30
 0016           ;  timer1_init();
 0016 00D0              rcall _timer1_init
 0018                   .dbline 32
 0018           ; 
 0018           ;  MCUCR = 0x00;
 0018 2224              clr R2
 001A 25BE              out 0x35,R2
 001C                   .dbline 33
 001C           ;  EICRA = 0x00; //extended ext ints
 001C 20926900          sts 105,R2
 0020                   .dbline 34
 0020           ;  EIMSK = 0x00;
 0020 2DBA              out 0x1d,R2
 0022                   .dbline 36
 0022           ;  
 0022           ;  TIMSK0 = 0x00; //timer 0 interrupt sources
 0022 20926E00          sts 110,R2
 0026                   .dbline 37
 0026           ;  TIMSK1 = 0x21; //timer 1 interrupt sources
 0026 81E2              ldi R24,33
 0028 80936F00          sts 111,R24
 002C                   .dbline 38
 002C           ;  TIMSK2 = 0x00; //timer 2 interrupt sources
 002C 20927000          sts 112,R2
 0030                   .dbline 40
 0030           ;  
 0030           ;  PCMSK0 = 0x00; //pin change mask 0 
 0030 20926B00          sts 107,R2
 0034                   .dbline 41
 0034           ;  PCMSK1 = 0x00; //pin change mask 1 
 0034 20926C00          sts 108,R2
 0038                   .dbline 42
 0038           ;  PCMSK2 = 0x00; //pin change mask 2
 0038 20926D00          sts 109,R2
 003C                   .dbline 43
 003C           ;  PCICR = 0x00; //pin change enable 
 003C 20926800          sts 104,R2
 0040                   .dbline 44
 0040           ;  PRR = 0x00; //power controller
 0040 20926400          sts 100,R2
 0044                   .dbline 45
 0044           ;  SEI(); //re-enable interrupts
 0044 7894              sei
 0046                   .dbline -2
 0046           L2:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
 0048                   .dbfunc e main _main fV
 0048           ;              d -> R20
 0048           ;             jj -> R22,R23
 0048           ;              j -> R10,R11
 0048           ;              i -> y+0
                        .even
 0048           _main::
 0048 2497              sbiw R28,4
 004A                   .dbline -1
 004A                   .dbline 51
 004A           ;  //all peripherals are now initialized
 004A           ; }
 004A           ; 
 004A           ; //
 004A           ; void main(void)
 004A           ; {
 004A                   .dbline 55
 004A           ;       dword i;
 004A           ;       word j,jj;
 004A           ;       byte d;
 004A           ;       init_devices();
 004A E3DF              rcall _init_devices
 004C                   .dbline 58
 004C           ;       
 004C           ;       //insert your functional code here...
 004C           ;       PIDInit (&sPID);
 004C 00E0              ldi R16,<_sPID
 004E 10E0              ldi R17,>_sPID
 0050 00D0              rcall _PIDInit
 0052 2AC0              rjmp L5
 0054           L4:
 0054                   .dbline 60
 0054                   .dbline 61
 0054 40900600          lds R4,_g_DeltaEnc+2
 0058 50900700          lds R5,_g_DeltaEnc+2+1
 005C 20900400          lds R2,_g_DeltaEnc
 0060 30900500          lds R3,_g_DeltaEnc+1
 0064 FE01              movw R30,R28
 0066 2082              std z+0,R2
 0068 3182              std z+1,R3
 006A 4282              std z+2,R4
 006C 5382              std z+3,R5
 006E                   .dbline 62
 006E C501              movw R24,R10
 0070 0196              adiw R24,1
 0072 5C01              movw R10,R24
 0074                   .dbline 63
 0074 8C01              movw R16,R24
 0076 00D0              rcall _AdcPedal
 0078 B801              movw R22,R16
 007A                   .dbline 64
 007A 2224              clr R2
 007C 3324              clr R3
 007E 30921200          sts _sPID+4+1,R3
 0082 20921100          sts _sPID+4,R2
 0086                   .dbline 65
 0086 30921000          sts _sPID+2+1,R3
 008A 20920F00          sts _sPID+2,R2
 008E                   .dbline 66
 008E 88E8              ldi R24,5000
 0090 93E1              ldi R25,19
 0092 90930E00          sts _sPID+1,R25
 0096 80930D00          sts _sPID,R24
 009A                   .dbline 67
 009A FE01              movw R30,R28
 009C 2081              ldd R18,z+0
 009E 3181              ldd R19,z+1
 00A0 00E0              ldi R16,<_sPID
 00A2 10E0              ldi R17,>_sPID
 00A4 00D0              rcall _PIDCalc
 00A6 402F              mov R20,R16
 00A8                   .dbline 69
 00A8           L5:
 00A8                   .dbline 59
 00A8 D5CF              rjmp L4
 00AA           X0:
 00AA                   .dbline -2
 00AA           L3:
 00AA 2496              adiw R28,4
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbsym r d 20 c
 00AE                   .dbsym r jj 22 i
 00AE                   .dbsym r j 10 i
 00AE                   .dbsym l i 0 l
 00AE                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\PMax\单片机源代码\函数库\MiniD\MiniD_20050711.c
 0000           _g_ValueAdc::
 0000                   .blkb 2
 0002                   .dbfile E:\PMax\单片机源代码\函数库\MiniD/Minid.h
 0002                   .dbsym e g_ValueAdc _g_ValueAdc i
 0002           _g_AdcNum::
 0002                   .blkb 1
 0003                   .dbsym e g_AdcNum _g_AdcNum c
 0003           _g_AdcEnd::
 0003                   .blkb 1
 0004                   .dbsym e g_AdcEnd _g_AdcEnd c
 0004           _g_DeltaEnc::
 0004                   .blkb 4
 0008                   .dbsym e g_DeltaEnc _g_DeltaEnc l
 0008           _g_CntOld::
 0008                   .blkb 2
 000A                   .dbsym e g_CntOld _g_CntOld i
 000A           _g_CntUpdate::
 000A                   .blkb 2
 000C                   .dbsym e g_CntUpdate _g_CntUpdate i
 000C           _g_TotalEnc::
 000C                   .blkb 1
 000D                   .dbsym e g_TotalEnc _g_TotalEnc c
 000D           _sPID::
 000D                   .blkb 16
 001D                   .dbstruct 0 16 PID
 001D                   .dbfield 0 SetValue I
 001D                   .dbfield 2 P I
 001D                   .dbfield 4 I I
 001D                   .dbfield 6 D I
 001D                   .dbfield 8 LastError I
 001D                   .dbfield 10 PrevError I
 001D                   .dbfield 12 SumError L
 001D                   .dbend
 001D                   .dbsym e sPID _sPID S[PID]

⌨️ 快捷键说明

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