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

📄 modbus.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 5 页
字号:
   537  031E  3443               	retlw	67
   538  031F  3483               	retlw	-125
   539  0320  3441               	retlw	65
   540  0321  3481               	retlw	-127
   541  0322  3480               	retlw	-128
   542  0323  3440               	retlw	64
   543  0000                     _ClearBus$ClearLength	set	?_ClearBus
   544                           
   545                           	psect	text0
   546  0C60                     _ClearBus
   547                           ;	_p_array2 assigned to ?a_ClearBus+0
   548  0000                     _ClearBus$p_array2	set	?a_ClearBus
   549                           ;_p_array2 stored from w
   550  0C60  0183               	clrf	3	;select bank 0
   551  0C61  00C6               	movwf	?a_ClearBus
   552  0C62                     l18
   553                           ;modbus.c: 83: do
   554                           ;modbus.c: 84: {
   555  0C62  0846               	movf	?a_ClearBus,w
   556  0C63  0084               	movwf	4
   557  0C64  1383               	bcf	3,7
   558  0C65  0180               	clrf	0
   559  0C66  0AC6               	incf	?a_ClearBus
   560                           ;modbus.c: 86: }
   561  0C67  0BC6               	decfsz	?_ClearBus
   562  0C68  2C62               	goto	l18
   563  0C69  0008               	return
   564                           
   565                           	psect	text1
   566                           ;modbus.c: 93: void Uart_ini(void)
   567                           ;modbus.c: 94: {
   568  03BD                     _Uart_ini
   569                           ;	_BAUD assigned to ?a_Uart_ini+0
   570  0000                     _Uart_ini$BAUD	set	?a_Uart_ini
   571                           ;modbus.c: 95: uint BAUD;
   572  03BD  178B               	bsf	11,7
   573                           ;modbus.c: 97: TRISB |= 0b00000110;
   574  03BE  3006               	movlw	6
   575  03BF  1683               	bsf	3,5
   576  03C0  1303               	bcf	3,6	;carry unused
   577  03C1  0486               	iorwf	6	;volatile
   578                           ;modbus.c: 98: RBPU = 0;
   579  03C2  1381               	bcf	1,7
   580                           ;modbus.c: 103: switch (1)
   581  03C3  2BD5               	goto	l21
   582  03C4                     l22
   583                           ;modbus.c: 104: {
   584  03C4  30C0               	movlw	192
   585  03C5  1283               	bcf	3,5
   586  03C6  00C6               	movwf	?a_Uart_ini
   587  03C7  3012               	movlw	18
   588  03C8  2BF0               	goto	L5
   589                           ;modbus.c: 106: case 1: BAUD = 9600; break;
   590  03C9                     l24
   591                           ;modbus.c: 107: case 2: BAUD = 19200; break;
   592  03C9  1283               	bcf	3,5
   593  03CA  01C6               	clrf	?a_Uart_ini
   594  03CB  304B               	movlw	75
   595  03CC  2BF0               	goto	L5
   596  03CD                     l25
   597                           ;modbus.c: 108: case 3: BAUD = 38400; break;
   598  03CD  1283               	bcf	3,5
   599  03CE  01C6               	clrf	?a_Uart_ini
   600  03CF  3096               	movlw	150
   601  03D0  2BF0               	goto	L5
   602  03D1                     l26
   603                           ;modbus.c: 109: case 4: BAUD = 57600; break;
   604  03D1  1283               	bcf	3,5
   605  03D2  01C6               	clrf	?a_Uart_ini
   606  03D3  30E1               	movlw	225
   607  03D4  2BF0               	goto	L5
   608  03D5                     l21
   609  03D5  3001               	movlw	1
   610  03D6  00F2               	movwf	btemp+2
   611  03D7  01F3               	clrf	btemp+3
   612  03D8  2BE9               	goto	l30003
   613  03D9                     l30004
   614  03D9  0872               	movf	btemp+2,w
   615  03DA  1903               	btfsc	3,2
   616  03DB  2BC4               	goto	l22
   617  03DC  3A01               	xorlw	1
   618  03DD  1903               	btfsc	3,2
   619  03DE  2BEC               	goto	l27
   620  03DF  3A03               	xorlw	3
   621  03E0  1903               	btfsc	3,2
   622  03E1  2BC9               	goto	l24
   623  03E2  3A01               	xorlw	1
   624  03E3  1903               	btfsc	3,2
   625  03E4  2BCD               	goto	l25
   626  03E5  3A07               	xorlw	7
   627  03E6  1903               	btfsc	3,2
   628  03E7  2BD1               	goto	l26
   629  03E8  2BEC               	goto	l27
   630  03E9                     l30003
   631  03E9  0873               	movf	btemp+3,w
   632  03EA  1903               	btfsc	3,2
   633  03EB  2BD9               	goto	l30004
   634  03EC                     l27
   635                           ;modbus.c: 110: default: BAUD = 9600; break;
   636  03EC  3080               	movlw	128
   637  03ED  1283               	bcf	3,5
   638  03EE  00C6               	movwf	?a_Uart_ini
   639  03EF  3025               	movlw	37
   640  03F0                     L5
   641  03F0  00C7               	movwf	?a_Uart_ini+1
   642                           ;modbus.c: 112: SPBRG = 8000000/BAUD/16-1;
   643  03F1  0846               	movf	?a_Uart_ini,w
   644  03F2  00F4               	movwf	btemp+4
   645  03F3  0847               	movf	?a_Uart_ini+1,w
   646  03F4  00F5               	movwf	btemp+5
   647  03F5  01F6               	clrf	btemp+6
   648  03F6  01F7               	clrf	btemp+7
   649  03F7  01F0               	clrf	btemp
   650  03F8  3012               	movlw	18
   651  03F9  00F1               	movwf	btemp+1
   652  03FA  307A               	movlw	122
   653  03FB  00F2               	movwf	btemp+2
   654  03FC  3000               	movlw	0
   655  03FD  01F3               	clrf	btemp+3
   656  03FE  118A  2739         	fcall	aldiv
   657  0400  3010               	movlw	16
   658  0401  00F4               	movwf	btemp+4
   659  0402  3000               	movlw	0
   660  0403  01F5               	clrf	btemp+5
   661  0404  01F6               	clrf	btemp+6
   662  0405  01F7               	clrf	btemp+7
   663  0406  118A  2739         	fcall	aldiv
   664  0408  0370               	decf	btemp,w
   665  0409  1683               	bsf	3,5
   666  040A  0099               	movwf	25
   667                           ;modbus.c: 114: FrameOverCou = (uchar)(1000.0*4
      +                          0/BAUD);
   668  040B  1283               	bcf	3,5
   669  040C  0847               	movf	?a_Uart_ini+1,w
   670  040D  00F1               	movwf	btemp+1
   671  040E  0846               	movf	?a_Uart_ini,w
   672  040F  00F0               	movwf	btemp
   673  0410  118A  26FC         	fcall	lwtoft
   674  0412  0870               	movf	btemp,w
   675  0413  00F3               	movwf	btemp+3
   676  0414  0871               	movf	btemp+1,w
   677  0415  00F4               	movwf	btemp+4
   678  0416  0872               	movf	btemp+2,w
   679  0417  00F5               	movwf	btemp+5
   680  0418  3040               	movlw	64
   681  0419  00F0               	movwf	btemp
   682  041A  301C               	movlw	28
   683  041B  00F1               	movwf	btemp+1
   684  041C  3047               	movlw	71
   685  041D  00F2               	movwf	btemp+2
   686  041E  118A  2688         	fcall	ftdiv
   687  0420  118A  26C0  118A   	fcall	fttol
   688  0423  0870               	movf	btemp,w
   689  0424  1703               	bsf	3,6
   690  0425  00A0               	movwf	_FrameOverCou^(0+256)
   691                           ;modbus.c: 115: FrameOverCou += 1;
   692  0426  0AA0               	incf	_FrameOverCou^(0+256)
   693                           ;modbus.c: 116: TXSTA = 0b10000100;
   694  0427  3084               	movlw	-124
   695  0428  1683               	bsf	3,5
   696  0429  1303               	bcf	3,6	;carry unused
   697  042A  0098               	movwf	24	;volatile
   698                           ;modbus.c: 125: RCSTA = 0b00100000;
   699  042B  3020               	movlw	32
   700  042C  1283               	bcf	3,5
   701  042D  0098               	movwf	24	;volatile
   702                           ;modbus.c: 132: TX9 = 1;
   703  042E  1683               	bsf	3,5
   704  042F  1718               	bsf	24,6
   705                           ;modbus.c: 133: RX9 = 1;
   706  0430  1283               	bcf	3,5
   707  0431  1718               	bsf	24,6
   708                           ;modbus.c: 134: RCREG = 0;
   709  0432  019A               	clrf	26	;volatile
   710                           ;modbus.c: 136: SPEN = 1;
   711  0433  1798               	bsf	24,7
   712                           ;modbus.c: 137: TXIE = 0;
   713  0434  1683               	bsf	3,5
   714  0435  120C               	bcf	12,4
   715                           ;modbus.c: 138: TXEN = 0;
   716  0436  1298               	bcf	24,5
   717                           ;modbus.c: 139: CREN = 0;
   718  0437  1283               	bcf	3,5
   719  0438  1218               	bcf	24,4
   720                           ;modbus.c: 140: RCIE = 0;
   721  0439  1683               	bsf	3,5
   722  043A  128C               	bcf	12,5
   723                           ;modbus.c: 144: UartStruct.bits.HostStatus = 0;
   724  043B  0824               	movf	_UartStruct^(0+128),w	;volatile
   725  043C  39FC               	andlw	-4
   726  043D  00A4               	movwf	_UartStruct^(0+128)	;volatile
   727                           ;modbus.c: 146: }
   728  043E  1283               	bcf	3,5
   729  043F  0008               	return
   730                           
   731                           	psect	text3
   732                           ;modbus.c: 168: void En_Receive(void)
   733                           ;modbus.c: 169: {
   734  0C80                     _En_Receive
   735                           ;modbus.c: 170: UartStruct.bits.HostStatus = 1;
   736  0C80  1683               	bsf	3,5
   737  0C81  1303               	bcf	3,6	;carry unused
   738  0C82  0824               	movf	_UartStruct^(0+128),w	;volatile
   739  0C83  39FC               	andlw	-4
   740  0C84  3801               	iorlw	1
   741  0C85  00A4               	movwf	_UartStruct^(0+128)	;volatile
   742                           ;modbus.c: 174: CREN = 1;
   743  0C86  1283               	bcf	3,5
   744  0C87  1618               	bsf	24,4
   745                           ;modbus.c: 175: RCIE = 1;
   746  0C88  1683               	bsf	3,5
   747  0C89  168C               	bsf	12,5
   748                           ;modbus.c: 176: }
   749  0C8A  1283               	bcf	3,5
   750  0C8B  0008               	return
   751                           
   752                           	psect	text4
   753                           ;modbus.c: 179: void En_Idlesse(void)
   754                           ;modbus.c: 180: {
   755  0C6A                     _En_Idlesse
   756                           ;modbus.c: 181: UartStruct.bits.HostStatus = 0;
   757  0C6A  1683               	bsf	3,5
   758  0C6B  1303               	bcf	3,6	;carry unused
   759  0C6C  0824               	movf	_UartStruct^(0+128),w	;volatile
   760  0C6D  39FC               	andlw	-4
   761  0C6E  00A4               	movwf	_UartStruct^(0+128)	;volatile
   762                           ;modbus.c: 182: CREN = 0;
   763  0C6F  1283               	bcf	3,5
   764  0C70  1218               	bcf	24,4
   765                           ;modbus.c: 183: RCIE = 0;
   766  0C71  1683               	bsf	3,5
   767  0C72  128C               	bcf	12,5
   768                           ;modbus.c: 186: }
   769  0C73  1283               	bcf	3,5
   770  0C74  0008               	return
   771                           
   772                           	psect	text8
   773  0EAC                     _ParityBitTwo
   774                           ;	_temp_a assigned to ?a_ParityBitTwo+0
   775  0000                     _ParityBitTwo$temp_a	set	?a_ParityBitTwo
   776                           ;	_result assigned to ?a_ParityBitTwo+1
   777  0000                     _ParityBitTwo$result	set	?a_ParityBitTwo+1
   778                           ;	_tempcount assigned to ?a_ParityBitTwo+2
   779  0000                     _ParityBitTwo$tempcount	set	?a_ParityBitTwo+2
   780                           ;	_tempchar assigned to ?a_ParityBitTwo+3
   781  0000                     _ParityBitTwo$tempchar	set	?a_ParityBitTwo+3
   782                           ;modbus.c: 313: char tempchar=0, tempcount ,tem
      +                          p_a=0,result=0;
   783  0EAC  0183               	clrf	3	;select bank 0
   784  0EAD  01CD               	clrf	?a_ParityBitTwo+3
   785  0EAE  01CA               	clrf	?a_ParityBitTwo
   786  0EAF  01CB               	clrf	?a_ParityBitTwo+1
   787                           ;modbus.c: 314: tempchar = *p_data;
   788  0EB0  0849               	movf	?_ParityBitTwo+1,w
   789  0EB1  00DB               	movwf	code_ptr+1
   790  0EB2  0848               	movf	?_ParityBitTwo,w
   791  0EB3  118A  210E  158A   	fcall	string_table
   792  0EB6  00CD               	movwf	?a_ParityBitTwo+3
   793                           ;modbus.c: 316: for(tempcount = 8; tempcount > 
      +                          0; tempcount--)
   794  0EB7  3008               	movlw	8
   795  0EB8  00CC               	movwf	?a_ParityBitTwo+2
   796  0EB9                     l78
   797                           ;modbus.c: 317: {
   798                           ;modbus.c: 318: temp_a = tempchar & 0x01;
   799  0EB9  084D               	movf	?a_ParityBitTwo+3,w
   800  0EBA  3901               	andlw	1
   801  0EBB  00CA               	movwf	?a_ParityBitTwo
   802                           ;modbus.c: 319: if(1 == temp_a)
   803  0EBC  0B4A               	decfsz	?a_ParityBitTwo,w
   804  0EBD  2EBF               	goto	l81
   805                           ;modbus.c: 320: {

⌨️ 快捷键说明

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