📄 function.lis
字号:
.module function.c
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\开关量CAN网\function.c
0000 .dbfunc e RUN_LED _RUN_LED fV
.even
0000 _RUN_LED::
0000 .dbline -1
0000 .dbline 8
0000 ; #include "main.h"
0000 ;
0000 ; extern unsigned char Pass_Flag,ID_net,DI_data[12],Send_Flag,DI_Status[3],send_count;
0000 ; extern unsigned char Time,Temp_Flag,DI_data_pre[12],DI_data_cur[12];
0000 ; extern unsigned int RUN;
0000 ; extern long id1,id2,id3,id4,id5;
0000 ; void RUN_LED(void) //运行指示灯
0000 ; {
0000 .dbline 9
0000 ; if(PORTB&0X20)
0000 85B1 in R24,0x5
0002 8072 andi R24,32
0004 21F0 breq L2
0006 .dbline 10
0006 ; PORTB&=0xDF;
0006 85B1 in R24,0x5
0008 8F7D andi R24,223
000A 85B9 out 0x5,R24
000C 01C0 xjmp L3
000E L2:
000E .dbline 12
000E 2D9A sbi 0x5,5
0010 L3:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc e get_id _get_id fc
0012 ; temp -> R16
.even
0012 _get_id::
0012 .dbline -1
0012 .dbline 17
0012 ; else
0012 ; PORTB|=0x20;
0012 ; }
0012 ;
0012 ;
0012 ; unsigned char get_id(void) //读取拨码开关
0012 ; {
0012 .dbline 19
0012 ; unsigned char temp;
0012 ; PORTG &= 0xf7;
0012 84B3 in R24,0x14
0014 877F andi R24,247
0016 84BB out 0x14,R24
0018 .dbline 20
0018 ; asm("nop");
0018 0000 nop
001A .dbline 21
001A ; asm("nop");
001A 0000 nop
001C .dbline 22
001C ; temp = PINC;
001C 06B1 in R16,0x6
001E .dbline 23
001E ; temp = temp+1;
001E 0395 inc R16
0020 .dbline 24
0020 ; temp = ~(temp);
0020 0095 com R16
0022 .dbline 25
0022 ; temp = temp>>1;
0022 0695 lsr R16
0024 .dbline 26
0024 ; PORTG |= 0x08;
0024 A39A sbi 0x14,3
0026 .dbline 27
0026 ; return temp;
0026 .dbline -2
0026 L4:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym r temp 16 c
0028 .dbend
0028 .dbfunc e init_data _init_data fV
0028 ; i -> R16
.even
0028 _init_data::
0028 0E940000 xcall push_gset2
002C .dbline -1
002C .dbline 32
002C ; }
002C ;
002C ;
002C ; void init_data(void)
002C ; {
002C .dbline 35
002C ; unsigned char i;
002C ;
002C ; for(i=0;i<12;i++)
002C 0027 clr R16
002E 19C0 xjmp L9
0030 L6:
0030 .dbline 36
0030 .dbline 37
0030 80E0 ldi R24,<_DI_data
0032 90E0 ldi R25,>_DI_data
0034 E02F mov R30,R16
0036 FF27 clr R31
0038 E80F add R30,R24
003A F91F adc R31,R25
003C 8FEF ldi R24,255
003E 8083 std z+0,R24
0040 .dbline 38
0040 80E0 ldi R24,<_DI_data_pre
0042 90E0 ldi R25,>_DI_data_pre
0044 E02F mov R30,R16
0046 FF27 clr R31
0048 E80F add R30,R24
004A F91F adc R31,R25
004C 8FEF ldi R24,255
004E 8083 std z+0,R24
0050 .dbline 39
0050 80E0 ldi R24,<_DI_data_cur
0052 90E0 ldi R25,>_DI_data_cur
0054 E02F mov R30,R16
0056 FF27 clr R31
0058 E80F add R30,R24
005A F91F adc R31,R25
005C 8FEF ldi R24,255
005E 8083 std z+0,R24
0060 .dbline 40
0060 L7:
0060 .dbline 35
0060 0395 inc R16
0062 L9:
0062 .dbline 35
0062 0C30 cpi R16,12
0064 28F3 brlo L6
0066 .dbline 41
0066 ; {
0066 ; DI_data[i] = 0xff;
0066 ; DI_data_pre[i] = 0xff;
0066 ; DI_data_cur[i] = 0xff;
0066 ; }
0066 ; for(i=0;i<3;i++)
0066 0027 clr R16
0068 09C0 xjmp L13
006A L10:
006A .dbline 42
006A 80E0 ldi R24,<_DI_Status
006C 90E0 ldi R25,>_DI_Status
006E E02F mov R30,R16
0070 FF27 clr R31
0072 E80F add R30,R24
0074 F91F adc R31,R25
0076 2224 clr R2
0078 2082 std z+0,R2
007A L11:
007A .dbline 41
007A 0395 inc R16
007C L13:
007C .dbline 41
007C 0330 cpi R16,3
007E A8F3 brlo L10
0080 .dbline 43
0080 ; DI_Status[i]= 0;
0080 ; Time = 0;
0080 2224 clr R2
0082 20920000 sts _Time,R2
0086 .dbline 44
0086 ; Temp_Flag = 0;
0086 20920000 sts _Temp_Flag,R2
008A .dbline 45
008A ; Send_Flag = 0;
008A 20920000 sts _Send_Flag,R2
008E .dbline 46
008E ; Pass_Flag = 0;
008E 20920000 sts _Pass_Flag,R2
0092 .dbline 47
0092 ; RUN = 0;
0092 3324 clr R3
0094 30920100 sts _RUN+1,R3
0098 20920000 sts _RUN,R2
009C .dbline 48
009C ; id1 = 0;
009C 40E0 ldi R20,0
009E 50E0 ldi R21,0
00A0 60E0 ldi R22,0
00A2 70E0 ldi R23,0
00A4 50930100 sts _id1+1,R21
00A8 40930000 sts _id1,R20
00AC 70930300 sts _id1+2+1,R23
00B0 60930200 sts _id1+2,R22
00B4 .dbline 49
00B4 ; id2 = 0;
00B4 40E0 ldi R20,0
00B6 50E0 ldi R21,0
00B8 60E0 ldi R22,0
00BA 70E0 ldi R23,0
00BC 50930100 sts _id2+1,R21
00C0 40930000 sts _id2,R20
00C4 70930300 sts _id2+2+1,R23
00C8 60930200 sts _id2+2,R22
00CC .dbline 50
00CC ; id3 = 0;
00CC 40E0 ldi R20,0
00CE 50E0 ldi R21,0
00D0 60E0 ldi R22,0
00D2 70E0 ldi R23,0
00D4 50930100 sts _id3+1,R21
00D8 40930000 sts _id3,R20
00DC 70930300 sts _id3+2+1,R23
00E0 60930200 sts _id3+2,R22
00E4 .dbline 51
00E4 ; id4 = 0;
00E4 40E0 ldi R20,0
00E6 50E0 ldi R21,0
00E8 60E0 ldi R22,0
00EA 70E0 ldi R23,0
00EC 50930100 sts _id4+1,R21
00F0 40930000 sts _id4,R20
00F4 70930300 sts _id4+2+1,R23
00F8 60930200 sts _id4+2,R22
00FC .dbline 52
00FC ; id5 = 0;
00FC 40E0 ldi R20,0
00FE 50E0 ldi R21,0
0100 60E0 ldi R22,0
0102 70E0 ldi R23,0
0104 50930100 sts _id5+1,R21
0108 40930000 sts _id5,R20
010C 70930300 sts _id5+2+1,R23
0110 60930200 sts _id5+2,R22
0114 .dbline 53
0114 ; send_count = 0;
0114 20920000 sts _send_count,R2
0118 .dbline -2
0118 L5:
0118 0E940000 xcall pop_gset2
011C .dbline 0 ; func end
011C 0895 ret
011E .dbsym r i 16 c
011E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -