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

📄 wl006.lst

📁 这是一个在93c46芯片在8951单片机下的工作例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  WL006                                                                03/29/2005 15:44:25 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************
                       2     ;*  标题:  伟纳电子ME300B单片机开发系统演示程序 - AT93C46读写演示程序           *
                       3     ;*  文件:  wl006.asm                                                            *
                       4     ;*  日期:  2004-1-5                                                             *
                       5     ;*  版本:  1.0                                                                  *
                       6     ;*  作者:  伟纳电子 - Freeman                                                   *
                       7     ;*  邮箱:  freeman@willar.com                                                   *
                       8     ;*  网站: http://www.willar.com                                                *
                       9     ;********************************************************************************
                      10     ;*  描述:                                                                       *
                      11     ;*         AT93C46读写演示程序                                                  *
                      12     ;*         从地址0x00开始写入数据“www.willar.com”, 然后再读出                  *
                      13     ;*                                                                              *
                      14     ;*         注意:在擦除或写入数据之前,必须先写入EWEN指令,93C46右边的JP7跳线   *
                      15     ;*      用于8位和16位模式选择,默认为8位模式                                    *
                      16     ;*                                                                              *
                      17     ;*                                                                              *
                      18     ;********************************************************************************
                      19     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
                      20     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      21     ;********************************************************************************
                      22     
                      23             NAME    WL006
                      24     
                      25     CODE_SEG        SEGMENT CODE 
                      26     DATA_SEG        SEGMENT DATA
                      27     STACK_SEG       SEGMENT IDATA
                      28     
----                  29             RSEG  DATA_SEG
                      30             
0000                  31     INDATA:         DS      1
0001                  32     ADDR:           DS      1
                      33     
----                  34             RSEG    STACK_SEG
0000                  35     STACK:          DS      20
                      36     
                      37     
  00B4                38     CS      BIT     P3.4
  00B3                39     SK      BIT     P3.3
  00B5                40     DI      BIT     P3.5
  00B6                41     DO      BIT     P3.6
                      42     
                      43     ;===============================================================================
----                  44             CSEG    AT      0000H
0000 020000   F       45             JMP     MAIN
                      46     
                      47     ;===============================================================================
----                  48             RSEG  CODE_SEG
0000                  49     MAIN:
                      50             USING   0
0000 758100   F       51             MOV     SP,#(STACK-1)           ; 设置堆栈
                      52             
0003 C2B4             53             CLR     CS                      ; 初始化端口
0005 C2B3             54             CLR     SK
0007 D2B5             55             SETB    DI
0009 D2B6             56             SETB    DO
                      57     
000B 120000   F       58             LCALL   EWEN                    ; 使能写入操作
A51 MACRO ASSEMBLER  WL006                                                                03/29/2005 15:44:25 PAGE     2

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

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

0079 E4              191             CLR     A
007A FF              192             MOV     R7,A
007B 120000   F      193             LCALL   INOP
                     194     
007E 7F1E            195             MOV     R7,#01EH
0080 120000   F      196             LCALL   DELAYMS

⌨️ 快捷键说明

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