历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2018年01月11日 | 93C46的读写实验程序

2018-01-11 来源:eefocus

;*******************************************************************
 ;* 当选择8 位结构时93C46 有7 条10 位的指令
 ;* 指令、地址和写入的数据在时钟信号SK 的上升沿时由DI 引脚输入
 ;* DO 引脚除了从器件读取据或在进行了写操作后查询准备/繁忙ready/busy 的器件工作状态外平常是高阻态的

 ;******************************************************************************************
 ;程序首先从89S51的 ADDR,WDM 读出欲写入93C46的地址和数据,然后再把写入的数据读出来
 ;存放在 RDM ,再把ADDR , RDM 同过四位数码管显示出来.
 
;-------------端口和存储单元的定义---------------
 CS EQU P3.5 ;片选端
 SK EQU P2.6 ;模拟时钟信号输出端
 DI EQU P2.5 ;串行数据输出端
 DO EQU P2.4 ;串行数据输入端


 WDM EQU 51H   ;欲写入数据存储单元
 RDM EQU 50H   ;读出存放于 89S51 RAM 的存储单元
 ADDR EQU 42H   ;欲写入93C46的地址
;------------------------------------------------
 ORG 0000H
 LJMP MAIN
 ORG 0100H    ;主程序
MAIN:
        MOV ADDR,#20H  ;欲写入的地址设置(可根据需要自行修改)
        MOV WDM,#0ffH ;要写入的数据(可根据需要自行修改)
        LCALL EWEN46  ;调用写允许子程序,93C46每次上电后在进行写操作前都要先写允许
        LCALL WRITE   ;调用写入子程序
        LCALL READ    ;调用读子程序
        SJMP $

;*********************************************************************
;**********************   各功能子程序   *****************************
;*********************************************************************
;----------------------------------------------------
;发送高电平 1 
;-----------------------------------------------------
HIGH46:
       SETB DI
       SETB SK
       NOP
       CLR SK
       NOP
       RET

;-----------------------------------------------------
;发送低电平 0 
;-----------------------------------------------------
LOW46:
      CLR DI
      SETB SK
      NOP
      CLR SK
      NOP
      RET

;-------------------------------------------
;---------------------延时-------------------
DL2MS: 
  MOV R4,#8;
DD3:
  MOV R5,#124
        DJNZ R5,$
        DJNZ R4,DD3
        RET
;--------------------------------------------

;----------------------------------------------------- 
;-------------------写操作允许子程序--------------------
;-----------------------------------------------------
EWEN46:      ;  ( 10011*****  )
 SETB CS    ;启动93C46
 NOP
 LCALL HIGH46  ;1
 LCALL LOW46   ;0
 LCALL LOW46   ;0
 LCALL HIGH46  ;1
 LCALL HIGH46  ;1
 LCALL LOW46   ;0
 LCALL LOW46   ;0
 LCALL LOW46   ;0
 LCALL LOW46   ;0
 LCALL LOW46   ;0
 NOP
 CLR CS   ;93C46 进入休眠,降低功耗 
 RET

;-----------------------------------------------------------------
;------------向指定的地址中写入一个字节数据(八位)子程序---------
;-----------------------------------------------------------------
WRITE:   ;101
      
        SETB CS   ;启动93C46
        NOP
        MOV A,ADDR  ;把欲写入的数据的地址
        LCALL HIGH46   ;1
        LCALL LOW46    ;0
        LCALL HIGH46   ;1

WR_ADDR:      ;欲写入地址的设置,93C46的地址为 7 位
  MOV C,ACC.6
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.5
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.4
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.3
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.2
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.1
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.0
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP

WR_DAT:  ;写入一个字节数据(8位)
  MOV A,WDM
  MOV C,ACC.7
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.6
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.5
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.4
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.3
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.2
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.1
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.0
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
        LCALL DL2MS  ;调用延时,等待DO空闲!!!
        LCALL DL2MS
        LCALL DL2MS

LLK:    CLR CS  ;93C46 进入休眠,降低功耗 
        RET
;-----------------------------------------------------------------

;-----------------------------------------------------
;----------从指定的地址中读出一个字节数据(八位)子程序
;-----------------------------------------------------
READ:           ;110
        SETB CS   ;启动93C46
        NOP
        MOV A,ADDR  ;把欲读出的数据的地址送给A
        LCALL HIGH46
        LCALL HIGH46
        CLR DI
        SETB SK
        NOP
        CLR SK
        NOP

RD_ADDR:    ;读出地址设置(7位地址)
  MOV C,ACC.6
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.5
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.4
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.3
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.2
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.1
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
  MOV C,ACC.0
  MOV DI,C
 SETB SK
 NOP
 CLR SK
 NOP
RD_DAT:     ;读出一个字节的数据
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.7,C
 CLR SK
 NOP

 SETB SK
 NOP
  MOV C,DO
  MOV ACC.6,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.5,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.4,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.3,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.2,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.1,C
 CLR SK
 NOP
 SETB SK
 NOP
  MOV C,DO
  MOV ACC.0,C
 CLR SK
 NOP

  MOV RDM,A   ;保存读出的数据到 RDM(22H)
 CLR CS    ;93C46 进入休眠,降低功耗 
 RET

;---------------------------------------------------------------------------      
;-----------------------------------------------------
;-----------擦除所有单元子程序--------------------------
;-----------------------------------------------------
EARASE:
       SETB CS   ;启动93C46
       NOP
       LCALL HIGH46
       LCALL LOW46      
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP       
       SETB DI
       SETB SK
       NOP
       CLR SK
       NOP       
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP      
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP      
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP      
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP       
       CLR DI
       SETB SK
       NOP
       CLR SK
       NOP       
       SETB DI
       SETB SK
       NOP
       CLR SK
       NOP
       LCALL DL2MS  ;调用延时,等待DO空闲!!!
       LCALL DL2MS
       LCALL DL2MS
       
