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

📄 main.lis

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module main.c
                        .area eeprom(rom, con, rel)
 0000           _space_eeprom::
 0000 0000              .word 0
 0002                   .dbfile C:\BJQD\main.c
 0002                   .dbsym e space_eeprom _space_eeprom i
 0002           _speed_eeprom::
 0002 6400              .word 100
 0004                   .dbsym e speed_eeprom _speed_eeprom i
 0004           _state_eeprom::
 0004 00                .byte 0
 0005                   .dbsym e state_eeprom _state_eeprom c
 0005           _pump_tab_eeprom::
 0005 01                .byte 1
 0006                   .dbsym e pump_tab_eeprom _pump_tab_eeprom c
 0006           _state_other_eeprom::
 0006 00                .byte 0
 0007                   .dbsym e state_other_eeprom _state_other_eeprom c
                        .area code(ram, con, rel)
 0000                   .dbfile C:\BJQD\main.c
                        .area lit(rom, con, rel)
 0000           _tabsin::
 0000 0006              .byte 0,6
 0002 0D13              .byte 13,19
 0004 191F              .byte 25,31
 0006 252C              .byte 37,44
 0008 3238              .byte 50,56
 000A 3E44              .byte 62,'D
 000C 4A50              .byte 'J,'P
 000E 565C              .byte 'V,92
 0010 6267              .byte 'b,'g
 0012 6D73              .byte 'm,'s
 0014 787E              .byte 'x,126
 0016 8388              .byte 131,136
 0018 8E93              .byte 142,147
 001A 989D              .byte 152,157
 001C A2A7              .byte 162,167
 001E ABB0              .byte 171,176
 0020 B4B9              .byte 180,185
 0022 BDC1              .byte 189,193
 0024 C5C9              .byte 197,201
 0026 CDD0              .byte 205,208
 0028 D4D7              .byte 212,215
 002A DBDE              .byte 219,222
 002C E1E4              .byte 225,228
 002E E7E9              .byte 231,233
 0030 ECEE              .byte 236,238
 0032 F0F2              .byte 240,242
 0034 F4F6              .byte 244,246
 0036 F7F9              .byte 247,249
 0038 FAFB              .byte 250,251
 003A FCFD              .byte 252,253
 003C FEFE              .byte 254,254
 003E FFFF              .byte 255,255
 0040 FFFF              .byte 255,255
 0042 FFFE              .byte 255,254
 0044 FEFD              .byte 254,253
 0046 FCFB              .byte 252,251
 0048 FAF9              .byte 250,249
 004A F7F6              .byte 247,246
 004C F4F2              .byte 244,242
 004E F0EE              .byte 240,238
 0050 ECE9              .byte 236,233
 0052 E7E4              .byte 231,228
 0054 E1DE              .byte 225,222
 0056 DBD7              .byte 219,215
 0058 D4D0              .byte 212,208
 005A CDC9              .byte 205,201
 005C C5C1              .byte 197,193
 005E BDB9              .byte 189,185
 0060 B4B0              .byte 180,176
 0062 ABA7              .byte 171,167
 0064 A29D              .byte 162,157
 0066 9893              .byte 152,147
 0068 8E88              .byte 142,136
 006A 837E              .byte 131,126
 006C 7873              .byte 'x,'s
 006E 6D67              .byte 'm,'g
 0070 625C              .byte 'b,92
 0072 5650              .byte 'V,'P
 0074 4A44              .byte 'J,'D
 0076 3E38              .byte 62,56
 0078 322C              .byte 50,44
 007A 251F              .byte 37,31
 007C 1913              .byte 25,19
 007E 0D06              .byte 13,6
 0080                   .dbsym e tabsin _tabsin A[128:128]kc
 0080           _tabcos::
 0080 FFFF              .byte 255,255
 0082 FFFE              .byte 255,254
 0084 FEFD              .byte 254,253
 0086 FCFB              .byte 252,251
 0088 FAF9              .byte 250,249
 008A F7F6              .byte 247,246
 008C F4F2              .byte 244,242
 008E F0EE              .byte 240,238
 0090 ECE9              .byte 236,233
 0092 E7E4              .byte 231,228
 0094 E1DE              .byte 225,222
 0096 DBD7              .byte 219,215
 0098 D4D0              .byte 212,208
 009A CDC9              .byte 205,201
 009C C5C1              .byte 197,193
 009E BDB9              .byte 189,185
 00A0 B4B0              .byte 180,176
 00A2 ABA7              .byte 171,167
 00A4 A29D              .byte 162,157
 00A6 9893              .byte 152,147
 00A8 8E88              .byte 142,136
 00AA 837E              .byte 131,126
 00AC 7873              .byte 'x,'s
 00AE 6D67              .byte 'm,'g
 00B0 625C              .byte 'b,92
 00B2 5650              .byte 'V,'P
 00B4 4A44              .byte 'J,'D
 00B6 3E38              .byte 62,56
 00B8 322C              .byte 50,44
 00BA 251F              .byte 37,31
 00BC 1913              .byte 25,19
 00BE 0D06              .byte 13,6
 00C0 0006              .byte 0,6
 00C2 0D13              .byte 13,19
 00C4 191F              .byte 25,31
 00C6 252C              .byte 37,44
 00C8 3238              .byte 50,56
 00CA 3E44              .byte 62,'D
 00CC 4A50              .byte 'J,'P
 00CE 565C              .byte 'V,92
 00D0 6267              .byte 'b,'g
 00D2 6D73              .byte 'm,'s
 00D4 787E              .byte 'x,126
 00D6 8388              .byte 131,136
 00D8 8E93              .byte 142,147
 00DA 989D              .byte 152,157
 00DC A2A7              .byte 162,167
 00DE ABB0              .byte 171,176
 00E0 B4B9              .byte 180,185
 00E2 BDC1              .byte 189,193
 00E4 C5C9              .byte 197,201
 00E6 CDD0              .byte 205,208
 00E8 D4D7              .byte 212,215
 00EA DBDE              .byte 219,222
 00EC E1E4              .byte 225,228
 00EE E7E9              .byte 231,233
 00F0 ECEE              .byte 236,238
 00F2 F0F2              .byte 240,242
 00F4 F4F6              .byte 244,246
 00F6 F7F9              .byte 247,249
 00F8 FAFB              .byte 250,251
 00FA FCFD              .byte 252,253
 00FC FEFE              .byte 254,254
 00FE FFFF              .byte 255,255
 0100                   .dbsym e tabcos _tabcos A[128:128]kc
                        .area data(ram, con, rel)
 0000                   .dbfile C:\BJQD\main.c
                        .area vector(rom, abs)
                        .org 24
 0018 0C940000          jmp _time1_int
                        .area data(ram, con, rel)
 0000                   .dbfile C:\BJQD\main.c
                        .area vector(rom, abs)
                        .org 12
 000C 0C94E800          jmp _time2_int
                        .area data(ram, con, rel)
 0000                   .dbfile C:\BJQD\main.c
                        .area vector(rom, abs)
                        .org 4
 0004 0C941401          jmp _pull_int
                        .area data(ram, con, rel)
 0000                   .dbfile C:\BJQD\main.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\BJQD\main.c
 0000                   .dbfunc e time1_int _time1_int fV
 0000           ;              j -> R16
 0000           ;              i -> R18
                        .even
 0000           _time1_int::
 0000 2A92              st -y,R2
 0002 3A92              st -y,R3
 0004 0A93              st -y,R16
 0006 2A93              st -y,R18
 0008 8A93              st -y,R24
 000A 9A93              st -y,R25
 000C EA93              st -y,R30
 000E FA93              st -y,R31
 0010 2FB6              in R2,0x3f
 0012 2A92              st -y,R2
 0014                   .dbline -1
 0014                   .dbline 130
 0014           ; /*ICC-AVR application builder : 2004-3-11 12:02:11
 0014           ; // Target : M16
 0014           ; // Crystal: 8.0000Mhz
 0014           ; 主程序
 0014           ; ******************************************************************************/
 0014           ; #include <iom16v.h>
 0014           ; #include <macros.h>
 0014           ; #include <eeprom.h>
 0014           ; #include <stdlib.h>
 0014           ; #include <math.h>
 0014           ; #include "main.h"
 0014           ; #include "eeprom_l.h"
 0014           ; #include "delay.h"
 0014           ; #include "comm.h"
 0014           ; #include "key.h"
 0014           ; 
 0014           ; //eeprom 中的数据表
 0014           ; #pragma data:eeprom
 0014           ; /*
 0014           ; {0x0000(2),speed_romaddr(2),state_romaddr(1),pump_tab_romaddr(1),
 0014           ; state_other_romaddr(1)}
 0014           ; */
 0014           ; unsigned int space_eeprom=0000;
 0014           ; unsigned int speed_eeprom=100;
 0014           ; unsigned char state_eeprom=0;
 0014           ; unsigned char pump_tab_eeprom=1;
 0014           ; unsigned char state_other_eeprom=0;
 0014           ;                                                       
 0014           ; #pragma data:code
 0014           ; const unsigned char tabsin[]={
 0014           ; 0,6,13,19,25,31,37,44,50,56,62,68,74,80,86,92,
 0014           ; 98,103,109,115,120,126,131,136,142,147,152,157,162,167,171,176,
 0014           ; 180,185,189,193,197,201,205,208,212,215,219,222,225,228,231,233,
 0014           ; 236,238,240,242,244,246,247,249,250,251,252,253,254,254,255,255,
 0014           ; 255,255,255,254,254,253,252,251,250,249,247,246,244,242,240,238,
 0014           ; 236,233,231,228,225,222,219,215,212,208,205,201,197,193,189,185,
 0014           ; 180,176,171,167,162,157,152,147,142,136,131,126,120,115,109,103,
 0014           ; 98,92,86,80,74,68,62,56,50,44,37,31,25,19,13,6,
 0014           ; };
 0014           ; const unsigned char tabcos[]={  
 0014           ; 255,255,255,254,254,253,252,251,250,249,247,246,244,242,240,238,
 0014           ; 236,233,231,228,225,222,219,215,212,208,205,201,197,193,189,185,
 0014           ; 180,176,171,167,162,157,152,147,142,136,131,126,120,115,109,103,
 0014           ; 98,92,86,80,74,68,62,56,50,44,37,31,25,19,13,6,
 0014           ; 0,6,13,19,25,31,37,44,50,56,62,68,74,80,86,92,
 0014           ; 98,103,109,115,120,126,131,136,142,147,152,157,162,167,171,176,
 0014           ; 180,185,189,193,197,201,205,208,212,215,219,222,225,228,231,233,
 0014           ; 236,238,240,242,244,246,247,249,250,251,252,253,254,254,255,255, 
 0014           ; };
 0014           ; 
 0014           ; #pragma data:data
 0014           ; 
 0014           ; //全局变量
 0014           ; unsigned int        speed;                      //16位速度寄存器
 0014           ; unsigned int                  out_ctr;                  //16位AD转换值寄存器
 0014           ; unsigned int        pull_number;       //闸门时间的脉冲数
 0014           ; unsigned int              time_da;              //16位D/A时间寄存器
 0014           ; unsigned int        time_da0;
 0014           ; unsigned char       key;                        //按键值
 0014           ; unsigned char                 da_counter;               //8位计数器:纪录正在读取的细分表位置
 0014           ; unsigned char                 micros_nu;                //8位寄存器:纪录细分数如4,8,16,32,64,128,256
 0014           ; unsigned char                 micros_nu0;       //最终纪录细分数
 0014           ; unsigned char       key_state;        //1:禁止      0:允许
 0014           ; //key_state.0       run/stop
 0014           ; //key_state.1                 cw/ccw
 0014           ; //key_state.2                 max
 0014           ; //key_state.3                 enter
 0014           ; //key_state.4         
 0014           ; unsigned char       key_counter;      //键盘加减计数器
 0014           ; unsigned long       disp_time_counter0;
 0014           ; unsigned long       disp_time_counter1;
 0014           ; unsigned char                 add_dec_nu;
 0014           ; unsigned char       ac_bd_state;
 0014           ; unsigned char                 state;                    //软件位状态寄存器
 0014           ; //state.0 正反转状态位                                                                1正转    0反转                                                                  
 0014           ; //state.1 全速标志                                                            1全速    0正常
 0014           ; //state.2 
 0014           ; //state.3 启停                                      1启      0停
 0014           ; //state.4 
 0014           ; //state.5 
 0014           ; //state.6 
 0014           ; //state.7 
 0014           ; unsigned char state_other;//软件位状态寄存器
 0014           ; //state.2 显示方式                                                                    1流量    0转速
 0014           ; //state.4 脚踏开关标志位                                                      1脉冲    0电平
 0014           ; //state.5 外控方式                                                            1关      0开
 0014           ; unsigned char       state0;                   //软件位状态寄存器0
 0014           ; //state0.0 校正体积改变标志                                                   1改变    0无改变          
 0014           ; //state0.1 电机abcd相工作状态位                                               1为ab相  0为cd相 
 0014           ; //state0.2 测试模式使能位                                                     1使能    0禁止
 0014           ; //state0.3 在旋转编码开关控制函数里是否为第一次旋转 1第一次,0连续
 0014           ; //state0.4 定时分配标志                                                               1分配    0停止
 0014           ; //state0.5 接收消息有效标志
 0014           ; //state0.6 显示                                                               1转速    0流量
 0014           ; //state0.7 初始化启停                               1启      0停   
 0014           ; extern unsigned char state2;    
 0014           ; //state2.0 disable_data    1:输入数据无效                     0:有效;
 0014           ; //state2.1 remote                1:遥控输入有效                       0:本地输入有效
 0014           ; //state2.2                               1:外控关                         0:外控开
 0014           ; //state2.3                               1:键盘+10                            0:键盘+1  
 0014           ; //state2.4                               1:允许输入数据                       0:禁止输入数据 
 0014           ; //state2.5                               1:允许                                       0:停机
 0014           ; //state2.6                               1:无外控模块             0:有外控模块
 0014           ; //state2.7 p99                           1:P99指令使能                        0:禁止
 0014           ; extern unsigned char state1;
 0014           ; //state1.7                 1:电流                                     0:电压
 0014           ; unsigned char in_out_state;
 0014           ; unsigned char in_out_number;
 0014           ; unsigned char wrong;
 0014           ; /*
 0014           ; 0正常
 0014           ; 1数值下溢出
 0014           ; 2数值上溢出
 0014           ; 3
 0014           ; */
 0014           ; unsigned char counter;
 0014           ; unsigned int speed_pull;
 0014           ; extern unsigned char pump_tab;
 0014           ; 
 0014           ; //定义中断向量
 0014           ; #pragma interrupt_handler time1_int:iv_TIMER1_COMPA
 0014           ; #pragma interrupt_handler time2_int:iv_TIMER2_COMP
 0014           ; #pragma interrupt_handler pull_int:iv_INT0
 0014           ; 
 0014           ; 
 0014           ; /******************************************************
 0014           ; D/A出细分波形中断函数(定时器1比较匹配中断)
 0014           ; ******************************************************/
 0014           ; void time1_int(void)
 0014           ; {
 0014                   .dbline 133
 0014           ; unsigned char i;
 0014           ; unsigned char j;
 0014           ; if (micros_nu==micros_nu0)
 0014 20901500          lds R2,_micros_nu0
 0018 30901600          lds R3,_micros_nu
 001C 3214              cp R3,R2
 001E 49F4              brne L2
 0020                   .dbline 134

⌨️ 快捷键说明

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