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

📄 good.lst

📁 使用51系列单片机操作93c46些列储存器的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  GOOD                                                                 08/06/2005 16:36:06 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN GOOD.OBJ
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE GOOD.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1      ;*****************************************************************
                       2      ;*  主    页 :  HTTP:WWW.QLMCU.COM                                     
                       3      ;*                                                              
                       4      ;*  程序功能 :  93C46的读写实验                                
                       5      ;*                                                         
                       6      ;*  硬    件:  WS803A / WS806 /WS***
                       7      ;*                                                     
                       8      ;*  创建时间 :  2005.06.27
                       9      ;*
                      10      ;*  Designer :  benladn911   
                      11      ;*******************************************************************
                      12      ;* 当选择8 位结构时93C46 有7 条10 位的指令
                      13      ;* 指令、地址和写入的数据在时钟信号SK 的上升沿时由DI 引脚输入
                      14      ;* DO 引脚除了从器件读取据或在进行了写操作后查询准备/繁忙ready/busy 的器件工作状态外平常是
                             高阻态的
                      15      ;*****************************************************************************************
                             *
                      16      ;程序首先从89S51的 ADDR,WDM 读出欲写入93C46的地址和数据,然后再把写入的数据读出来
                      17      ;存放在 RDM ,再把ADDR , RDM 同过四位数码管显示出来.
                      18      
                      19     ;-------------端口和存储单元的定义---------------
  00B5                20             CS EQU  P3.5    ;片选端
  00A6                21             SK EQU  P2.6    ;模拟时钟信号输出端
  00A5                22             DI EQU  P2.5    ;串行数据输出端
  00A4                23             DO EQU  P2.4    ;串行数据输入端
                      24     
  0051                25             WDM EQU 51H   ;欲写入数据存储单元
  0050                26             RDM EQU 50H   ;读出存放于 89S51 RAM 的存储单元
  0042                27             ADDR EQU 42H   ;欲写入93C46的地址
                      28     ;------------------------------------------------
                      29     
0000                  30     ORG 0000H
0000 020100           31     LJMP MAIN
                      32     
0100                  33     ORG 0100H    ;主程序
0100                  34     MAIN:
0100 754220           35          MOV ADDR,#20H  ;欲写入的地址设置(可根据需要自行修改)
0103 7551FF           36          MOV WDM,#0ffH ;要写入的数据(可根据需要自行修改)
0106 120196           37          LCALL EWEN46  ;调用写允许子程序,93C46每次上电后在进行写操作前都要先写允许
0109 1201BB           38          LCALL WRITE   ;调用写入子程序
010C 12026D           39          LCALL READ    ;调用读子程序
                      40     
                      41     ;----------------------------------------------
                      42     ;--------------显示处理子程--------------------
                      43     
010F E550             44          MOV A,RDM   ;对 RDM 的低四位处理 
0111 540F             45          ANL A,#00001111B   ;屏蔽高四位
0113 F553             46          MOV 53H,A
                      47          
0115 E550             48          MOV A,RDM   ;对 RDM 的高四位处理
0117 54F0             49          ANL A,#11110000B   ;屏蔽低四位
0119 C4               50          SWAP A
011A F554             51          MOV 54H,A
                      52          
011C E542             53          MOV A,ADDR  ;对 ADDR 的低四位处理
011E 540F             54          ANL A,#00001111B
0120 F555             55          MOV 55H,A
                      56          
A51 MACRO ASSEMBLER  GOOD                                                                 08/06/2005 16:36:06 PAGE     2

0122 E542             57          MOV A,ADDR  ;对 ADDR 的高四位处理
0124 54F0             58          ANL A,#11110000B
0126 C4               59          SWAP A
0127 F556             60          MOV 56H,A
                      61          
0129 90016B           62     DISP:MOV DPTR,#TABLE
012C E553             63          MOV A,53H
012E 93               64          MOVC A,@A+DPTR
012F F580             65          MOV P0,A   ;显示 RDM 的低位
0131 C293             66          CLR P1.3   ;选通第四位数码管
0133 12018D           67          LCALL DL2MS
0136 12018D           68          LCALL DL2MS
0139 D293             69          SETB P1.3  ;关闭显示
                      70     
013B E554             71          MOV A,54H
013D 93               72          MOVC A,@A+DPTR
013E F580             73          MOV P0,A   ;显示 RDM 的高位
0140 C292             74          CLR P1.2   ;选通第三位数码管
0142 12018D           75          LCALL DL2MS
0145 12018D           76          LCALL DL2MS
0148 D292             77          SETB P1.2  ;关闭显示
                      78          
014A E555             79          MOV A,55H
014C 93               80          MOVC A,@A+DPTR
014D F580             81          MOV P0,A   ;显示 ADDR的高位
014F C291             82          CLR P1.1   ;选通第二位数码管
0151 12018D           83          LCALL DL2MS
0154 12018D           84          LCALL DL2MS
0157 D291             85          SETB P1.1  ;关闭显示
                      86          
0159 E556             87          MOV A,56H
015B 93               88          MOVC A,@A+DPTR
015C F580             89          MOV P0,A   ;显示 ADDR 的高位
015E C290             90          CLR P1.0   ;选通第一位数码管
0160 12018D           91          LCALL DL2MS
0163 12018D           92          LCALL DL2MS
0166 D290             93          SETB P1.0  ;关闭显示
                      94          
0168 020129           95          LJMP DISP
                      96     
016B C0F9A4B0         97     TABLE:  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H  ;0~9
016F 999282F8                
0173 8090                    
0175 8883C6A1         98             DB 88H,83H,0C6H,0A1H,86H,8EH   ;A~F
0179 868E                    
                      99     
                     100     ;*********************************************************************
                     101     ;**********************   各功能子程序   *****************************
                     102     ;*********************************************************************
                     103     ;----------------------------------------------------
                     104     ;发送高电平 1 
                     105     ;-----------------------------------------------------
017B                 106     HIGH46:
017B D2A5            107            SETB DI
017D D2A6            108            SETB SK
017F 00              109            NOP
0180 C2A6            110            CLR SK
0182 00              111            NOP
0183 22              112            RET
                     113     
                     114     ;-----------------------------------------------------
                     115     ;发送低电平 0 
                     116     ;-----------------------------------------------------
0184                 117     LOW46:
0184 C2A5            118           CLR DI
0186 D2A6            119           SETB SK
A51 MACRO ASSEMBLER  GOOD                                                                 08/06/2005 16:36:06 PAGE     3

0188 00              120           NOP
0189 C2A6            121           CLR SK
018B 00              122           NOP
018C 22              123           RET
                     124     
                     125     ;-------------------------------------------
                     126     ;---------------------延时-------------------
018D 7C08            127     DL2MS: MOV R4,#8;
018F 7D7C            128     DD3:MOV R5,#124
0191 DDFE            129        DJNZ R5,$
0193 DCFA            130        DJNZ R4,DD3
0195 22              131        RET
                     132     ;--------------------------------------------
                     133     
                     134     ;----------------------------------------------------- 
                     135     ;-------------------写操作允许子程序--------------------
                     136     ;-----------------------------------------------------
0196                 137     EWEN46:      ;  ( 10011*****  )
0196 D2B5            138     SETB CS    ;启动93C46
0198 00              139     NOP
0199 12017B          140     LCALL HIGH46  ;1
019C 120184          141     LCALL LOW46   ;0
019F 120184          142     LCALL LOW46   ;0
01A2 12017B          143     LCALL HIGH46  ;1
01A5 12017B          144     LCALL HIGH46  ;1
01A8 120184          145     LCALL LOW46   ;0
01AB 120184          146     LCALL LOW46   ;0
01AE 120184          147     LCALL LOW46   ;0
01B1 120184          148     LCALL LOW46   ;0
01B4 120184          149     LCALL LOW46   ;0
01B7 00              150     NOP
01B8 C2B5            151     CLR CS   ;93C46 进入休眠,降低功耗 
01BA 22              152     RET
                     153     
                     154     ;-----------------------------------------------------------------
                     155     ;------------向指定的地址中写入一个字节数据(八位)子程序---------
                     156     ;-----------------------------------------------------------------
01BB                 157     WRITE:   ;101
                     158           
01BB D2B5            159           SETB CS   ;启动93C46
01BD 00              160           NOP
01BE E542            161           MOV A,ADDR  ;把欲写入的数据的地址
                     162     
01C0 12017B          163           LCALL HIGH46   ;1
01C3 120184          164           LCALL LOW46    ;0
01C6 12017B          165           LCALL HIGH46   ;1
                     166     
01C9                 167     WR_ADDR:      ;欲写入地址的设置,93C46的地址为 7 位
01C9 A2E6            168     MOV C,ACC.6
01CB 92A5            169     MOV DI,C
01CD D2A6            170     SETB SK
01CF 00              171     NOP
01D0 C2A6            172     CLR SK
01D2 00              173     NOP
                     174     
01D3 A2E5            175     MOV C,ACC.5
01D5 92A5            176     MOV DI,C
01D7 D2A6            177     SETB SK
01D9 00              178     NOP
01DA C2A6            179     CLR SK
01DC 00              180     NOP
                     181     
01DD A2E4            182     MOV C,ACC.4
01DF 92A5            183     MOV DI,C
01E1 D2A6            184     SETB SK
01E3 00              185     NOP
A51 MACRO ASSEMBLER  GOOD                                                                 08/06/2005 16:36:06 PAGE     4

01E4 C2A6            186     CLR SK
01E6 00              187     NOP
                     188     
01E7 A2E3            189     MOV C,ACC.3
01E9 92A5            190     MOV DI,C
01EB D2A6            191     SETB SK
01ED 00              192     NOP
01EE C2A6            193     CLR SK
01F0 00              194     NOP
                     195     
01F1 A2E2            196     MOV C,ACC.2
01F3 92A5            197     MOV DI,C
01F5 D2A6            198     SETB SK
01F7 00              199     NOP
01F8 C2A6            200     CLR SK
01FA 00              201     NOP
                     202     
                     203     
01FB A2E1            204     MOV C,ACC.1
01FD 92A5            205     MOV DI,C
01FF D2A6            206     SETB SK
0201 00              207     NOP
0202 C2A6            208     CLR SK
0204 00              209     NOP
                     210     
0205 A2E0            211     MOV C,ACC.0
0207 92A5            212     MOV DI,C
0209 D2A6            213     SETB SK
020B 00              214     NOP
020C C2A6            215     CLR SK
020E 00              216     NOP
                     217     
020F                 218     WR_DAT:  ;写入一个字节数据(8位)
                     219     
020F E551            220     MOV A,WDM
                     221     
0211 A2E7            222     MOV C,ACC.7
0213 92A5            223     MOV DI,C
0215 D2A6            224     SETB SK
0217 00              225     NOP
0218 C2A6            226     CLR SK
021A 00              227     NOP
                     228     
021B A2E6            229     MOV C,ACC.6
021D 92A5            230     MOV DI,C
021F D2A6            231     SETB SK
0221 00              232     NOP
0222 C2A6            233     CLR SK
0224 00              234     NOP
                     235     
0225 A2E5            236     MOV C,ACC.5
0227 92A5            237     MOV DI,C
0229 D2A6            238     SETB SK
022B 00              239     NOP
022C C2A6            240     CLR SK
022E 00              241     NOP
                     242     
022F A2E4            243     MOV C,ACC.4
0231 92A5            244     MOV DI,C
0233 D2A6            245     SETB SK
0235 00              246     NOP
0236 C2A6            247     CLR SK
0238 00              248     NOP
                     249     
0239 A2E3            250     MOV C,ACC.3
023B 92A5            251     MOV DI,C
A51 MACRO ASSEMBLER  GOOD                                                                 08/06/2005 16:36:06 PAGE     5

023D D2A6            252     SETB SK
023F 00              253     NOP

⌨️ 快捷键说明

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