LLL:   CLR CS  ;93C46 进入休眠,降低功耗 
       RET
;----------------------------------------------------------------------
       END


推荐阅读

史海拾趣

全志(Allwinner)公司的发展小趣事

2010年,平板电脑市场的崛起为全志科技带来了巨大的发展机遇。全志迅速调整产品策略,推出了AP处理器A系列,成功抓住了这一市场风口。其芯片产品在平板电脑领域的应用,不仅提升了公司的市场份额,也为公司的未来发展奠定了坚实的基础。

Grande Electronics Ltd公司的发展小趣事
如调制电路中的元件损坏或参数漂移,导致调制信号异常,进而影响红外光的发射。
德丰(DEFOND)公司的发展小趣事

德丰影业股份有限公司(简称“德丰影业”)成立于2013年,由李纪丰担任董事长兼总经理。公司自成立以来,一直致力于打造高品质的影视文化产品,涵盖了电影、电视剧、网剧等多个领域。德丰影业凭借对市场的敏锐洞察力和对影视艺术的执着追求,成功投资并制作了一系列备受观众喜爱的影视作品。公司的发展壮大不仅为观众带来了丰富的视觉盛宴,也为中国影视产业的繁荣发展做出了积极贡献。

振宝佳(DMBJ)公司的发展小趣事

随着大陆市场化程度的加深和基础设施的完善,振宝佳公司看到了大陆市场的巨大潜力。为了更好地服务大陆客户,公司于2005年做出了重大战略转移,将总部迁移到塘厦。这一决策不仅使公司能够更贴近市场,也为其后续的发展奠定了坚实的基础。

E-T-A Circuit Breakers公司的发展小趣事

进入21世纪后,E-T-A公司继续加大在研发和技术创新方面的投入,推出了一系列智能电路保护解决方案。这些解决方案结合了先进的传感器技术、数据分析和人工智能技术,能够实时监测电气系统的运行状态,预测潜在风险,并提供智能化的保护和控制策略。这些创新产品不仅提高了电气系统的安全性和可靠性,也为客户带来了更高的经济效益和社会效益。

Apex Tool Group公司的发展小趣事

进入21世纪后,E-T-A公司继续加大在研发和技术创新方面的投入,推出了一系列智能电路保护解决方案。这些解决方案结合了先进的传感器技术、数据分析和人工智能技术,能够实时监测电气系统的运行状态,预测潜在风险,并提供智能化的保护和控制策略。这些创新产品不仅提高了电气系统的安全性和可靠性,也为客户带来了更高的经济效益和社会效益。

问答坊 | AI 解惑

现在论坛人气越来越低了

现在访问论坛的人还不到200人:L ,而且还不见上涨。 上来说话的就更少了。 论坛改版之后问题更是凸现衔接不上,没有通过测试就直接使用,至少也应该测下能否兼容吧。:( 影响人的心情。 对于删帖子也有点操作不当,对于不适合的帖子应该移到相应 ...…

查看全部问答>

急问一个FIFO问题

本帖最后由 dontium 于 2015-1-23 11:13 编辑 我的通讯设置为FIFO模式,11个数进一次接收中断(唯一的中断入口),信号是通过一个上位发送的。出现了错误。 现象如下:当上位机程序重起时,我的板子必须掉电重起,否则我的程序的中断根本进不去, ...…

查看全部问答>

三个影响LED灯具质量光衰的因素

单颗LED白灯在老化板上检测出来的数据,与把LED白灯组装成一个灯具老化时检测出来的数据,肯定是有点出入的。   这个差异的大小,取决于LED工作时的电性参数和灯具的设计情况,以及灯具使用的环境。   首先,选择什么样的LED白灯。   这 ...…

查看全部问答>

急找一个LVDS转VGA的方案

急找,一个双8位LVDS信号转VGA输出的方案,有知道的朋友们请说下,谢谢了!…

查看全部问答>

提问一个关于变压器参数测定

从废弃的电视机上拆了个,变压器,外面有铁壳封起来的。有什么方法测得功率?…

查看全部问答>

【视频分享】德州仪器Concerto™ 微控制器概览

介绍德州仪器 C2000微控制器系列中的最新 Concerto MCU在许多性能方面特有的优势,解释为什么Concerto 可以帮助您消除以往技术妥协的烦恼。探讨TI MCU 产品系列以及 C2000 Concerto的有机结合,进一步说明Concerto 的特性与构架. 另外还介绍了TI 提 ...…

查看全部问答>

2013大学生电子设计竞赛培训资料

本帖最后由 paulhyde 于 2014-9-15 03:29 编辑 2013大学生电子设计竞赛培训资料  …

查看全部问答>

【FPGA(cyclone4)第二期】终于看完这份资料了-适合入门

2013/9/4 16:08 纪念一下,终于系统的看完了FPGA低级建模的资料,总共363页,包括24个例程,包括低级建模基础知识——低级建模基础建模——低级建模仿顺序结构——低级建模接口建模——低级建模系统建模六大块,绝对物超所值,分享给大家,一起学习 ...…

查看全部问答>

FPGA\CPLD设计学习笔记(转载 献给初学者)

FPGA\\CPLD设计学习笔记 题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢。这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一个有志于FPGA/C ...…

查看全部问答>