📄 main.lis
字号:
.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 + -