51单片机WR和RD的是怎么控制它来传输数据的。
51单片机wr/rd脚一般作为片外数据存储器和I/O等接口芯片扩展时的数据写或读控制,在程序中不用你去控制。当程序在访问片外数据存储器时根据数据传送到方向,单片机自动发出写命令或读命令,使wr引脚变为低电平或使rd引脚变为低电平,控制芯片进行写操作或读操作。
51单片机wr/rd脚,是P3.6P和3.7,是在扩展外部数据存储器时才用得到,现在的单片机,都不需要外部扩展数据存储器了,这两个脚的功能就用不上了。但这两个脚做I/O引脚来用。
扩展资料:
同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WINBOND等,常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
参考资料来源:百度百科-51单片机
没必要,这样弄反而麻烦很多。不如直接用现成的“驱动”。
如果想省引脚可以选串口的12864
类似以上接口,你查找关于XBYTE的资料看看就能明白了
需要#include<absacc.h>
//绝对地址处理头文件,包含XBYTE,
//用XBYTE来定义扩展的IO端口及外部RAM单元地址,
//用XBYTE定义的目的是将外部电路不同的功能编
//程不同的地址而已这样就可以在程序里面通过直
//接对地址附置,就能使外部电路实现需要的功能,
//这样做还有一个好处就是在编译的时候会产生
//MOVX指令,这样可以操作 ~WR 和 ~RD引脚
// XBYTE[address]=data 写数据
// data=XBYTE[address] 读数据
1、首先您要明白,这两个引脚是控制单片机的外部存储器的读写操作的
2、对51单片机而言,P0口是双向数据口线(51为8位单片机,其数据用8个位来表示,所以用到8个口线),也是地址数据的低8位。当您需要扩展外部存储器时,用P2P0口的16根口线作为地址线,所以可以访问的存储单元为2^16(2的16次方=65536),也正因为如此,51单片机可扩展的最大存储器为64K约=65536。
3、当访问外部存储器是P0又是数据口线又是地址线,怎么办?解决的办法是两种功能分时使用,这里就需要一个锁存器来完成,P0口直接接到外部存储器的8位数据线,同时通过锁存器接到外部存储器的低8位地址线。基本过程:先往P2P0口送需要访问外部存储器的单元地址,此时P0外接一个锁存器作为地址数据的低8位,并被定锁,此时单片机内部电路自动产生一个锁存的信号,这就是WR或者RD信号了。然后再对数据进行存取!
写得可能有点乱,多看两遍一定能明白,最好画个图,这里不好上图,呵呵!
就是我把一个数据 放在P0口之后 WR和RD的时序是通过什么寄存器来控制的,如:
void sj(unsigned uchar aa)
{P0=aa;}
这个就是我要传输的数据,只要调用这个函数就完了吗,我感觉有问题啊 这个P0口的数据是怎么送出去的(我知道是通过WR和RD的时序送出去的),问题是怎么操作WR和RD来触发一次时序呢?
---------
WR、RD,不是这样用的。
要想让 WR 或 RD 发挥作用,必须使用《片外 RAM》。
当你对《片外 RAM》进行读、写的时候,WR 和 RD 才会工作。
读写片外 RAM 的汇编语言如下:
读片外 RAM:MOVX A, @DPTR
写片外 RAM:MOVX @DPTR, A
读写片外 RAM 的C 语言如下:
mem_w(0xb700, i);
k = mem_r(0xbb00);
事先要定义这两个函数。
单片机执行上述的读、写指令时:
P0、P2 先输出 16 位的地址,ALE 输出正脉冲,令外接的 373 锁存低八位地址后,
RD 或 WR,就会输出低电平,令《片外 RAM》输出或接收数据。
最后,数据,将从 P0 口输入或输出。
另外,和 WR、RD,协同工作的,还有 ALE。
P0、P2,前面已经说了,也是要用到的。
P1,是用不上的。
WR和RD的时序是51单片机自动产生的
在程序中不用你去控制 当你的程序在访问片外数据存储器时
根据数据传送到方向 单片机自动发出写命令或读命令
控制芯片进行写操作或读操作。
相应的指令是 movx A,@dptr(读时序)或movx @dptr,A(写时序)
不懂汇编? 想要理解就得学呀
具体细节参考89s51 datasheet.
这要看硬件是怎么连接的。
如果按照标准总线扩展外部存储器的方式,你不用考虑这些,直接定义外部存储的空间,写程序就可以了。
如果是其他方式连接的,要知道电路图是什么样子才能回答。
最好问问硬件设计的工程师,设计出来了就要告诉软件工程师用什么逻辑读写。
单片机对外有几条专用控制线?其功能是什么?
WR,RD,PSEN 主要是这三条,WR\/RD是外部数据存储器(RAM)或者统一编址的外部并行接口芯片的读写控制 PSEN:外部程序存储器选通信号线
单片机问题 简述下列引脚信号的作用:RD,WR,PSEN,EA,ALE.
RD:读外部数据信号 WR:写外部存储器信号 PSEN:外部程序存储器选通信号 EA:内外程序选择信号 ALE:地址锁存信号 功能:将片内RAM20H开始的50个单元内容转移到片外RAM的2000H单元开始位置 DJNZ为减一不为0则继续循环,即R7减50次才等于0,LOOP循环要循环50次 MOVX为对片外数据存储器即片外RAM操作的...
8051单片机实际应用时数据总线和地址总线如何形成?
回答:只有需要在外部扩展程序存储器或数据存储器时,才需要数据总线和地址总线的,而现在的51单片机几乎都不需要扩展外部的存储器了。 如果就是为了要接出来数据总线和地址总线的话,P0口的8条线直接接出来就是8条数据线,再用一片74LS373作低8位地址锁存器,输入端接到P0口,8条输出端就是低8位地址总线...
真心不知道51单片机wr和rd的作用?如下图,用wr接wr口和用普通io口接wr...
当使用总线操作器件时,wr和rd自动送出合适的读写信号。当然也可以用其他I\/O连接总线上器件的读写控制端,但在执行操作时要手动设置I\/O信号;wr和rd也可以作为普通I\/O口使用,手动设置其高低电平。
单片机p3中wr、rd什么意思
这两个端是与片外RAM配合操作的。在汇编语言中非常清楚。比如读外部RAM操作,具体的流程是,1、地址加到外部RAM;2、RD信号有效 3、RAM将数据送到数据总线;4、CPU读入数据,并送到指定单元。如果是写外部RAM的话,具体的流程是 1、地址加到外部RAM 2、WR信号有效 3、RAM将数据总线信息写入相应指定...
C51中WR和RD信号在程序运行过程中是由硬件决定的,这句话对吗
WR 和RD 是Intel总线的接口 51单片机硬件内是内置该总线的 所以只要软件中用总线通信自然就有效 不用I\/O口模拟总线 sfr是定义 sfr是用于定义51单片机特殊功能寄存器对应硬件地址的 比如P1 在C文件中也能定义 一般出现在头文件 还有地线一般多点接地是应用于对功率要求高的场合 以分散功率 高频一般...
单片机wr rd引脚是什么的缩写
wr就是write这个单词的缩写,而rd就是read这个单词的缩写。
51单片机的三总线分别是什么?
单片机控制系统的三总线是指数据总线、地址总线、控制总线。1、数据总线 51 单片机的数据总线为P0 口,CPU 从P0 口送出和读回数据。2、地址总线 51 系列单片机的地址总线为16 位。高8位地址则通过P2 口送出。3、控制总线 51 系列单片机的控制总线包括(RD)读控制信号P3.7 和(WR)写控制信号P3.6...
51单片机的片外RAM的读操作和写操作分别由哪两个信号控制?
\/WR,\/RD,\/ALE,\/ 片选 这是硬件,读操作用\/RD,写操作用\/WR,低电平有效。指令是,MOVX A, @DPTR;MOVX A, @Ri;这是读读操作,i=0或者1;MOVX @DPTR,A;MOVX @Ri,A;写操作
mcs-51单片机是通过哪些方法把数据存储器和程序存储器严格分开的
是通过不同的控制总线,来把数据存储器和程序存储器严格分开。读写数据存储器时,RD 和 WR 分别输出控制信号。读出程序存储器时,PSEN ,输出控制信号。