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

📄 main_s.lst

📁 Microchip 公司16F648 芯片实现RS485通讯,符合Modbus通讯协议,可用PICC环境编译.文件完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   212  006B  00C6               	movwf	_RX9DBuf^(0+128)
   213                           ;main_s.c: 175: receBuf[receCount] = RCREG;
   214  006C  0821               	movf	_receCount^(0+128),w	;volatile
   215  006D  3EA6               	addlw	_receBuf
   216  006E  0084               	movwf	4
   217  006F  1383               	bcf	3,7
   218  0070  1283               	bcf	3,5
   219  0071  081A               	movf	26,w	;volatile
   220  0072  0080               	movwf	0
   221                           ;main_s.c: 176: if(RX9DBuf != ParityBit(&receBu
      +                          f[receCount]) )
   222  0073  1683               	bsf	3,5
   223  0074  0821               	movf	_receCount^(0+128),w	;volatile
   224  0075  3EA6               	addlw	_receBuf
   225  0076  1283               	bcf	3,5
   226  0077  00BE               	movwf	?_ParityBit
   227  0078  3080               	movlw	128
   228  0079  00BF               	movwf	?_ParityBit+1
   229  007A  118A  233C  118A   	fcall	_ParityBit
   230  007D  00F2               	movwf	btemp+2
   231  007E  01F3               	clrf	btemp+3
   232  007F  1683               	bsf	3,5
   233  0080  0846               	movf	_RX9DBuf^(0+128),w
   234  0081  00F0               	movwf	btemp
   235  0082  01F1               	clrf	btemp+1
   236  0083  0873               	movf	btemp+3,w
   237  0084  0671               	xorwf	btemp+1,w
   238  0085  1D03               	btfss	3,2
   239  0086  2889               	goto	u165
   240  0087  0872               	movf	btemp+2,w
   241  0088  0670               	xorwf	btemp,w
   242  0089                     u165
   243  0089  1903               	btfsc	3,2
   244  008A  288E               	goto	l26
   245                           ;main_s.c: 177: checkoutError = 1;
   246  008B  3001               	movlw	1
   247  008C  1283               	bcf	3,5
   248  008D  00A5               	movwf	_checkoutError	;volatile
   249  008E                     l26
   250                           ;main_s.c: 178: receCount++;
   251  008E  1683               	bsf	3,5
   252  008F  0AA1               	incf	_receCount^(0+128)	;volatile
   253                           ;main_s.c: 179: receCount &= 0x0f;
   254  0090  300F               	movlw	15
   255  0091  05A1               	andwf	_receCount^(0+128)	;volatile
   256                           ;main_s.c: 180: }
   257  0092                     l21
   258                           ;main_s.c: 181: }
   259  0092  0000               	nop	;#
   260                           ;main_s.c: 183: return;
   261                           ;main_s.c: 184: }
   262  0093  1303               	bcf	3,6	;carry unused
   263  0094  1283               	bcf	3,5
   264                           
   265                           	psect	intsave_0
   266  007C                     saved_w
   267  007C                     	ds	1
   268                           
   269                           	psect	intret
   270  00B3  0846               	movf	saved_fsr,w
   271  00B4  0084               	movwf	4	;restore FSR
   272  00B5  0847               	movf	saved_pclath,w
   273  00B6  008A               	movwf	10
   274  00B7                     int_restore
   275  00B7  0845               	movf	saved_status,w
   276  00B8  0083               	movwf	3
   277  00B9  0EFC               	swapf	saved_w
   278  00BA  0E7C               	swapf	saved_w,w
   279  00BB  0009               	retfie
   280                           
   281                           	psect	intentry
   282  0004                     int_entry
   283  0004  00FC               	movwf	saved_w
   284  0005  0803               	movf	3,w
   285  0006  0183               	clrf	3
   286  0007  00C5               	movwf	saved_status
   287  0008  0804               	movf	4,w
   288  0009  00C6               	movwf	saved_fsr
   289  000A  080A               	movf	10,w
   290  000B  00C7               	movwf	saved_pclath
   291  000C  018A               	clrf	10
   292                           
   293                           	psect	intsave
   294  0045                     saved_status
   295  0045                     	ds	1
   296  0046                     saved_fsr
   297  0046                     	ds	1
   298  0047                     saved_pclath
   299  0047                     	ds	1
   300                           
   301                           	psect	text4
   302                           ;main_s.c: 217: void IOinit(void)
   303                           ;main_s.c: 218: {
   304  0380                     _IOinit
   305                           ;main_s.c: 219: CM0=1;
   306  0380  0183               	clrf	3	;select bank 0
   307  0381  141F               	bsf	31,0
   308                           ;main_s.c: 220: CM1=1;
   309  0382  149F               	bsf	31,1
   310                           ;main_s.c: 221: CM2=1;
   311  0383  151F               	bsf	31,2
   312                           ;main_s.c: 225: TRISA &= 0b11111000;
   313  0384  30F8               	movlw	-8
   314  0385  1683               	bsf	3,5
   315  0386  0585               	andwf	5	;volatile
   316                           ;main_s.c: 226: RA1 = 0;
   317  0387  1283               	bcf	3,5
   318  0388  1085               	bcf	5,1
   319                           ;main_s.c: 228: RB4 = 1;
   320  0389  1606               	bsf	6,4
   321                           ;main_s.c: 230: TRISB3 = 0;
   322  038A  1683               	bsf	3,5
   323  038B  1186               	bcf	6,3
   324                           ;main_s.c: 231: RB3 = 0;
   325  038C  1283               	bcf	3,5
   326  038D  1186               	bcf	6,3
   327                           ;main_s.c: 232: }
   328  038E  0008               	return
   329                           ;main_s.c: 234: void sysinit(void)
   330                           ;main_s.c: 235: {
   331  038F                     _sysinit
   332                           ;main_s.c: 236: asm("nop");
   333  038F  0000               	nop	;#
   334                           ;main_s.c: 238: IOinit();
   335  0390  2380               	fcall	_IOinit
   336                           ;main_s.c: 239: time0init();
   337  0391  118A  231C         	fcall	_time0init
   338                           ;main_s.c: 240: Uart_init();
   339  0393  118A  23E7  118A   	fcall	_Uart_init
   340                           ;main_s.c: 241: asm("nop");
   341  0396  0000               	nop	;#
   342                           ;main_s.c: 242: }
   343  0397  0008               	return
   344                           ;main_s.c: 190: void main(void)
   345                           ;main_s.c: 191: {
   346  0398                     _main
   347                           ;main_s.c: 192: asm("nop");
   348  0398  0000               	nop	;#
   349                           ;main_s.c: 193: asm("nop");
   350  0399  0000               	nop	;#
   351                           ;main_s.c: 194: asm("nop");
   352  039A  0000               	nop	;#
   353                           ;main_s.c: 196: asm("nop");
   354  039B  0000               	nop	;#
   355                           ;main_s.c: 197: asm("nop");
   356  039C  0000               	nop	;#
   357                           ;main_s.c: 198: asm("nop");
   358  039D  0000               	nop	;#
   359                           ;main_s.c: 199: sysinit();
   360  039E  238F               	fcall	_sysinit
   361                           ;main_s.c: 200: test();
   362                           ;main_s.c: 16: RB3 = 1;
   363  039F  0183               	clrf	3	;select bank 0
   364  03A0  1586               	bsf	6,3
   365                           ;main_s.c: 201: GIE = 1;
   366  03A1  178B               	bsf	11,7
   367  03A2                     l29
   368                           ;main_s.c: 202: while(1)
   369                           ;main_s.c: 203: {
   370  03A2  0000               	nop	;#
   371                           ;main_s.c: 205: time_mission();
   372  03A3  118A  23B2         	fcall	_time_mission
   373                           ;main_s.c: 206: ReceiveFrameDisFun();
   374  03A5  118A  25DF  118A   	fcall	_ReceiveFrameDisFun
   375                           ;main_s.c: 207: asm("nop");
   376  03A8  0000               	nop	;#
   377                           ;main_s.c: 208: if(ledControl.bits.refurbish)
   378  03A9  1683               	bsf	3,5
   379  03AA  1CC7               	btfss	_ledControl^(0+128),1	;volatile
   380  03AB  2BA2               	goto	l29
   381                           ;main_s.c: 209: {
   382  03AC  118A  24CB  118A   	fcall	_LedDrive
   383                           ;main_s.c: 212: ledControl.bits.refurbish = 0;
   384  03AF  1683               	bsf	3,5
   385  03B0  10C7               	bcf	_ledControl^(0+128),1	;volatile
   386                           ;main_s.c: 213: }
   387  03B1  2BA2               	goto	l29
   388                           
   389                           	psect	text6
   390  033C                     _ParityBit
   391                           ;	_temp_a assigned to ?a_ParityBit+0
   392  0000                     _ParityBit$temp_a	set	?a_ParityBit
   393                           ;	_result assigned to ?a_ParityBit+1
   394  0000                     _ParityBit$result	set	?a_ParityBit+1
   395                           ;	_tempcount assigned to ?a_ParityBit+2
   396  0000                     _ParityBit$tempcount	set	?a_ParityBit+2
   397                           ;	_tempchar assigned to ?a_ParityBit+3
   398  0000                     _ParityBit$tempchar	set	?a_ParityBit+3
   399                           ;main_s.c: 249: char tempchar=0, tempcount ,tem
      +                          p_a=0,result=0;
   400  033C  0183               	clrf	3	;select bank 0
   401  033D  01C3               	clrf	?a_ParityBit+3
   402  033E  01C0               	clrf	?a_ParityBit
   403  033F  01C1               	clrf	?a_ParityBit+1
   404                           ;main_s.c: 250: tempchar = *p_data;
   405  0340  083F               	movf	?_ParityBit+1,w
   406  0341  00CB               	movwf	code_ptr+1
   407  0342  083E               	movf	?_ParityBit,w
   408  0343  118A  20E7  118A   	fcall	string_table
   409  0346  00C3               	movwf	?a_ParityBit+3
   410                           ;main_s.c: 252: for(tempcount = 8; tempcount > 
      +                          0; tempcount--)
   411  0347  3008               	movlw	8
   412  0348  00C2               	movwf	?a_ParityBit+2
   413  0349                     l35
   414                           ;main_s.c: 253: {
   415                           ;main_s.c: 254: temp_a = tempchar & 0x01;
   416  0349  0843               	movf	?a_ParityBit+3,w
   417  034A  3901               	andlw	1
   418  034B  00C0               	movwf	?a_ParityBit
   419                           ;main_s.c: 255: if(1 == temp_a)
   420  034C  0B40               	decfsz	?a_ParityBit,w
   421  034D  2B4F               	goto	l38
   422                           ;main_s.c: 256: {
   423  034E  0AC1               	incf	?a_ParityBit+1
   424  034F                     l38
   425                           ;main_s.c: 258: }
   426  034F  1003               	bcf	3,0
   427  0350  0CC3               	rrf	?a_ParityBit+3
   428                           ;main_s.c: 260: }
   429  0351  0BC2               	decfsz	?a_ParityBit+2
   430  0352  2B49               	goto	l35

⌨️ 快捷键说明

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