资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,存储器与可编程接口,第一节 存储器的分类,第二节 随机存取存储器,第三节 只读存储器,第四节 存储器的并行扩展及连接方法,第五节 串行存储器的扩展方法,第六节 8155可编程接口芯片,1,Key points,单片机系统中使用的存储器结构性能及其用途。,存储器的并行扩展,扩展时的地址确定,以及与单片机的连接方法。,两线制与三线制的串行存储器, 和,SPI,总线的编程。,可编程接口芯片8155,2,第一节 存储器的分类,半导体存储器,静态,(SRAM),动态,(DRAM),固定掩膜型,ROM,、,可编程的,PROM,紫外线可擦除可,编程的,EPROM,电擦除可编程的,EEPROM,闪速型存储器,随机存取存储器,双极型,MOS,型,只读存储器,返回本章首页,3,第二节 随机存取存储器,一、静态,RAM,结构,存储器由若干个能够存储,0,和,1,两种数码的基本存储电路所组成,静态,RAM,的基本存储电路是双稳态触发器。以静态,RAM,为例,每个触发器包含,6,个,NMOS,管,它具有两个稳态,分别代表,0,和,1,两种状态,其结构如图,:,4,二、动态,RAM,结构,动态,RAM,通常采用,MOS,管栅极与源极间的极间电容存储信息,由于电容上的电荷会逐渐泄漏,因此要不断地对被泄漏的电荷进行补充,这种补充称为刷新。所以动态,RAM,片内要附加刷新的逻辑电路。由于动态,RAM,使用的,MOS,管少,功耗低,集成度高,可制成大容量的存储器芯片。,5,三、,RAM,断电保护,RAM,在断电之后,所存数据将全部丢失,为使断电后,片内数据能够得到保存,可在电源端通过二极管分别接到电源电压和后备电池电压,电池电压可以取3.6,V。,在正常时情况下,芯片由电源供电;电源断电或小于3.6,V,,改由电池供电,维持其电压,使所存数据不至丟失。,6,四、单片机对外部数据存储器的读写时序,取指令码,锁存地址低8位,从,P2,取高8,位,取指令,时间,返回本章首页,写操作时利用,WR,上升沿写入数据,读操作时利用,RD,上升沿读出数据,7,第三节 只读存储器,一、掩膜,ROM,利用光刻掩膜技术,将用户提供的程序存储在芯片中,制成后不能抹去也不能修改,。,二、可编程只读存储器,PROM,:,开始使用时允许用户自行写入信息,但只允许一次,以后只能读出,不能修改。,三、可擦除可编程只读存储器,EPROM,:,写入数据后,可以长期保存,保存时间与温度、光照有关。如果上面存的数据不要了,可以用紫外光擦除重新写入。,四、电擦除只读存储器,EEPROM,:,所存储的内容可以擦除,也可以在线写入。分为并行和串行两种。,五、闪速型存储器:,可以擦除,也可以在线重新写入。,8,六、单片机对外部程序存储器的取指时序,取指令码,取指令,时间,锁存地址低8位,从,P2,取高8位,返回本章首页,9,第四节 存储器的并行扩展及连接方法,一、扩展存储器时地址线的连接与地址分配,扩展时可以把存储器的地址线与,CPU,的低位地址线相连,用于片内寻址。,CPU,的高位地址线与存储器芯片的片选端的连接,可以有两种方式。即全译码方式和线选方式。,1.全译码方式,利用74,LS138,译码器对高位地址线进行译码,译码器输出接,存储器芯片的片选端。,10,全译码寻址方式的电路连接,高位译码,低位片内寻址,11,2.线选方式,线选方式只用一根高位地址线直,接连,存储器芯片的片选端,该线为高电平时即选中该芯片,电路连接如图。,高位线选,低位片内寻址,12,二、控制线的连接,扩展,RAM,时控制线的连接,13,扩展,ROM,时控制线的连接,14,数据、程序两用时控制线的连接,返回本章首页,15,第五节 串行存储器的扩展方法,一、二线制串行存储器,总线采用二线制,其中,SCL,为串行时钟端,,SDA,为串行数据,/,地址端,下图为具有,总线的,串行存储器,A,T24C01,连接图。也可以用并行口模拟。,16,编写,AT89C51,的读写程序,,第一步要发送一个起始位。第二步发送一个控制字。第三步进行发送或接收数据,第四步发一个结束位。以表示一次收发任务结束。,1.,控制字:,由8位组成,从器件地址由规程统一规定,例如存储器地址规定为1010,当1010码送到总线,只有串行存储器从器件才会响应。,片选或是存储器内部有分块的块选取值。要与被访问的芯片连接状态一致。对于,24,C01B,、,24C02B,,,A2,、,A1,、,A0,可为任意值。,二、模拟 总线的编程,D7 D6 D5 D4D3 D2 D1 D0,1 0 1 0A2 A1 A0 R/W,从器件地址 片选或块选读/写控制位,17,2.起始位子程序,START:SETB SDA,SETB SCL,NOP,NOP,CLR SDA,NOP,NOP,CLR SCL,RET,18,3终止位子程序,STOP: CLR SDA,SETB SCL,NOP,NOP,SETB SDA,NOP,NOP,CLR SCL,RET,19,4,应答位子程序,ACK:CLR SDA,SETB SCL,NOP,NOP,CLR SCL,SETB SDA,RET,20,5.非应答位子程序,NACK:SETB SDA,SETB SCL,NOP,NOP,CLR SCL,CLR SDA,RET,21,6应答位检查子程序,CACK:SETB SDA,;SDA,为输入,SETB SCL,;,第九个时钟脉冲,NOP,MOV C,SDA,;,读,SDA,存于,C,MOV F0,C,;,存入,F0,CLR SCL,;,时钟结束,NOP,RET,22,7单字节发送子程序,入口条件:待发送数据已经放在累加器,A,中,WRB:MOVR7,#08H,;,发送8位,WLP:RLCA,;,发送数据移入,C,MOVSDA,C,;,发送,SETBSCL,NOP,NOP,CLRSCL,CLRSDA,DJNZR7,WLP,RET,23,8单字节接收子程序,出口条件:接收的放在累加器,A,和,R6,中,RDB:MOVR7,#08H,;,接收8位,RLP:SETBSDA,;SDA,输入,SETBSCL,;,稳定发送,MOVC,SDA,;,读,SDA,MOVA,R6,;,取出,R6,值,RLCA,;,接收数据移入,A,MOVR6,A,CLRSCL,;,结束接收,DJNZR7,RLP,;,未完转,RLP,继续,RET,24,9写,n,个字节,入口条件:,1) 在片内,RAM,的,CONTWORD,单元存控制字节。,2)在片内,RAM,的,NUMBYT,单元存待发送数据的字节数,包括第一个地址值。若待发送数据的字节数为8,加上地址,,NUMBYT,应等于9。,3)在片内,RAM,的,FIRADD,单元存串行存储器收到数据后,应存入的首地址值。,4)待发送的数据放在以,FIRADD+1,为首地址的,n,个连续单元。,25,WRNBYT:PUSHPSW;,保护现场,WRN:SETBRS1,SETBRS0;,使用三区工作寄存器,LCALLSTA;,发启动子程序,MOVA,CONTWORD;,取读控制字,LCALLWRB;,发控制字节,LCALLCACK;,检查接收方应答,JBF0,WRN;,无应答重发,MOVR0,FIRADD;,取要写入数据的首地址,MOVR5,NUMBYT,WRDA;MOVA,R0,LCALLWRB;,发数据,LCALLCACK;,检查接收方应答,JBF0,WRN;,无应答重发,INCR0,DJNZR5,WRDA,LCALLSTOP,POPPSW,RET,写,n,个字节子程序,26,10接收,n,个字节,入口条件:,1) 在片内,RAM,的,CONTWORD,单元内存有控制字节。,2)在片内,RAM,的,NUMBYT,单元内存有待接收数据的字节数。,出口条件:,将接收到的数据存入以,FIRADD,为首地址的,n,个连续单元内。,27,RDNBYT:PUSHPSW;,保护现场,RDN:SETBRS1,SETBRS0;,使用第三区工作寄存器,LCALLSTA;,发启动子程序,MOVA,CONTWORD;,取控制字节,LCALLWRB;,发控制字节,LCALLCACK;,检查接收方应答,JBF0,RDN;,无应答重发,MOVR0,FIRADD;,接收后存放数据的首地址,RD:LCALLRDB,MOVR0,A;,接收数据,DJNZNUMBYT,FACK,LCALLNACK,LCALLSTOP,POPPSW,RET,FACK:LCALLACK,INCR0,AJMPRD,接收,n,个字节子程序,28,二、三线制串行存储器,AT93C46,AT93C46,读写指令格式,指指令 起始位 操作码 地址 数 据 功 能,读 1 10,A5 A4 A3 A2 A1 A0,读数据,写 1 01,A5 A4 A3 A2 A1 A0 D15DO,写入数据,擦除 1 11,A5 A4 A3 A2 A1 A0,擦除数据,擦写允许 1,OO 1 1 X X X X,允许编程,擦写禁止 1 00 0 0,X X X X,禁止编程,全写 1 00 1 0,X X X X D15DO,全写入,全擦 1 00 0 1,X X X X,全擦除,注:1.芯片为16位存储单元结构时,地址为6位,上表为16位结构。,2.芯片为8位存储单元结构时,上表地址应改为7位。,29,1传送起始位1的子程序,STABY:SETBP1.3;,置片选无效,CLRP1.0;,时钟置低,SETBP1.1;,送起始位“1”,NOP,NOP,CLRP1.3;,置片选有效,NOP,NOP,SETBP1.0;,时钟置高,送数据,NOP,NOP,CLRP1.0;,时钟置低,RET,30,2写入一个字节数据子程序,入口条件:待写入的内容,置于累加器,A。,WR1:MOVR4,#08H;,数据位数,WR10:RLCA,MOVP1.1,C;,将,C,值送存储器,DI,端,NOP,NOP,SETBP1.0;,时钟置高,送数据,NOP,NOP,CLRP1.0;,时钟置低,DJNZR4,WR10;,未完继续,RET,31,3. 读出一个字节数据子程序,出口条件:读出的内容,置于累加器,A。,RD1:MOVR4,#08H;,数据位数,RD10:NOP,NOP,SETBP1.0;,时钟置高读数据,NOP,NOP,CLRP1.0;,时钟置低,MOVC,P1.2;,数据读入,C,RLCA,DJNZR4,RD10;,未完继续,RET,32,4写数据子程序(16位结构),入口条件:设待写数据位于,R2(,高8位)、,R3(,低8位),写入,AT93C46,的单元地址置于,B。,WRITE:LCALL STABY ;,发送起始位1,MOV A,#30H;,取写允许操作码,LCALL WR1,LCALL STABY ;,发送起始位1,MOV A,B;,取写入地址,ORL A,#40H;,地址与写入操作码,LCALL WR1;,写入,MOV A,R2;,取写入的高8位,LCALL WR1,MOV A,R3;,取写入的低8位,返回本章首页,33,LCALL WR1,SETB P1.3;,置片选无效,NOP,NOP,CLR P1.3 ;,置片选有效,WAIT:JNB P1.2,WAIT ;,写入完成否,LCALL STABY ;,写禁止,SETB A,#00H,LCALL WR1,SETB P1.3 ;,置片选无效,RET,续前,34,5读数据子程序(16位结构),出口条件:,B,存要读出的单元地址,,R2,存读出数据的高8位、,R3,存读出数据的低8位。,READ:LCALLSTABY;,发送起始位1,MOVA,B;,取地址,ORLA,#80H;,地址与读出合并,LCALLWR1;,发读操作码及地址,NOP,NOP,LCALLRD1,;读入高8位,MOVR2,A ;,存,R2,LCALLRD1 ;,读入低8位,MOVR3,A ;,存,R3,SETBP1.3 ;,置片选无效,RET,返回本章首页,35,第六节 8155可编程接口芯片,8155芯片包含有256字节,RAM,,两个8位并行端口,PA、PB,,一个6 位并行口,PC,,一个14位定时/计数器。由于它含有常用的功能部件,且可与,MCS-51,系列单片机直接相连而不需要附加其它硬件,因而是,MCS-51,系列单片机应用系统中的常用外围芯片。,8155芯片一般为40个引脚,DIP,形式,其地址/数据端口,AD0AD7,可直接连,P0,口,,ALE、RD、WR,均可与单片机直接相连,其片选,CE,和端口选择,IO/M,一般由单片机地址线经译码后产生,在实验室的,DICE-5103S,实验系统中,译码得到的寄存器地址为,FF20HFF25H.,返回本章首页,36,8155可编程接口芯片内部寄存器地址,内部寄存器,I/O,地址,AD7AD0,DICE,中地址,命令/状态寄存器,xxxxx000,FF20H,PA,口寄存器,xxxxx001,FF21H,PB,口寄存器,xxxxx010,FF22H,PC,口寄存器,xxxxx011,FF23H,定时器低8位寄存器,xxxxx100,FF24H,定时器高6位寄存器,xxxxx101,FF25H,37,8155可编程接口芯片内部寄存器的作用,内部寄存器,功 能,命令寄存器,规定端口的工作方式,只能写,状态寄存器,存放各种标志,只能读,端口寄存器,用于与外部设备数据交换,命令,寄存器各位的作用,D7,D6,D5,D4,D3,D2,D1,D0,TM2,TM1,IEB,IEA,PC2,PC1,PB,PA,PA、PB: 0,输入,1输出,38,返回目录,返回本节,39,返回本节,返回目录,40,示例,1.在实验室的,DICE-5103S,单片机开发系统中,8155的,PB,口用于输出段码(共阳显示码),,PA,口用于输出位码(选择6个,LED,显示器之一进行显示),,PC,口用于键盘输入。,2.完成上述控制目的只须向8155的命令寄存器写入命令字00000011,B=03H。,3.相应的指令为,MOV A,#03H,MOV DPTR,#0FF20H,MOVX DPTR,A,41,Homework,1.查阅参考书,对存储器部分做小结。,2.对8155用途做一评价。,3.画出8155驱动,I/O,器件的电路图(引脚连接图),指出输入或输出时控制信号的作用及数据的流动情况。,4.通过查阅参考书,对存储器、8155及功能器件提交学习报告(不少于两页) 。,42,
展开阅读全文