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

📄 iic.lst

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


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

Licensed to: ONE
     1                           	processor	16F873A
     2                           	opt	pw 79
     3                           	psect	__Z42044RS_,global,delta=1
     4                           	psect	text2,local,class=CODE,delta=2
     5                           	psect	text4,local,class=CODE,delta=2
     6                           	psect	text10,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	__Z42044RS_
    21  00C8                     
    22  00C8                     
    23                           
    24                           	psect	text2
    25                           ;iic.c: 26: void i2c_restart()
    26                           ;iic.c: 27: {
    27  0CEC                     _i2c_restart
    28                           ;iic.c: 28: RSEN=1;
    29  0CEC  1683               	bsf	3,5
    30  0CED  1303               	bcf	3,6	;carry unused
    31  0CEE  1491               	bsf	17,1
    32  0CEF                     l12
    33                           ;iic.c: 29: do{
    34                           ;iic.c: 30: ;
    35  0CEF  1283               	bcf	3,5
    36  0CF0  1D8C               	btfss	12,3
    37  0CF1  2CEF               	goto	l12
    38                           ;iic.c: 32: SSPIF=0;
    39  0CF2  118C               	bcf	12,3
    40                           ;iic.c: 33: }
    41  0CF3  0008               	return
    42                           ;iic.c: 59: void i2c_datainlast()
    43                           ;iic.c: 60: {
    44  0CF4                     _i2c_datainlast
    45                           ;iic.c: 61: SSPIF=0;
    46  0CF4  0183               	clrf	3	;select bank 0
    47  0CF5  118C               	bcf	12,3
    48                           ;iic.c: 62: RCEN=1;
    49  0CF6  1683               	bsf	3,5
    50  0CF7  1591               	bsf	17,3
    51  0CF8                     l27
    52                           ;iic.c: 63: do{
    53                           ;iic.c: 64: ;
    54  0CF8  1283               	bcf	3,5
    55  0CF9  1D8C               	btfss	12,3
    56  0CFA  2CF8               	goto	l27
    57                           ;iic.c: 66: SSPIF=0;
    58  0CFB  118C               	bcf	12,3
    59                           ;iic.c: 67: receive=SSPBUF;
    60  0CFC  0813               	movf	19,w	;volatile
    61  0CFD  00A3               	movwf	_receive
    62                           ;iic.c: 68: ACKDT=1 ;
    63  0CFE  1683               	bsf	3,5
    64  0CFF  1691               	bsf	17,5
    65                           ;iic.c: 69: ACKEN=1;
    66  0D00  1611               	bsf	17,4
    67  0D01                     l30
    68                           ;iic.c: 70: do{
    69                           ;iic.c: 71: ;
    70  0D01  1283               	bcf	3,5
    71  0D02  1D8C               	btfss	12,3
    72  0D03  2D01               	goto	l30
    73                           ;iic.c: 73: SSPIF=0;
    74  0D04  118C               	bcf	12,3
    75                           ;iic.c: 75: }
    76  0D05  0008               	return
    77                           ;iic.c: 17: void i2c_stop()
    78                           ;iic.c: 18: {
    79  0D06                     _i2c_stop
    80                           ;iic.c: 19: PEN=1;
    81  0D06  1683               	bsf	3,5
    82  0D07  1303               	bcf	3,6	;carry unused
    83  0D08  1511               	bsf	17,2
    84  0D09                     l8
    85                           ;iic.c: 20: do{
    86                           ;iic.c: 21: ;
    87  0D09  1283               	bcf	3,5
    88  0D0A  1D8C               	btfss	12,3
    89  0D0B  2D09               	goto	l8
    90                           ;iic.c: 23: SSPIF=0;
    91  0D0C  118C               	bcf	12,3
    92                           ;iic.c: 24: }
    93  0D0D  0008               	return
    94                           ;iic.c: 77: void i2c_error()
    95                           ;iic.c: 78: {
    96  0D0E                     _i2c_error
    97                           ;iic.c: 79: i2c_stop();
    98  0D0E  2D06               	ljmp	_i2c_stop
    99                           ;iic.c: 81: }
   100  0D0F  0008               	return
   101                           ;iic.c: 83: void write(unsigned int addr,unsign
      +                          ed char data,unsigned int n)
   102                           ;iic.c: 84: {
   103                           ;       param _addr assigned to ?_write+0
   104  0000                     _write$addr	set	?_write
   105                           ;       param _data assigned to ?_write+2
   106  0000                     _write$data	set	?_write+2
   107                           ;       param _n assigned to ?_write+3
   108  0000                     _write$n	set	?_write+3
   109                           ;iic.c: 35: void i2c_dataout()
   110                           ;iic.c: 36: {
   111  0D10                     _i2c_dataout
   112  0D10                     l16
   113                           ;iic.c: 37: do{
   114                           ;iic.c: 38: ;
   115  0D10  0183               	clrf	3	;select bank 0
   116  0D11  1D8C               	btfss	12,3
   117  0D12  2D10               	goto	l16
   118                           ;iic.c: 40: SSPIF=0;
   119  0D13  118C               	bcf	12,3
   120                           ;iic.c: 41: }
   121  0D14  0008               	return
   122  0D15                     _i2c_start
   123                           ;iic.c: 11: SEN=1;
   124  0D15  1683               	bsf	3,5
   125  0D16  1303               	bcf	3,6	;carry unused
   126  0D17  1411               	bsf	17,0
   127  0D18                     l4
   128                           ;iic.c: 12: do{
   129                           ;iic.c: 13: }while(SSPIF==0);
   130  0D18  1283               	bcf	3,5
   131  0D19  1D8C               	btfss	12,3
   132  0D1A  2D18               	goto	l4
   133                           ;iic.c: 14: SSPIF=0;
   134  0D1B  118C               	bcf	12,3
   135                           ;iic.c: 15: }
   136  0D1C  0008               	return
   137  0D1D                     _write
   138                           ;iic.c: 85: i2c_start();
   139  0D1D  2515               	fcall	_i2c_start
   140                           ;iic.c: 86: SSPBUF=0xA0;
   141  0D1E  30A0               	movlw	-96
   142  0D1F  0093               	movwf	19	;volatile
   143                           ;iic.c: 87: i2c_dataout();
   144  0D20  2510               	fcall	_i2c_dataout
   145                           ;iic.c: 89: if(ACKSTAT)
   146  0D21  1683               	bsf	3,5
   147  0D22  1F11               	btfss	17,6
   148  0D23  2D26               	goto	l33
   149                           ;iic.c: 90: i2c_error();
   150                           ;iic.c: 79: i2c_stop();
   151  0D24  2506               	fcall	_i2c_stop
   152                           ;iic.c: 91: else if(!ACKSTAT)
   153  0D25  2D2B               	goto	l34
   154  0D26                     l33
   155  0D26  1B11               	btfsc	17,6
   156  0D27  2D2B               	goto	l34
   157                           ;iic.c: 92: SSPBUF=addr/256;
   158  0D28  1283               	bcf	3,5
   159  0D29  0834               	movf	?_write+1,w
   160  0D2A  0093               	movwf	19	;volatile
   161                           ;iic.c: 94: i2c_dataout();
   162  0D2B                     l34
   163  0D2B  2510               	fcall	_i2c_dataout
   164                           ;iic.c: 96: if(ACKSTAT)
   165  0D2C  1683               	bsf	3,5
   166  0D2D  1F11               	btfss	17,6
   167  0D2E  2D31               	goto	l36
   168                           ;iic.c: 97: i2c_error();
   169                           ;iic.c: 79: i2c_stop();
   170  0D2F  2506               	fcall	_i2c_stop
   171                           ;iic.c: 98: else if(!ACKSTAT)
   172  0D30  2D36               	goto	l37
   173  0D31                     l36
   174  0D31  1B11               	btfsc	17,6
   175  0D32  2D36               	goto	l37
   176                           ;iic.c: 99: SSPBUF=addr%256;
   177  0D33  1283               	bcf	3,5
   178  0D34  0833               	movf	?_write,w
   179  0D35  0093               	movwf	19	;volatile
   180                           ;iic.c: 100: i2c_dataout();
   181  0D36                     l37
   182  0D36  2510               	fcall	_i2c_dataout
   183                           ;iic.c: 102: for(i=0;i<n;++i)
   184  0D37  01A2               	clrf	_i
   185  0D38                     l42
   186  0D38  0822               	movf	_i,w
   187  0D39  00BC               	movwf	btemp
   188  0D3A  01BD               	clrf	btemp+1
   189  0D3B  0837               	movf	?_write+4,w
   190  0D3C  023D               	subwf	btemp+1,w
   191  0D3D  1D03               	btfss	3,2
   192  0D3E  2D41               	goto	u155
   193  0D3F  0836               	movf	?_write+3,w
   194  0D40  023C               	subwf	btemp,w
   195  0D41                     u155
   196                           ;iic.c: 103: {
   197                           ;iic.c: 104: if(ACKSTAT)
   198  0D41  1683               	bsf	3,5
   199  0D42  1803               	btfsc	3,0
   200  0D43  2D50               	goto	L1
   201  0D44  1F11               	btfss	17,6
   202  0D45  2D48               	goto	l43
   203                           ;iic.c: 105: i2c_error();
   204                           ;iic.c: 79: i2c_stop();
   205  0D46  2506               	fcall	_i2c_stop
   206                           ;iic.c: 106: else if(!ACKSTAT)
   207  0D47  2D4D               	goto	l44
   208  0D48                     l43
   209  0D48  1B11               	btfsc	17,6
   210  0D49  2D4D               	goto	l44
   211                           ;iic.c: 107: SSPBUF=data;
   212  0D4A  1283               	bcf	3,5
   213  0D4B  0835               	movf	?_write+2,w
   214  0D4C  0093               	movwf	19	;volatile
   215                           ;iic.c: 108: i2c_dataout();
   216  0D4D                     l44
   217  0D4D  2510               	fcall	_i2c_dataout
   218                           ;iic.c: 109: }
   219  0D4E  0AA2               	incf	_i
   220  0D4F  2D38               	goto	l42
   221                           ;iic.c: 111: if(ACKSTAT)
   222  0D50                     L1
   223  0D50  1F11               	btfss	17,6
   224  0D51  2D53               	goto	l46
   225                           ;iic.c: 112: i2c_error();
   226                           ;iic.c: 79: i2c_stop();

⌨️ 快捷键说明

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