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

📄 modbus.lst

📁 PIC16F917开发的modbus-RTU协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
   522  02AA  3485               	retlw	-123
   523  02AB  3445               	retlw	69
   524  02AC  3487               	retlw	-121
   525  02AD  3447               	retlw	71
   526  02AE  3446               	retlw	70
   527  02AF  3486               	retlw	-122
   528  02B0  3482               	retlw	-126
   529  02B1  3442               	retlw	66
   530  02B2  3443               	retlw	67
   531  02B3  3483               	retlw	-125
   532  02B4  3441               	retlw	65
   533  02B5  3481               	retlw	-127
   534  02B6  3480               	retlw	-128
   535  02B7  3440               	retlw	64
   536                           
   537                           	psect	rdata_0
   538  0062                     _localAddr
   539  0062                     	ds	1
   540  0000                     _crc16$usDataLen	set	?_crc16
   541                           
   542                           	psect	idata_0
   543  0003  3401               	retlw	1
   544                           
   545                           	psect	text1
   546  048B                     _beginSend
   547                           ;modbus.c: 85: void beginSend(void)
   548  048B  0183               	clrf	3	;select bank 0
   549  048C  1607               	bsf	7,4
   550                           ;modbus.c: 90: sendPosi = 0;
   551  048D  01C3               	clrf	_sendPosi
   552                           ;modbus.c: 93: TXEN = 1;
   553  048E  1683               	bsf	3,5
   554  048F  1698               	bsf	24,5
   555                           ;modbus.c: 94: TXIE =1;
   556  0490  160C               	bsf	12,4
   557                           ;modbus.c: 96: }
   558  0491  1283               	bcf	3,5
   559  0492  0008               	return	;W free
   560  0493                     _setCoilVal
   561                           ;	_result assigned to ?a_setCoilVal+0
   562  0000                     _setCoilVal$result	set	?a_setCoilVal
   563                           ;	_tempAddr assigned to ?a_setCoilVal+2
   564  0000                     _setCoilVal$tempAddr	set	?a_setCoilVal+2
   565                           ;modbus.c: 441: uint16 setCoilVal(uint16 addr,u
      +                          int16 tempData)
   566  0493  0183               	clrf	3	;select bank 0
   567  0494  01D5               	clrf	?a_setCoilVal
   568  0495  01D6               	clrf	?a_setCoilVal+1
   569                           ;modbus.c: 444: uint16 tempAddr;
   570  0496  30FF               	movlw	255
   571  0497  0551               	andwf	?_setCoilVal,w
   572  0498  00D7               	movwf	?a_setCoilVal+2
   573  0499  300F               	movlw	15
   574  049A  0552               	andwf	?_setCoilVal+1,w
   575  049B  00D8               	movwf	?a_setCoilVal+3
   576                           ;modbus.c: 448: switch(tempAddr & 0xfff)
   577                           ;modbus.c: 449: {
   578                           ;modbus.c: 452: break;
   579                           ;modbus.c: 453: case 131:
   580                           ;modbus.c: 455: break;
   581                           ;modbus.c: 456: case 132:
   582                           ;modbus.c: 458: break;
   583                           ;modbus.c: 459: case 133:
   584                           ;modbus.c: 461: break;
   585                           ;modbus.c: 462: case 134:
   586                           ;modbus.c: 464: break;
   587                           ;modbus.c: 469: default:
   588                           ;modbus.c: 470: break;
   589  049C  00F3               	movwf	btemp+3
   590  049D  0857               	movf	?a_setCoilVal+2,w
   591  049E  00F2               	movwf	btemp+2
   592  049F  300F               	movlw	15
   593  04A0  05F3               	andwf	btemp+3
   594  04A1  2CB1               	goto	l30007
   595  04A2                     l30008
   596  04A2  0872               	movf	btemp+2,w
   597  04A3  3A82               	xorlw	130
   598  04A4  1903               	btfsc	3,2
   599  04A5  2CB4               	goto	l74
   600  04A6  3A01               	xorlw	1
   601  04A7  1903               	btfsc	3,2
   602  04A8  2CB4               	goto	l74
   603  04A9  3A07               	xorlw	7
   604  04AA  1903               	btfsc	3,2
   605  04AB  2CB4               	goto	l74
   606  04AC  3A01               	xorlw	1
   607  04AD  1903               	btfsc	3,2
   608  04AE  2CB4               	goto	l74
   609  04AF  3A03               	xorlw	3
   610  04B0  2CB4               	goto	l74
   611  04B1                     l30007
   612  04B1  0873               	movf	btemp+3,w
   613  04B2  1903               	btfsc	3,2
   614  04B3  2CA2               	goto	l30008
   615  04B4                     l74
   616                           ;modbus.c: 472: return result;
   617  04B4  01F0               	clrf	btemp
   618  04B5  01F1               	clrf	btemp+1
   619                           ;modbus.c: 473: }
   620  04B6  0008               	return	;W free
   621  04B7                     _forceSingleCoil
   622                           ;	_addr assigned to ?a_forceSingleCoil+0
   623  0000                     _forceSingleCoil$addr	set	?a_forceSingleCoil
   624                           ;	_tempAddr assigned to ?a_forceSingleCoil+1
   625  0000                     _forceSingleCoil$tempAddr	set	?a_forceSingleCoi
      +                          l+1
   626                           ;	_onOff assigned to ?a_forceSingleCoil+2
   627  0000                     _forceSingleCoil$onOff	set	?a_forceSingleCoil+2
   628                           ;	_i assigned to ?a_forceSingleCoil+3
   629  0000                     _forceSingleCoil$i	set	?a_forceSingleCoil+3
   630                           ;	_tempData assigned to ?a_forceSingleCoil+4
   631  0000                     _forceSingleCoil$tempData	set	?a_forceSingleCoi
      +                          l+4
   632                           ;modbus.c: 204: void forceSingleCoil(void)
   633  04B7  0183               	clrf	3	;select bank 0
   634  04B8  0824               	movf	_receBuf+3,w
   635  04B9  00CB               	movwf	?a_forceSingleCoil
   636                           ;modbus.c: 215: tempAddr = addr;
   637  04BA  00CC               	movwf	?a_forceSingleCoil+1
   638                           ;modbus.c: 218: onOff = receBuf[4];
   639  04BB  0825               	movf	_receBuf+4,w
   640  04BC  00CD               	movwf	?a_forceSingleCoil+2
   641                           ;modbus.c: 221: if(onOff == 0xff)
   642  04BD  0F4D               	incfsz	?a_forceSingleCoil+2,w
   643  04BE  2CC2               	goto	l23
   644                           ;modbus.c: 222: {
   645  04BF  01CF               	clrf	?a_forceSingleCoil+4
   646  04C0  0ACF               	incf	?a_forceSingleCoil+4
   647  04C1  2CC6               	goto	L2
   648                           ;modbus.c: 224: }
   649  04C2                     l23
   650                           ;modbus.c: 226: else if(onOff == 0x00)
   651  04C2  08CD               	movf	?a_forceSingleCoil+2
   652  04C3  1D03               	btfss	3,2
   653  04C4  2CC7               	goto	l24
   654                           ;modbus.c: 227: {
   655  04C5  01CF               	clrf	?a_forceSingleCoil+4
   656  04C6                     L2
   657  04C6  01D0               	clrf	?a_forceSingleCoil+5
   658  04C7                     l24
   659                           ;modbus.c: 229: }
   660  04C7  084C               	movf	?a_forceSingleCoil+1,w
   661  04C8  00D1               	movwf	?_setCoilVal
   662  04C9  01D2               	clrf	?_setCoilVal+1
   663  04CA  084F               	movf	?a_forceSingleCoil+4,w
   664  04CB  00D3               	movwf	?_setCoilVal+2
   665  04CC  0850               	movf	?a_forceSingleCoil+5,w
   666  04CD  00D4               	movwf	?_setCoilVal+3
   667  04CE  2493               	fcall	_setCoilVal
   668                           ;modbus.c: 233: for(i=0;i<receCount;i++)
   669  04CF  01CE               	clrf	?a_forceSingleCoil+3
   670  04D0                     l29
   671  04D0  0841               	movf	_receCount,w
   672  04D1  024E               	subwf	?a_forceSingleCoil+3,w
   673  04D2  1803               	btfsc	3,0
   674  04D3  2CE2               	goto	l27
   675                           ;modbus.c: 234: {
   676  04D4  084E               	movf	?a_forceSingleCoil+3,w
   677  04D5  3E21               	addlw	_receBuf
   678  04D6  0084               	movwf	4
   679  04D7  1383               	bcf	3,7
   680  04D8  0800               	movf	0,w
   681  04D9  00F0               	movwf	btemp
   682  04DA  084E               	movf	?a_forceSingleCoil+3,w
   683  04DB  3E31               	addlw	_sendBuf
   684  04DC  0084               	movwf	4
   685  04DD  1383               	bcf	3,7
   686  04DE  0870               	movf	btemp,w
   687  04DF  0080               	movwf	0
   688  04E0  0ACE               	incf	?a_forceSingleCoil+3
   689  04E1  2CD0               	goto	l29
   690  04E2                     l27
   691                           ;modbus.c: 236: }
   692  04E2  0841               	movf	_receCount,w
   693  04E3  00C2               	movwf	_sendCount
   694                           ;modbus.c: 238: beginSend();
   695  04E4  2C8B               	ljmp	_beginSend
   696  04E5                     _crc16
   697                           ;	_puchMsg assigned to ?a_crc16+0
   698  0000                     _crc16$puchMsg	set	?a_crc16
   699                           ;	_uchCRCHi assigned to ?a_crc16+1
   700  0000                     _crc16$uchCRCHi	set	?a_crc16+1
   701                           ;	_uchCRCLo assigned to ?a_crc16+2
   702  0000                     _crc16$uchCRCLo	set	?a_crc16+2
   703                           ;	_uIndex assigned to ?a_crc16+3
   704  0000                     _crc16$uIndex	set	?a_crc16+3
   705                           ;_puchMsg stored from w
   706  04E5  0183               	clrf	3	;select bank 0
   707  04E6  00DB               	movwf	?a_crc16
   708                           ;modbus.c: 70: uint16 crc16(uint8 *puchMsg, uin
      +                          t16 usDataLen)
   709  04E7  30FF               	movlw	-1
   710  04E8  00DC               	movwf	?a_crc16+1
   711                           ;modbus.c: 73: uint8 uchCRCLo = 0xFF ;
   712  04E9  00DD               	movwf	?a_crc16+2
   713                           ;modbus.c: 74: uint32 uIndex ;
   714  04EA  2D0E               	goto	l2
   715  04EB                     l3
   716                           ;modbus.c: 76: {
   717  04EB  085B               	movf	?a_crc16,w
   718  04EC  0084               	movwf	4
   719  04ED  1383               	bcf	3,7
   720  04EE  0800               	movf	0,w
   721  04EF  065C               	xorwf	?a_crc16+1,w
   722  04F0  00DE               	movwf	?a_crc16+3
   723  04F1  01DF               	clrf	?a_crc16+4
   724  04F2  01E0               	clrf	?a_crc16+5
   725  04F3  01E1               	clrf	?a_crc16+6
   726  04F4  0ADB               	incf	?a_crc16
   727                           ;modbus.c: 78: uchCRCHi = uchCRCLo ^ auchCRCHi[
      +                          uIndex] ;
   728  04F5  085F               	movf	?a_crc16+4,w
   729  04F6  3E00               	addlw	high _auchCRCHi
   730  04F7  00E7               	movwf	code_ptr+1
   731  04F8  085E               	movf	?a_crc16+3,w
   732  04F9  3EB8               	addlw	low _auchCRCHi
   733  04FA  1803               	btfsc	3,0
   734  04FB  0AE7               	incf	code_ptr+1
   735  04FC  120A  118A  20A2   	fcall	string_table
   736  04FF  065D               	xorwf	?a_crc16+2,w
   737  0500  00DC               	movwf	?a_crc16+1
   738                           ;modbus.c: 79: uchCRCLo = auchCRCLo[uIndex] ;
   739  0501  085F               	movf	?a_crc16+4,w
   740  0502  3E01               	addlw	high _auchCRCLo
   741  0503  00E7               	movwf	code_ptr+1
   742  0504  085E               	movf	?a_crc16+3,w
   743  0505  3EB8               	addlw	low _auchCRCLo
   744  0506  1803               	btfsc	3,0
   745  0507  0AE7               	incf	code_ptr+1
   746  0508  120A  118A  20A2   	fcall	string_table
      +       120A  118A         
   747  050D  00DD               	movwf	?a_crc16+2
   748  050E                     l2
   749  050E  0859               	movf	?_crc16,w
   750  050F  1903               	btfsc	3,2
   751  0510  03DA               	decf	?_crc16+1
   752  0511  03D9               	decf	?_crc16
   753  0512  0A59               	incf	?_crc16,w
   754  0513  1903               	btfsc	3,2
   755  0514  0A5A               	incf	?_crc16+1,w
   756  0515  1D03               	btfss	3,2
   757  0516  2CEB               	goto	l3
   758                           ;modbus.c: 80: }
   759  0517  085C               	movf	?a_crc16+1,w
   760  0518  00F1               	movwf	btemp+1
   761  0519  01F0               	clrf	btemp
   762  051A  085D               	movf	?a_crc16+2,w
   763  051B  04F0               	iorwf	btemp
   764                           ;modbus.c: 82: }
   765  051C  0008               	return	;W free
   766  051D                     _checkComm0Modbus
   767                           ;	_crcData assigned to ?a_checkComm0Modbus+0
   768  0000                     _checkComm0Modbus$crcData	set	?a_checkComm0Modb
      +                          us
   769                           ;	_tempData assigned to ?a_checkComm0Modbus+2
   770  0000                     _checkComm0Modbus$tempData	set	?a_checkComm0Mod
      +                          bus+2
   771                           ;modbus.c: 286: void checkComm0Modbus(void)
   772  051D  1283               	bcf	3,5
   773  051E  1703               	bsf	3,6
   774  051F  08A1               	movf	_g_bRcvedOK^(0+256)
   775  0520  1903               	btfsc	3,2
   776  0521  2E2B               	goto	l35
   777                           ;modbus.c: 295: {
   778                           ;modbus.c: 299: }

⌨️ 快捷键说明

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