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

📄 modbus.lst

📁 PIC16F917开发的modbus-RTU协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
   779  0522  3008               	movlw	8
   780  0523  1303               	bcf	3,6	;carry unused
   781  0524  0241               	subwf	_receCount,w
   782  0525  1C03               	btfss	3,0
   783  0526  2E2B               	goto	l35
   784                           ;modbus.c: 301: {
   785                           ;modbus.c: 305: }
   786  0527  1683               	bsf	3,5
   787  0528  128C               	bcf	12,5
   788                           ;modbus.c: 307: TMR2IE = 0;
   789  0529  108C               	bcf	12,1
   790                           ;modbus.c: 308: if(receBuf[0] != localAddr )
   791  052A  1283               	bcf	3,5
   792  052B  0821               	movf	_receBuf,w
   793  052C  1383               	bcf	3,7
   794  052D  0662               	xorwf	_localAddr,w
   795  052E  1903               	btfsc	3,2
   796  052F  2E0E               	goto	l40
   797                           ;modbus.c: 309: {
   798  0530  1703               	bsf	3,6
   799  0531  01A1               	clrf	_g_bRcvedOK^(0+256)
   800                           ;modbus.c: 311: receCount = 0;
   801  0532  1303               	bcf	3,6	;carry unused
   802  0533  01C1               	clrf	_receCount
   803                           ;modbus.c: 312: TXIE = 0;
   804  0534  1683               	bsf	3,5
   805  0535  120C               	bcf	12,4
   806                           ;modbus.c: 313: TXEN = 0;
   807  0536  1298               	bcf	24,5
   808                           ;modbus.c: 314: RCIE = 1;
   809  0537  168C               	bsf	12,5
   810                           ;modbus.c: 315: TMR2IE = 1;
   811  0538  148C               	bsf	12,1
   812                           ;modbus.c: 316: }
   813  0539  2E0E               	goto	l40
   814  053A                     l44
   815                           ;modbus.c: 321: case 3:
   816  053A  3006               	movlw	6
   817  053B  00D9               	movwf	?_crc16
   818  053C  01DA               	clrf	?_crc16+1
   819  053D  3021               	movlw	_receBuf
   820  053E  24E5               	fcall	_crc16
   821  053F  0870               	movf	btemp,w
   822  0540  00C7               	movwf	?a_checkComm0Modbus
   823  0541  0871               	movf	btemp+1,w
   824  0542  00C8               	movwf	?a_checkComm0Modbus+1
   825                           ;modbus.c: 326: if(crcData == receBuf[7]+(receB
      +                          uf[6]<<8))
   826  0543  0827               	movf	_receBuf+6,w
   827  0544  00F3               	movwf	btemp+3
   828  0545  01F2               	clrf	btemp+2
   829  0546  0828               	movf	_receBuf+7,w
   830  0547  00F0               	movwf	btemp
   831  0548  01F1               	clrf	btemp+1
   832  0549  0872               	movf	btemp+2,w
   833  054A  07F0               	addwf	btemp
   834  054B  1803               	btfsc	3,0
   835  054C  0AF1               	incf	btemp+1
   836  054D  0873               	movf	btemp+3,w
   837  054E  07F1               	addwf	btemp+1
   838  054F  0848               	movf	?a_checkComm0Modbus+1,w
   839  0550  0671               	xorwf	btemp+1,w
   840  0551  1D03               	btfss	3,2
   841  0552  2D55               	goto	u165
   842  0553  0847               	movf	?a_checkComm0Modbus,w
   843  0554  0670               	xorwf	btemp,w
   844  0555                     u165
   845  0555  1D03               	btfss	3,2
   846  0556  2D70               	goto	l45
   847                           ;modbus.c: 327: {
   848  0557  0B22               	decfsz	_receBuf+1,w
   849  0558  2D5D               	goto	l46
   850                           ;modbus.c: 329: {
   851  0559  265D  120A  118A   	fcall	_readCoil
   852                           ;modbus.c: 331: }
   853  055C  2E22               	goto	l39
   854  055D                     l46
   855                           ;modbus.c: 332: else if(receBuf[1] == 3)
   856  055D  0822               	movf	_receBuf+1,w
   857  055E  3A03               	xorlw	3
   858  055F  1D03               	btfss	3,2
   859  0560  2D65               	goto	l48
   860                           ;modbus.c: 333: {
   861  0561  271C  120A  118A   	fcall	_readRegisters
   862                           ;modbus.c: 335: }
   863  0564  2E22               	goto	l39
   864  0565                     l48
   865                           ;modbus.c: 336: else if(receBuf[1] == 5)
   866  0565  0822               	movf	_receBuf+1,w
   867  0566  3A05               	xorlw	5
   868  0567  1D03               	btfss	3,2
   869  0568  2D6D               	goto	l50
   870                           ;modbus.c: 337: {
   871  0569  24B7  120A  118A   	fcall	_forceSingleCoil
   872                           ;modbus.c: 339: }
   873  056C  2E22               	goto	l39
   874  056D                     l50
   875                           ;modbus.c: 340: else if(receBuf[1] == 6)
   876  056D  0822               	movf	_receBuf+1,w
   877  056E  3A06               	xorlw	6
   878  056F  2E22               	goto	l39
   879                           ;modbus.c: 341: {
   880                           ;modbus.c: 343: }
   881  0570                     l45
   882                           ;modbus.c: 346: else
   883  0570  0862               	movf	_localAddr,w
   884  0571  00B1               	movwf	_sendBuf
   885                           ;modbus.c: 349: sendBuf[1] = receBuf[1] | 0x80;
   886  0572  0822               	movf	_receBuf+1,w
   887  0573  3880               	iorlw	-128
   888  0574  00B2               	movwf	_sendBuf+1
   889                           ;modbus.c: 350: crcData = crc16(sendBuf,2);
   890  0575  3002               	movlw	2
   891  0576  00D9               	movwf	?_crc16
   892  0577  01DA               	clrf	?_crc16+1
   893  0578  3031               	movlw	_sendBuf
   894  0579  24E5               	fcall	_crc16
   895  057A  0870               	movf	btemp,w
   896  057B  00C7               	movwf	?a_checkComm0Modbus
   897  057C  0871               	movf	btemp+1,w
   898  057D  00C8               	movwf	?a_checkComm0Modbus+1
   899                           ;modbus.c: 351: sendBuf[2] = crcData >> 8;
   900  057E  00B3               	movwf	_sendBuf+2
   901                           ;modbus.c: 352: sendBuf[3] = crcData & 0xff;
   902  057F  0847               	movf	?a_checkComm0Modbus,w
   903  0580  00B4               	movwf	_sendBuf+3
   904                           ;modbus.c: 353: sendCount = 4;
   905  0581  3004               	movlw	4
   906  0582  00C2               	movwf	_sendCount
   907                           ;modbus.c: 354: beginSend();
   908  0583  248B               	fcall	_beginSend
   909                           ;modbus.c: 355: }
   910  0584  2E22               	goto	l39
   911  0585                     l54
   912                           ;modbus.c: 357: case 15:
   913                           ;modbus.c: 358: tempData = receBuf[6];
   914  0585  0827               	movf	_receBuf+6,w
   915  0586  00C9               	movwf	?a_checkComm0Modbus+2
   916  0587  01CA               	clrf	?a_checkComm0Modbus+3
   917                           ;modbus.c: 359: tempData += 9;
   918  0588  3009               	movlw	9
   919  0589  07C9               	addwf	?a_checkComm0Modbus+2
   920  058A  1803               	btfsc	3,0
   921  058B  0ACA               	incf	?a_checkComm0Modbus+3
   922                           ;modbus.c: 360: if(receCount >= tempData)
   923  058C  0841               	movf	_receCount,w
   924  058D  00F0               	movwf	btemp
   925  058E  01F1               	clrf	btemp+1
   926  058F  084A               	movf	?a_checkComm0Modbus+3,w
   927  0590  0271               	subwf	btemp+1,w
   928  0591  1D03               	btfss	3,2
   929  0592  2D95               	goto	u215
   930  0593  0849               	movf	?a_checkComm0Modbus+2,w
   931  0594  0270               	subwf	btemp,w
   932  0595                     u215
   933  0595  1C03               	btfss	3,0
   934  0596  2E22               	goto	l39
   935                           ;modbus.c: 361: {
   936  0597  0821               	movf	_receBuf,w
   937  0598  0662               	xorwf	_localAddr,w
   938  0599  1D03               	btfss	3,2
   939  059A  2E0C               	goto	l60
   940                           ;modbus.c: 363: {
   941  059B  30FE               	movlw	254
   942  059C  0749               	addwf	?a_checkComm0Modbus+2,w
   943  059D  00D9               	movwf	?_crc16
   944  059E  30FF               	movlw	255
   945  059F  1803               	btfsc	3,0
   946  05A0  3000               	movlw	256
   947  05A1  074A               	addwf	?a_checkComm0Modbus+3,w
   948  05A2  00DA               	movwf	?_crc16+1
   949  05A3  3021               	movlw	_receBuf
   950  05A4  24E5               	fcall	_crc16
   951  05A5  0870               	movf	btemp,w
   952  05A6  00C7               	movwf	?a_checkComm0Modbus
   953  05A7  0871               	movf	btemp+1,w
   954  05A8  00C8               	movwf	?a_checkComm0Modbus+1
   955                           ;modbus.c: 365: if(crcData == (receBuf[tempData
      +                          -2]<<8)+ receBuf[tempData-1])
   956  05A9  0849               	movf	?a_checkComm0Modbus+2,w
   957  05AA  3EFE               	addlw	-2
   958  05AB  3E21               	addlw	_receBuf
   959  05AC  0084               	movwf	4
   960  05AD  1383               	bcf	3,7
   961  05AE  0800               	movf	0,w
   962  05AF  00F3               	movwf	btemp+3
   963  05B0  01F2               	clrf	btemp+2
   964  05B1  0349               	decf	?a_checkComm0Modbus+2,w
   965  05B2  3E21               	addlw	_receBuf
   966  05B3  0084               	movwf	4
   967  05B4  1383               	bcf	3,7
   968  05B5  0800               	movf	0,w
   969  05B6  00F0               	movwf	btemp
   970  05B7  01F1               	clrf	btemp+1
   971  05B8  0872               	movf	btemp+2,w
   972  05B9  07F0               	addwf	btemp
   973  05BA  1803               	btfsc	3,0
   974  05BB  0AF1               	incf	btemp+1
   975  05BC  0873               	movf	btemp+3,w
   976  05BD  07F1               	addwf	btemp+1
   977  05BE  0848               	movf	?a_checkComm0Modbus+1,w
   978  05BF  0671               	xorwf	btemp+1,w
   979  05C0  1D03               	btfss	3,2
   980  05C1  2E0C               	goto	l60
   981  05C2  0847               	movf	?a_checkComm0Modbus,w
   982                           ;modbus.c: 366: {
   983  05C3  2E0C               	goto	l60
   984                           ;modbus.c: 368: }
   985                           ;modbus.c: 371: }
   986  05C4                     l58
   987                           ;modbus.c: 373: case 16:
   988                           ;modbus.c: 374: tempData = (receBuf[4]<<8) + re
      +                          ceBuf[5];
   989  05C4  0825               	movf	_receBuf+4,w
   990  05C5  00CA               	movwf	?a_checkComm0Modbus+3
   991  05C6  0826               	movf	_receBuf+5,w
   992  05C7  00C9               	movwf	?a_checkComm0Modbus+2
   993                           ;modbus.c: 375: tempData = tempData * 2;
   994  05C8  1003               	bcf	3,0
   995  05C9  0DC9               	rlf	?a_checkComm0Modbus+2
   996  05CA  0DCA               	rlf	?a_checkComm0Modbus+3
   997                           ;modbus.c: 376: tempData += 9;
   998  05CB  3009               	movlw	9
   999  05CC  07C9               	addwf	?a_checkComm0Modbus+2
  1000  05CD  1803               	btfsc	3,0
  1001  05CE  0ACA               	incf	?a_checkComm0Modbus+3
  1002                           ;modbus.c: 377: if(receCount >= tempData)
  1003  05CF  0841               	movf	_receCount,w
  1004  05D0  00F0               	movwf	btemp
  1005  05D1  01F1               	clrf	btemp+1
  1006  05D2  084A               	movf	?a_checkComm0Modbus+3,w
  1007  05D3  0271               	subwf	btemp+1,w
  1008  05D4  1D03               	btfss	3,2
  1009  05D5  2DD8               	goto	u245
  1010  05D6  0849               	movf	?a_checkComm0Modbus+2,w
  1011  05D7  0270               	subwf	btemp,w
  1012  05D8                     u245
  1013  05D8  1C03               	btfss	3,0
  1014  05D9  2E22               	goto	l39
  1015                           ;modbus.c: 378: {
  1016  05DA  0821               	movf	_receBuf,w
  1017  05DB  0662               	xorwf	_localAddr,w
  1018  05DC  1D03               	btfss	3,2
  1019  05DD  2E0C               	goto	l60
  1020                           ;modbus.c: 380: {
  1021  05DE  30FE               	movlw	254
  1022  05DF  0749               	addwf	?a_checkComm0Modbus+2,w
  1023  05E0  00D9               	movwf	?_crc16
  1024  05E1  30FF               	movlw	255
  1025  05E2  1803               	btfsc	3,0
  1026  05E3  3000               	movlw	256
  1027  05E4  074A               	addwf	?a_checkComm0Modbus+3,w
  1028  05E5  00DA               	movwf	?_crc16+1
  1029  05E6  3021               	movlw	_receBuf
  1030  05E7  24E5               	fcall	_crc16
  1031  05E8  0870               	movf	btemp,w
  1032  05E9  00C7               	movwf	?a_checkComm0Modbus
  1033  05EA  0871               	movf	btemp+1,w
  1034  05EB  00C8               	movwf	?a_checkComm0Modbus+1
  1035                           ;modbus.c: 382: if(crcData == (receBuf[tempData
      +                          -2]<<8)+ receBuf[tempData-1])
  1036  05EC  0849               	movf	?a_checkComm0Modbus+2,w
  1037  05ED  3EFE               	addlw	-2
  1038  05EE  3E21               	addlw	_receBuf
  1039  05EF  0084               	movwf	4

⌨️ 快捷键说明

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