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

📄 slavewr.lst

📁 该程序是pic单片机程序
💻 LST
📖 第 1 页 / 共 4 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-42044                            Mon Apr 24 21:02:14 2006

Licensed to: ONE
     1                           	processor	16F873A
     2                           	opt	pw 79
     3                           	psect	__Z42044RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text4,local,class=CODE,delta=2
     6                           	psect	text5,local,class=CODE,delta=2
     7                           	psect	text7,local,class=CODE,delta=2
     8                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
     9                           	psect	nvram,global,class=BANK0,space=1,delta=1
    10                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21                           
    22                           	psect	__Z42044RS_
    23  00C8                     
    24  00C8                     
    25                           
    26                           	psect	text0
    27  0EBC                     _Slave_Transmit
    28                           ;	_senddata assigned to ?a_Slave_Transmit+0
    29  0000                     _Slave_Transmit$senddata	set	?a_Slave_Transmit
    30                           ;_senddata stored from w
    31  0EBC  0183               	clrf	3	;select bank 0
    32  0EBD  00B8               	movwf	?a_Slave_Transmit
    33                           ;slaveWR.c: 9: while(STAT_BF==1)
    34  0EBE                     l2
    35                           ;slaveWR.c: 10: {
    36  0EBE  1683               	bsf	3,5
    37  0EBF  1303               	bcf	3,6	;carry unused
    38  0EC0  1C14               	btfss	20,0
    39  0EC1  2EC4               	goto	l5
    40  0EC2  2EBE               	goto	l2
    41                           ;slaveWR.c: 14: while(WCOL==1)
    42  0EC3                     l6
    43                           ;slaveWR.c: 15: {
    44  0EC3  1394               	bcf	20,7
    45  0EC4                     l5
    46                           ;slaveWR.c: 17: }
    47  0EC4  1283               	bcf	3,5
    48  0EC5  1B94               	btfsc	20,7
    49  0EC6  2EC3               	goto	l6
    50                           ;slaveWR.c: 18: SSPBUF=senddata;
    51  0EC7  0838               	movf	?a_Slave_Transmit,w
    52  0EC8  0093               	movwf	19	;volatile
    53                           ;slaveWR.c: 20: CKP=1;
    54  0EC9  1614               	bsf	20,4
    55                           ;slaveWR.c: 22: }
    56  0ECA  0008               	return
    57  0ECB                     _Write_INTERNAL_EEPROM
    58                           ;	_EEPROM_Address assigned to ?a_Write_INTERNAL
      +                          _EEPROM+0
    59  0000                     _Write_INTERNAL_EEPROM$EEPROM_Address	set	?a_Wr
      +                          ite_INTERNAL_EEPROM
    60                           ;_EEPROM_Address stored from w
    61  0ECB  0183               	clrf	3	;select bank 0
    62  0ECC  00B9               	movwf	?a_Write_INTERNAL_EEPROM
    63                           ;slaveWR.c: 50: EEADR=EEPROM_Address;
    64  0ECD  1703               	bsf	3,6
    65  0ECE  008D               	movwf	13	;volatile
    66                           ;slaveWR.c: 51: EEDATA=EEPROM_Data;
    67  0ECF  1303               	bcf	3,6	;carry unused
    68  0ED0  0838               	movf	?_Write_INTERNAL_EEPROM,w
    69  0ED1  1703               	bsf	3,6
    70  0ED2  008C               	movwf	12	;volatile
    71                           ;slaveWR.c: 52: EEPGD=0;
    72  0ED3  1683               	bsf	3,5
    73  0ED4  138C               	bcf	12,7
    74                           ;slaveWR.c: 53: WREN=1;
    75  0ED5  150C               	bsf	12,2
    76                           ;slaveWR.c: 54: GIE=0;
    77  0ED6  138B               	bcf	11,7
    78                           ;slaveWR.c: 55: EECON2=0X55;
    79  0ED7  3055               	movlw	85
    80  0ED8  008D               	movwf	13	;volatile
    81                           ;slaveWR.c: 56: EECON2=0XAA;
    82  0ED9  30AA               	movlw	-86
    83  0EDA  008D               	movwf	13	;volatile
    84                           ;slaveWR.c: 57: WR=1;
    85  0EDB  148C               	bsf	12,1
    86                           ;slaveWR.c: 58: GIE=1;
    87  0EDC  178B               	bsf	11,7
    88                           ;slaveWR.c: 59: WREN=0;
    89  0EDD  110C               	bcf	12,2
    90                           ;slaveWR.c: 60: while(WR==1)
    91  0EDE                     l14
    92                           ;slaveWR.c: 61: {
    93  0EDE  188C               	btfsc	12,1
    94  0EDF  2EDE               	goto	l14
    95                           ;slaveWR.c: 66: }
    96  0EE0  0183               	clrf	3	;select bank 0
    97  0EE1  0008               	return
    98                           ;slaveWR.c: 37: unsigned char Read_INTERNAL_EEP
      +                          ROM(unsigned char EEPROM_Address)
    99                           ;slaveWR.c: 38: {
   100  0EE2                     _Read_INTERNAL_EEPROM
   101                           ;	_EEPROM_Address assigned to ?a_Read_INTERNAL_
      +                          EEPROM+0
   102  0000                     _Read_INTERNAL_EEPROM$EEPROM_Address	set	?a_Rea
      +                          d_INTERNAL_EEPROM
   103                           ;	_eepromdata assigned to ?a_Read_INTERNAL_EEPR
      +                          OM+1
   104  0000                     _Read_INTERNAL_EEPROM$eepromdata	set	?a_Read_IN
      +                          TERNAL_EEPROM+1
   105                           ;_EEPROM_Address stored from w
   106  0EE2  0183               	clrf	3	;select bank 0
   107  0EE3  00B8               	movwf	?a_Read_INTERNAL_EEPROM
   108                           ;slaveWR.c: 39: unsigned char eepromdata;
   109  0EE4  1703               	bsf	3,6
   110  0EE5  008D               	movwf	13	;volatile
   111                           ;slaveWR.c: 41: EEPGD=0;
   112  0EE6  1683               	bsf	3,5
   113  0EE7  138C               	bcf	12,7
   114                           ;slaveWR.c: 42: RD=1;
   115  0EE8  140C               	bsf	12,0
   116                           ;slaveWR.c: 43: eepromdata=EEDATA;
   117  0EE9  1283               	bcf	3,5
   118  0EEA  080C               	movf	12,w	;volatile
   119  0EEB  1303               	bcf	3,6	;carry unused
   120  0EEC  00B9               	movwf	?a_Read_INTERNAL_EEPROM+1
   121                           ;slaveWR.c: 46: }
   122  0EED  0008               	return
   123                           ;slaveWR.c: 48: void Write_INTERNAL_EEPROM(unsi
      +                          gned char EEPROM_Address,unsigned char EEPROM_D
      +                          ata)
   124                           ;slaveWR.c: 49: {
   125                           ;       param _EEPROM_Data assigned to ?_Write_
      +                          INTERNAL_EEPROM+0
   126  0000                     _Write_INTERNAL_EEPROM$EEPROM_Data	set	?_Write_
      +                          INTERNAL_EEPROM
   127                           ;slaveWR.c: 24: unsigned char Slave_Receive()
   128                           ;slaveWR.c: 25: {
   129  0EEE                     _Slave_Receive
   130                           ;	_receivedata assigned to ?a_Slave_Receive+0
   131  0000                     _Slave_Receive$receivedata	set	?a_Slave_Receive
   132                           ;slaveWR.c: 26: unsigned char receivedata;
   133  0EEE  2EF0               	goto	l9
   134  0EEF                     l10
   135                           ;slaveWR.c: 28: {
   136  0EEF  1314               	bcf	20,6
   137  0EF0                     l9
   138                           ;slaveWR.c: 30: }
   139  0EF0  1283               	bcf	3,5
   140  0EF1  1303               	bcf	3,6	;carry unused
   141  0EF2  1B14               	btfsc	20,6
   142  0EF3  2EEF               	goto	l10
   143                           ;slaveWR.c: 32: receivedata=SSPBUF;
   144  0EF4  0813               	movf	19,w	;volatile
   145  0EF5  00B8               	movwf	?a_Slave_Receive
   146                           ;slaveWR.c: 35: }
   147  0EF6  0008               	return
   148                           ;slaveWR.c: 101: void SSP_Handle()
   149                           ;slaveWR.c: 102: {
   150  0EF7                     _SSP_Handle
   151                           ;	_S_temp assigned to ?a_SSP_Handle+0
   152  0000                     _SSP_Handle$S_temp	set	?a_SSP_Handle
   153                           ;slaveWR.c: 103: unsigned char S_temp;
   154  0EF7  1683               	bsf	3,5
   155  0EF8  1303               	bcf	3,6	;carry unused
   156  0EF9  0814               	movf	20,w	;volatile
   157  0EFA  393D               	andlw	61
   158  0EFB  1283               	bcf	3,5
   159  0EFC  00B7               	movwf	?a_SSP_Handle
   160                           ;slaveWR.c: 109: if(Scommand2==0xF0)
   161  0EFD  0830               	movf	_Scommand2,w
   162  0EFE  3AF0               	xorlw	-16
   163  0EFF  1D03               	btfss	3,2
   164  0F00  2FEF               	goto	l25
   165                           ;slaveWR.c: 110: {
   166  0F01  3031               	movlw	49
   167  0F02  00B7               	movwf	?a_SSP_Handle
   168                           ;slaveWR.c: 112: Scommand2=0x0F;
   169  0F03  300F               	movlw	15
   170  0F04  00B0               	movwf	_Scommand2
   171                           ;slaveWR.c: 113: }
   172  0F05  2FEF               	goto	l25
   173  0F06                     l26
   174                           ;slaveWR.c: 117: {case 0x09:
   175                           ;slaveWR.c: 118: Saddress=SSPBUF;
   176  0F06  0813               	movf	19,w	;volatile
   177  0F07  00AE               	movwf	_Saddress
   178                           ;slaveWR.c: 120: break;
   179  0F08  0008               	return
   180  0F09                     l27
   181                           ;slaveWR.c: 121: case 0x29:
   182                           ;slaveWR.c: 122: Scommand=Slave_Receive();
   183  0F09  26EE               	fcall	_Slave_Receive
   184  0F0A  00AF               	movwf	_Scommand
   185                           ;slaveWR.c: 123: if ((Scommand & 0x10)==0x10)
   186  0F0B  1A2F               	btfsc	_Scommand,4
   187  0F0C  2F36               	goto	l30
   188  0F0D  2F56               	goto	l28
   189                           ;slaveWR.c: 124: {
   190  0F0E                     l31
   191                           ;slaveWR.c: 126: { case 0x10: SendData=Read_INT
      +                          ERNAL_EEPROM(0x00);
   192  0F0E  3000               	movlw	0
   193  0F0F  26E2               	fcall	_Read_INTERNAL_EEPROM
   194  0F10  00B2               	movwf	_SendData
   195                           ;slaveWR.c: 127: if (SendData != 0)
   196  0F11  08B2               	movf	_SendData
   197  0F12  1903               	btfsc	3,2
   198  0F13  2F56               	goto	l28
   199                           ;slaveWR.c: 128: {
   200  0F14  01B8               	clrf	?_Write_INTERNAL_EEPROM
   201  0F15  3000               	movlw	0
   202  0F16  26CB               	fcall	_Write_INTERNAL_EEPROM
   203                           ;slaveWR.c: 130: }
   204  0F17  2F56               	goto	l28
   205  0F18                     l33
   206                           ;slaveWR.c: 132: case 0x11: SendData=Read_INTER
      +                          NAL_EEPROM(0x01); break;
   207  0F18  3001               	movlw	1
   208  0F19  2F33               	goto	L13
   209  0F1A                     l34
   210                           ;slaveWR.c: 133: case 0x12: SendData=Read_INTER
      +                          NAL_EEPROM(0x02); break;
   211  0F1A  3002               	movlw	2
   212  0F1B  2F33               	goto	L13
   213  0F1C                     l35
   214                           ;slaveWR.c: 134: case 0x13: SendData=Read_INTER
      +                          NAL_EEPROM(0x03); break;
   215  0F1C  3003               	movlw	3
   216  0F1D  2F33               	goto	L13
   217  0F1E                     l36
   218                           ;slaveWR.c: 135: case 0x14: SendData=Read_INTER
      +                          NAL_EEPROM(0x04); break;
   219  0F1E  3004               	movlw	4
   220  0F1F  2F33               	goto	L13
   221  0F20                     l37
   222                           ;slaveWR.c: 136: case 0x15: SendData=Read_INTER
      +                          NAL_EEPROM(0x05); break;
   223  0F20  3005               	movlw	5
   224  0F21  2F33               	goto	L13
   225  0F22                     l38
   226                           ;slaveWR.c: 137: case 0x16: SendData=Read_INTER
      +                          NAL_EEPROM(0x06); break;
   227  0F22  3006               	movlw	6
   228  0F23  2F33               	goto	L13

⌨️ 快捷键说明

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