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

📄 uart.lst

📁 Microchip 公司16F648 芯片实现RS485通讯,符合Modbus通讯协议,可用PICC环境编译.文件完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-90508                            Thu Nov  8 13:04:20 2007

Licensed to: ONE
     1                           	processor	16F648A
     2                           	opt	pw 79
     3                           	psect	__Z90508RS_,global,delta=1
     4                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     5                           	psect	idata_0,global,class=CODE,delta=2
     6                           	psect	text0,local,class=CODE,delta=2
     7                           	psect	text1,local,class=CODE,delta=2
     8                           	psect	text2,local,class=CODE,delta=2
     9                           	psect	text3,local,class=CODE,delta=2
    10                           	psect	text8,local,class=CODE,delta=2
    11                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    12                           	psect	rbss_1,global,class=BANK1,space=1,delta=
      +                          1
    13                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24                           
    25                           	psect	__Z90508RS_
    26  0000'                    
    27  0000'                    
    28                           
    29                           	psect	rdata_0
    30  0000'                    _LocalAddr
    31  0000'                    	ds	1
    32  0000                     _ClearBus$ClearLength	set	?_ClearBus
    33                           
    34                           	psect	idata_0
    35  0000' 3401               	retlw	1
    36                           
    37                           	psect	text0
    38  0000'                    _ClearBus
    39                           ;	_p_cleararray assigned to ?a_ClearBus+0
    40  0000                     _ClearBus$p_cleararray	set	?a_ClearBus
    41                           ;_p_cleararray stored from w
    42  0000' 0183               	clrf	3	;select bank 0
    43  0001' 0080'              	movwf	?a_ClearBus
    44  0002'                    l8
    45                           ;uart.c: 32: do
    46                           ;uart.c: 33: {
    47  0002' 0800'              	movf	?a_ClearBus,w
    48  0003' 0084               	movwf	4
    49  0004' 1383               	bcf	3,7
    50  0005' 0180               	clrf	0
    51  0006' 0A80'              	incf	?a_ClearBus
    52                           ;uart.c: 35: }
    53  0007' 0B80'              	decfsz	?_ClearBus
    54  0008' 2800'              	goto	l8
    55  0009' 0008               	return
    56                           
    57                           	psect	text1
    58                           ;uart.c: 41: void Uart_init(void)
    59                           ;uart.c: 42: {
    60  0000'                    _Uart_init
    61                           ;	_BAUD assigned to ?a_Uart_init+0
    62  0000                     _Uart_init$BAUD	set	?a_Uart_init
    63                           ;uart.c: 43: uint BAUD;
    64  0000' 3006               	movlw	6
    65  0001' 1683               	bsf	3,5
    66  0002' 1303               	bcf	3,6	;carry unused
    67  0003' 0486               	iorwf	6	;volatile
    68                           ;uart.c: 45: RBPU = 0;
    69  0004' 1381               	bcf	1,7
    70                           ;uart.c: 46: switch (1)
    71  0005' 2800'              	goto	l11
    72  0006'                    l12
    73                           ;uart.c: 47: {
    74  0006' 30C0               	movlw	192
    75  0007' 1283               	bcf	3,5
    76  0008' 0080'              	movwf	?a_Uart_init
    77  0009' 3012               	movlw	18
    78  000A' 2800'              	goto	L5
    79  000B'                    l13
    80                           ;uart.c: 49: case 1: BAUD = 9600; break;
    81  000B' 3080               	movlw	128
    82  000C' 1283               	bcf	3,5
    83  000D' 0080'              	movwf	?a_Uart_init
    84  000E' 3025               	movlw	37
    85  000F' 2800'              	goto	L5
    86  0010'                    l14
    87                           ;uart.c: 50: case 2: BAUD = 19200; break;
    88  0010' 1283               	bcf	3,5
    89  0011' 0180'              	clrf	?a_Uart_init
    90  0012' 304B               	movlw	75
    91  0013' 2800'              	goto	L5
    92                           ;uart.c: 51: case 3: BAUD = 38400; break;
    93  0014'                    l16
    94                           ;uart.c: 52: case 4: BAUD = 57600; break;
    95  0014' 1283               	bcf	3,5
    96  0015' 0180'              	clrf	?a_Uart_init
    97  0016' 30E1               	movlw	225
    98  0017' 2800'              	goto	L5
    99  0018'                    l11
   100  0018' 3001               	movlw	1
   101  0019' 0082'              	movwf	btemp+2
   102  001A' 0183'              	clrf	btemp+3
   103  001B' 2800'              	goto	l30003
   104  001C'                    l30004
   105  001C' 0802'              	movf	btemp+2,w
   106  001D' 1903               	btfsc	3,2
   107  001E' 2800'              	goto	l12
   108  001F' 3A01               	xorlw	1
   109  0020' 1903               	btfsc	3,2
   110  0021' 2800'              	goto	l13
   111  0022' 3A03               	xorlw	3
   112  0023' 1903               	btfsc	3,2
   113  0024' 2800'              	goto	l14
   114  0025' 3A01               	xorlw	1
   115  0026' 1903               	btfsc	3,2
   116  0027' 2800'              	goto	l17
   117  0028' 3A07               	xorlw	7
   118  0029' 1903               	btfsc	3,2
   119  002A' 2800'              	goto	l16
   120  002B' 2800'              	goto	l17
   121  002C'                    l30003
   122  002C' 0803'              	movf	btemp+3,w
   123  002D' 1903               	btfsc	3,2
   124  002E' 2800'              	goto	l30004
   125  002F'                    l17
   126                           ;uart.c: 53: default: BAUD = 38400; break;
   127  002F' 1283               	bcf	3,5
   128  0030' 0180'              	clrf	?a_Uart_init
   129  0031' 3096               	movlw	150
   130  0032'                    L5
   131  0032' 0081'              	movwf	?a_Uart_init+1
   132                           ;uart.c: 55: SPBRG = 8000000/BAUD/16-1;
   133  0033' 0800'              	movf	?a_Uart_init,w
   134  0034' 0084'              	movwf	btemp+4
   135  0035' 0801'              	movf	?a_Uart_init+1,w
   136  0036' 0085'              	movwf	btemp+5
   137  0037' 0186'              	clrf	btemp+6
   138  0038' 0187'              	clrf	btemp+7
   139  0039' 0180'              	clrf	btemp
   140  003A' 3012               	movlw	18
   141  003B' 0081'              	movwf	btemp+1
   142  003C' 307A               	movlw	122
   143  003D' 0082'              	movwf	btemp+2
   144  003E' 3000               	movlw	0
   145  003F' 0183'              	clrf	btemp+3
   146  0040' 118A' 2000'        	fcall	aldiv
   147  0042' 3010               	movlw	16
   148  0043' 0084'              	movwf	btemp+4
   149  0044' 3000               	movlw	0
   150  0045' 0185'              	clrf	btemp+5
   151  0046' 0186'              	clrf	btemp+6
   152  0047' 0187'              	clrf	btemp+7
   153  0048' 118A' 2000'        	fcall	aldiv
   154  004A' 0300'              	decf	btemp,w
   155  004B' 1683               	bsf	3,5
   156  004C' 0099               	movwf	25
   157                           ;uart.c: 56: FrameOverCou = (uchar)(1000.0*40/B
      +                          AUD);
   158  004D' 1283               	bcf	3,5
   159  004E' 0801'              	movf	?a_Uart_init+1,w
   160  004F' 0081'              	movwf	btemp+1
   161  0050' 0800'              	movf	?a_Uart_init,w
   162  0051' 0080'              	movwf	btemp
   163  0052' 118A' 2000'        	fcall	lwtoft
   164  0054' 0800'              	movf	btemp,w
   165  0055' 0083'              	movwf	btemp+3
   166  0056' 0801'              	movf	btemp+1,w
   167  0057' 0084'              	movwf	btemp+4
   168  0058' 0802'              	movf	btemp+2,w
   169  0059' 0085'              	movwf	btemp+5
   170  005A' 3040               	movlw	64
   171  005B' 0080'              	movwf	btemp
   172  005C' 301C               	movlw	28
   173  005D' 0081'              	movwf	btemp+1
   174  005E' 3047               	movlw	71
   175  005F' 0082'              	movwf	btemp+2
   176  0060' 118A' 2000'        	fcall	ftdiv
   177  0062' 118A' 2000' 118A'  	fcall	fttol
   178  0065' 0800'              	movf	btemp,w
   179  0066' 0080'              	movwf	_FrameOverCou
   180                           ;uart.c: 57: FrameOverCou += 1;
   181  0067' 0A80'              	incf	_FrameOverCou
   182                           ;uart.c: 58: TXSTA = 0b10000100;
   183  0068' 3084               	movlw	-124
   184  0069' 1683               	bsf	3,5
   185  006A' 0098               	movwf	24	;volatile
   186                           ;uart.c: 59: RCSTA = 0b00100000;
   187  006B' 3020               	movlw	32
   188  006C' 1283               	bcf	3,5
   189  006D' 0098               	movwf	24	;volatile
   190                           ;uart.c: 60: RX9 = 1;
   191  006E' 1718               	bsf	24,6
   192                           ;uart.c: 61: TX9 = 1;
   193  006F' 1683               	bsf	3,5
   194  0070' 1718               	bsf	24,6
   195                           ;uart.c: 63: SPEN = 1;
   196  0071' 1283               	bcf	3,5
   197  0072' 1798               	bsf	24,7
   198                           ;uart.c: 66: CREN = 1;
   199  0073' 1618               	bsf	24,4
   200                           ;uart.c: 67: RCIE = 1;
   201  0074' 1683               	bsf	3,5
   202  0075' 168C               	bsf	12,5
   203                           ;uart.c: 70: receCount = 0;
   204  0076' 0180'              	clrf	_receCount^(0+128)	;volatile
   205                           ;uart.c: 71: }
   206  0077' 1283               	bcf	3,5
   207  0078' 0008               	return
   208                           
   209                           	psect	text2
   210                           ;uart.c: 75: void beginSend(void)
   211                           ;uart.c: 76: {
   212  0000'                    _beginSend
   213                           ;uart.c: 78: sendPosi = 0;
   214  0000' 1683               	bsf	3,5
   215  0001' 1303               	bcf	3,6	;carry unused
   216  0002' 0180'              	clrf	_sendPosi^(0+128)	;volatile
   217                           ;uart.c: 79: if(sendCount > 1)
   218  0003' 3002               	movlw	2
   219  0004' 0200'              	subwf	_sendCount^(0+128),w	;volatile
   220  0005' 1803               	btfsc	3,0
   221                           ;uart.c: 80: sendCount--;
   222  0006' 0380'              	decf	_sendCount^(0+128)	;volatile
   223                           ;uart.c: 82: TXREG = sendBuf[0];
   224  0007' 0800'              	movf	_sendBuf^(0+128),w
   225  0008' 1283               	bcf	3,5
   226  0009' 0099               	movwf	25	;volatile
   227                           ;uart.c: 83: TXIE = 1;
   228  000A' 1683               	bsf	3,5
   229  000B' 160C               	bsf	12,4
   230                           ;uart.c: 84: TXEN = 1;
   231  000C' 1698               	bsf	24,5
   232                           ;uart.c: 90: }
   233  000D' 1283               	bcf	3,5
   234  000E' 0008               	return
   235  000F'                    _CRC16
   236                           ;	_data assigned to ?a_CRC16+0
   237  0000                     _CRC16$data	set	?a_CRC16
   238                           ;	_CH assigned to ?a_CRC16+1
   239  0000                     _CRC16$CH	set	?a_CRC16+1
   240                           ;	_CL assigned to ?a_CRC16+2
   241  0000                     _CRC16$CL	set	?a_CRC16+2
   242                           ;	_SaveHi assigned to ?a_CRC16+3
   243  0000                     _CRC16$SaveHi	set	?a_CRC16+3
   244                           ;	_SaveLo assigned to ?a_CRC16+4
   245  0000                     _CRC16$SaveLo	set	?a_CRC16+4
   246                           ;	_CRC16Hi assigned to ?a_CRC16+5
   247  0000                     _CRC16$CRC16Hi	set	?a_CRC16+5
   248                           ;	_CRC16Lo assigned to ?a_CRC16+6
   249  0000                     _CRC16$CRC16Lo	set	?a_CRC16+6
   250                           ;	_Flag assigned to ?a_CRC16+7
   251  0000                     _CRC16$Flag	set	?a_CRC16+7
   252                           ;	_i assigned to ?a_CRC16+9
   253  0000                     _CRC16$i	set	?a_CRC16+9
   254                           ;_data stored from w

⌨️ 快捷键说明

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