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

📄 uart_s.lst

📁 Microchip 公司16F648 芯片实现RS485通讯,符合Modbus通讯协议,可用PICC环境编译.文件完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   255  054E  0183               	clrf	3	;select bank 0
   256  054F  00B2               	movwf	?a_CRC16
   257                           ;uart_s.c: 320: MyByte CRC16Lo,CRC16Hi;
   258  0550  30FF               	movlw	-1
   259  0551  00B8               	movwf	?a_CRC16+6
   260                           ;uart_s.c: 326: CRC16Hi = 0xff;
   261  0552  00B7               	movwf	?a_CRC16+5
   262                           ;uart_s.c: 327: CL = 0x01;
   263  0553  01B4               	clrf	?a_CRC16+2
   264  0554  0AB4               	incf	?a_CRC16+2
   265                           ;uart_s.c: 328: CH = 0xa0;
   266  0555  30A0               	movlw	-96
   267  0556  00B3               	movwf	?a_CRC16+1
   268                           ;uart_s.c: 329: for(i=0; i<iLength; i++)
   269  0557  01BB               	clrf	?a_CRC16+9
   270  0558  01BC               	clrf	?a_CRC16+10
   271  0559  2D82               	goto	l43
   272                           ;uart_s.c: 330: {
   273                           ;uart_s.c: 331: CRC16Lo = CRC16Lo ^ data[i];
   274  055A                     L6
   275  055A  0832               	movf	?a_CRC16,w
   276  055B  073B               	addwf	?a_CRC16+9,w
   277  055C  0084               	movwf	4
   278  055D  1383               	bcf	3,7
   279  055E  0800               	movf	0,w
   280  055F  06B8               	xorwf	?a_CRC16+6
   281                           ;uart_s.c: 332: for( Flag=0; Flag<=7; Flag++)
   282  0560  01B9               	clrf	?a_CRC16+7
   283  0561  01BA               	clrf	?a_CRC16+8
   284  0562                     l44
   285                           ;uart_s.c: 333: {
   286                           ;uart_s.c: 334: SaveHi = CRC16Hi;
   287  0562  0837               	movf	?a_CRC16+5,w
   288  0563  00B5               	movwf	?a_CRC16+3
   289                           ;uart_s.c: 335: SaveLo = CRC16Lo;
   290  0564  0838               	movf	?a_CRC16+6,w
   291  0565  00B6               	movwf	?a_CRC16+4
   292                           ;uart_s.c: 336: CRC16Hi = CRC16Hi>>1;
   293  0566  1003               	bcf	3,0
   294  0567  0CB7               	rrf	?a_CRC16+5
   295                           ;uart_s.c: 337: CRC16Lo = CRC16Lo>>1;
   296  0568  1003               	bcf	3,0
   297  0569  0CB8               	rrf	?a_CRC16+6
   298                           ;uart_s.c: 339: if((SaveHi&0x01) == 0x01)
   299  056A  1835               	btfsc	?a_CRC16+3,0
   300                           ;uart_s.c: 340: CRC16Lo = CRC16Lo|0x80;
   301  056B  17B8               	bsf	?a_CRC16+6,7
   302                           ;uart_s.c: 342: if((SaveLo&0x01) == 0x01)
   303  056C  1C36               	btfss	?a_CRC16+4,0
   304  056D  2D72               	goto	l48
   305                           ;uart_s.c: 343: {
   306  056E  0833               	movf	?a_CRC16+1,w
   307  056F  06B7               	xorwf	?a_CRC16+5
   308                           ;uart_s.c: 345: CRC16Lo = CRC16Lo ^ CL;
   309  0570  0834               	movf	?a_CRC16+2,w
   310  0571  06B8               	xorwf	?a_CRC16+6
   311  0572                     l48
   312                           ;uart_s.c: 346: }
   313  0572  0AB9               	incf	?a_CRC16+7
   314  0573  1903               	btfsc	3,2
   315  0574  0ABA               	incf	?a_CRC16+8
   316  0575  083A               	movf	?a_CRC16+8,w
   317  0576  3A80               	xorlw	128
   318  0577  00F0               	movwf	btemp
   319  0578  3080               	movlw	128
   320  0579  0270               	subwf	btemp,w
   321  057A  3008               	movlw	8
   322                           ;set	bank bits for (((?a_CRC16+7)))
   323  057B  1903               	btfsc	3,2
   324  057C  0239               	subwf	?a_CRC16+7,w
   325  057D  1C03               	btfss	3,0
   326  057E  2D62               	goto	l44
   327                           ;uart_s.c: 348: }
   328  057F  0ABB               	incf	?a_CRC16+9
   329  0580  1903               	btfsc	3,2
   330  0581  0ABC               	incf	?a_CRC16+10
   331  0582                     l43
   332  0582  083C               	movf	?a_CRC16+10,w
   333  0583  3A80               	xorlw	128
   334  0584  00F0               	movwf	btemp
   335  0585  0831               	movf	?_CRC16+1,w
   336  0586  3A80               	xorlw	128
   337  0587  0270               	subwf	btemp,w
   338  0588  1D03               	btfss	3,2
   339  0589  2D8C               	goto	u135
   340  058A  0830               	movf	?_CRC16,w
   341  058B  023B               	subwf	?a_CRC16+9,w
   342  058C                     u135
   343                           ;uart_s.c: 349: return(CRC16Hi<<8 | CRC16Lo);
   344  058C  1283               	bcf	3,5
   345  058D  1303               	bcf	3,6	;carry unused
   346  058E  1C03               	btfss	3,0
   347  058F  2D5A               	goto	L6
   348  0590  0837               	movf	?a_CRC16+5,w
   349  0591  00F1               	movwf	btemp+1
   350  0592  01F0               	clrf	btemp
   351  0593  0838               	movf	?a_CRC16+6,w
   352  0594  04F0               	iorwf	btemp
   353                           ;uart_s.c: 350: }
   354  0595  0008               	return
   355                           ;uart_s.c: 176: void SinglePressKeyDip(void)
   356                           ;uart_s.c: 177: {
   357  0596                     _SinglePressKeyDip
   358                           ;uart_s.c: 178: sendBuf[0] = 0xff;
   359  0596  30FF               	movlw	-1
   360  0597  1683               	bsf	3,5
   361  0598  1303               	bcf	3,6	;carry unused
   362  0599  00B6               	movwf	_sendBuf^(0+128)
   363                           ;uart_s.c: 179: sendBuf[1] = 0xaa;
   364  059A  30AA               	movlw	-86
   365  059B  00B7               	movwf	(_sendBuf+1)^(0+128)
   366                           ;uart_s.c: 180: sendBuf[2] = 0x55;
   367  059C  3055               	movlw	85
   368  059D  00B8               	movwf	(_sendBuf+2)^(0+128)
   369                           ;uart_s.c: 181: crc_result = CRC16(sendBuf,3);
   370  059E  3003               	movlw	3
   371  059F  1283               	bcf	3,5
   372  05A0  00B0               	movwf	?_CRC16
   373  05A1  01B1               	clrf	?_CRC16+1
   374  05A2  30B6               	movlw	_sendBuf
   375  05A3  254E               	fcall	_CRC16
   376  05A4  0870               	movf	btemp,w
   377  05A5  00A2               	movwf	_crc_result
   378  05A6  0871               	movf	btemp+1,w
   379  05A7  00A3               	movwf	_crc_result+1
   380                           ;uart_s.c: 182: sendBuf[3] = (uchar)(crc_result
      +                          &0x00ff);
   381  05A8  0822               	movf	_crc_result,w
   382  05A9  1683               	bsf	3,5
   383  05AA  00B9               	movwf	(_sendBuf+3)^(0+128)
   384                           ;uart_s.c: 183: sendBuf[4] = (uchar)((crc_resul
      +                          t&0xff00)>>8);
   385  05AB  1283               	bcf	3,5
   386  05AC  0823               	movf	_crc_result+1,w
   387  05AD  00F1               	movwf	btemp+1
   388  05AE  0822               	movf	_crc_result,w
   389  05AF  00F0               	movwf	btemp
   390  05B0  01F0               	clrf	btemp
   391  05B1  0871               	movf	btemp+1,w
   392  05B2  1683               	bsf	3,5
   393  05B3  00BA               	movwf	(_sendBuf+4)^(0+128)
   394                           ;uart_s.c: 185: sendCount = 5;
   395  05B4  3005               	movlw	5
   396  05B5  00A2               	movwf	_sendCount^(0+128)	;volatile
   397                           ;uart_s.c: 187: beginSend();
   398  05B6  2D3F               	ljmp	_beginSend
   399  05B7                     _RecFrameCheck
   400                           ;	_p_CheckData assigned to ?a_RecFrameCheck+0
   401  0000                     _RecFrameCheck$p_CheckData	set	?a_RecFrameCheck
   402                           ;	_CRCWord assigned to ?a_RecFrameCheck+1
   403  0000                     _RecFrameCheck$CRCWord	set	?a_RecFrameCheck+1
   404                           ;_p_CheckData stored from w
   405  05B7  0183               	clrf	3	;select bank 0
   406  05B8  00AD               	movwf	?a_RecFrameCheck
   407                           ;uart_s.c: 303: uint CRCWord;
   408  05B9  082C               	movf	?_RecFrameCheck,w
   409  05BA  072D               	addwf	?a_RecFrameCheck,w
   410  05BB  00F0               	movwf	btemp
   411  05BC  0370               	decf	btemp,w
   412  05BD  0084               	movwf	4
   413  05BE  1383               	bcf	3,7
   414  05BF  0800               	movf	0,w
   415  05C0  00F0               	movwf	btemp
   416  05C1  082C               	movf	?_RecFrameCheck,w
   417  05C2  072D               	addwf	?a_RecFrameCheck,w
   418  05C3  3EFE               	addlw	-2
   419  05C4  0084               	movwf	4
   420  05C5  0800               	movf	0,w
   421  05C6  00AF               	movwf	?a_RecFrameCheck+2
   422  05C7  0870               	movf	btemp,w
   423  05C8  00AE               	movwf	?a_RecFrameCheck+1
   424                           ;uart_s.c: 306: if(CRCWord == CRC16(p_CheckData
      +                          ,GetCntTempBuf-2))
   425  05C9  30FE               	movlw	254
   426  05CA  00F0               	movwf	btemp
   427  05CB  30FF               	movlw	255
   428  05CC  00F1               	movwf	btemp+1
   429  05CD  082C               	movf	?_RecFrameCheck,w
   430  05CE  0770               	addwf	btemp,w
   431  05CF  00B0               	movwf	?_CRC16
   432  05D0  0871               	movf	btemp+1,w
   433  05D1  1803               	btfsc	3,0
   434  05D2  0A71               	incf	btemp+1,w
   435  05D3  00B1               	movwf	?_CRC16+1
   436  05D4  082D               	movf	?a_RecFrameCheck,w
   437  05D5  254E               	fcall	_CRC16
   438  05D6  082F               	movf	?a_RecFrameCheck+2,w
   439  05D7  0671               	xorwf	btemp+1,w
   440  05D8  1D03               	btfss	3,2
   441  05D9  2DDC               	goto	u95
   442  05DA  082E               	movf	?a_RecFrameCheck+1,w
   443  05DB  0670               	xorwf	btemp,w
   444  05DC                     u95
   445  05DC  1903               	btfsc	3,2
   446                           ;uart_s.c: 307: {
   447  05DD  3401               	retlw	1
   448                           ;uart_s.c: 311: {
   449  05DE  3400               	retlw	0
   450                           ;uart_s.c: 191: void ReceiveFrameDisFun(void)
   451                           ;uart_s.c: 192: {
   452  05DF                     _ReceiveFrameDisFun
   453                           ;uart_s.c: 205: if(receCount>4)
   454  05DF  3005               	movlw	5
   455  05E0  1683               	bsf	3,5
   456  05E1  1303               	bcf	3,6	;carry unused
   457  05E2  0221               	subwf	_receCount^(0+128),w	;volatile
   458  05E3  1803               	btfsc	3,0
   459  05E4  2E0C               	goto	l26
   460                           ;uart_s.c: 206: {
   461                           ;uart_s.c: 217: {
   462                           ;uart_s.c: 219: break;
   463                           ;uart_s.c: 221: case 1:
   464                           ;uart_s.c: 222: break;
   465                           ;uart_s.c: 224: case 3:
   466                           ;uart_s.c: 235: break;
   467                           ;uart_s.c: 237: case 5:
   468                           ;uart_s.c: 238: break;
   469  05E5  2E1B               	goto	l24
   470  05E6                     l31
   471                           ;uart_s.c: 240: case 0xaa:
   472                           ;uart_s.c: 241: if(receCount >= 5)
   473  05E6  3005               	movlw	5
   474  05E7  0221               	subwf	_receCount^(0+128),w	;volatile
   475  05E8  1C03               	btfss	3,0
   476  05E9  2E1B               	goto	l24
   477                           ;uart_s.c: 242: {
   478  05EA  0826               	movf	_receBuf^(0+128),w
   479  05EB  1283               	bcf	3,5
   480  05EC  0644               	xorwf	_LocalAddr,w
   481  05ED  1D03               	btfss	3,2
   482  05EE  2E07               	goto	l33
   483  05EF  0825               	movf	_checkoutError,w	;volatile
   484  05F0  1D03               	btfss	3,2
   485  05F1  2E07               	goto	l33
   486                           ;uart_s.c: 254: {
   487  05F2  3005               	movlw	5
   488  05F3  00AC               	movwf	?_RecFrameCheck
   489  05F4  30A6               	movlw	_receBuf
   490  05F5  25B7               	fcall	_RecFrameCheck
   491  05F6  00F0               	movwf	btemp
   492  05F7  01F1               	clrf	btemp+1
   493  05F8  0471               	iorwf	btemp+1,w
   494  05F9  1903               	btfsc	3,2
   495  05FA  2E07               	goto	l33
   496                           ;uart_s.c: 257: {
   497  05FB  3008               	movlw	8
   498  05FC  0686               	xorwf	6
   499                           ;uart_s.c: 278: GetKeyValue = receBuf[2];
   500  05FD  1683               	bsf	3,5
   501  05FE  0828               	movf	(_receBuf+2)^(0+128),w
   502  05FF  1283               	bcf	3,5
   503  0600  00A1               	movwf	_GetKeyValue	;volatile
   504                           ;uart_s.c: 279: LedSSLink = GetKeyValue;
   505  0601  0821               	movf	_GetKeyValue,w	;volatile
   506  0602  1683               	bsf	3,5
   507  0603  00D0               	movwf	_LedSSLink^(0+128)
   508  0604  01D1               	clrf	(_LedSSLink+1)^(0+128)
   509                           ;uart_s.c: 282: SinglePressKeyDip();
   510  0605  2596  118A         	fcall	_SinglePressKeyDip
   511                           ;uart_s.c: 283: }
   512  0607                     l33
   513                           ;uart_s.c: 285: receCount = 0;
   514  0607  1683               	bsf	3,5
   515  0608  01A1               	clrf	_receCount^(0+128)	;volatile
   516                           ;uart_s.c: 286: checkoutError = 0;

⌨️ 快捷键说明

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