wl007.lst
来自「周立功的51单片机试验例程,我当年就是靠这个学会单片机的」· LST 代码 · 共 95 行
LST
95 行
A51 MACRO ASSEMBLER WL007 01/18/2004 13:59:05 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN wl007.OBJ
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE wl007.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ; /*******************************************************************************
2 ; * *
3 ; * File : .c *
4 ; * Date : 2004-1-5 *
5 ; * Version : 1.0 *
6 ; * *
7 ; * Author : Freeman freeman@willar.com *
8 ; * Company : Willar www.willar.com *
9 ; * *
10 ; ********************************************************************************
11 ; * Descriptoon: *
12 ; * 读写AT24C01演示程序 *
13 ; * *
14 ; * *
15 ; * *
16 ; *******************************************************************************/
17
18 NAME WL007
19
00A1 20 OP_READ EQU 0xa1 ; 器件地址以及读取操作
00A0 21 OP_WRITE EQU 0xa0 ; 器件地址以及写入操作
007F 22 MAX_ADDR EQU 0x7f ; AT24C01最大地址
23
24 CODE_SEG SEGMENT CODE
25 DATA_SEG SEGMENT DATA
26 STACK_SEG SEGMENT IDATA
27
28
---- 29 RSEG DATA_SEG
0000 30 ADDR: DS 1
0001 31 TMP2: DS 1
0002 32 TMP3: DS 1
33
---- 34 RSEG STACK_SEG
0000 35 STACK: DS 20
36
0090 37 SCL BIT P1.0
0091 38 SDA BIT P1.1
39
40 ;===============================================================================
---- 41 CSEG AT 0000H ; 复位向量
0000 020000 F 42 JMP MAIN
43
44
45
46 ;===============================================================================
---- 47 RSEG CODE_SEG
0000 48 MAIN:
49 ; 主程序开始
50
51 USING 0
52
0000 758100 F 53 MOV SP, #(STACK-1) ; 设置堆栈
54
0003 D291 55 SETB SDA
0005 D290 56 SETB SCL
57
0007 7F5A 58 MOV R7,#05AH ; 全部填充0xff
A51 MACRO ASSEMBLER WL007 01/18/2004 13:59:05 PAGE 2
0009 120000 F 59 LCALL FILL_BYTE
60
000C E4 61 CLR A
000D F500 F 62 MOV ADDR,A
000F 63 MAIN_LP1: ; 将表格DIS_CODE内示菪慈氲紼EPROM
64
000F E500 F 65 MOV A,ADDR
0011 900000 F 66 MOV DPTR,#DIS_CODE
0014 93 67 MOVC A,@A+DPTR ; 查表
68
0015 FD 69 MOV R5,A ; 示莸絉5
0016 AF00 F 70 MOV R7,ADDR ; 地址到R7
0018 120000 F 71 LCALL WRITE_BYTE
72
001B 0500 F 73 INC ADDR ; 地址加1
001D E500 F 74 MOV A,ADDR
001F C3 75 CLR C
0020 9408 76 SUBB A,#08H ; 共8字节,判断是否完成
0022 40EB 77 JC MAIN_LP1 ;
78
0024 E4 79 CLR A ;
0025 F500 F 80 MOV ADDR,A ;
0027 81 MAIN_LP2: ; 循环读取AT24C01内容,并输出到P0口
0027 AF00 F 82 MOV R7,ADDR ; 地址到R7
0029 120000 F 83 LCALL READ_RANDOM
002C 8F80 84 MOV P0,R7 ; 将读取的示荽
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?