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

📄 i2cmem1.lst

📁 proteus 仿真实例
💻 LST
📖 第 1 页 / 共 4 页
字号:


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

009D 200B           00205 bit_is_0         call  set_sdo_low
009E 289F           00206                  goto  wbit0
                    00207 
                    00208 
009F 1283           00209 wbit0            bcf   STATUS,RP0
00A0 201D           00210                  call  wait_quarter_bit
00A1 2011           00211                  call  set_clk_high
00A2 2022           00212                  call  wait_half_bit
00A3 2017           00213                  call  set_clk_low
00A4 0008           00214                  return
                    00215 
                    00216 ;-----------------------------------------------------------
00A5 00B2           00217 wr_byte          movwf byte
00A6 3080           00218                  movlw 0x80
00A7 00B3           00219                  movwf bit
                    00220 
00A8 2095           00221 wbyte0           call  wr_bit
00A9 1003           00222                  bcf   STATUS,C
00AA 0CB3           00223                  rrf   bit,F
00AB 08B3           00224                  movf  bit,F
00AC 1D03           00225                  btfss STATUS,Z
00AD 28A8           00226                  goto  wbyte0
                    00227 
00AE 201D           00228                  call  wait_quarter_bit
00AF 2005           00229                  call  set_sdo_high
00B0 201D           00230                  call  wait_quarter_bit
00B1 2011           00231                  call  set_clk_high
00B2 201D           00232                  call  wait_quarter_bit
00B3 0807           00233                  movf  PORTC,W
00B4 3980           00234                  andlw (1<<SDO)
00B5 3A80           00235                  xorlw (1<<SDO)
00B6 00B4           00236                  movwf ack
00B7 201D           00237                  call  wait_quarter_bit
00B8 2017           00238                  call  set_clk_low
00B9 201D           00239                  call  wait_quarter_bit
00BA 0008           00240                  return
                    00241 
                    00242 ;-----------------------------------------------------------
00BB 00B2           00243 wr_halfbyte      movwf byte
00BC 3008           00244                  movlw 0x08
00BD 00B3           00245                  movwf bit
                    00246 
00BE 2095           00247 whbyte0          call  wr_bit
00BF 1003           00248                  bcf   STATUS,C
00C0 0CB3           00249                  rrf   bit,F
00C1 08B3           00250                  movf  bit,F
00C2 1D03           00251                  btfss STATUS,Z
00C3 28BE           00252                  goto  whbyte0
                    00253 
00C4 201D           00254                  call  wait_quarter_bit
00C5 2005           00255                  call  set_sdo_high
00C6 201D           00256                  call  wait_quarter_bit
00C7 2011           00257                  call  set_clk_high
MPASM 02.30 Released          I2CMEM1.ASM   12-19-2001  11:23:01         PAGE  6


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00C8 201D           00258                  call  wait_quarter_bit
00C9 0807           00259                  movf  PORTC,W
00CA 3980           00260                  andlw (1<<SDO)
00CB 3A80           00261                  xorlw (1<<SDO)
00CC 00B4           00262                  movwf ack
00CD 201D           00263                  call  wait_quarter_bit
00CE 2017           00264                  call  set_clk_low
00CF 201D           00265                  call  wait_quarter_bit
00D0 0008           00266                  return
                    00267 
                    00268 ;-----------------------------------------------------------
00D1 1283           00269 rd_bit           bcf    STATUS,RP0
00D2 2005           00270                  call   set_sdo_high
00D3 2017           00271                  call   set_clk_low
00D4 2022           00272                  call   wait_half_bit
00D5 2011           00273                  call   set_clk_high
00D6 201D           00274                  call   wait_quarter_bit
00D7 0807           00275                  movf   PORTC,W
00D8 3980           00276                  andlw  (1<<SDO)
00D9 1903           00277                  btfsc  STATUS,Z
00DA 28DD           00278                  goto   rd_bit_clear
00DB 0833           00279                  movf   bit,W
00DC 04B2           00280                  iorwf  byte,F
00DD 201D           00281 rd_bit_clear     call   wait_quarter_bit
00DE 2017           00282                  call   set_clk_low
00DF 0008           00283                  return
                    00284 
                    00285 ;-----------------------------------------------------------
00E0 3000           00286 rd_byte          movlw  0x00
00E1 00B2           00287                  movwf  byte
00E2 3080           00288                  movlw  0x80
00E3 00B3           00289                  movwf  bit
                    00290 
00E4 20D1           00291 rbyte0           call   rd_bit
00E5 1003           00292                  bcf    STATUS,C
00E6 0CB3           00293                  rrf    bit,F
00E7 08B3           00294                  movf   bit,F
00E8 1D03           00295                  btfss  STATUS,Z
00E9 28E4           00296                  goto   rbyte0
00EA 0832           00297                  movf   byte,W
00EB 0008           00298                  return
                    00299 
                    00300 ;-----------------------------------------------------------
                    00301 ; Write W register to PORTD and hang.
00EC 1283           00302 wr_error         bcf   STATUS,RP0
00ED 0088           00303                  movwf PORTD
00EE 1683           00304                  bsf   STATUS,RP0
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
00EF 0188           00305                  clrf  TRISD
00F0 1283           00306                  bcf   STATUS,RP0
                    00307 
00F1 1405           00308 wre_flash        bsf    PORTA,0
00F2 30FF           00309                  movlw  0xFF
MPASM 02.30 Released          I2CMEM1.ASM   12-19-2001  11:23:01         PAGE  7


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00F3 2116           00310                  call   longwait
00F4 30FF           00311                  movlw  0xFF
00F5 2116           00312                  call   longwait
00F6 1005           00313                  bcf    PORTA,0
00F7 30FF           00314                  movlw  0xFF
00F8 2116           00315                  call   longwait
00F9 30FF           00316                  movlw  0xFF
00FA 2116           00317                  call   longwait
00FB 28F1           00318                  goto   wre_flash
00FC 0008           00319                  return
                    00320 
                    00321 ;-----------------------------------------------------------
                    00322 ; Write W register to PORTD and hang.
00FD 1283           00323 wr_result        bcf   STATUS,RP0
00FE 0088           00324                  movwf PORTD
00FF 1683           00325                  bsf   STATUS,RP0
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0100 0188           00326                  clrf  TRISD
0101 1283           00327                  bcf   STATUS,RP0
                    00328 
0102 1405           00329 wrr_flash        bsf    PORTA,0
0103 3030           00330                  movlw  0x30
0104 210A           00331                  call   vlongwait
0105 1005           00332                  bcf    PORTA,0
0106 3003           00333                  movlw  0x03
0107 210A           00334                  call   vlongwait
0108 2902           00335                  goto   wrr_flash
0109 0008           00336                  return
                    00337 
                    00338 ;-----------------------------------------------------------
010A 00B5           00339 vlongwait        movwf  lc1
010B 30FF           00340 vlw1             movlw  0xFF
010C 00B6           00341                  movwf  lc2
010D 30FF           00342 vlw2             movlw  0xFF
010E 00B7           00343                  movwf  lc3
010F 0BB7           00344 vlw3             decfsz lc3,F
0110 290F           00345                  goto   vlw3
0111 0BB6           00346                  decfsz lc2,F
0112 290D           00347                  goto   vlw2
0113 0BB5           00348                  decfsz lc1,F
0114 290B           00349                  goto   vlw1
0115 0008           00350                  return
                    00351 
                    00352 ;-----------------------------------------------------------
0116 00B5           00353 longwait         movwf  lc1
0117 30FF           00354 lw1              movlw  0xFF
0118 00B6           00355                  movwf  lc2
0119 0BB6           00356 lw2              decfsz lc2,F
011A 2919           00357                  goto   lw2
011B 0BB5           00358                  decfsz lc1,F
011C 2917           00359                  goto   lw1
011D 0008           00360                  return
                    00361 
MPASM 02.30 Released          I2CMEM1.ASM   12-19-2001  11:23:01         PAGE  8


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00362 ;-----------------------------------------------------------
011E 291E           00363 hang             goto  hang
                    00364 
                    00365 
                    00366 ;===========================================================
011F 2027           00367 start            call  init
0120 2061           00368                  call  wr_reset
                    00369 
                    00370 
0121 1283           00371                  bcf   STATUS,RP0
0122 0185           00372                  clrf  PORTA
0123 0188           00373                  clrf  PORTD
                    00374 
0124 1683           00375                  bsf   STATUS,RP0
0125 3006           00376                  movlw 0x06
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0126 009F           00377                  movwf ADCON1
0127 3020           00378                  movlw 0x20
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0128 0085           00379                  movwf TRISA
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0129 0188           00380                  clrf  TRISD
                    00381 
012A 1283           00382                  bcf   STATUS,RP0
012B 0185           00383                  clrf  PORTA
012C 01B0           00384                  clrf  address
012D 01B1           00385                  clrf  value
                    00386 
                    00387                  ; Test RA5 to see if we do writes:
012E 1E85           00388                  btfss PORTA,5
012F 2952           00389                  goto  reset_addr
                    00390 
                    00391                  ; Do start condition:
0130 202E           00392 main_wr_loop:    call   wr_start
                    00393 
                    00394                  ; Send write command:
0131 30A6           00395                  movlw  0xA6
0132 20A5           00396                  call   wr_byte
0133 3001           00397                  movlw  0x01
0134 08B4           00398                  movf   ack,F
0135 1903           00399                  btfsc  STATUS,Z
0136 20EC           00400                  call   wr_error
                    00401 
                    00402                  ; Send address:
0137 0830           00403                  movf   address,W
0138 20A5           00404                  call   wr_byte
0139 3002           00405                  movlw  0x02
013A 08B4           00406                  movf   ack,F
013B 1903           00407                  btfsc  STATUS,Z
013C 20EC           00408                  call   wr_error
                    00409 
                    00410                  ; Send value:
013D 0831           00411                  movf   value,W
MPASM 02.30 Released          I2CMEM1.ASM   12-19-2001  11:23:01         PAGE  9

⌨️ 快捷键说明

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