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

📄 wl006.lst

📁 周立功的51单片机试验例程,我当年就是靠这个学会单片机的
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  WL006                                                                04/20/2004 11:57:07 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ; /*******************************************************************************
                       2     ; *                                                                              *
                       3     ; *    File       : wl006.asm                                                    *
                       4     ; *    Date       : 2004-4-19                                                    *
                       5     ; *    Version    : 1.1                                                          *
                       6     ; *                                                                              *
                       7     ; *    Author     : Freeman          freeman@willar.com                          *
                       8     ; *    Company    : Willar           www.willar.com                              *
                       9     ; *                                                                              *
                      10     ; ********************************************************************************
                      11     ; *    Descriptoon:                                                              *
                      12     ; *                AT93C46读写演示程序                                           *
                      13     ; *                从地址0x00开始写入数据“www.willar.com”, 然后再读出         *
                      14     ; *                                                                              *
                      15     ; *                注意:在擦除或写入数据之前,必须先写入EWEN指令                *
                      16     ; *                                                                              *
                      17     ; *                                                                              *
                      18     ; *******************************************************************************/
                      19             NAME    WL006
                      20     
                      21     CODE_SEG        SEGMENT CODE 
                      22     DATA_SEG        SEGMENT DATA
                      23     STACK_SEG       SEGMENT IDATA
                      24     
----                  25             RSEG  DATA_SEG
                      26             
0000                  27     INDATA:         DS      1
0001                  28     ADDR:           DS      1
                      29     
----                  30             RSEG    STACK_SEG
0000                  31     STACK:          DS      20
                      32     
                      33     
  0094                34     CS      BIT     P1.4
  0090                35     SK      BIT     P1.0
  0092                36     DI      BIT     P1.2
  0093                37     DO      BIT     P1.3
                      38     
                      39     ;===============================================================================
----                  40             CSEG    AT      0000H
0000 020000   F       41             JMP     MAIN
                      42     
                      43     ;===============================================================================
----                  44             RSEG  CODE_SEG
0000                  45     MAIN:
                      46             USING   0
0000 758100   F       47             MOV     SP,#(STACK-1)           ; 设置堆栈
                      48             
0003 C294             49             CLR     CS                      ; 初始化端口
0005 C290             50             CLR     SK
0007 D292             51             SETB    DI
0009 D293             52             SETB    DO
                      53     
000B 120000   F       54             LCALL   EWEN                    ; 使能写入操作
000E 120000   F       55             LCALL   ERASE                   ; 擦除全部内容
                      56             
0011 E4               57             CLR     A                       ; 写入显示代码到AT93C46
0012 F500     F       58             MOV     ADDR,A
A51 MACRO ASSEMBLER  WL006                                                                04/20/2004 11:57:07 PAGE     2

0014                  59     WRITE_LP:
0014 E500     F       60             MOV     A,ADDR
0016 900000   F       61             MOV     DPTR,#DIS_CODE
0019 93               62             MOVC    A,@A+DPTR
                      63             
001A FD               64             MOV     R5,A                    ; 数据到R5
001B AF00     F       65             MOV     R7,ADDR                 ; 地址到R7
001D 120000   F       66             LCALL   WRITE
                      67             
0020 0500     F       68             INC     ADDR                    ; 地址加1
0022 E500     F       69             MOV     A,ADDR
0024 C3               70             CLR     C
0025 9408             71             SUBB    A,#08H                  ; 共8个字节,判断是否完成
0027 40EB             72             JC      WRITE_LP
                      73             
0029 120000   F       74             LCALL   EWDS                    ; 禁止写入操作  
                      75             
                      76     
002C E4               77             CLR     A
002D F500     F       78             MOV     ADDR,A
                      79             
002F                  80     MAIN_LP:                                ; 循环读取AT93C46内容,并输出到P0口
002F AF00     F       81             MOV     R7,ADDR
0031 120000   F       82             LCALL   READ
                      83             
0034 8F80             84             MOV     P0,R7
0036 0500     F       85             INC     ADDR
0038 530007   F       86             ANL     ADDR,#07H               ; 循环读取地址为0x00~0x07
                      87     
