wl008.lst

来自「单片机开发资料 基于51单片机的单片机开发板 包括《实验例程」· LST 代码 · 共 375 行 · 第 1/2 页

LST
375
字号
00A7 120000   F      176             LCALL   OUTBYT                  ; 传送读取指令和地址最高位
00AA E582            177             MOV     A,      DPL
00AC 120000   F      178             LCALL   OUTBYT                  ; 传送地址低字节
00AF 120000   F      179             LCALL   INBYT                   ; 读取字节
00B2 C290            180             CLR     SCK
                     181     
00B4 D294            182             SETB    CS
00B6 22              183             RET
                     184     ;******************************************************************************************
                     185     ;* PAGE_WRITE: 页写入
                     186     ;* 传入参数: 无
                     187     ;* 返回值: 无
                     188     
                     189     ;******************************************************************************************
00B7                 190     PAGE_WRITE:
A51 MACRO ASSEMBLER  WL008                                                                11/03/2004 11:08:47 PAGE     4

00B7 9001F0          191             MOV     DPTR,#PAGE_ADDR         ; 设置第一个字节的地址
00BA C290            192             CLR     SCK
00BC C294            193             CLR     CS
00BE 7402            194             MOV     A,#WRITE_INST
00C0 8583F0          195             MOV     B,DPH
00C3 A2F0            196             MOV     C,B.0
00C5 92E3            197             MOV     ACC.3,C
00C7 120000   F      198             LCALL   OUTBYT                  ; 传送写入指令和地址最高位
00CA E582            199             MOV     A,DPL
00CC 120000   F      200             LCALL   OUTBYT                  ; 传送地址低字节
00CF 7422            201             MOV     A,#PAGE_DATA1
00D1 120000   F      202             LCALL   OUTBYT                  ; 传送第一个字节数据
00D4 7433            203             MOV     A,#PAGE_DATA2
00D6 120000   F      204             LCALL   OUTBYT                  ; 传送第二个字节数据
00D9 7444            205             MOV     A,#PAGE_DATA3
00DB 120000   F      206             LCALL   OUTBYT                  ; 传送第三个字节数据
00DE C290            207             CLR     SCK
00E0 D294            208             SETB    CS
00E2 120000   F      209             LCALL   WIP_POLL                ; 检测写入进度
00E5 22              210             RET
                     211     
                     212     ;******************************************************************************************
                     213     ;* SEQU_READ: 连续读取3个字节
                     214     ;* 传入参数: 无
                     215     ;* 返回值: A --- 最后一次读取的字节
                     216     ;******************************************************************************************
00E6                 217     SEQU_READ:
00E6 9001F0          218             MOV     DPTR,#PAGE_ADDR         ; 设置第一个字节的地址
00E9 C290            219             CLR     SCK                     ;
00EB C294            220             CLR     CS                      ;
00ED 7403            221             MOV     A,#READ_INST
00EF 8583F0          222             MOV     B,DPH
00F2 A2F0            223             MOV     C,B.0
00F4 92E3            224             MOV     ACC.3,C
00F6 120000   F      225             LCALL   OUTBYT                  ; 传送读取指令和地址最高位
00F9 E582            226             MOV     A,DPL
00FB 120000   F      227             LCALL   OUTBYT                  ; 传送地址低字节
00FE 120000   F      228             LCALL   INBYT                   ; 读取第一个字节
0101 120000   F      229             LCALL   INBYT                   ; 读取第二个字节
0104 120000   F      230             LCALL   INBYT                   ; 读取第三个字节       
0107 C290            231             CLR     SCK
0109 D294            232             SETB    CS
010B 22              233             RET
                     234     
                     235     ;******************************************************************************************
                     236     ;* RST_WDOG: 复位看门狗定时器
                     237     ;* 传入参数: 无
                     238     ;* 返回值: 无
                     239     ;******************************************************************************************
010C                 240     RST_WDOG:
010C C294            241             CLR     CS   
010E 00              242             NOP
010F 00              243             NOP                                                        
0110 D294            244             SETB    CS               
0112 22              245             RET
                     246     
                     247     ;******************************************************************************************
                     248     ;* WIP_POLL: 写入进度查询
                     249     ;* 传入参数: 无
                     250     ;* 返回值: 无
                     251     ;******************************************************************************************
0113                 252     WIP_POLL:
0113 7999            253             MOV     R1, #MAX_POLL           ; 设置最大的查询次数
0115                 254     WIP_POLL1:
0115 120000   F      255             LCALL   RDSR_CMD                ; 读取状态寄存器
0118 30E002          256             JNB     ACC.0,WIP_POLL2         ; 如果WIP位为'0', 则写入周期完成, 返回
A51 MACRO ASSEMBLER  WL008                                                                11/03/2004 11:08:47 PAGE     5

011B D9F8            257             DJNZ    R1,WIP_POLL1            ; 如果WIP位为'1'并且未达到最大查询次? 则继续查询
                     258     
