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

📄 x25045.asm

📁 SPI接口调试程序,以看门狗X5045为例
💻 ASM
📖 第 1 页 / 共 2 页
字号:
 ;********************************************************************
;*                            ______________                         *
;*         nc       P1.0    1      \_/     40    VCC      +5V        *
;*        LEDR      P1.1    2              39    P0.0     sda        *
;*        LEDG      P1.2    3              38    P0.1     scl        *
;*        LEDO      P1.3    4              37    P0.2     nc         *
;*     SQL_LOCK     P1.4    5              36    P0.3     AD3        *
;*       MISO       P1.5    6              35    P0.4     AD4        *
;*       MOSI       P1.6    7              34    P0.5     AD5        *
;*       SCLK       P1.7    8              33    P0.6     AD6        *
;*      RESET       RST     9              32    P0.7     AD7        *
;*        RXD       P3.0    10   MCS-51    31    EA  -----VCC:IROM   *
;*        TXD       P3.1    11             30    ALE      ALE        *
;*      /INT0       P3.2    12             29    PSEN     NC         *
;*      /INT1       P3.3    13             28    P2.7     A15        *
;*         T0       P3.4    14             27    P2.6     A14        *
;*         T1       P3.5    15             26    P2.5     A13        *
;*         wr       P3.6    16             25    P2.4     A12        *
;*         rd       P3.7    17             24    P2.3     A11        *
;*                 XTAL2    18             23    P2.2     A10        *
;*       12MHz     XTAL1    19             22    P2.1     A9         *
;*                   VSS    20_____________21    P2.0     A8         *
;*                                                                   *
;*                                                                   *
;*********************************************************************
;          SPI接口调试程序,以看门狗X5045为例,并配合串口通讯,发送至PC,用串口调试助手检测结果的正误.
;***************************************************************************
;*                   DESCRIPTION                                           *
;*      PROGRAM NAME:     sd card read/write  assemble  program            *
;*      DESIGN TIME:      2006年5月17日                                    *
;*      VERSION:          VER0.1                                           *
;*     COMPILER:          WAVE6000                                         *
;*       REMARK:          spi  debug  ok                                   *
;*                        SPI接口调试程序                                  *
;***************************************************************************
;;;;;;;;;;;;;;;;;; X25045 pin   define ;;;;;;;;;;;;;;;;;;;;;;;;;
                    LED   BIT   P1.1
                    SCK   BIT   P2.3     ;SERIER CLOCK
                     SI   BIT   P2.2     ;x25045 spi bus
                     SO   BIT   P2.1
                     CS   BIT   P2.0     ;LOE  ACTIVE   WP UNUSED
                    DBF   DATA  22H
                    addr  data  23h
                 data_n   data  24h
                    WREN  EQU   06H; 0000 0110 Set the Write Enable Latch (Enable Write Operations)
                    WRDI  EQU   04H;0000 0100 Reset the Write Enable Latch (Disable Write Operations)
                    RDSR  EQU   05H;0000 0101 Read Status Register
                    WRSR  EQU   01H;0000 0001 Write Status Register (Block Lock Bits)
                    READ_L  EQU   03H;0000 A8011 Read Data from Memory Array beginning at selected address
                    WRITE_L EQU   02H;0000 A8010 Write Data to Memory Array beginning at Selected Address(1 to 4 Bytes)
                    READ_H  EQU   0BH;0000 X011 Read Data from Memory Array beginning at selected address
                    WRITE_H EQU   0AH;0000 X010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                  ORG   0000H
                  AJMP  MAIN
                  ORG   0050H
       MAIN:      MOV   SP,#60H
                  MOV   P0,#0FFH
                  mov   P2,#00000011B      ;P2初始化 CS&SO =1,SCK&SI = 0
                  MOV   TMOD,#20H
                  MOV   SCON,#40H
                  MOV   TCON,#40H    ;COM2 9600 8  N  1
                  mov   pcon,#00h
                  MOV   TH1,#0FdH     ;11M
                  MOV   TL1,#0FdH    ;BANDRATE 9600  SMOD=0
                  CLR   EA           ;SET
;............................................................................
                  LCALL  WR_REG      ;
                  LCALL READ_REG     ;RESULT  IN R7
                 ;.......................
                  mov   addr,#00h
                  MOV   DPTR,#DA_TBL
                  MOV   DATA_N,#255
                  LCALL WR_ROML
                  ;........................
                  mov   addr,#00h
                  MOV   DPTR,#DA_TBL1
                  MOV   DATA_N,#255
                  LCALL WR_ROMH
                 ;.......................
                  mov   addr,#00h
                  mov   data_n,#255
                  lcall read_romL

                 ;.......................
                  mov   addr,#00h
                  mov   data_n,#255
                  lcall read_romH
                 ;.......................
                  clr   led
                  ajmp   $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;          send  to  pc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          topc:   MOV   SBUF,A
         WAIT0:   JNB   TI,WAIT0
                  CLR   TI
                  ret
;...........................................
;            WR_REG    写状态寄存器
;            入口:    无
; remark:    直接调用  数据在程序中
;===========================================
        WR_REG:    CLR   SCK                   ;wren_cmd
                   CLR   CS
                   MOV   DBF,#WREN        ;Set the Write Enable Latch (Enable Write Operations)
                   LCALL X25045_WR       ;WREN
                   SETB  CS
                   NOP
                   CLR   CS
                   MOV   DBF,#WRSR        ;写状态寄存器 Write Status Register (Block Lock Bits)
                   LCALL X25045_WR       ;WRSR
                   mov   a,#00110000b    ; 被写入数据
                   MOV   DBF,A
                   LCALL X25045_WR
                   SETB  CS
                   MOV   R5,#04H
                   LCALL DELAY
                   RET
;===========================================
;       Read_REG    读状态寄存器
;            入口:  无
;          直接调用  结果在DBF,A 中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   READ_REG:       CLR   SCK
                   CLR   CS
                   MOV   DBF,#RDSR     ;RDSR
                   LCALL X25045_WR
                   LCALL X25045_RD    ;0000 0101B   READ  STATAS  REGISTER
                   SETB  CS
                   MOV   a,DBF
                   lcall topc
                   RET
;===========================================
;       参数: data_n : bytes  number
;                 addr: eerom  address
;                  dbf: readout_data buffer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
read_romL:          NOP
                   CLR   SCK
                   CLR   CS
                   MOV   DBF,#READ_L    ;0000 0011 ;Read Data from Memory Array beginning at selectedaddress
                   LCALL X25045_WR
                   mov   a,addr
                   MOV   DBF,A
                   LCALL X25045_WR
                   LCALL X25045_RD
                   SETB  CS
                   MOV   a,DBF
                   lcall topc       ; SENT TO  PC
                   inc   addr
                   djnz  data_n,read_romL
                   RET
;===========================================
;       参数: data_n : bytes  number
;                 addr: eerom  address
;                 dptr: data   first_address
;===========================================
WR_ROML:           CLR   SCK
                   CLR   CS
                   MOV   DBF,#WREN
                   LCALL X25045_WR
                   SETB  CS
                   NOP
                   CLR   CS
                   MOV   DBF,#WRITE_L    ;Write Data to Memory Array beginning at Selected Address(1 to 4 Bytes)
                   LCALL X25045_WR
                   MOV   A,ADDR
                   MOV   DBF,A       ;ADDRESS
                   LCALL X25045_WR
                   CLR   A
                   MOVC  A,@A+DPTR
                   MOV   DBF,A
                   LCALL X25045_WR   ;DATA
                   SETB  CS
                   MOV   R5,#04H      ;MUST  BEW  DELAY
                   LCALL DELAY
                   INC   ADDR
                   INC   DPTR
                   DJNZ  DATA_N,WR_ROML
                   RET
 ;===========================================
;       参数: data_n : bytes  number
;                 addr: eerom  address
;                  dbf: readout_data buffer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
read_romH:          NOP
                   CLR   SCK
                   CLR   CS
                   MOV   DBF,#READ_H    ;0000 0011 ;Read Data from Memory Array beginning at selectedaddress
                   LCALL X25045_WR
                   mov   a,addr
                   MOV   DBF,A
                   LCALL X25045_WR
                   LCALL X25045_RD
                   SETB  CS
                   MOV   a,DBF
                   lcall topc       ; SENT TO  PC
                   inc   addr
                   djnz  data_n,read_romH
                   RET
;===========================================
;       参数: data_n : bytes  number
;                 addr: eerom  address
;                 dptr: data   first_address
;===========================================
WR_ROMH:            CLR   SCK
                   CLR   CS
                   MOV   DBF,#WREN
                   LCALL X25045_WR
                   SETB  CS
                   NOP
                   CLR   CS
                   MOV   DBF,#WRITE_H    ;Write Data to Memory Array beginning at Selected Address(1 to 4 Bytes)
                   LCALL X25045_WR
                   MOV   A,ADDR
                   MOV   DBF,A       ;ADDRESS
                   LCALL X25045_WR
                   CLR   A
                   MOVC  A,@A+DPTR
                   MOV   DBF,A

⌨️ 快捷键说明

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