📄 interrupt.s
字号:
sts _JWD_ptr,R24
.dbline 148
L69:
.dbline 143
inc R20
L71:
.dbline 143
; for(i=0;i<26;i++){
cpi R20,26
brlo L68
.dbline 149
; CharTOASC(*JWD_ptr);
; DJWDINFO[i*2]=comm_t;
; DJWDINFO[(i*2)+1]=comm_b;
; JWD_ptr++;
; }
; DJWDINFO[52]=0;
clr R2
sts _DJWDINFO+52,R2
.dbline 150
; DJWD_ptr=DJWDINFO;
ldi R24,<_DJWDINFO
ldi R25,>_DJWDINFO
sts _DJWD_ptr+1,R25
sts _DJWD_ptr,R24
.dbline -2
L63:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.dbfunc e Buf_Sub _Buf_Sub fV
; k -> R22
; i -> R20
; ch -> R10,R11
; j -> R12
.even
_Buf_Sub::
rcall push_gset4
.dbline -1
.dbline 217
; // Send_Test();
; }
;
; /*void Send_Test(void){
; uchar i;
; // (!Fbit.Send_GInfoFlag)return;
; // Fbit.Send_GInfoFlag=FALSE;
; while(*DJWD_ptr){
; PSendChar(*DJWD_ptr);
; DJWD_ptr++;
; }
; PSendChar(0x0d);
; //EN_RxGps;
; }*/
;
; /*void Parse_GpsData(void)
; { uchar i;
; uchar temp;
; Clear_GpsData();
; //Read_byte();
; //temp = Read_byte();
; if(',' != temp) {
; WD[0] = temp;
; for(i=0; i<3; i++)
; {
; WD[i+1] = Read_byte();
; }
; Read_byte(); //.
; for(i=0; i<5; i++)
; {
; WD[4+i] = Read_byte();
; }
; Read_byte(); //,
; }
; // END WD,START SN.............................................................................
; temp = Read_byte(); //S/N
; if(',' != temp)
; {
; SN= temp;
; Read_byte();// ,
; }
; //END SN.START JD................................................................................
; temp = Read_byte();
; if(',' != temp)
; {
; JD[0] = temp;
; for(i=0; i<4; i++)
; {
; JD[i+1] = Read_byte();
; }
; Read_byte();
; for(i=0; i<5; i++)
; {
; JD[5+i] = Read_byte();
; }
; Read_byte();
; }
; //......................................................................................................................................
; temp = Read_byte();
; if(',' != temp)
; { EW = temp;
; Read_byte();
; }*/
; // Fbit.Send_GInfoFlag=TRUE;
; // }
;
; void Buf_Sub(void){
.dbline 220
; uchar i,j,k;
; uint ch;
; if(!Fbit.Timer_Start)return;
lds R2,_Fbit
lds R3,_Fbit+1
sbrc R3,5
rjmp L75
.dbline 220
rjmp L74
L75:
.dbline 221
; Fbit.Timer_Start=FALSE;
lds R24,_Fbit
lds R25,_Fbit+1
andi R25,223
sts _Fbit+1,R25
sts _Fbit,R24
.dbline 222
; i=0;
clr R20
rjmp L78
L77:
.dbline 223
; while(++i<10){
.dbline 224
; k=i-1;ch=Buf_plus[k];
mov R22,R20
subi R22,1
.dbline 224
ldi R24,<_Buf_plus
ldi R25,>_Buf_plus
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R10,z+0
clr R11
.dbline 225
mov R12,R20
rjmp L83
L80:
.dbline 225
; for(j=i;j<10;j++){
.dbline 226
; if(Buf_plus[j]>ch){k=j;ch=Buf_plus[j];}
ldi R24,<_Buf_plus
ldi R25,>_Buf_plus
mov R30,R12
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
cp R10,R2
cpc R11,R3
brsh L84
.dbline 226
.dbline 226
mov R22,R12
.dbline 226
mov R30,R12
clr R31
add R30,R24
adc R31,R25
ldd R10,z+0
clr R11
.dbline 226
L84:
.dbline 227
L81:
.dbline 225
inc R12
L83:
.dbline 225
mov R24,R12
cpi R24,10
brlo L80
.dbline 228
ldi R24,<_Buf_plus-1
ldi R25,>_Buf_plus-1
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_Buf_plus
ldi R25,>_Buf_plus
mov R30,R22
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 229
ldi R24,<_Buf_plus-1
ldi R25,>_Buf_plus-1
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R10
.dbline 230
L78:
.dbline 223
mov R24,R20
subi R24,255 ; addi 1
mov R20,R24
cpi R20,10
brsh X1
rjmp L77
X1:
.dbline 231
ldi R20,3
rjmp L91
L88:
.dbline 231
ldi R24,<_Buf_plus
ldi R25,>_Buf_plus
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
lds R4,_Total_ADK
lds R5,_Total_ADK+1
add R4,R2
adc R5,R3
sts _Total_ADK+1,R5
sts _Total_ADK,R4
L89:
.dbline 231
inc R20
L91:
.dbline 231
; }
; Buf_plus[k]=Buf_plus[i-1];
; Buf_plus[i-1]=ch;
; }
; for(i=3;i<8;i++)Total_ADK+=Buf_plus[i];
cpi R20,8
brlo L88
.dbline 232
; Get_Num=(Total_ADK/5);
ldi R18,5
ldi R19,0
lds R16,_Total_ADK
lds R17,_Total_ADK+1
rcall div16u
sts _Get_Num+1,R17
sts _Get_Num,R16
.dbline 233
; Total_ADK=0;
clr R2
clr R3
sts _Total_ADK+1,R3
sts _Total_ADK,R2
.dbline 234
; if(Get_Num>=130){Get_Num=130;}
cpi R16,130
ldi R30,0
cpc R17,R30
brlo L92
.dbline 234
.dbline 234
ldi R24,130
ldi R25,0
sts _Get_Num+1,R25
sts _Get_Num,R24
.dbline 234
L92:
.dbline 235
; if((Get_Num<=50)&&(Get_Num!=0)){Get_Num=50;}
ldi R24,50
ldi R25,0
lds R2,_Get_Num
lds R3,_Get_Num+1
cp R24,R2
cpc R25,R3
brlo L94
tst R2
brne X0
tst R3
breq L94
X0:
.dbline 235
.dbline 235
ldi R24,50
ldi R25,0
sts _Get_Num+1,R25
sts _Get_Num,R24
.dbline 235
L94:
.dbline 236
; Data_Ptr();
rcall _Data_Ptr
.dbline -2
L74:
rcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r k 22 c
.dbsym r i 20 c
.dbsym r ch 10 i
.dbsym r j 12 c
.dbend
.dbfunc e Timer_Function _Timer_Function fV
.even
_Timer_Function::
.dbline -1
.dbline 239
; }
;
; void Timer_Function(void){
.dbline 240
; if(!Fbit.Time_ms)return;
lds R24,_Fbit
lsr R24
andi R24,1
brne L97
.dbline 240
rjmp L96
L97:
.dbline 241
; Fbit.Time_ms=FALSE;
lds R24,_Fbit
andi R24,253
sts _Fbit,R24
.dbline 242
; if(++Flag_LED>40){Flag_LED=0;
lds R24,_Flag_LED
subi R24,255 ; addi 1
mov R2,R24
sts _Flag_LED,R2
ldi R24,40
cp R24,R2
brsh L99
.dbline 242
.dbline 242
clr R2
sts _Flag_LED,R2
.dbline 243
; if(Fbit.Init_com){Fbit.Com_start=TRUE;
lds R24,_Fbit
andi R24,1
breq L101
.dbline 243
.dbline 243
lds R24,_Fbit
ori R24,16
sts _Fbit,R24
.dbline 244
; Fbit.Init_com=FALSE;}
andi R24,254
sts _Fbit,R24
.dbline 244
L101:
.dbline 245
; }
L99:
.dbline 246
; Init_Gmodule(); //Send_sms();
rcall _Init_Gmodule
.dbline 247
; TCP_reg();
rcall _TCP_reg
.dbline -2
L96:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Key_Process _Key_Process fV
; temp -> R20
.even
_Key_Process::
rcall push_gset1
.dbline -1
.dbline 252
; //Send_Data();
; //Send_GpsInfo();
; }
;
; void Key_Process(void){
.dbline 254
; uchar temp;
; if(!Fbit.En_keyproc)return;
lds R24,_Fbit
lsr R24
lsr R24
lsr R24
lsr R24
lsr R24
andi R24,1
brne L104
.dbline 254
rjmp L103
L104:
.dbline 255
; Fbit.En_keyproc=FALSE;
lds R24,_Fbit
andi R24,223
sts _Fbit,R24
.dbline 256
; temp=Key_Value;
lds R20,_Key_Value
.dbline 257
clr R21
cpi R20,3
ldi R30,0
cpc R21,R30
breq L107
cpi R20,5
ldi R30,0
cpc R21,R30
breq L110
cpi R20,6
ldi R30,0
cpc R21,R30
breq L109
rjmp L107
X2:
.dbline 257
; switch(temp){
L109:
.dbline 259
; case 6:
; Fbit.En_Tcp=TRUE;//connect to PC;
lds R24,_Fbit
ori R24,128
sts _Fbit,R24
.dbline 260
; Idx_TCP=ctcp0;
clr R2
sts _Idx_TCP,R2
.dbline 261
; break;
rjmp L107
L110:
.dbline 264
;
; case 5:
; if(Idx_TCP==tcp_next){Send_Char_Ptr("Tel:15812605369!Data is:");}
lds R24,_Idx_TCP
cpi R24,9
brne L111
.dbline 264
.dbline 264
ldi R16,<L113
ldi R17,>L113
rcall _Send_Char_Ptr
.dbline 264
L111:
.dbline 265
lds R24,_Fbit
lds R25,_Fbit+1
ori R25,8
sts _Fbit+1,R25
sts _Fbit,R24
.dbline 266
.dbline 270
.dbline 273
L107:
.dbline -2
L103:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r temp 20 c
.dbend
.dbfunc e Scan_Key _Scan_Key fV
.even
_Scan_Key::
.dbline -1
.dbline 277
; Fbit.En_SendData=TRUE;
; break;
;
; case 3:
; // Fbit.Send_GInfoFlag=TRUE;
; break;
;
; default:
; break;
; }
; }
;
; void Scan_Key(void){
.dbline 278
; if(!Fbit.key_count)return;
lds R24,_Fbit
lsr R24
lsr R24
andi R24,1
brne L116
.dbline 278
rjmp L115
L116:
.dbline 279
; Fbit.key_count=FALSE;
lds R24,_Fbit
andi R24,251
sts _Fbit,R24
.dbline 280
; Key_Value=(PINC&0x07);
in R24,0x6
andi R24,7
sts _Key_Value,R24
.dbline 281
; Delay(50);
ldi R16,50
ldi R17,0
rcall _Delay
.dbline 282
; if( Key_Value>=0x07){Fbit.En_keyproc=TRUE;}
lds R24,_Key_Value
cpi R24,7
brlo L118
.dbline 282
.dbline 282
lds R24,_Fbit
ori R24,32
sts _Fbit,R24
.dbline 282
rjmp L119
L118:
.dbline 283
.dbline 283
rcall _Key_Process
.dbline 283
L119:
.dbline -2
L115:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile E:\RXTest\interrupt.c
_write_Count::
.blkb 2
.dbfile E:\RXTest/Interrupt.h
.dbsym e write_Count _write_Count I
_read_Count::
.blkb 2
.dbsym e read_Count _read_Count I
_DJWDINFO::
.blkb 53
.dbsym e DJWDINFO _DJWDINFO A[53:53]c
_JWDINFO::
.blkb 26
.dbsym e JWDINFO _JWDINFO A[26:26]c
_g_Maxcount::
.blkb 1
.dbsym e g_Maxcount _g_Maxcount c
_g_count::
.blkb 1
.dbsym e g_count _g_count c
_Count_Plus::
.blkb 1
.dbsym e Count_Plus _Count_Plus c
_Get_Num::
.blkb 2
.dbsym e Get_Num _Get_Num i
_Total_ADK::
.blkb 2
.dbsym e Total_ADK _Total_ADK i
_Idx_Plus::
.blkb 1
.dbsym e Idx_Plus _Idx_Plus c
_Buf_plus::
.blkb 10
.dbsym e Buf_plus _Buf_plus A[10:10]c
_count_20ms::
.blkb 1
.dbsym e count_20ms _count_20ms c
_Count_ms::
.blkb 1
.dbsym e Count_ms _Count_ms c
_Power_Time::
.blkb 1
.dbsym e Power_Time _Power_Time c
_Flag_LED::
.blkb 1
.dbsym e Flag_LED _Flag_LED c
_Flag_TX::
.blkb 1
.dbsym e Flag_TX _Flag_TX c
_Timer_key::
.blkb 1
.dbsym e Timer_key _Timer_key c
_Key_Value::
.blkb 1
.dbsym e Key_Value _Key_Value c
_EW::
.blkb 1
.dbsym e EW _EW c
_SN::
.blkb 1
.dbsym e SN _SN c
_Fbit::
.blkb 3
.dbstruct 0 3 .1
.dbfield 0 Init_com F[0:1]
.dbfield 0 Time_ms F[1:1]
.dbfield 0 key_count F[2:1]
.dbfield 0 Tx_start F[3:1]
.dbfield 0 Com_start F[4:1]
.dbfield 0 En_keyproc F[5:1]
.dbfield 0 En_Sms F[6:1]
.dbfield 0 En_Tcp F[7:1]
.dbfield 0 En_Rx F[8:1]
.dbfield 0 En_Tx F[9:1]
.dbfield 0 Close_tcp F[10:1]
.dbfield 0 En_SendData F[11:1]
.dbfield 0 Rx_f F[12:1]
.dbfield 0 Timer_Start F[13:1]
.dbfield 0 Timer_Stop F[14:1]
.dbfield 0 Sec_1s F[15:1]
.dbfield 2 Send_GInfoFlag F[0:1]
.dbend
.dbsym e Fbit _Fbit S[.1]
.area data(ram, con, rel)
.dbfile E:\RXTest/Interrupt.h
L113:
.blkb 25
.area idata
.byte 'T,'e,'l,58,49,53,56,49,50,54,48,53,51,54,57,33
.byte 'D,'a,'t,'a,32,'i,'s,58,0
.area data(ram, con, rel)
.dbfile E:\RXTest/Interrupt.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -