?? display.lis
字號:
.module display.c
.area text(rom, con, rel)
0000 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
.area data(ram, con, rel)
0000 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0000 _key::
0000 .blkb 2
.area idata
0000 A5A5 .byte 165,165
.area data(ram, con, rel)
0002 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0002 .blkb 2
.area idata
0002 A5A5 .byte 165,165
.area data(ram, con, rel)
0004 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0004 .blkb 2
.area idata
0004 A5A5 .byte 165,165
.area data(ram, con, rel)
0006 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0006 .blkb 2
.area idata
0006 A5A5 .byte 165,165
.area data(ram, con, rel)
0008 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0008 .dbsym e key _key A[8:8]c
.area text(rom, con, rel)
0000 .dbfile D:\報警系統設計資料\報警系統軟件\測量模塊基于CAN的系統網程序\CAN網可配置型報警燈板程序\display.c
0000 .dbfunc e key_process _key_process fV
0000 ; i -> R20
.even
0000 _key_process::
0000 0E940000 xcall push_gset1
0004 2C97 sbiw R28,12
0006 .dbline -1
0006 .dbline 13
0006 ; #include "main.h"
0006 ;
0006 ; extern long id4;
0006 ; extern unsigned int addr_led7[6];
0006 ; extern unsigned char led7_data[18];
0006 ; unsigned char key[8]={off,off,off,off,off,off,off,off};
0006 ; extern unsigned mode_flag;
0006 ; VCI_CAN_OBJ sendmsg;
0006 ; extern SHD_LED pannel_led[48];
0006 ; extern unsigned char channel,T1;
0006 ;
0006 ; void key_process(void) //鍵處理函數
0006 ; {
0006 .dbline 15
0006 ; unsigned char i;
0006 ; WDR();
0006 A895 wdr
0008 .dbline 16
0008 ; if(key[0]==on) //模式設置處理
0008 80910000 lds R24,_key
000C 8A35 cpi R24,90
000E E1F4 brne L3
0010 .dbline 17
0010 ; {
0010 .dbline 18
0010 ; key[0]=off;
0010 85EA ldi R24,165
0012 80930000 sts _key,R24
0016 .dbline 19
0016 ; if(mode_flag==on)
0016 80910000 lds R24,_mode_flag
001A 90910100 lds R25,_mode_flag+1
001E 8A35 cpi R24,90
0020 E0E0 ldi R30,0
0022 9E07 cpc R25,R30
0024 51F4 brne L5
0026 .dbline 20
0026 ; {
0026 .dbline 21
0026 ; mode_flag=off;
0026 85EA ldi R24,165
0028 90E0 ldi R25,0
002A 90930100 sts _mode_flag+1,R25
002E 80930000 sts _mode_flag,R24
0032 .dbline 22
0032 ; PORTF&=0xf7;
0032 81B3 in R24,0x11
0034 877F andi R24,247
0036 81BB out 0x11,R24
0038 .dbline 23
0038 ; }
0038 07C0 xjmp L6
003A L5:
003A .dbline 25
003A ; else
003A ; {
003A .dbline 26
003A ; mode_flag = on;
003A 8AE5 ldi R24,90
003C 90E0 ldi R25,0
003E 90930100 sts _mode_flag+1,R25
0042 80930000 sts _mode_flag,R24
0046 .dbline 27
0046 ; PORTF|=0x08;
0046 8B9A sbi 0x11,3
0048 .dbline 28
0048 ; }
0048 L6:
0048 .dbline 29
0048 ; }
0048 L3:
0048 .dbline 31
0048 ;
0048 ; WDR();
0048 A895 wdr
004A .dbline 32
004A ; if(key[1]==on) //消聲處理
004A 80910100 lds R24,_key+1
004E 8A35 cpi R24,90
0050 09F0 breq X0
0052 4AC0 xjmp L7
0054 X0:
0054 .dbline 33
0054 ; {
0054 .dbline 34
0054 ; key[1]=off;
0054 85EA ldi R24,165
0056 80930100 sts _key+1,R24
005A .dbline 35
005A ; buzzer_off();
005A 0E940000 xcall _buzzer_off
005E .dbline 36
005E ; relay1_off();
005E 0E940000 xcall _relay1_off
0062 .dbline 37
0062 ; sendmsg.ID=id4;
0062 40900200 lds R4,_id4+2
0066 50900300 lds R5,_id4+2+1
006A 20900000 lds R2,_id4
006E 30900100 lds R3,_id4+1
0072 30920100 sts _sendmsg+1,R3
0076 20920000 sts _sendmsg,R2
007A 50920300 sts _sendmsg+2+1,R5
007E 40920200 sts _sendmsg+2,R4
0082 .dbline 38
0082 ; for(i=0;i<8;i++)
0082 4427 clr R20
0084 09C0 xjmp L14
0086 L11:
0086 .dbline 39
0086 80E0 ldi R24,<_sendmsg+4
0088 90E0 ldi R25,>_sendmsg+4
008A E42F mov R30,R20
008C FF27 clr R31
008E E80F add R30,R24
0090 F91F adc R31,R25
0092 8AE5 ldi R24,90
0094 8083 std z+0,R24
0096 L12:
0096 .dbline 38
0096 4395 inc R20
0098 L14:
0098 .dbline 38
0098 4830 cpi R20,8
009A A8F3 brlo L11
009C .dbline 40
009C ; sendmsg.Data[i]=0x5a;
009C ; can_tx (sendmsg);
009C 80E0 ldi R24,<_sendmsg
009E 90E0 ldi R25,>_sendmsg
00A0 FE01 movw R30,R28
00A2 0CE0 ldi R16,12
00A4 10E0 ldi R17,0
00A6 FA93 st -y,R31
00A8 EA93 st -y,R30
00AA 9A93 st -y,R25
00AC 8A93 st -y,R24
00AE 0E940000 xcall asgnblk
00B2 8E01 movw R16,R28
00B4 0E940000 xcall _can_tx
00B8 .dbline 42
00B8 ;
00B8 ; for(i=0;i<48;i++)
00B8 4427 clr R20
00BA 14C0 xjmp L19
00BC L16:
00BC .dbline 43
00BC ; {
00BC .dbline 44
00BC ; if(pannel_led[i].soundoff==noack)
00BC 84E1 ldi R24,20
00BE 849F mul R24,R20
00C0 F001 movw R30,R0
00C2 80E0 ldi R24,<_pannel_led+17
00C4 90E0 ldi R25,>_pannel_led+17
00C6 E80F add R30,R24
00C8 F91F adc R31,R25
00CA 8081 ldd R24,z+0
00CC 8130 cpi R24,1
00CE 49F4 brne L20
00D0 .dbline 45
00D0 ; pannel_led[i].soundoff=acked; //清除聲音標志
00D0 84E1 ldi R24,20
00D2 849F mul R24,R20
00D4 F001 movw R30,R0
00D6 80E0 ldi R24,<_pannel_led+17
00D8 90E0 ldi R25,>_pannel_led+17
00DA E80F add R30,R24
00DC F91F adc R31,R25
00DE 82E0 ldi R24,2
00E0 8083 std z+0,R24
00E2 L20:
00E2 .dbline 46
00E2 L17:
00E2 .dbline 42
00E2 4395 inc R20
00E4 L19:
00E4 .dbline 42
00E4 4033 cpi R20,48
00E6 50F3 brlo L16
00E8 .dbline 47
00E8 ; }
00E8 ; }
00E8 L7:
00E8 .dbline 49
00E8 ;
00E8 ; WDR();
00E8 A895 wdr
00EA .dbline 50
00EA ; if(key[2]==on) //消閃處理
00EA 80910200 lds R24,_key+2
00EE 8A35 cpi R24,90
00F0 09F0 breq X1
00F2 46C0 xjmp L24
00F4 X1:
00F4 .dbline 51
00F4 ; {
00F4 .dbline 52
00F4 ; key[2]=off;
00F4 85EA ldi R24,165
00F6 80930200 sts _key+2,R24
00FA .dbline 53
00FA ; sendmsg.ID=id4;
00FA 40900200 lds R4,_id4+2
00FE 50900300 lds R5,_id4+2+1
0102 20900000 lds R2,_id4
0106 30900100 lds R3,_id4+1
010A 30920100 sts _sendmsg+1,R3
010E 20920000 sts _sendmsg,R2
0112 50920300 sts _sendmsg+2+1,R5
0116 40920200 sts _sendmsg+2,R4
011A .dbline 54
011A ; for(i=0;i<8;i++)
011A 4427 clr R20
011C 09C0 xjmp L31
011E L28:
011E .dbline 55
011E 80E0 ldi R24,<_sendmsg+4
0120 90E0 ldi R25,>_sendmsg+4
0122 E42F mov R30,R20
0124 FF27 clr R31
0126 E80F add R30,R24
0128 F91F adc R31,R25
012A 85EA ldi R24,165
012C 8083 std z+0,R24
012E L29:
012E .dbline 54
012E 4395 inc R20
0130 L31:
0130 .dbline 54
0130 4830 cpi R20,8
0132 A8F3 brlo L28
0134 .dbline 56
0134 ; sendmsg.Data[i]=0xa5;
0134 ; can_tx (sendmsg);
0134 80E0 ldi R24,<_sendmsg
0136 90E0 ldi R25,>_sendmsg
0138 FE01 movw R30,R28
013A 0CE0 ldi R16,12
013C 10E0 ldi R17,0
013E FA93 st -y,R31
0140 EA93 st -y,R30
0142 9A93 st -y,R25
0144 8A93 st -y,R24
0146 0E940000 xcall asgnblk
014A 8E01 movw R16,R28
014C 0E940000 xcall _can_tx
0150 .dbline 57
0150 ; for(i=0;i<48;i++)
0150 4427 clr R20
0152 14C0 xjmp L36
0154 L33:
0154 .dbline 58
0154 ; {
0154 .dbline 59
0154 ; if(pannel_led[i].state==noack)
0154 84E1 ldi R24,20
0156 849F mul R24,R20
0158 F001 movw R30,R0
015A 80E0 ldi R24,<_pannel_led+13
015C 90E0 ldi R25,>_pannel_led+13
015E E80F add R30,R24
0160 F91F adc R31,R25
0162 8081 ldd R24,z+0
0164 8130 cpi R24,1
0166 49F4 brne L37
0168 .dbline 60
0168 ; pannel_led[i].state=acked;
0168 84E1 ldi R24,20
016A 849F mul R24,R20
016C F001 movw R30,R0
016E 80E0 ldi R24,<_pannel_led+13
0170 90E0 ldi R25,>_pannel_led+13
0172 E80F add R30,R24
0174 F91F adc R31,R25
0176 82E0 ldi R24,2
0178 8083 std z+0,R24
017A L37:
017A .dbline 61
017A L34:
017A .dbline 57
017A 4395 inc R20
017C L36:
017C .dbline 57
017C 4033 cpi R20,48
017E 50F3 brlo L33
0180 .dbline 62
0180 ; }
0180 ; }
0180 L24:
0180 .dbline 64
0180 ;
0180 ; if(key[4]==on) //通道號加一
0180 80910400 lds R24,_key+4
0184 8A35 cpi R24,90
0186 B1F4 brne L41
0188 .dbline 65
0188 ; {
0188 .dbline 66
0188 ; key[4]=off;
0188 85EA ldi R24,165
018A 80930400 sts _key+4,R24
018E .dbline 67
018E ; if(mode_flag==on)
018E 80910000 lds R24,_mode_flag
0192 90910100 lds R25,_mode_flag+1
0196 8A35 cpi R24,90
0198 E0E0 ldi R30,0
019A 9E07 cpc R25,R30
019C 59F4 brne L45
019E .dbline 68
019E ; {
019E .dbline 69
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -