📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\main.c
.area vector(rom, abs)
.org 68
0044 0C940000 jmp _timer0_ovf_isr
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\main.c
0000 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0000 _timer0_ovf_isr::
0000 0E940000 xcall push_lset
0004 .dbline -1
0004 .dbline 21
0004 ; #include "main.h"
0004 ;
0004 ;
0004 ; VCI_CAN_OBJ msg[3],rece_data[49];
0004 ; extern unsigned long CANMOBID[15];
0004 ; extern unsigned long CANMOBMD[15];
0004 ; unsigned char ID_nu,ID_net,Time,T1,channel,RUN,T2,alarm_process_flag,T3;
0004 ; unsigned char sysrst,Pass_Flag;
0004 ; extern SHD_LED pannel_led[48];
0004 ; long id1,id2,id3,id4,id5,id6;
0004 ; unsigned char mode_flag ;
0004 ; unsigned char key_temp1,key_temp2,key_temp3,ted;
0004 ; unsigned char soundoff_flag,ack_flag,alarm_flag;
0004 ; extern unsigned char key[8];
0004 ;
0004 ;
0004 ;
0004 ;
0004 ; #pragma interrupt_handler timer0_ovf_isr:18
0004 ; void timer0_ovf_isr(void) //定时1毫秒
0004 ; {
0004 .dbline 22
0004 ; TCNT0 = 0x83; //reload counter value
0004 83E8 ldi R24,131
0006 86BD out 0x26,R24
0008 .dbline 23
0008 ; Time++;
0008 80912800 lds R24,_Time
000C 8F5F subi R24,255 ; addi 1
000E 80932800 sts _Time,R24
0012 .dbline 24
0012 ; RUN++;
0012 80912500 lds R24,_RUN
0016 8F5F subi R24,255 ; addi 1
0018 80932500 sts _RUN,R24
001C .dbline 25
001C ; T2++;
001C 80912400 lds R24,_T2
0020 8F5F subi R24,255 ; addi 1
0022 80932400 sts _T2,R24
0026 .dbline 26
0026 ; T3++;
0026 80912200 lds R24,_T3
002A 8F5F subi R24,255 ; addi 1
002C 80932200 sts _T3,R24
0030 .dbline 27
0030 ; if(T2==12)
0030 80912400 lds R24,_T2
0034 8C30 cpi R24,12
0036 29F4 brne L3
0038 .dbline 28
0038 ; {
0038 .dbline 29
0038 ; RUN_led();
0038 0E940000 xcall _RUN_led
003C .dbline 30
003C ; T2=0;
003C 2224 clr R2
003E 20922400 sts _T2,R2
0042 .dbline 31
0042 ; }
0042 L3:
0042 .dbline 32
0042 ; if(T3==alarm_delay)
0042 80912200 lds R24,_T3
0046 8431 cpi R24,20
0048 31F4 brne L5
004A .dbline 33
004A ; {
004A .dbline 34
004A ; alarm_process_flag=on;
004A 8AE5 ldi R24,90
004C 80932300 sts _alarm_process_flag,R24
0050 .dbline 35
0050 ; T3=0;
0050 2224 clr R2
0052 20922200 sts _T3,R2
0056 .dbline 36
0056 ; }
0056 L5:
0056 .dbline 37
0056 ; if(RUN==2)
0056 80912500 lds R24,_RUN
005A 8230 cpi R24,2
005C 21F4 brne L7
005E .dbline 38
005E ; {
005E .dbline 39
005E ; key_temp1 =get_key();
005E 0E940000 xcall _get_key
0062 00930600 sts _key_temp1,R16
0066 .dbline 40
0066 ; }
0066 L7:
0066 .dbline 41
0066 ; if(RUN==4)
0066 80912500 lds R24,_RUN
006A 8430 cpi R24,4
006C 09F0 breq X0
006E 71C0 xjmp L9
0070 X0:
0070 .dbline 42
0070 ; {
0070 .dbline 43
0070 ; if(key_temp2!=key_temp1)
0070 20900600 lds R2,_key_temp1
0074 30900500 lds R3,_key_temp2
0078 3214 cp R3,R2
007A 09F4 brne X1
007C 67C0 xjmp L11
007E X1:
007E .dbline 44
007E ; {
007E .dbline 45
007E ; key_temp2 =get_key();
007E 0E940000 xcall _get_key
0082 00930500 sts _key_temp2,R16
0086 .dbline 46
0086 ; if((key_temp1==key_temp2)&&(key_temp1!=0xff))
0086 30900600 lds R3,_key_temp1
008A 3016 cp R3,R16
008C 09F0 breq X2
008E 5EC0 xjmp L13
0090 X2:
0090 832D mov R24,R3
0092 8F3F cpi R24,255
0094 09F4 brne X3
0096 5AC0 xjmp L13
0098 X3:
0098 .dbline 47
0098 ; {
0098 .dbline 49
0098 ; //WDR();
0098 ; ted= ~(key_temp1);
0098 282E mov R2,R24
009A 2094 com R2
009C 20920300 sts _ted,R2
00A0 .dbline 50
00A0 ; if(ted&0x80)
00A0 27FE sbrs R2,7
00A2 04C0 rjmp L15
00A4 .dbline 51
00A4 ; key[7]=on;
00A4 8AE5 ldi R24,90
00A6 80930700 sts _key+7,R24
00AA 03C0 xjmp L16
00AC L15:
00AC .dbline 53
00AC ; else
00AC ; key[7]=off;
00AC 85EA ldi R24,165
00AE 80930700 sts _key+7,R24
00B2 L16:
00B2 .dbline 54
00B2 ; if(ted&0x40)
00B2 20900300 lds R2,_ted
00B6 26FE sbrs R2,6
00B8 04C0 rjmp L19
00BA .dbline 55
00BA ; key[6]=on;
00BA 8AE5 ldi R24,90
00BC 80930600 sts _key+6,R24
00C0 03C0 xjmp L20
00C2 L19:
00C2 .dbline 57
00C2 ; else
00C2 ; key[6]=off;
00C2 85EA ldi R24,165
00C4 80930600 sts _key+6,R24
00C8 L20:
00C8 .dbline 58
00C8 ; if(ted&0x20)
00C8 20900300 lds R2,_ted
00CC 25FE sbrs R2,5
00CE 04C0 rjmp L23
00D0 .dbline 59
00D0 ; key[5]=on;
00D0 8AE5 ldi R24,90
00D2 80930500 sts _key+5,R24
00D6 03C0 xjmp L24
00D8 L23:
00D8 .dbline 61
00D8 ; else
00D8 ; key[5]=off;
00D8 85EA ldi R24,165
00DA 80930500 sts _key+5,R24
00DE L24:
00DE .dbline 62
00DE ; if(ted&0x10)
00DE 20900300 lds R2,_ted
00E2 24FE sbrs R2,4
00E4 04C0 rjmp L27
00E6 .dbline 63
00E6 ; key[4]=on;
00E6 8AE5 ldi R24,90
00E8 80930400 sts _key+4,R24
00EC 03C0 xjmp L28
00EE L27:
00EE .dbline 65
00EE ; else
00EE ; key[4]=off;
00EE 85EA ldi R24,165
00F0 80930400 sts _key+4,R24
00F4 L28:
00F4 .dbline 66
00F4 ; if(ted&0x08)
00F4 20900300 lds R2,_ted
00F8 23FE sbrs R2,3
00FA 04C0 rjmp L31
00FC .dbline 67
00FC ; key[3]=on;
00FC 8AE5 ldi R24,90
00FE 80930300 sts _key+3,R24
0102 03C0 xjmp L32
0104 L31:
0104 .dbline 69
0104 ; else
0104 ; key[3]=off;
0104 85EA ldi R24,165
0106 80930300 sts _key+3,R24
010A L32:
010A .dbline 70
010A ; if(ted&0x04)
010A 20900300 lds R2,_ted
010E 22FE sbrs R2,2
0110 04C0 rjmp L35
0112 .dbline 71
0112 ; key[2]=on;
0112 8AE5 ldi R24,90
0114 80930200 sts _key+2,R24
0118 03C0 xjmp L36
011A L35:
011A .dbline 73
011A ; else
011A ; key[2]=off;
011A 85EA ldi R24,165
011C 80930200 sts _key+2,R24
0120 L36:
0120 .dbline 74
0120 ; if(ted&0x02)
0120 20900300 lds R2,_ted
0124 21FE sbrs R2,1
0126 04C0 rjmp L39
0128 .dbline 75
0128 ; key[1]=on;
0128 8AE5 ldi R24,90
012A 80930100 sts _key+1,R24
012E 03C0 xjmp L40
0130 L39:
0130 .dbline 77
0130 ; else
0130 ; key[1]=off;
0130 85EA ldi R24,165
0132 80930100 sts _key+1,R24
0136 L40:
0136 .dbline 78
0136 ; if(ted&0x01)
0136 20900300 lds R2,_ted
013A 20FE sbrs R2,0
013C 04C0 rjmp L43
013E .dbline 79
013E ; key[0]=on;
013E 8AE5 ldi R24,90
0140 80930000 sts _key,R24
0144 03C0 xjmp L44
0146 L43:
0146 .dbline 81
0146 ; else
0146 ; key[0]=off;
0146 85EA ldi R24,165
0148 80930000 sts _key,R24
014C L44:
014C .dbline 83
014C ; //WDR();
014C ; }
014C L13:
014C .dbline 84
014C ; }
014C L11:
014C .dbline 85
014C ; RUN=0;
014C 2224 clr R2
014E 20922500 sts _RUN,R2
0152 .dbline 86
0152 ; }
0152 L9:
0152 .dbline 87
0152 ; if(Time>100)
0152 84E6 ldi R24,100
0154 20902800 lds R2,_Time
0158 8215 cp R24,R2
015A E8F4 brsh L45
015C .dbline 88
015C ; {
015C .dbline 89
015C ; Time = 0;
015C 2224 clr R2
015E 20922800 sts _Time,R2
0162 .dbline 90
0162 ; if(T1)
0162 20902700 lds R2,_T1
0166 2220 tst R2
0168 21F0 breq L47
016A .dbline 91
016A ; T1=0;
016A 2224 clr R2
016C 20922700 sts _T1,R2
0170 03C0 xjmp L48
0172 L47:
0172 .dbline 93
0172 ; else
0172 ; T1=0x5a;
0172 8AE5 ldi R24,90
0174 80932700 sts _T1,R24
0178 L48:
0178 .dbline 94
0178 ; if(mode_flag==off)
0178 80910700 lds R24,_mode_flag
017C 853A cpi R24,165
017E 59F4 brne L49
0180 .dbline 95
0180 ; {
0180 .dbline 96
0180 ; if(channel<47)
0180 80912600 lds R24,_channel
0184 8F32 cpi R24,47
0186 20F4 brsh L51
0188 .dbline 97
0188 ; channel++;
0188 8F5F subi R24,255 ; addi 1
018A 80932600 sts _channel,R24
018E 03C0 xjmp L52
0190 L51:
0190 .dbline 99
0190 ; else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -