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

📄 wl007.lst

📁 买板子时赠的实验例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  WL007                                                                08/19/2005 20:30:40 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************
                       2     ;*  标题:  ME300系列单片机开发系统演示程序 - AT24C02读写演示程序                *
                       3     ;*  硬件: ME300A+                                                               *
                       4     ;*  文件:  wl007.asm                                                            *
                       5     ;*  日期:  2004-1-5                                                             *
                       6     ;*  版本:  1.0                                                                  *
                       7     ;*  作者:  伟纳电子 - Freeman                                                   *
                       8     ;*  邮箱:  freeman@willar.com                                                   *
                       9     ;*  网站: http://www.willar.com                                                *
                      10     ;********************************************************************************
                      11     ;*  描述:                                                                       *
                      12     ;*         AT24C02读写演示程序                                                  *
                      13     ;*                                                                              *
                      14     ;*                                                                              *
                      15     ;*                                                                              *
                      16     ;*                                                                              *
                      17     ;********************************************************************************
                      18     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
                      19     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      20     ;********************************************************************************
                      21     
                      22     NAME    WL007
                      23     
  00A1                24     OP_READ         EQU     0xa1            ; 器件地址以及读取操作
  00A0                25     OP_WRITE        EQU     0xa0            ; 器件地址以及写入操作
  007F                26     MAX_ADDR        EQU     0x7f            ; AT24C02最大地址
                      27     
                      28     CODE_SEG        SEGMENT CODE 
                      29     DATA_SEG        SEGMENT DATA
                      30     STACK_SEG       SEGMENT IDATA
                      31     
                      32     
----                  33             RSEG  DATA_SEG
0000                  34     ADDR:   DS      1
0001                  35     TMP2:   DS      1
0002                  36     TMP3:   DS      1
                      37     
----                  38             RSEG    STACK_SEG
0000                  39     STACK:          DS      20
                      40     
  00B3                41     SCL     BIT     P3.3
  0093                42     SDA     BIT     P1.3
                      43     
                      44     ;===============================================================================
----                  45     CSEG    AT      0000H                   ; 复位向量
0000 020000   F       46             JMP     MAIN
                      47     
                      48     
                      49     
                      50     ;===============================================================================
----                  51             RSEG  CODE_SEG
0000                  52     MAIN:
                      53     ; 主程序开始
                      54     
                      55             USING   0
                      56             
0000 758100   F       57             MOV     SP, #(STACK-1)          ; 设置堆栈
                      58             
A51 MACRO ASSEMBLER  WL007                                                                08/19/2005 20:30:40 PAGE     2

0003 D293             59             SETB    SDA
0005 D2B3             60             SETB    SCL
                      61     
0007 7F5A             62             MOV     R7,#05AH                ; 全部填充0xff
0009 120000   F       63             LCALL   FILL_BYTE
                      64     
000C E4               65             CLR     A
000D F500     F       66             MOV     ADDR,A
000F                  67     MAIN_LP1:                               ; 将表格DIS_CODE内数据写入到EEPROM
                      68     
000F E500     F       69             MOV     A,ADDR
0011 900000   F       70             MOV     DPTR,#DIS_CODE
0014 93               71             MOVC    A,@A+DPTR               ; 查表
                      72             
0015 FD               73             MOV     R5,A                    ; 数据到R5      
0016 AF00     F       74             MOV     R7,ADDR                 ; 地址到R7
0018 120000   F       75             LCALL   WRITE_BYTE
                      76     
001B 0500     F       77             INC     ADDR                    ; 地址加1
001D E500     F       78             MOV     A,ADDR
001F C3               79             CLR     C
0020 9408             80             SUBB    A,#08H                  ; 共8字节,判断是否完成
0022 40EB             81             JC      MAIN_LP1                ; 
                      82             
0024 E4               83             CLR     A                       ; 
0025 F500     F       84             MOV     ADDR,A                  ; 
0027                  85     MAIN_LP2:                               ; 循环读取AT24C02内容,并输出到P0口
0027 AF00     F       86             MOV     R7,ADDR                 ; 地址到R7
0029 120000   F       87             LCALL   READ_RANDOM
002C 8F80             88             MOV     P0,R7                   ; 将读取的数据传送到P0
                      89             
002E 0500     F       90             INC     ADDR                    ; 地址加1
0030 530007   F       91             ANL     ADDR,#07H               ; 循环读取范围为0x00~0x07
                      92             
0033 7FFA             93             MOV     R7,#0FAH                ; delay
0035 120000   F       94             LCALL   DELAYMS
                      95             
0038 80ED             96             SJMP    MAIN_LP2
                      97     ; END OF MAIN
                      98     
                      99     ;===============================================================================
----                 100             RSEG  CODE_SEG
003A                 101     START:
                     102     ; 开始位
                     103     ; 传入参数: 无
                     104     ; 返回值:无
                     105     
003A D293            106             SETB    SDA
003C D2B3            107             SETB    SCL
003E 00              108             NOP 
003F 00              109             NOP  
0040 C293            110             CLR     SDA
0042 00              111             NOP
0043 00              112             NOP     
0044 00              113             NOP     
0045 00              114             NOP     
0046 C2B3            115             CLR     SCL
0048 22              116             RET     
                     117     ; END OF START
                     118     
                     119     ;===============================================================================
                     120     
----                 121             RSEG  CODE_SEG
0049                 122     STOP:
                     123     ; 停止位
                     124     ; 传入参数: 无
A51 MACRO ASSEMBLER  WL007                                                                08/19/2005 20:30:40 PAGE     3

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

0080 D293            191             SETB    SDA                     ; 读取应答
0082 00              192             NOP     
0083 00              193             NOP     

⌨️ 快捷键说明

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