📄 ac20-1.lis
字号:
.module ac20-1.c
.area lit(rom, con, rel)
0000 _seg::
0000 3F06 .byte 63,6
0002 5B4F .byte 91,'O
0004 666D .byte 'f,'m
0006 7D07 .byte 125,7
0008 7F6F .byte 127,'o
000A .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
000A .dbsym e seg _seg A[10:10]kc
000A _act::
000A DFBF .byte 223,191
000C 7FEF .byte 127,239
000E .dbsym e act _act A[4:4]kc
.area data(ram, con, rel)
0000 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0000 _stoptime::
0000 .blkb 1
.area idata
0000 03 .byte 3
.area data(ram, con, rel)
0001 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0001 .dbsym e stoptime _stoptime c
0001 _study_speed_temp::
0001 .blkb 1
.area idata
0001 04 .byte 4
.area data(ram, con, rel)
0002 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0002 .dbsym e study_speed_temp _study_speed_temp c
0002 _open_max_temp::
0002 .blkb 1
.area idata
0002 04 .byte 4
.area data(ram, con, rel)
0003 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0003 .dbsym e open_max_temp _open_max_temp c
0003 _open_min_temp::
0003 .blkb 1
.area idata
0003 04 .byte 4
.area data(ram, con, rel)
0004 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0004 .dbsym e open_min_temp _open_min_temp c
0004 _close_max_temp::
0004 .blkb 1
.area idata
0004 01 .byte 1
.area data(ram, con, rel)
0005 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0005 .dbsym e close_max_temp _close_max_temp c
0005 _close_min_temp::
0005 .blkb 1
.area idata
0005 04 .byte 4
.area data(ram, con, rel)
0006 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0006 .dbsym e close_min_temp _close_min_temp c
.area lit(rom, con, rel)
000E _stoptime_tab::
000E F401 .word 500
0010 E803 .word 1000
0012 D007 .word 2000
0014 B80B .word 3000
0016 A00F .word 4000
0018 8813 .word 5000
001A 7017 .word 6000
001C 581B .word 7000
001E 401F .word 8000
0020 2823 .word 9000
0022 .dbsym e stoptime_tab _stoptime_tab A[20:10]ki
0022 _round_cnt_tab::
0022 0506 .byte 5,6
0024 0708 .byte 7,8
0026 090A .byte 9,10
0028 0F14 .byte 15,20
002A 191E .byte 25,30
002C .dbsym e round_cnt_tab _round_cnt_tab A[10:10]kc
002C _study_speed_tab::
002C 0507 .byte 5,7
002E 090B .byte 9,11
0030 0D0F .byte 13,15
0032 1419 .byte 20,25
0034 1E23 .byte 30,35
0036 .dbsym e study_speed_tab _study_speed_tab A[10:10]kc
0036 _open_max_tab::
0036 6478 .byte 'd,'x
0038 8C96 .byte 140,150
003A 9BA0 .byte 155,160
003C A5AA .byte 165,170
003E AFB4 .byte 175,180
0040 .dbsym e open_max_tab _open_max_tab A[10:10]kc
0040 _open_min_tab::
0040 0507 .byte 5,7
0042 0809 .byte 8,9
0044 0A0F .byte 10,15
0046 1419 .byte 20,25
0048 1E23 .byte 30,35
004A .dbsym e open_min_tab _open_min_tab A[10:10]kc
004A _close_max_tab::
004A 6478 .byte 'd,'x
004C 8C96 .byte 140,150
004E 9BA0 .byte 155,160
0050 A5AA .byte 165,170
0052 AFB4 .byte 175,180
0054 .dbsym e close_max_tab _close_max_tab A[10:10]kc
0054 _close_min_tab::
0054 0507 .byte 5,7
0056 0809 .byte 8,9
0058 0A0F .byte 10,15
005A 1419 .byte 20,25
005C 1E23 .byte 30,35
005E .dbsym e close_min_tab _close_min_tab A[10:10]kc
.area data(ram, con, rel)
0006 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0006 _FX::
0006 .blkb 1
.area idata
0006 00 .byte 0
.area data(ram, con, rel)
0007 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0007 .dbsym e FX _FX c
0007 _ddata::
0007 .blkb 1
.area idata
0007 00 .byte 0
.area data(ram, con, rel)
0008 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0008 .dbsym e ddata _ddata c
0008 _wide::
0008 .blkb 1
.area idata
0008 00 .byte 0
.area data(ram, con, rel)
0009 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0009 .dbsym e wide _wide c
.area text(rom, con, rel)
0000 .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; k -> R16,R17
.even
0000 _delay::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 113
0004 ; #include<iom16v.h> //文件包含
0004 ; #include<eeprom.h>
0004 ; #define uchar unsigned char //变量类型的宏定义
0004 ; #define uint unsigned int
0004 ;
0004 ; uchar const seg[10]={0x3f,0x06,0x5b,0x4f,0x66, //数码管段码设定
0004 ; 0x6d,0x7d,0x07,0x7f,0x6f};
0004 ; uchar const act[4]={0xdf,0xbf,0x7f,0xef}; //数码管位码设定
0004 ;
0004 ; /***********************输入量设定*************************/
0004 ; uchar stoptime=3; //靠墙停顿时间设定
0004 ; uchar study_speed; //学习时的速度设定
0004 ; uchar study_speed_temp=4;
0004 ;
0004 ; uchar open_max,open_min; //开门最大速度、最小速度设定
0004 ; uchar open_max_temp=4,open_min_temp=4;
0004 ;
0004 ; uchar close_max,close_min; //关门最大速度、最小速度设定
0004 ; uchar close_max_temp=1,close_min_temp=4;
0004 ;
0004 ; /*****************输入量的列表****************/
0004 ; uint const stoptime_tab[10]={500,1000,2000,3000,4000,5000,
0004 ; 6000,7000,8000,9000};
0004 ; uchar const round_cnt_tab[10]={5,6,7,8,9,10,15,20,25,30};
0004 ; uchar const study_speed_tab[10]={5,7,9,11,13,15,
0004 ; 20,25,30,35};
0004 ; uchar const open_max_tab[10]={100,120,140,150,155,
0004 ; 160,165,170,175,180};
0004 ; uchar const open_min_tab[10]={5,7,8,9,10,
0004 ; 15,20,25,30,35};
0004 ; uchar const close_max_tab[10]={100,120,140,150,155,
0004 ; 160,165,170,175,180};
0004 ; uchar const close_min_tab[10]={5,7,8,9,10,
0004 ; 15,20,25,30,35};
0004 ;
0004 ; uint round_cnt; //直流电机旋转的圈数
0004 ; int changdu; //实际门扇移动的长度
0004 ; uint st_changdu; //设定门扇移动的长度
0004 ; uint allchangdu_x; //总长度(中间变量)
0004 ; uint allchangdu; //总长度
0004 ; uint sp_pl; //脉冲计数变量
0004 ; uchar set_status; //设定状态
0004 ; uchar status; //工作状态
0004 ;
0004 ; /***********临时变量***********/
0004 ; uint cnt_500;
0004 ; uchar fst,val;
0004 ; uchar temp;
0004 ; uchar x;uchar FX=0;
0004 ; uchar eep_temp;
0004 ;
0004 ; uchar open_inc_tab[16]; //开门加速函数的计算表
0004 ; uchar open_dec_tab[16]; //开门减速函数的计算表
0004 ; uchar close_inc_tab[16]; //关门加速函数的计算表
0004 ; uchar close_dec_tab[16]; //关门减速函数的计算表
0004 ;
0004 ; uchar openflag;
0004 ; uchar dis_bit,ddata=0;
0004 ; /***********************************************/
0004 ; uchar inc_dec_flag; //加减速的标志
0004 ; uchar wide=0; //加减速的脉冲宽度变量
0004 ;
0004 ; /****************常量定义***************/
0004 ; #define L 1;
0004 ; #define R 0;
0004 ; #define ON 0;
0004 ; #define OFF 1;
0004 ; #define ALL 1
0004 ; #define HALF 0
0004 ;
0004 ; /**************端口高低电平定义****************/
0004 ; #define PWMOUT_0 (PORTD=PORTD|0x80) //PWM端输出0
0004 ; #define PWMOUT_1 (PORTD=PORTD&0x7f) //PWM端输出1
0004 ; #define SACE_0 (PORTD=PORTD|0x40) //SACE端输出0
0004 ; #define SACE_1 (PORTD=PORTD&0xbf) //SACE端输出1
0004 ; #define FANXIANG_L (PORTD=PORTD|0x20) //方向向左
0004 ; #define FANXIANG_R (PORTD=PORTD&0xdf) //方向向右
0004 ; #define RELAY_ON (PORTD=PORTD&0xf7) //继电器吸合
0004 ; #define RELAY_OFF (PORTD=PORTD|0x08) //继电器断开
0004 ; #define LOCK_ON (PORTD=PORTD&0xef) //锁停门扇打开
0004 ; #define LOCK_OFF (PORTD=PORTD|0x10) //锁停门扇关闭
0004 ;
0004 ; #define CON_SMAIL (PORTC&0x01) //门扇打开微小的距离运行
0004 ; #define TANTE1 (PINC&0x40) //门外侧的红外感应探测器1
0004 ; #define TANTE2 (PINC&0x02) //门内侧的红外感应探测器2
0004 ; #define KEY_SET (PINB&0x01) //按键输入SET
0004 ; #define KEY_ADD (PINB&0x02) //按键输入ADD
0004 ; #define KEY_OK (PINB&0x04) //按键输入OK
0004 ; #define OFF_ALLTANTE (PINB&0x08) //关闭全部的红外感应探测器
0004 ; #define OFF_TANTE1 (PINB&0x10) //关闭门外侧的红外感应探测器1
0004 ; #define HALF_RUN (PIND&0x01) //门扇半开运行
0004 ; #define ALLOPEN_STOP (PIND&0x02) //门扇全开后锁停
0004 ; #define STOP (PINC&0x10) //门扇锁停
0004 ;
0004 ; /****************EEPROM内部地址定义*********************/
0004 ; #define stoptime_address 10
0004 ; #define study_speed_address 15
0004 ; #define open_max_address 20
0004 ; #define open_min_address 25
0004 ; #define close_max_address 30
0004 ; #define close_min_address 35
0004 ;
0004 ; /***********************************************************/
0004 ; uchar openstop; //门全开后停止不动的标志
0004 ; uchar tante_flag; //门外侧的红外感应探测器1允许使用的标志
0004 ;
0004 ; /******************函数声明***********************/
0004 ; void start(void);
0004 ; //void fai_zhan(void);
0004 ;
0004 ; /****************延时子函数*******************/
0004 ; void delay(uint k)
0004 ; {
0004 .dbline 115
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 115
000A ; uint i,j;
000A ; for(i=0;i<k;i++){
000A .dbline 116
000A ; for(j=0;j<1500;j++)
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 117
0010 .dbline 117
0010 .dbline 117
0010 L7:
0010 .dbline 116
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 116
0014 6C3D cpi R22,220
0016 E5E0 ldi R30,5
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C .dbline 117
001C L3:
001C .dbline 115
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 115
0020 4017 cp R20,R16
0022 5107 cpc R21,R17
0024 90F3 brlo L2
0026 .dbline -2
0026 L1:
0026 0E940000 xcall pop_gset2
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r i 20 i
002C .dbsym r j 22 i
002C .dbsym r k 16 i
002C .dbend
002C .dbfunc e init_IO _init_IO fV
.even
002C _init_IO::
002C 2297 sbiw R28,2
002E .dbline -1
002E .dbline 122
002E ; {;}}
002E ; }
002E ;
002E ; /*==========初始化单片机I/O口子函数==========*/
002E ; void init_IO(void)
002E ; {DDRA=0x7f;
002E .dbline 122
002E 8FE7 ldi R24,127
0030 8ABB out 0x1a,R24
0032 .dbline 123
0032 ; PORTA=0x00;
0032 2224 clr R2
0034 2BBA out 0x1b,R2
0036 .dbline 124
0036 ; DDRB=0xe0;
0036 80EE ldi R24,224
0038 87BB out 0x17,R24
003A .dbline 125
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -