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

📄 x5045.lst

📁 51单片机用汇编实例 包括ad
💻 LST
字号:
A51 MACRO ASSEMBLER  X5045                                                                05/22/2006 16:23:59 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN X5045.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE X5045.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;==============================================================
                       2     ; 文件名称: X5045.ASM
                       3     ; 功能描述: 
                       4     ;==============================================================
  0094                 5     CS      BIT  94H                ; P1.4
                       6     
  0086                 7     SPDR    DATA 086H               ; SPI寄存器声明
  00AA                 8     SPSR    DATA 0AAH
  00D5                 9     SPCR    DATA 0D5H
                      10     
  0030                11     ADDR    DATA 30H
  0031                12     BYTE    DATA 31H
                      13     
0000                  14             ORG 0000H
0000 020100           15             LJMP START
                      16     
0100                  17             ORG 0100H
0100 00               18     START:  NOP
0101 75D551           19             MOV SPCR, #51H                  ; 设置 SPI 的控制寄存器
0104 753000           20             MOV ADDR, #00H                  ; 写入X5045的地址
0107 753120           21             MOV BYTE, #20H                  ; 写入X5045的数据
010A 7C00             22             MOV R4, #00H                    ; 写数据个数计数
010C 12015F           23     STLP1:  LCALL WRITE                     ; 调用写函数
010F 0530             24             INC ADDR
0111 0531             25             INC BYTE
0113 7E80             26             MOV R6, #80H                    ; 延时
0115 12013F           27             LCALL DELAY
0118 0C               28             INC R4
0119 BC10F0           29             CJNE R4, #16, STLP1
011C 7840             30             MOV R0, #40H                    ; 读出数据存放首地址
011E 7C00             31             MOV R4, #00H                    ; 计数
0120 753000           32             MOV ADDR, #00H                  ; 读取地址
0123 C294             33             CLR CS                          ; 设备使能
0125 7403             34             MOV A, #03H                     ; 读命令
0127 120146           35             LCALL SST_MASTERIO
012A E530             36             MOV A, ADDR                     ; 地址
012C 120146           37             LCALL SST_MASTERIO
012F 7400             38     STLP2:  MOV A, #00H
0131 120146           39             LCALL SST_MASTERIO              ; 读取数据
0134 E9               40             MOV A, R1
0135 F6               41             MOV @R0, A                      ; 保存数据
0136 08               42             INC R0
0137 0C               43             INC R4
0138 BC10F4           44             CJNE R4, #16, STLP2
013B D294             45             SETB CS
                      46     
013D 80FE             47             SJMP $
                      48     
                      49     
                      50     
                      51     
                      52     ; 延时子程序
                      53     ; 入口参数: R6(增加延时)
                      54     ; 影响寄存器: R7
013F 7F0A             55     DELAY:  MOV R7, #10
0141 DFFE             56     DLAY1:  DJNZ R7, DLAY1
0143 DEFA             57             DJNZ R6, DELAY
0145 22               58             RET
A51 MACRO ASSEMBLER  X5045                                                                05/22/2006 16:23:59 PAGE     2

                      59     
                      60     ; 处理主从控制器间的字节传输
                      61     ; 入口参数: A (SPI 输出)
                      62     ; 出口参数: R1
0146                  63     SST_MASTERIO:
0146 F586             64             MOV SPDR, A
0148 E5AA             65     MIO1:   MOV A, SPSR
014A 5480             66             ANL A, #80H
014C B480F9           67             CJNE A, #80H, MIO1
014F 53AA7F           68             ANL SPSR, #7FH
0152 A986             69             MOV R1, SPDR
0154 22               70             RET
                      71     
                      72     ; 读取状态寄存器
                      73     ; 出口参数: R1
                      74     ;READ_STATUS_REG:
                      75     ;       CLR CS                          ; 使能设备
                      76     ;       MOV A, #05H                     ; 发送 RDSR 命令
                      77     ;       LCALL SST_MASTERIO
                      78     ;       MOV A, #00H
                      79     ;       LCALL SST_MASTERIO              ; 接收字节
                      80     ;       SETB CS                         ; 禁止设备
                      81     ;       RET
                      82     
                      83     ; 写状态寄存器(看门狗设置)
                      84     ; 入口参数: R2 (状态字)
                      85     ;WRSR:  CLR CS
                      86     ;       MOV A, #01H
                      87     ;       LCALL SST_MASTERIO
                      88     ;       MOV A, R2
                      89     ;       LCALL SST_MASTERIO
                      90     ;       SETB CS
                      91     ;       RET
                      92     
                      93     ; 使能写操作
0155 C294             94     WREN:   CLR CS
0157 7406             95             MOV A, #06H
0159 120146           96             LCALL SST_MASTERIO
015C D294             97             SETB CS
015E 22               98             RET
                      99     
                     100     ; 禁止写操作
                     101     ;WRDI:  CLR CS
                     102     ;       MOV A, #04H
                     103     ;       LCALL SST_MASTERIO
                     104     ;       SETB CS
                     105     ;       RET
                     106     
                     107     ; 读一个字节
                     108     ; 入口参数: ADDR (操作地址)
                     109     ; 出口参数: R1
                     110     ;READ:  CLR CS
                     111     ;       MOV A, #03H
                     112     ;       LCALL SST_MASTERIO
                     113     ;       MOV A, ADDR
                     114     ;       LCALL SST_MASTERIO
                     115     ;       SETB CS
                     116     ;       RET
                     117     
                     118     ; 写一个字节
015F 120155          119     WRITE:  LCALL WREN                      ; 写使能
0162 7E01            120             MOV R6, #01H
0164 12013F          121             LCALL DELAY                     ; 延时
0167 C294            122             CLR CS                          ; 设备使能
0169 7402            123             MOV A, #02H                     ; Write 命令
016B 120146          124             LCALL SST_MASTERIO
A51 MACRO ASSEMBLER  X5045                                                                05/22/2006 16:23:59 PAGE     3

016E E530            125             MOV A, ADDR
0170 120146          126             LCALL SST_MASTERIO
0173 E531            127             MOV A, BYTE
0175 120146          128             LCALL SST_MASTERIO
0178 D294            129             SETB CS                         ; 禁止设备
017A 22              130             RET
                     131     
                     132             END
A51 MACRO ASSEMBLER  X5045                                                                05/22/2006 16:23:59 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ADDR . . . . . . .  D ADDR   0030H   A   
BYTE . . . . . . .  D ADDR   0031H   A   
CS . . . . . . . .  B ADDR   0090H.4 A   
DELAY. . . . . . .  C ADDR   013FH   A   
DLAY1. . . . . . .  C ADDR   0141H   A   
MIO1 . . . . . . .  C ADDR   0148H   A   
SPCR . . . . . . .  D ADDR   00D5H   A   
SPDR . . . . . . .  D ADDR   0086H   A   
SPSR . . . . . . .  D ADDR   00AAH   A   
SST_MASTERIO . . .  C ADDR   0146H   A   
START. . . . . . .  C ADDR   0100H   A   
STLP1. . . . . . .  C ADDR   010CH   A   
STLP2. . . . . . .  C ADDR   012FH   A   
WREN . . . . . . .  C ADDR   0155H   A   
WRITE. . . . . . .  C ADDR   015FH   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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