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

📄 93rw.asm

📁 01单片机网站51单片机开发板全部配套程序
💻 ASM
字号:
;程序名:  MCS51实验板配套程序-93系列EEPROM读写
;电路介绍:由P3.6=DIO,P3.7=CLK,P3.4=CS(与SADD键公用);显示电路同前面例子
;          93c46的DI/DO连接到一起组成DIO
;功能操作:按S3加数,按S1将_93add指定地址数据读出、显示,按S2将指定数据写入
;WWW.01MCU.NET WWW.01MCU.COM 2003/5/14编写
;********************************************************************
XSDAT BIT P1.4    ;定义驱动74164的数据脚为P1.4
XSCLK BIT P1.5    ;74164的时钟
GW    BIT P1.0    ;个位显示控制脚
SW    BIT P1.1    ;十位
BW    BIT P1.2    ;百位
QW    BIT P1.3    ;千位
READ  BIT P3.2    ;读按键
WRI   BIT P3.3    ;写按键
SADD  BIT P3.4    ;+数键,与CS公用

SJGW    EQU 30H     ;个位数据存储器
SJSW    EQU 31H     ;10
SJBW    EQU 32H     ;100
SJQW    EQU 33H     ;1000

DIO     BIT P3.6    ;93DIO
CLK     BIT P3.5    ;93CLK
CS      BIT P3.4    ;与+键公用
ADDH    EQU 20H     ;OP指令
ADDL    EQU 21H     ;OP指令+地址
_93data EQU 22H    ;数据
_93add  EQU 23H    ;地址
;*****************************************************

          MOV SP,#40H
          MOV _93add,#10H   ;对A93的10H地址进行操作
          MOV SJGW,#0
          MOV SJSW,#0
          MOV SJBW,#0
          MOV SJQW,#0
          LCALL AT93READ
          ACALL B2C       ;开始显示为读A93 10H的数据
MAIN :    LCALL DISPLAY
          SETB SADD        ;共用,使用时先置高
          JB SADD,N1
          LJMP ADDKEY
N1:       CLR SADD         ;不用时清0
          LCALL DISPLAY
          JB READ,N2
          LJMP READKEY
N2:       LCALL DISPLAY
          JB WRI,MAIN
          LJMP WRIKEY
          
;-+1键处理--------------------------
ADDKEY:   MOV R4,#5
ADDL1:    LCALL DISPLAY
          JNB SADD,ADDL1 
          DJNZ R4,ADDL1
          CLR SADD         ;不用时清0
          INC _93data         ;+1
          ACALL B2C         ;转换
          LJMP MAIN
;--READ键处理----------------------
READKEY:  MOV R4,#5
READL1:   LCALL DISPLAY
          JNB READ,READL1 
          DJNZ R4,READL1
          LCALL AT93READ     ;将93ADD地址指定的数据读出
          ACALL B2C         ;转换
          LJMP MAIN
;--WRI键处理-----------------------
WRIKEY:   MOV R4,#5
WRIL1:    LCALL DISPLAY
          JNB WRI,WRIL1
          DJNZ R4,WRIL1
          LCALL AT93WRIT      ;将_93data写到SADD 
          LCALL EWEND         ;写禁止,以便下次再写
          LJMP MAIN             
;***2-10转换程序**********************************
B2C:      MOV A,_93data
          MOV B,#100
          DIV AB
          MOV SJBW,A
          MOV A,B
          MOV B,#10
          DIV AB
          MOV SJSW,A
          MOV SJGW,B
          RET
;★★93c46读写子程序★★★★★★★★★★★★★★★★★★★★★★★★
;资源:程序中用到R6,操作地址为_93add,收、送数据_93data
;      使用8位操作,PRG=0
;2002/5/15调试通过
;定义:
;cs      bit 
;dio     bit 
;addh    equ 
;addl    equ
;_93add  equ
;_93data equ
;调用程序
AT93READ:   ;读
            CLR CS               ;初始
            CLR DIO
            MOV ADDH,#11B        ;读指令110 
            MOV ADDL,#00000000B  ;传送指令和地址
            MOV A,_93add
            ORL A,ADDL
            MOV ADDL,A           ;地址加入
            LCALL READDATA       ;读指令
            RET
            
AT93WRIT:   ;写允许
            CLR CS               ;初始
            CLR DIO
            MOV ADDH,#10B
            MOV ADDL,#01100000B  ;9346允许擦除指令
            LCALL WRICOMM        ;写允许擦写指令
            ;写数据
            MOV ADDH,#10B        ;写指令101
            MOV ADDL,#10000000B  ;传送指令和地址
            MOV A,_93add
            ORL A,ADDL
            MOV ADDL,A           ;地址合成加入
            LCALL WRIDATA        ;将_93data中的数据写到片中
EWEND:      ;写禁止
            MOV ADDH,#10B
            MOV ADDL,#00000000B
            LCALL WRICOMM        ;写禁止
            RET

;******* 9 3公共子程序************************************
;写不含地址的指令,如,写允许、禁止、擦除等
;**************************************************************
WRICOMM:    SETB CS              ;复位
            MOV R6,#8
            MOV ACC,ADDH         ;送出指令字
WCOM:       RLC A
            MOV DIO,C            ;移出到C并送DIO端
              LCALL D15US
              SETB CLK
              LCALL D15US
              CLR CLK
              LCALL D15US
            DJNZ R6,WCOM         
            MOV R6,#8
            MOV ACC,ADDL         ;送出地址
WADD:       RLC A
            MOV DIO,C            ;移出到C并送DIO端
              LCALL D15US
              SETB CLK
              LCALL D15US
              CLR CLK
              LCALL D15US
            DJNZ R6,WADD
            CLR CS
            RET
;******* 9 3公共子程序************************************
;写数据

⌨️ 快捷键说明

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