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

📄 i2c24lc.lst

📁 上载的程序可以用于PIC单片机,也可以用于430单片机,本人原创,到至今还没有发现哪位网友想出这种办法,希望站长能多加分.
💻 LST
📖 第 1 页 / 共 4 页
字号:


HI-TECH Software PICC Macro Assembler V9.50PL2
                                                      Fri Nov 23 16:28:23 2007


     1                           	processor	16F876A
     2                           	opt	pw 79
     3                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     4                           	psect	idata_0,global,class=CODE,delta=2
     5                           	psect	text11,local,class=CODE,delta=2
     6                           	psect	text16,local,class=CODE,delta=2
     7                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
     8                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19                           
    20                           	psect	rdata_0
    21  0035                     _write_table
    22  0035                     	ds	1
    23  0036                     	ds	1
    24  0037                     	ds	1
    25  0038                     	ds	1
    26  0039                     	ds	1
    27  003A                     	ds	1
    28  003B                     	ds	1
    29  003C                     	ds	1
    30  003D                     _read_Buff
    31  003D                     	ds	1
    32  003E                     	ds	7
    33  0045                     _read_Buff1
    34  0045                     	ds	1
    35  0046                     	ds	1
    36  0047                     	ds	1
    37  0048                     	ds	1
    38  0049                     	ds	1
    39  004A                     	ds	1
    40  004B                     	ds	1
    41  004C                     	ds	1
    42                           
    43                           	psect	idata_0
    44  07E8  3401               	retlw	1
    45  07E9  3402               	retlw	2
    46  07EA  3403               	retlw	3
    47  07EB  3404               	retlw	4
    48  07EC  3405               	retlw	5
    49  07ED  3406               	retlw	6
    50  07EE  3407               	retlw	7
    51  07EF  3408               	retlw	8
    52  07F0  3400               	retlw	0
    53  07F1  3400               	retlw	0
    54  07F2  3400               	retlw	0
    55  07F3  3400               	retlw	0
    56  07F4  3400               	retlw	0
    57  07F5  3400               	retlw	0
    58  07F6  3400               	retlw	0
    59  07F7  3400               	retlw	0
    60  07F8  3409               	retlw	9
    61  07F9  3408               	retlw	8
    62  07FA  3407               	retlw	7
    63  07FB  3406               	retlw	6
    64  07FC  3405               	retlw	5
    65  07FD  3404               	retlw	4
    66  07FE  3403               	retlw	3
    67  07FF  3402               	retlw	2
    68                           
    69                           	psect	text11
    70  05EF                     _data_check
    71                           ;	_Data_REF assigned to ?a_data_check+0
    72  0000                     _data_check$Data_REF	set	?a_data_check
    73                           ;	_chk assigned to ?a_data_check+1
    74  0000                     _data_check$chk	set	?a_data_check+1
    75                           ;_Data_REF stored from w
    76  05EF  0183               	clrf	3	;select bank 0
    77  05F0  00A8               	movwf	?a_data_check
    78                           ;I2C24LC.C: 263: unsigned char data_check(unsig
      +                          ned char *Data_REF, unsigned char *Data_CHK,
    79  05F1  2E09               	goto	l56
    80  05F2                     l57
    81                           ;I2C24LC.C: 267: {
    82  05F2  0827               	movf	?_data_check+1,w
    83  05F3  0726               	addwf	?_data_check,w
    84  05F4  00F0               	movwf	btemp
    85  05F5  0370               	decf	btemp,w
    86  05F6  0084               	movwf	4
    87  05F7  1383               	bcf	3,7
    88  05F8  0800               	movf	0,w
    89  05F9  00F1               	movwf	btemp+1
    90  05FA  0827               	movf	?_data_check+1,w
    91  05FB  0728               	addwf	?a_data_check,w
    92  05FC  00F0               	movwf	btemp
    93  05FD  0370               	decf	btemp,w
    94  05FE  0084               	movwf	4
    95  05FF  1383               	bcf	3,7
    96  0600  0800               	movf	0,w
    97  0601  0671               	xorwf	btemp+1,w
    98  0602  1D03               	btfss	3,2
    99  0603  2E07               	goto	l59
   100                           ;I2C24LC.C: 269: { chk = 0x00;
   101  0604  01A9               	clrf	?a_data_check+1
   102                           ;I2C24LC.C: 270: n--;
   103  0605  03A7               	decf	?_data_check+1
   104                           ;I2C24LC.C: 271: }
   105  0606  2E09               	goto	l56
   106  0607                     l59
   107                           ;I2C24LC.C: 272: else
   108  0607  01A9               	clrf	?a_data_check+1
   109  0608  0AA9               	incf	?a_data_check+1
   110                           ;I2C24LC.C: 274: continue;
   111  0609                     l56
   112  0609  1283               	bcf	3,5
   113  060A  1303               	bcf	3,6	;carry unused
   114  060B  08A7               	movf	?_data_check+1
   115  060C  1D03               	btfss	3,2
   116  060D  2DF2               	goto	l57
   117                           ;I2C24LC.C: 275: }
   118  060E  0829               	movf	?a_data_check+1,w
   119                           ;I2C24LC.C: 278: }
   120  060F  0008               	return	;uses W
   121  0610                     _delay
   122                           ;	_k assigned to ?a_delay+0
   123  0000                     _delay$k	set	?a_delay
   124                           ;I2C24LC.C: 253: void delay(unsigned int n)
   125  0610  0183               	clrf	3	;select bank 0
   126  0611  01A8               	clrf	?a_delay
   127  0612  01A9               	clrf	?a_delay+1
   128  0613  2E17               	goto	l54
   129  0614                     l51
   130  0614  0AA8               	incf	?a_delay
   131  0615  1903               	btfsc	3,2
   132  0616  0AA9               	incf	?a_delay+1
   133  0617                     l54
   134  0617  0827               	movf	?_delay+1,w
   135  0618  0229               	subwf	?a_delay+1,w
   136  0619  1D03               	btfss	3,2
   137  061A  2E1D               	goto	u185
   138  061B  0826               	movf	?_delay,w
   139  061C  0228               	subwf	?a_delay,w
   140  061D                     u185
   141  061D  1803               	btfsc	3,0
   142  061E  0008               	return
   143  061F  2E14               	goto	l51
   144  0620                     _I2C_WR
   145                           ;	_b assigned to ?a_I2C_WR+0
   146  0000                     _I2C_WR$b	set	?a_I2C_WR
   147                           ;	_a assigned to ?a_I2C_WR+2
   148  0000                     _I2C_WR$a	set	?a_I2C_WR+2
   149                           ;I2C24LC.C: 306: void I2C_WR(void)
   150  0620  0183               	clrf	3	;select bank 0
   151  0621  01A8               	clrf	?a_I2C_WR+2
   152  0622  01A9               	clrf	?a_I2C_WR+3
   153  0623                     l71
   154                           ;I2C24LC.C: 311: {
   155  0623  0829               	movf	?a_I2C_WR+3,w
   156  0624  00F1               	movwf	btemp+1
   157  0625  0828               	movf	?a_I2C_WR+2,w
   158  0626  00F0               	movwf	btemp
   159  0627  1003               	bcf	3,0
   160  0628  0DF0               	rlf	btemp
   161  0629  0DF1               	rlf	btemp+1
   162  062A  1003               	bcf	3,0
   163  062B  0DF0               	rlf	btemp
   164  062C  0DF1               	rlf	btemp+1
   165  062D  1003               	bcf	3,0
   166  062E  0DF0               	rlf	btemp
   167  062F  0DF1               	rlf	btemp+1
   168  0630  0870               	movf	btemp,w
   169  0631  00A6               	movwf	?a_I2C_WR
   170  0632  0871               	movf	btemp+1,w
   171  0633  00A7               	movwf	?a_I2C_WR+1
   172                           ;I2C24LC.C: 314: iic_check=IIC(write_table,8,b,
      +                          (0xA0|0x00));
   173  0634  3008               	movlw	8
   174  0635  00AA               	movwf	?_IIC
   175  0636  0826               	movf	?a_I2C_WR,w
   176  0637  00AB               	movwf	?_IIC+1
   177  0638  0827               	movf	?a_I2C_WR+1,w
   178  0639  00AC               	movwf	?_IIC+2
   179  063A  30A0               	movlw	-96
   180  063B  00AD               	movwf	?_IIC+3
   181  063C  3035               	movlw	_write_table
   182  063D  26E7  120A  118A   	fcall	_IIC
   183  0640  00A0               	movwf	_iic_check
   184  0641  0AA8               	incf	?a_I2C_WR+2
   185  0642  1903               	btfsc	3,2
   186  0643  0AA9               	incf	?a_I2C_WR+3
   187  0644  3001               	movlw	1
   188  0645  0229               	subwf	?a_I2C_WR+3,w
   189  0646  3096               	movlw	150
   190  0647  1903               	btfsc	3,2
   191  0648  0228               	subwf	?a_I2C_WR+2,w
   192  0649  1803               	btfsc	3,0
   193  064A  0008               	return
   194  064B  2E23               	goto	l71
   195  064C                     _SomeNOP
   196                           ;	_hang assigned to ?a_SomeNOP+0
   197  0000                     _SomeNOP$hang	set	?a_SomeNOP
   198                           ;I2C24LC.C: 57: SomeNOP()
   199  064C  3002               	movlw	2
   200  064D  0183               	clrf	3	;select bank 0
   201  064E  00B4               	movwf	?a_SomeNOP
   202                           ;I2C24LC.C: 59: while(hang--);
   203  064F                     l6
   204  064F  03B4               	decf	?a_SomeNOP
   205  0650  0F34               	incfsz	?a_SomeNOP,w
   206  0651  2E4F               	goto	l6
   207  0652  0008               	return
   208  0653                     _I2CStart
   209                           ;I2C24LC.C: 65: void I2CStart(void)
   210  0653  138B               	bcf	11,7
   211                           ;I2C24LC.C: 68: TRISC &= ~0B00001000;
   212  0654  1683               	bsf	3,5
   213  0655  1303               	bcf	3,6	;carry unused
   214  0656  1187               	bcf	7,3	;volatile
   215                           ;I2C24LC.C: 69: TRISC &= ~0B00010000;
   216  0657  1207               	bcf	7,4	;volatile
   217                           ;I2C24LC.C: 70: PORTC=(pc_out|= 0B00010000);
   218  0658  1283               	bcf	3,5
   219  0659  1623               	bsf	_pc_out,4
   220  065A  0823               	movf	_pc_out,w
   221  065B  0087               	movwf	7	;volatile
   222                           ;I2C24LC.C: 72: PORTC =(pc_out|= 0B00001000);
   223  065C  15A3               	bsf	_pc_out,3
   224  065D  0823               	movf	_pc_out,w
   225  065E  0087               	movwf	7	;volatile
   226                           ;I2C24LC.C: 73: SomeNOP(); SomeNOP();
   227  065F  264C               	fcall	_SomeNOP
   228  0660  264C               	fcall	_SomeNOP
   229                           ;I2C24LC.C: 74: PORTC=(pc_out&= ~0B00010000);
   230  0661  1223               	bcf	_pc_out,4
   231  0662  0823               	movf	_pc_out,w
   232  0663  0087               	movwf	7	;volatile
   233                           ;I2C24LC.C: 75: SomeNOP(); SomeNOP();
   234  0664  264C               	fcall	_SomeNOP
   235  0665  264C               	fcall	_SomeNOP
   236                           ;I2C24LC.C: 76: PORTC =(pc_out&= ~0B00001000);
   237  0666  11A3               	bcf	_pc_out,3
   238  0667  0823               	movf	_pc_out,w
   239  0668  0087               	movwf	7	;volatile
   240                           ;I2C24LC.C: 77: }
   241  0669  0008               	return	;W free
   242  066A                     _I2CStop
   243                           ;I2C24LC.C: 80: void I2CStop(void)
   244  066A  0183               	clrf	3	;select bank 0
   245  066B  11A3               	bcf	_pc_out,3
   246  066C  0823               	movf	_pc_out,w
   247  066D  0087               	movwf	7	;volatile
   248                           ;I2C24LC.C: 83: PORTC=(pc_out&= ~0B00010000);
   249  066E  1223               	bcf	_pc_out,4
   250  066F  0823               	movf	_pc_out,w
   251  0670  0087               	movwf	7	;volatile
   252                           ;I2C24LC.C: 84: SomeNOP();
   253  0671  264C               	fcall	_SomeNOP
   254                           ;I2C24LC.C: 85: PORTC =(pc_out|= 0B00001000);
   255  0672  15A3               	bsf	_pc_out,3
   256  0673  0823               	movf	_pc_out,w
   257  0674  0087               	movwf	7	;volatile
   258                           ;I2C24LC.C: 86: SomeNOP();
   259  0675  264C               	fcall	_SomeNOP
   260                           ;I2C24LC.C: 87: PORTC=(pc_out|= 0B00010000);
   261  0676  1623               	bsf	_pc_out,4
   262  0677  0823               	movf	_pc_out,w
   263  0678  0087               	movwf	7	;volatile

⌨️ 快捷键说明

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