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

📄 rwe2.lst

📁 我自己编写的SPI访问EEPROM的25AA045源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM  5.13                          RWE2.ASM   1-11-2008  13:19:22         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001             LIST    p=16F877A
                      00002             #include "P16F877A.INC" 
                      00001         LIST
                      00002 ; P16F877A.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00400         LIST
  00000024            00003 RXDATA  EQU 24H                 ;定义接收数据单元
  00000025            00004 TXDATA  EQU 25H                 ;定义发送数据单元
  00000026            00005 temp_1  EQU     26H     
  00000027            00006 temp_2  EQU 27H                 
  00000029            00007 HIBYTE  EQU 29H                 ;命令高字节暂存单元
  0000002A            00008 LOBYTE  EQU 2AH                 ;命令低字节暂存单元     
  0000002B            00009 DATBYT  EQU 2BH                 ;数据暂存单元
  00000040            00010 STATUR  EQU 40H                 ;
  00000033            00011 DATAVAL EQU 33H                 ;定义数据常数值
  00000000            00012 CS              EQU 0                   ;片选引脚信号
  00000004            00013 SDI     EQU 4                   ;发送引脚信号
                      00014 
0000                  00015         ORG     0H
0000   0000           00016         nop
0001   2804           00017                 goto    START
0002   0000           00018                 nop
0003   0000           00019                 nop
0004                  00020                 ORG     0004H
0004                  00021 START 
0004   1283           00022                 bcf     STATUS,RP0
0005   1683           00023         bsf     STATUS,RP0
0006   3010           00024         movlw   10H                                     ;设置C口
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0007   0087           00025         movwf   TRISC
0008   3000           00026         movlw   00H
0009   0084           00027         movwf   FSR
000A                  00028 xxx
000A   1283           00029         bcf     STATUS,RP0
000B   3021           00030         movlw   B'00100001'                     ;发送使能位
000C   0094           00031         movwf   SSPCON
000D   2036           00032         call    EWEN
                      00033                         
000E   3002           00034         movlw   B'00000010'                     ;命令位“010”写命令
000F   00A9           00035         movwf   HIBYTE
0010   3033           00036         movlw   DATAVAL                         ;数据
0011   00AB           00037         movwf   DATBYT
0012   2045           00038                 call    WRITE
                      00039 ;               goto    $
0013   2068           00040                 call    delay_20ms
0014                  00041 WRNEXT  
                      00042                 
0014   1283           00043                 bcf             STATUS,RP0
0015   2036           00044                 call    EWEN
0016   3002           00045                 movlw   B'00000010'
0017   00A9           00046                 movwf   HIBYTE
0018   3020           00047                 movlw   20h
0019   0084           00048                 movwf   FSR
001A   3099           00049                 movlw   99h
MPASM  5.13                          RWE2.ASM   1-11-2008  13:19:22         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

001B   00AB           00050                 movwf   DATBYT
001C   2045           00051                 call    WRITE
                      00052 
                      00053                 
                      00054 ;               call    delay_20ms
                      00055 ;               call    WRITE
                      00056 ;               call    delay_20ms
                      00057 ;               call    WRITE
001D   0000           00058         nop
001E   0000           00059         nop
001F   281F           00060                 GOTO    $
0020   1A04           00061         btfsc   FSR,4
0021   2814           00062                 goto    WRNEXT
                      00063 
                      00064 ;读回数据
0022   3030           00065         movlw   30H
0023   0084           00066         movwf   FSR
0024   3010           00067         movlw   10H
0025   00AA           00068         movwf   LOBYTE
0026   3003           00069         movlw   B'00000011'                     ;命令位“011”读命令    
0027   00A9           00070         movwf   HIBYTE
0028                  00071 RDNEXT 
0028   1283           00072                 bcf     STATUS,RP0
0029   3021           00073         movlw   B'00100001'
002A   0094           00074         movwf   SSPCON
002B   2036           00075         call    EWEN
002C   0000           00076                 nop
002D   0000           00077                 nop
002E   0000           00078                 nop
002F   0000           00079                 nop
                      00080 ;       call    delay_20ms
0030   2050           00081                 call READ
0031   0000           00082         nop
                      00083 
0032   1A04           00084         btfsc FSR,4
0033   2828           00085         goto RDNEXT
0034                  00086 LIMBO 
0034   0000           00087                 nop
0035   2834           00088         goto LIMBO
                      00089            
                      00090 ;/*********************
                      00091 ;写使能
                      00092 ;/**********************
0036                  00093 EWEN 
0036   1283           00094                 bcf     STATUS,RP0
0037   1007           00095         bcf     PORTC,CS
0038   3006           00096         movlw   B'00000110'
0039   205F           00097         call    OUTPUT
003A   0000           00098                 nop
                      00099 ;               call    delay_20ms
003B   1407           00100         bsf     PORTC,CS
003C   0008           00101         return
                      00102 
MPASM  5.13                          RWE2.ASM   1-11-2008  13:19:22         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00103 
                      00104 ;/**********************
                      00105 ;读状态寄存器
                      00106 ;入口:无
                      00107 ;出口:读出的状态在STATUR中
                      00108 ;/**********************
003D                  00109 RDSR    
003D   1283           00110                 bcf     STATUS,RP0
003E   1007           00111         bcf     PORTC,CS
003F   3005           00112         movlw B'00000101' 
0040   205F           00113         call    OUTPUT
0041   1407           00114         bsf     PORTC,CS
0042   0824           00115         movf    RXDATA,0
0043   00C0           00116         movwf   STATUR
0044   0008           00117         return
                      00118 ;/***********************
                      00119 ;写一字节
                      00120 ;入口:"写命令码"在HIBYTE中,EEPROM地址指针在FSR中
                      00121 ;待写数据字节在DATBYT中
                      00122 ;出口:FSR指向下一地址
                      00123 ;/***********************
0045                  00124 WRITE 
0045   1283           00125                 bcf     STATUS,RP0
0046   1007           00126         bcf     PORTC,CS                ;片选
0047   0829           00127         movf    HIBYTE,0                ;写命令
0048   205F           00128         call    OUTPUT
0049   0804           00129         movf    FSR,0                   ;送地址
004A   205F           00130         call    OUTPUT
004B   082B           00131         movf    DATBYT,0                ;送数据
004C   205F           00132         call    OUTPUT
                      00133 
                      00134 ;         call  delay_20ms
004D   1407           00135             bsf         PORTC,CS
Message[305]: Using default destination of 1 (file).
004E   0A84           00136         incf    FSR
004F   0008           00137         return
                      00138 ;******************************************
                      00139 ;读一字节
                      00140 ;入口:读命令在HIBYTE,EEPROM地址在LOBYTE,
                      00141 ;单片机RAM地址在FSR
                      00142 ;出口:RAM单元放入一数据,LOBYTE加1,FSR加1
                      00143 ;******************************************
                      00144 
0050                  00145 READ 
0050   1283           00146                 bcf     STATUS,RP0
0051   1007           00147         bcf     PORTC,CS
                      00148  ;    bsf SSPCON,CKP
0052   0829           00149         movf    HIBYTE,0
0053   205F           00150         call    OUTPUT
0054   082A           00151         movf    LOBYTE,0
0055   205F           00152         call    OUTPUT 
0056   1214           00153         bcf     SSPCON,CKP
0057   3000           00154         movlw   0
MPASM  5.13                          RWE2.ASM   1-11-2008  13:19:22         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0058   205F           00155         call    OUTPUT
0059   1407           00156         bsf     PORTC,CS
005A   0824           00157         movf    RXDATA,0
005B   0080           00158         movwf   INDF
Message[305]: Using default destination of 1 (file).
005C   0A84           00159         incf    FSR
Message[305]: Using default destination of 1 (file).
005D   0AAA           00160         incf    LOBYTE
005E   0008           00161         return
                      00162 
                      00163 ;/**********************
                      00164 ;同时发送和接收一字节
                      00165 ;入口:待发送数据在W中
                      00166 ;出口:收到数据在RXDATA
                      00167 ;/***********************
005F                  00168 OUTPUT 
005F   0093           00169                 movwf   SSPBUF
0060                  00170 LOOP1  
0060   1303           00171                 bcf     STATUS,RP1
0061   1683           00172         bsf     STATUS,RP0
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0062   1C14           00173         btfss   SSPSTAT,BF
0063   2860           00174         goto    LOOP1
0064   1283           00175         bcf     STATUS,RP0
0065   0813           00176         movf    SSPBUF,0
0066   00A4           00177         movwf   RXDATA
0067   0008           00178         return
                      00179 
0068                  00180 delay_20ms
0068   1283 1303      00181                 banksel temp_1
006A   30FF           00182                 movlw   0xff
006B   00A6           00183                 movwf   temp_1
006C   3007           00184                 movlw   0x7
006D   00A7           00185                 movwf   temp_2
                      00186 
006E   0BA6           00187                 decfsz  temp_1,f
006F   286E           00188                 goto    $-1
0070   0BA7           00189                 decfsz  temp_2,f
0071   286E           00190                 goto    $-3
0072   0008           00191                 return
                      00192         end
MPASM  5.13                          RWE2.ASM   1-11-2008  13:19:22         PAGE  5


SYMBOL TABLE
  LABEL                             VALUE 

ACKDT                             00000005
ACKEN                             00000004
ACKSTAT                           00000006
ADCON0                            0000001F
ADCON1                            0000009F
ADCS0                             00000006
ADCS1                             00000007
ADCS2                             00000006
ADDEN                             00000003
ADFM                              00000007
ADIE                              00000006
ADIF                              00000006
ADON                              00000000
ADRESH                            0000001E
ADRESL                            0000009E
BCLIE                             00000003
BCLIF                             00000003
BF                                00000000
BRGH                              00000002
C                                 00000000
C1INV                             00000004
C1OUT                             00000006
C2INV                             00000005
C2OUT                             00000007
CCP1CON                           00000017
CCP1IE                            00000002
CCP1IF                            00000002
CCP1M0                            00000000
CCP1M1                            00000001
CCP1M2                            00000002
CCP1M3                            00000003
CCP1X                             00000005
CCP1Y                             00000004
CCP2CON                           0000001D
CCP2IE                            00000000
CCP2IF                            00000000
CCP2M0                            00000000
CCP2M1                            00000001
CCP2M2                            00000002
CCP2M3                            00000003
CCP2X                             00000005
CCP2Y                             00000004
CCPR1H                            00000016
CCPR1L                            00000015
CCPR2H                            0000001C
CCPR2L                            0000001B
CHS0                              00000003
CHS1                              00000004
CHS2                              00000005
CIS                               00000003
CKE                               00000006
CKP                               00000004

⌨️ 快捷键说明

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