011D                 259     WIP_POLL2:
011D 22              260             RET
                     261     
                     262     ;******************************************************************************************
                     263     ;* OUTBYT: 传送字节示莸紼EPROM, 高位在前
                     264     ;* 传入参数: A --- 要传送的字节
                     265     ;* 返回值: 无
                     266     ;******************************************************************************************
011E                 267     OUTBYT:
011E 7808            268             MOV     R0,#08                  ; 设置数据位数
0120                 269     OUTBYT1:
0120 C290            270             CLR     SCK                     ;
0122 33              271             RLC     A                       ;
0123 9292            272             MOV     SI,C                    ; 传送一个位到SI
0125 00              273             NOP
0126 D290            274             SETB    SCK                     ;
0128 D8F6            275             DJNZ    R0,OUTBYT1              ; 判断是否传完
012A C292            276             CLR     SI                      ;
012C 22              277             RET
                     278     
                     279     ;******************************************************************************************
                     280     ;* INBYT: 从EEPROM接收数据 高位在前
                     281     ;* 传入参数: 无
                     282     ;* 返回值: A --- 接收到的字节
                     283     ;******************************************************************************************
012D                 284     INBYT:
012D 7808            285             MOV     R0,#08                  ; 设置数据位数
012F                 286     INBYT1:
012F D290            287             SETB    SCK                     ;
0131 00              288             NOP
0132 C290            289             CLR     SCK                     ;
0134 00              290             NOP
0135 A293            291             MOV     C,SO                    ; 接收一个位保存到C
0137 33              292             RLC     A                       ;
0138 D8F5            293             DJNZ    R0,INBYT1               ; 判断是否接收完
013A 22              294             RET
                     295             
                     296             END
A51 MACRO ASSEMBLER  WL008                                                                11/03/2004 11:08:47 PAGE     6

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BYTE_ADDR. . . . .  N NUMB   0055H   A   
BYTE_DATA. . . . .  N NUMB   0011H   A   
BYTE_READ. . . . .  C ADDR   0097H   R   SEG=CODE_SEG
BYTE_WRITE . . . .  C ADDR   0072H   R   SEG=CODE_SEG
CODE_SEG . . . . .  C SEG    013BH       REL=UNIT
CS . . . . . . . .  B ADDR   0090H.4 A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
INBYT. . . . . . .  C ADDR   012DH   R   SEG=CODE_SEG
INBYT1 . . . . . .  C ADDR   012FH   R   SEG=CODE_SEG
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
MAIN_LP. . . . . .  C ADDR   002DH   R   SEG=CODE_SEG
MAX_POLL . . . . .  N NUMB   0099H   A   
OUTBYT . . . . . .  C ADDR   011EH   R   SEG=CODE_SEG
OUTBYT1. . . . . .  C ADDR   0120H   R   SEG=CODE_SEG
P1 . . . . . . . .  D ADDR   0090H   A   
PAGE_ADDR. . . . .  N NUMB   01F0H   A   
PAGE_DATA1 . . . .  N NUMB   0022H   A   
PAGE_DATA2 . . . .  N NUMB   0033H   A   
PAGE_DATA3 . . . .  N NUMB   0044H   A   
PAGE_WRITE . . . .  C ADDR   00B7H   R   SEG=CODE_SEG
RDSR_CMD . . . . .  C ADDR   0061H   R   SEG=CODE_SEG
RDSR_INST. . . . .  N NUMB   0005H   A   
READ_INST. . . . .  N NUMB   0003H   A   
RST_WDOG . . . . .  C ADDR   010CH   R   SEG=CODE_SEG
SCK. . . . . . . .  B ADDR   0090H.0 A   
SEQU_READ. . . . .  C ADDR   00E6H   R   SEG=CODE_SEG
SI . . . . . . . .  B ADDR   0090H.2 A   
SO . . . . . . . .  B ADDR   0090H.3 A   
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
STATUS_REG . . . .  N NUMB   0000H   A   
WIP_POLL . . . . .  C ADDR   0113H   R   SEG=CODE_SEG
WIP_POLL1. . . . .  C ADDR   0115H   R   SEG=CODE_SEG
WIP_POLL2. . . . .  C ADDR   011DH   R   SEG=CODE_SEG
WL008. . . . . . .  N NUMB   -----       
WRDI_CMD . . . . .  C ADDR   003DH   R   SEG=CODE_SEG
WRDI_INST. . . . .  N NUMB   0004H   A   
WREN_CMD . . . . .  C ADDR   002FH   R   SEG=CODE_SEG
WREN_INST. . . . .  N NUMB   0006H   A   
WRITE_INST . . . .  N NUMB   0002H   A   
WRSR_CMD . . . . .  C ADDR   004BH   R   SEG=CODE_SEG
WRSR_INST. . . . .  N NUMB   0001H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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