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

📄 up51s007.lst

📁 UP51C开发板所有源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN up51s007.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE up51s007.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;/*******************************************************************************
                       2     ;*                                                                              *
                       3     ;*    File       : uP51s007.asm                                                 *
                       4     ;*    Date       : 2004-9-5                                                     *
                       5     ;*    Version    : 1.0                                                          *
                       6     ;*                                                                              *
                       7     ;*    Author     : kevin           kevin@dz51.com                               *
                       8     ;*    Company    : Http://www.dz51.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  UP51S007                                                             12/13/2004 09:20:33 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内数据写入到EEPROM
                      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                    ; 数据到R5      
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                   ; 将读取的数据传送到P0
                      85             
002E 0500     F       86             INC     ADDR                    ; 地址加1
0030 530007   F       87             ANL     ADDR,#07H               ; 循环读取范围为0x00~0x07
                      88             
0033 7FFA             89             MOV     R7,#0FAH                ; delay
0035 120000   F       90             LCALL   DELAYMS
                      91             
0038 80ED             92             SJMP    MAIN_LP2
                      93     ; END OF MAIN
                      94     
                      95     ;===============================================================================
----                  96             RSEG  CODE_SEG
003A                  97     START:
                      98     ; 开始位
                      99     ; 传入参数: 无
                     100     ; 返回值:无
                     101     
003A D291            102             SETB    SDA
003C D290            103             SETB    SCL
003E 00              104             NOP 
003F 00              105             NOP  
0040 C291            106             CLR     SDA
0042 00              107             NOP
0043 00              108             NOP     
0044 00              109             NOP     
0045 00              110             NOP     
0046 C290            111             CLR     SCL
0048 22              112             RET     
                     113     ; END OF START
                     114     
                     115     ;===============================================================================
                     116     
----                 117             RSEG  CODE_SEG
0049                 118     STOP:
                     119     ; 停止位
                     120     ; 传入参数: 无
                     121     ; 返回值:无
                     122     
0049 C291            123             CLR     SDA
004B 00              124             NOP     
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     3

004C 00              125             NOP     
004D D290            126             SETB    SCL
004F 00              127             NOP     
0050 00              128             NOP     
0051 00              129             NOP     
0052 00              130             NOP     
0053 D291            131             SETB    SDA
0055 22              132             RET     
                     133     ; END OF STOP
                     134     
                     135     ;===============================================================================
----                 136             RSEG  CODE_SEG
0056                 137     SHIN:
                     138     ; 从AT24Cxx移入数据到MCU
                     139     ; 传入参数: 无
                     140     ; 返回值:R7 --- 移出的数据
                     141     
                     142             USING   0
0056 E4              143             CLR     A
0057 FE              144             MOV     R6,A
0058                 145     SHIN_LP:
0058 D290            146             SETB    SCL
005A EF              147             MOV     A,R7
005B 25E0            148             ADD     A,ACC
005D FF              149             MOV     R7,A
005E A291            150             MOV     C,SDA
0060 E4              151             CLR     A
0061 33              152             RLC     A
0062 4207            153             ORL     AR7,A
0064 C290            154             CLR     SCL
0066 0E              155             INC     R6
0067 BE08EE          156             CJNE    R6,#08H,SHIN_LP         ; 共8位,判断是否完成
                     157             
006A 22              158             RET     
                     159     ; END OF SHIN
                     160     
                     161     ;===============================================================================
----                 162             RSEG  CODE_SEG
006B                 163     SHOUT:
                     164     ; 从MCU移出数据到AT24Cxx
                     165     ; 传入参数: R7 --- 要移出的数据
                     166     ; 返回值:C --- AT24Cxx的应答位
                     167     
                     168             USING   0
                     169     
006B E4              170             CLR     A
006C FE              171             MOV     R6,A
006D                 172     SHOUT_LP:                               ; 循环移入8个位
006D EF              173             MOV     A,R7
006E 33              174             RLC     A
006F 9291            175             MOV     SDA,C
0071 00              176             NOP     
0072 D290            177             SETB    SCL
0074 00              178             NOP     
0075 00              179             NOP     
0076 C290            180             CLR     SCL
0078 EF              181             MOV     A,R7
0079 25E0            182             ADD     A,ACC
007B FF              183             MOV     R7,A
007C 0E              184             INC     R6
007D BE08ED          185             CJNE    R6,#08H,SHOUT_LP        ; 共8位,判断是否完成
                     186             
0080 D291            187             SETB    SDA                     ; 读取应答
0082 00              188             NOP     
0083 00              189             NOP     
0084 D290            190             SETB    SCL
A51 MACRO ASSEMBLER  UP51S007                                                             12/13/2004 09:20:33 PAGE     4

⌨️ 快捷键说明

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