003B 7FFA             88             MOV     R7,#250
003D 120000   F       89             LCALL   DELAYMS                 ; 延时250ms
                      90             
0040 80ED             91             SJMP    MAIN_LP
                      92     
                      93     
                      94     ;===============================================================================
----                  95             RSEG    CODE_SEG
0042                  96     WRITE:
                      97     ; 定入数据到AT93C46
                      98     ; 传入参数:R7 --- 要写入数据的地址
                      99     ; 传入参数:R5 --- 要写入的数据
                     100     ; 返回值:无
                     101     
                     102             USING   0
0042 8D00     F      103             MOV     INDATA,R5               ; 暂存要写入的数据
                     104     
0044 AD07            105             MOV     R5,AR7                  ; 地址
0046 7F40            106             MOV     R7,#040H                ; 写入指令
0048 120000   F      107             LCALL   INOP                    ; 调用INOP子程序,写入指令和地址
                     108     
004B AF00     F      109             MOV     R7,INDATA               ; 数据
004D 120000   F      110             LCALL   SHIN                    ; 移入数据
                     111     
0050 C294            112             CLR     CS
                     113     
0052 7F0A            114             MOV     R7,#10
0054 020000   F      115             LJMP    DELAYMS                 ; 延时10ms,Twp
                     116     ; END OF WRITE
                     117     
                     118     ;===============================================================================
----                 119             RSEG  CODE_SEG
0057                 120     READ:
                     121     ; 读取AT93C46内的数据
                     122     ; 传入参数:R7 --- 地址
                     123     ; 返回值:R7 --- 读取的数据
                     124     
A51 MACRO ASSEMBLER  WL006                                                                04/20/2004 11:57:07 PAGE     3

                     125             USING   0
                     126             
0057 AD07            127             MOV     R5,AR7
0059 7F80            128             MOV     R7,#080H
005B 120000   F      129             LCALL   INOP                    ; 调用INOP子程序,写入指令和地址
                     130     
005E 120000   F      131             LCALL   SHOUT                   ; 调用SHOUT,读出数据保存到R7
                     132             
0061 C294            133             CLR     CS
                     134     
0063 22              135             RET     
                     136     ; END OF READ
                     137     
                     138     ;===============================================================================
----                 139             RSEG  CODE_SEG
0064                 140     EWEN:
                     141     ; 写入使能指令
                     142     ; 传入参数:无
                     143     ; 返回值:无
                     144     
                     145             USING   0
                     146     
0064 7D60            147             MOV     R5,#060H
0066 E4              148             CLR     A
0067 FF              149             MOV     R7,A
0068 120000   F      150             LCALL   INOP
                     151     
006B C294            152             CLR     CS
                     153     
006D 22              154             RET     
                     155     ; END OF EWEN
                     156     
                     157     
                     158     ;===============================================================================
----                 159             RSEG  CODE_SEG
006E                 160     EWDS:
                     161     ; 写入禁止指令
                     162     ; 传入参数:无
                     163     ; 返回值:无
                     164     
                     165             USING   0
                     166             
006E E4              167             CLR     A
006F FD              168             MOV     R5,A
0070 FF              169             MOV     R7,A
0071 120000   F      170             LCALL   INOP
                     171     
0074 C294            172             CLR     CS
                     173     
0076 22              174             RET     
                     175     ; END OF EWDS
                     176     
                     177     ;===============================================================================
----                 178             RSEG  CODE_SEG
0077                 179     ERASE:
                     180     ; 擦除所有内容
                     181     ; 传入参数:无
                     182     ; 返回值:无
                     183     
                     184             USING   0
                     185             
0077 7D40            186             MOV     R5,#040H
0079 E4              187             CLR     A
007A FF              188             MOV     R7,A
007B 120000   F      189             LCALL   INOP
                     190     
A51 MACRO ASSEMBLER  WL006                                                                04/20/2004 11:57:07 PAGE     4

007E 7F1E            191             MOV     R7,#01EH
0080 120000   F      192             LCALL   DELAYMS
                     193     
0083 C294            194             CLR     CS

⌨️ 快捷键说明

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