硬件设定的,24C02datasheet上就有说明,通过A1 A2 A3这三个引脚是否接地而设定硬件地址的。
补充:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
㈡ 关于单片机的地址
logical memory一般是指经过虚拟地址重映射的地址空间,这个可以通过修改虚拟地址映射表,把实际的外部物理器件如FLASH,RAM,ROM之类的地址映射到任意系统支持的地址空间范围内。而global memory一般用于系统特殊应用的地址空间,一般不可更改,每段空间都有详细的功能说明,视芯片的具体设计。
㈢ MCS-51单片机外设端口地址和存储器地址是统一编址还是分开编址
嘿嘿 这个 俺可以帮助你
1 对于并行的I/O接口芯片
MCS-51单片机外设端口地址和片外数据存储器地址是统一编址,在接口时,将每一个外设的端口
看成是一个片外数据存储器的一个单元,给每一个外设端口都分配一个数据存储器的地址。
51 单片机没有专用的I/O指令,访问外设要用访问片外数据存储器的指令
即 MOVX A,@DPTR 或 MOVX @DPTR,A
用片外存储器的读写信号,控制外设端口传送数据的方向。
2 对于串行的I/O接口芯片 则另当别论(不属于统一编址的范畴)。
呵呵 满意 就选满意回答吧
㈣ 51单片机对外扩展时,为实现po扣地址/数据的分时复用,需要外接什么器件
P0在前一个时刻输出地址的低8位,然后由ALE信号将它们锁存到外面的逻辑芯片(例如74LS245之类)里,之后再从P0输出或输入数据,就实现了分时复用。 在这两个期间,地址的高8位,也就是P2口的信号
㈤ 单片机外接数据存储器时怎么判断芯片的实际地址范围
2#RAM被选中的状态是01xx|xxxx|xxxx|xxxx|xxxx|xxxx所以是4000H
1#RAM被选中的状态是10xx|xxxx|xxxx|xxxx|xxxx|xxxx所以是8000H
㈥ 51单片机系统中有关外部扩展芯片的地址问题
1、“51单片机的外部RAM和I\O口是统一编址”:这句话好像不对吧,应该是内部RAM。
51单片机中的IO口结构上说起来比较复杂,最好详细了解一下其结构原理。目前阶段你不妨暂时这样理解,就是IO口线+对应的寄存器,向IO口写1或写0,其实就是先向寄存器写0或写1。
回到你的问题,这4组IO口有4个寄存器,在51单片机中也是有地址的,P0是0x80、P1是0X90、P2是0XA0、P3是0XB0,而内部RAM的地址从0x00到0x7F。比如直接寻址方式采用同样一条指令访问寄存器,如果地址是0x00,则访问的是内部RAM,如果地址是0x80,则访问的就是P1口也就是IO口了。这就是所谓的统一编址。
多说一句,52增强型单片机虽然内部RAM增加了128字节,地址范围从0到0xff,但从0x80到0xff都采用的是间接寻址方式,操作上是可以区分开的。如果你今后学习汇编这点要注意,C语言就不用理会了,编译器会自动处理的。
重复一下,上述说法仅助你目前阶段的理解,更准确的需要去看IO口结构图。
2、上面其实已经回答了此问的后半部分。至于ROM和RAM地址重叠使用,这里的RAM一定指的是外部RAM!单片机对外部RAM和外部ROM的访问,地址信息是通过P0(低8位)和P2(高8位)送出;控制信号:对RAM读写的是WR和RD(即P3.6、P3.7),对ROM读取的则是PSEN(对ROM读取就是从外部ROM读取单片机的程序代码)。具体实现是由单片机在一个机器周期内不同时间段分时自动完成的,不用你去干预。
所谓重叠使用,其实我觉得如果使用分开编址,互不干扰更贴切一些,正如上面所说,对外部ROM和外部RAM的访问是单片机分时完成的,互不干扰。这一点稍微深入了解后看一下相应的时序图你就明白了。
㈦ IIC总线上连接的器件的地址怎么确定
IIC上的每个器件是否都要一个地址寄存器来确定自己的地址:很多器件都是通过硬件来确定地址的。
有的在出厂时地址就设置好了,用户不可以更改,有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;还有的有地址寄存器。
严格讲,主机不是向从机发送地址,而是主机往总线上发送地址,所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。
比如带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。
最常见的情况,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。
㈧ 关于用51单片机给外接芯片编址的问题
那人也没说到点子上,但是我感觉我也说不清楚,你如果用MOVX
和MOVA这些指令的话,光光知道地址是不够的,加上ALE也不够,其实你的思考已经入门了,这个控制是通过P0,P2,ALE,WR,RD共同配合实现的,只不过ALE,WR,RD不是由你直接控制的,是在你使用了MOVX命令以后单片机会自己按一定的顺序对这几个脚进行操作,你要做的就是接好线,必要时还要增加一点与非门电路。你再查查资料吧,单片机教材上关于扩展外部ROM
RAM里有这部分的说明,上面有时序图,看了那个加上文字说明你应该能明白点的。这个好像就叫INTER总线模式吧,书上没这么说,有些手册上这么称呼的。我建议要求不高的时候就别这么用了,还是简单的时序操作算了。
最后提醒一下,如果你用的是STC的单片机,这么用的时候还要多注意一点哦,就是他内部集成了256至1K不等的XRAM。多了讲不清楚,自己看吧。
㈨ 求助 单片机外接芯片时地址怎样确定
关键是看你的ADC0809的片选(片选CS是低电平有效)接在8051的哪个脚,我假设你把CS接在8051的P0.0脚,那么ADC0909的地址就是1111111111111110,假设你把CS接在P2.0脚,那么ADC0909的地址就是1111111011111111。8051单片机由P2和P0口组成16位地址,你把CS接在哪个脚,相应的那位为0就是ADC0809的地址。但这不是唯一的,假设你把CS接在P0.0脚,只要这个脚为低电平,都算是ADC0809的地址,即XXXXXXXXXXXXXXX0(X为1或者0)都算是ADC0809的无地址。
㈩ 单片机中外接程序存储器和数据存储器公用16位地址线和8根数据线为什么不会起冲突
建议你阅读一下单片机关于选通地址、传递数据方面的叙述。
下面我简略的说一下大概过程,希望对你有所帮助。
第一,单片机采用三总线结构传递数据。地址总线、数据总线、控制总线。传递数据的过程是先寻址,再传递数据。即先送一个地址信息(由微处理器向总线写一个地址信息),由寄存器(也可能是程序存储器,也可能是数据存储器)根据这个地址,把微处理器要读取的数据写到总线上,微处理器再读取这个数据。整个过程由控制总线控制。所以每次读的数据是针对那个地址对应的寄存器操作的,不会发生混乱。写数据时一样,先寻址,再写数据,数据就写入刚才寻址时的地址对应的那个寄存器里去了。
第二、程序存储器、数据存储器有不同的选通信号,在一个指令周期里,是不同的时间选通的,所以不会混乱。
第三。选通的引脚不同。拿片外数据存储器来说,是P3的第6和第7引脚做选通信号,程序存储器是PSEN做选通信号,他们接在各自器件的选通引脚上,所以不会混乱。
第四,指令不同。拿汇编指令来说。MOV是程序存储器传递数据用,MOVX是数据存储器传递数据用(对片外而言)。
总之,记住三总线传递的方式,先寻址,再传数,由控制总线控制,这个模式,你就容易理解这个了。
单片机的p2和p0分别传递地址的高八位和低八位。同时p0还传递数据。在时序信号的ALE高电平期间,锁定地址信息。/PSEN是选通程序存储器的。在/PSEN低电平期间是向程序存储器传递程序代码,/WR和/RD是选通数据存储器的,即在/WR和/RD(p3的六脚和七脚)低电平期间把数据传递给数据寄存器。而/PSEN和/WR及/RD是在不同时间变为低电平的,没有重叠的部分。也就是说,当/WR及/RD变成低电平时,/PSEN已经恢复高电平了,由P0口传出的数据信息当然只会传到数据存储器里,因为程序存储器已经不再处于选通状态了!!从表面看,都是从p0口传出的,但因为选通器件的时间不同而不会发生混乱。当然我说的是片外程序存储器和数据存储器的的情况,其实对片内也一样,还是三总线的这种控制方式,使它们在不同的时间被选通,而不至于发生冲突。
看看单片机的一个电路图。你会发现p0既跟74LS373连,又跟8155或8255或键盘或数模转换器等等连。而8155或8255或键盘或数模转换器等等对单片机而言是当做数据存储器处理的。74LS373连的多半是程序存储器。那么p0送出的信号不是两者都接受了吗?注意看ALE接74LS373的G接口,锁存地址用,PSEN有时用有时不用。WR和RD接数据存储器的选通接口。因为WR和RD跟ALE的信号在时间上没有重叠部分,所以p0的信号不会被程序存储器和数据存储器同时收到。这是一个举例说明,具体情况要具体分析。