⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memu.lis

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0484 A153              cmp #83
 0486 2622              bne L62
 0488 3F00              clr *__r0
 048A E605              lda 5,X
 048C A001              sub #1
 048E B700              sta *__r1
 0490 B600              lda *__r0
 0492 A200              sbc #0
 0494 B700              sta *__r0
 0496 B600              lda *__r1
 0498 EB04              add 4,X
 049A B700              sta *__r1
 049C B600              lda *__r0
 049E E903              adc 3,X
 04A0 B700              sta *__r0
 04A2 5500              ldhx *__r0
 04A4 F6                lda ,x
 04A5 95                tsx
 04A6 A145              cmp #69
 04A8 2705              beq L60
 04AA           L62:
 04AA                   .dbline 123
 04AA           ;         {ErrCode=1;  goto CheckReFrame_End;}
 04AA                   .dbline 123
 04AA A601              lda #1
 04AC F7                sta ,X
 04AD                   .dbline 123
 04AD 2018              bra L63
 04AF           L60:
 04AF                   .dbline 125
 04AF           ;     //收到的数据帧校验和出错,出错标志2
 04AF           ;     if(GetCheckChar(ReFrameLength-1,ReFrameBuP))   
 04AF E604              lda 4,X
 04B1 87                psha
 04B2 E603              lda 3,X
 04B4 87                psha
 04B5 E605              lda 5,X
 04B7 A001              sub #1
 04B9 87                psha
 04BA CD04CB            jsr _GetCheckChar
 04BD A703              ais #3
 04BF 95                tsx
 04C0 B700              sta *__r1
 04C2 2703              beq L64
 04C4                   .dbline 126
 04C4           ;       {ErrCode=2;  goto CheckReFrame_End;}
 04C4                   .dbline 126
 04C4 A602              lda #2
 04C6 F7                sta ,X
 04C7                   .dbline 126
 04C7           L64:
 04C7           L63:
 04C7                   .dbline 128
 04C7           ;     CheckReFrame_End:  //返回
 04C7           ;     return ErrCode;  
 04C7 F6                lda ,X
 04C8                   .dbline -2
 04C8           L59:
 04C8 A701              ais #1
 04CA                   .dbline 0 ; func end
 04CA 81                rts
 04CB                   .dbsym l ErrCode 0 c
 04CB                   .dbsym l ReFrameLength 5 c
 04CB                   .dbsym l ReFrameBuP 3 pc
 04CB                   .dbend
 04CB                   .dbfunc e GetCheckChar _GetCheckChar fc
 04CB           ;      CheckChar -> 0,X
 04CB           ;              i -> 1,X
 04CB           ;          DataP -> 5,X
 04CB           ;        DataNum -> 4,X
 04CB           _GetCheckChar::
 04CB                   .dbline -1
 04CB A7FE              ais #-2
 04CD 95                tsx
 04CE                   .dbline 139
 04CE           ; }
 04CE           ; 
 04CE           ; /*GetCheckChar:求数据流的异或校验码子程序----------------------------------*
 04CE           ; *功能描述:得到数据流的一个字节异或校验码                                *
 04CE           ; *参数:DataP指向数据流的指针                                                *
 04CE           ; *     DataNum为数据流的字节长度                                            *
 04CE           ; *返回:CheckChar:一个字节的异或校验码                                *
 04CE           ; *内部调用:无                                                               *
 04CE           ; *-------------------------------------------------------------------------*/
 04CE           ; INT8U GetCheckChar(INT8U DataNum,INT8U * DataP)
 04CE           ; {
 04CE                   .dbline 141
 04CE           ;    INT8U i;                    //用于循环的计数位
 04CE           ;    INT8U CheckChar=0;          //存放一个字节的异或校验码
 04CE 7F                clr ,X
 04CF                   .dbline 143
 04CF           ;    /*循环求异或校验码*/  
 04CF           ;    for(i=0;i<DataNum;i++)  
 04CF 6F01              clr 1,X
 04D1 201A              bra L70
 04D3           L67:
 04D3                   .dbline 144
 04D3 3F00              clr *__r0
 04D5 E601              lda 1,X
 04D7 EB06              add 6,X
 04D9 B700              sta *__r1
 04DB B600              lda *__r0
 04DD E905              adc 5,X
 04DF B700              sta *__r0
 04E1 5500              ldhx *__r0
 04E3 F6                lda ,x
 04E4 95                tsx
 04E5 B700              sta *__r1
 04E7 F6                lda ,X
 04E8 B800              eor *__r1
 04EA F7                sta ,X
 04EB           L68:
 04EB                   .dbline 143
 04EB 6C01              inc 1,X
 04ED           L70:
 04ED                   .dbline 143
 04ED E601              lda 1,X
 04EF E104              cmp 4,X
 04F1 25E0              blo L67
 04F3                   .dbline 145
 04F3           ;       CheckChar^=DataP[i];
 04F3           ;    return(CheckChar); 
 04F3 F6                lda ,X
 04F4                   .dbline -2
 04F4           L66:
 04F4 A702              ais #2
 04F6                   .dbline 0 ; func end
 04F6 81                rts
 04F7                   .dbsym l CheckChar 0 c
 04F7                   .dbsym l i 1 c
 04F7                   .dbsym l DataP 5 pc
 04F7                   .dbsym l DataNum 4 c
 04F7                   .dbend
 04F7                   .dbfunc e DePackReBuf _DePackReBuf fc
 04F7           ;        ErrorNo -> 0,X
 04F7           ;            tmp -> 1,X
 04F7           ;              i -> 3,X
 04F7           ;            buf -> 6,X
 04F7           _DePackReBuf::
 04F7                   .dbline -1
 04F7 A7FC              ais #-4
 04F9 95                tsx
 04FA                   .dbline 156
 04FA           ; }
 04FA           ; 
 04FA           ; /*DePackReBuf:解包接受到的接受缓冲区的内容---------------------------------*
 04FA           ; *功能:将接受缓冲区ReBuf的内容解包                                          *
 04FA           ; *参数:接受缓冲区ReBuf                                                      *
 04FA           ; *返回:当前温度CurrentT、设定温度BasicT、当前温度符号SignCT                 *
 04FA           ;       设定温度符号SignBT、当前湿度CurrentH、设定湿度BasicH,系统时间Hour    *
 04FA           ;       错误编号ErrorNo
 04FA           ; *-------------------------------------------------------------------------*/
 04FA           ; INT8U DePackReBuf(INT8U *buf)
 04FA           ; {
 04FA                   .dbline 157
 04FA           ;   INT8U ErrorNo=0;
 04FA 7F                clr ,X
 04FB                   .dbline 160
 04FB           ;   INT8U tmp[2],i;
 04FB           ;   //1:验证接收到的帧
 04FB           ;   ErrorNo=CheckReFrame(buf,15);
 04FB A60F              lda #15
 04FD 87                psha
 04FE E607              lda 7,X
 0500 87                psha
 0501 E606              lda 6,X
 0503 87                psha
 0504 CD0478            jsr _CheckReFrame
 0507 A703              ais #3
 0509 95                tsx
 050A B700              sta *__r1
 050C F7                sta ,X
 050D                   .dbline 161
 050D           ;   if(ErrorNo!=0) goto Exit; //接收到的帧错误,退出操作
 050D 2703              beq L72
 050F                   .dbline 161
 050F CC05CB            jmp L74
 0512           L72:
 0512                   .dbline 162
 0512           ;   if(buf[1]!=MACHINE_NO) return 3;
 0512 E607              lda 7,X
 0514 AB01              add #1
 0516 B700              sta *__r1
 0518 E606              lda 6,X
 051A A900              adc #0
 051C B700              sta *__r0
 051E 5500              ldhx *__r0
 0520 F6                lda ,x
 0521 95                tsx
 0522 B100              cmp *_MACHINE_NO
 0524 2705              beq L75
 0526                   .dbline 162
 0526 A603              lda #3
 0528 CC05CC            jmp L71
 052B           L75:
 052B                   .dbline 163
 052B           ;   tmp[0]=buf[2];tmp[1]=buf[3];
 052B E607              lda 7,X
 052D AB02              add #2
 052F B700              sta *__r1
 0531 E606              lda 6,X
 0533 A900              adc #0
 0535 B700              sta *__r0
 0537 5500              ldhx *__r0
 0539 F6                lda ,x
 053A 95                tsx
 053B E701              sta 1,X
 053D                   .dbline 163
 053D E607              lda 7,X
 053F AB03              add #3
 0541 B700              sta *__r1
 0543 E606              lda 6,X
 0545 A900              adc #0
 0547 B700              sta *__r0
 0549 5500              ldhx *__r0
 054B F6                lda ,x
 054C 95                tsx
 054D E702              sta 2,X
 054F                   .dbline 164
 054F           ;   BasicT=*(INT16U *)tmp;SignBT=buf[4];//温度设定值
 054F E601              lda 1,X
 0551 B700              sta *_BasicT
 0553 E602              lda 2,X
 0555 B701              sta *_BasicT+1
 0557                   .dbline 164
 0557 E607              lda 7,X
 0559 AB04              add #4
 055B B700              sta *__r1
 055D E606              lda 6,X
 055F A900              adc #0
 0561 B700              sta *__r0
 0563 5500              ldhx *__r0
 0565 F6                lda ,x
 0566 95                tsx
 0567 B700              sta *_SignBT
 0569                   .dbline 165
 0569           ;   tmp[0]=buf[5];tmp[1]=buf[6];
 0569 E607              lda 7,X
 056B AB05              add #5
 056D B700              sta *__r1
 056F E606              lda 6,X
 0571 A900              adc #0
 0573 B700              sta *__r0
 0575 5500              ldhx *__r0
 0577 F6                lda ,x
 0578 95                tsx
 0579 E701              sta 1,X
 057B                   .dbline 165
 057B E607              lda 7,X
 057D AB06              add #6
 057F B700              sta *__r1
 0581 E606              lda 6,X
 0583 A900              adc #0
 0585 B700              sta *__r0
 0587 5500              ldhx *__r0
 0589 F6                lda ,x
 058A 95                tsx
 058B E702              sta 2,X
 058D                   .dbline 166
 058D           ;   BasicH=*(INT16U *)tmp;              //湿度设定值
 058D E601              lda 1,X
 058F B700              sta *_BasicH
 0591 E602              lda 2,X
 0593 B701              sta *_BasicH+1
 0595                   .dbline 167
 0595 6F03              clr 3,X
 0597 202C              bra L82
 0599           L79:
 0599                   .dbline 167
 0599 3F00              clr *__r0
 059B E603              lda 3,X
 059D EB07              add 7,X
 059F B700              sta *__r1
 05A1 B600              lda *__r0
 05A3 E906              adc 6,X
 05A5 B700              sta *__r0
 05A7 5500              ldhx *__r0
 05A9 AF07              aix #7
 05AB F6                lda ,x
 05AC 95                tsx
 05AD B700              sta *__r1
 05AF 3F00              clr *__r2
 05B1 E603              lda 3,X
 05B3 AB00              add #<_Hour
 05B5 B700              sta *__r3
 05B7 B600              lda *__r2
 05B9 A900              adc #>_Hour
 05BB B700              sta *__r2
 05BD B600              lda *__r1
 05BF 5500              ldhx *__r2
 05C1 F7                sta ,x
 05C2 95                tsx
 05C3           L80:
 05C3                   .dbline 167
 05C3 6C03              inc 3,X
 05C5           L82:
 05C5                   .dbline 167
 05C5           ;   for(i=0;i<6;i++) Hour[i]=buf[i+7];  //系统时间
 05C5 E603              lda 3,X
 05C7 A106              cmp #6
 05C9 25CE              blo L79
 05CB           L74:
 05CB                   .dbline 169
 05CB           ; Exit:  
 05CB           ;   return ErrorNo;
 05CB F6                lda ,X
 05CC                   .dbline -2
 05CC           L71:
 05CC A704              ais #4
 05CE                   .dbline 0 ; func end
 05CE 81                rts
 05CF                   .dbsym l ErrorNo 0 c
 05CF                   .dbsym l tmp 1 A[2:2]c
 05CF                   .dbsym l i 3 c
 05CF                   .dbsym l buf 6 pc
 05CF                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -