单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章

上传人:E**** 文档编号:89503210 上传时间:2019-05-26 格式:PPT 页数:35 大小:1.59MB
返回 下载 相关 举报
单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章_第1页
第1页 / 共35页
单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章_第2页
第2页 / 共35页
单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章_第3页
第3页 / 共35页
单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章_第4页
第4页 / 共35页
单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章》由会员分享,可在线阅读,更多相关《单片机原理及其应用 教学课件 ppt 作者 陈立周 陈宇 第4章(35页珍藏版)》请在金锄头文库上搜索。

1、第四章 半导体存储器,第一节 存储器的分类 第二节 随机存取存储器 第三节 只读存储器 第四节 存储器的并行扩展及连接方法 第五节 串行存储器的扩展方法,本章要点,简单介绍单片机系统中使用的存储器结构性能及其用途。 存储器的并行扩展,扩展时的地址确定,以及与单片机的连接方法。 两线制与三线制的串行存储器, 和 SPI总线的编程。,第一节 存储器的分类,半导体存储器,静态(SRAM),动态(DRAM),固定掩膜型ROM、,可编程的PROM,紫外线可擦除可 编程的EPROM,电擦除可编程的EEPROM,闪速型存储器,随机存取存储器,双极型,MOS型,只读存储器,返回本章首页,第二节 随机存取存储器

2、,一、静态RAM结构,存储器由若干个能够存储0和1两种数码的基本存储电路所组成,静态RAM的基本存储电路是双稳态触发器。以静态RAM为例,每个触发器包含6个NMOS管,它具有两个稳态,分别代表0和1两种状态,其结构如图 :,二、动态RAM结构,动态RAM通常采用MOS管栅极与源极间的极间电容存储信息,由于电容上的电荷会逐渐泄漏,因此要不断地对被泄漏的电荷进行补充,这种补充称为刷新。所以动态RAM片内要附加刷新的逻辑电路。由于动态RAM使用的MOS管少,功耗低,集成度高,可制成大容量的存储器芯片。,三、RAM断电保护,RAM在断电之后,所存数据将全部丢失,为使断电后,片内数据能够得到保存,可在电

3、源端通过二极管分别接到电源电压和后备电池电压,电池电压可以取3.6V。在正常时情况下,芯片由电源供电;电源断电或小于3.6V ,改由电池供电,维持其电压,使所存数据不至丟失。,四、单片机对外部数据存储器的读写时序,取q,取指令码,锁存地址低8位 从P2取高8位,读操作时 读出数据,写操作时 写入数据,取指令 时间,返回本章首页,第三节 只读存储器,一、掩膜ROM 利用光刻掩膜技术,将用户提供的程序存储在芯片中,制成后不能抹去也不能修改 。 二、可编程只读存储器PROM :开始使用时允许用户自行写入信息,但只允许一次,以后只能读出,不能修改。 三、可擦除可编程只读存储器EPROM :写入数据后,

4、可以长期保存,保存时间与温度、光照有关。如果上面存的数据不要了,可以用紫外光擦除重新写入。 四、电擦除只读存储器EEPROM:所存储的内容可以擦除,也可以在线写入。分为并行和串行两种。 五、闪速型存储器:可以擦除,也可以在线重新写入。,六、单片机对外部程序存储器的取指时序,取指令码,取指令 时间,锁存地址低8位 从P2取高8位,读操作时利用RD 上升沿读出数据,写操作时利用WR 上升沿写入数据,返回本章首页,第四节 存储器的并行扩展及连接方法,一、扩展存储器时地址线的连接与地址分配 扩展时可以把存储器的地址线与CPU的低位地址线相连,用于片内寻址。 CPU的高位地址线与存储器芯片的片选端的连接

5、,可以有两种方式。即全译码方式和片选方式。 1.全译码方式 利用74LS138译码器对高位地址线进行译码,译码器输出接存储器芯片的片选端。,全译码寻址方式的电路连接,高位译码,低位片内寻址,2.线选方式 线选方式只用一根高位地址线直接连存储器芯片的片选端,该线为高电平时即选中该芯片,电路连接如图。,高位线选,低位片内寻址,二、控制线的连接 扩展RAM时控制线的连接,扩展ROM时控制线的连接,数据、程序两用时控制线的连接,返回本章首页,第五节 串行存储器的扩展方法,一、二线制串行存储器 总线采用二线制,其中 SCL为串行时钟端,SDA为串行数据/地址端,下图为具有 总线的串行存储器AT24C01

6、连接图。也可以用并行口模拟。,编写AT89C51的读写程序,第一步要发送一个起始位。第二步发送一个控制字。第三步进行发送或接收数据,第四步发一个结束位。以表示一次收发任务结束。 1.控制字:由8位组成 从器件地址由规程统一规定,例如存储器地址规定为1010,当1010码送到总线,只有串行存储器从器件才会响应。 片选或是存储器内部有分块的块选取值。要与被访问的芯片连接状态一致。对于24C01B、24C02B,A2、A1、A0可为任意值。,二、模拟 总线的编程,D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 A2 A1 A0 R/W 从器件地址 片选或块选 读/写控制位,2.起始位

7、子程序,START:SETB SDA SETB SCL NOP NOP CLR SDA NOP NOP CLR SCL RET,3终止位子程序,STOP: CLR SDA SETB SCL NOP NOP SETB SDA NOP NOP CLR SCL RET,4应答位子程序,ACK:CLR SDA SETB SCL NOP NOP CLR SCL SETB SDA RET,5.非应答位子程序,NACK:SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA RET,6应答位检查子程序,CACK:SETB SDA ;SDA为输入 SETB SCL ;第九个时钟脉冲

8、 NOP MOV C,SDA ;读SDA存于C MOV F0,C ;存入F0 CLR SCL ;时钟结束 NOP RET,7单字节发送子程序,入口条件:待发送数据已经放在累加器A中 WRB: MOV R7,#08H ;发送8位 WLP: RLC A ;发送数据移入C MOV SDA,C ;发送 SETB SCL NOP NOP CLR SCL CLR SDA DJNZ R7,WLP RET,8单字节接收子程序,出口条件:接收的放在累加器A和R6中 RDB: MOV R7,#08H ;接收8位 RLP: SETB SDA ;SDA输入 SETB SCL ;稳定发送 MOV C,SDA ;读SDA

9、 MOV A,R6 ;取出R6值 RLC A ;接收数据移入A MOV R6,A CLR SCL ;结束接收 DJNZ R7,RLP ;未完转RLP继续 RET,9写n个字节,入口条件: 1) 在片内RAM的CONTWORD单元存控制字节。 2)在片内RAM的NUMBYT单元存待发送数据的字节数,包括第一个地址值。若待发送数据的字节数为8,加上地址,NUMBYT应等于9。 3)在片内RAM的FIRADD单元存串行存储器收到数据后,应存入的首地址值。 4)待发送的数据放在以FIRADD+1为首地址的n个连续单元。,WRNBYT:PUSH PSW ;保护现场 WRN:SETB RS1 SETB R

10、S0 ;使用三区工作寄存器 LCALL STA ;发启动子程序 MOV A,CONTWORD ;取读控制字 LCALL WRB ;发控制字节 LCALL CACK ;检查接收方应答 JB F0,WRN ;无应答重发 MOV R0,FIRADD ;取要写入数据的首地址 MOV R5,NUMBYT WRDA;MOV A,R0 LCALL WRB ;发数据 LCALL CACK ;检查接收方应答 JB F0,WRN ;无应答重发 INC R0 DJNZ R5,WRDA LCALL STOP POP PSW RET,写n个字节子程序,10接收n个字节,入口条件: 1) 在片内RAM的CONTWORD单

11、元内存有控制字节。 2)在片内RAM的NUMBYT单元内存有待接收数据的字节数。 出口条件: 将接收到的数据存入以FIRADD为首地址的n个连续单元内。,RDNBYT:PUSH PSW ;保护现场 RDN: SETB RS1 SETB RS0 ;使用第三区工作寄存器 LCALL STA ;发启动子程序 MOV A,CONTWORD ;取控制字节 LCALL WRB ;发控制字节 LCALL CACK ;检查接收方应答 JB F0,RDN ;无应答重发 MOV R0,FIRADD ;接收后存放数据的首地址 RD: LCALL RDB MOV R0,A ;接收数据 DJNZ NUMBYT,FACK

12、 LCALL NACK LCALL STOP POP PSW RET FACK: LCALL ACK INC R0 AJMP RD,接收n个字节子程序,二、三线制串行存储器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

13、 D15DO 全写入 全擦 1 00 0 1 X X X X 全擦除 注:1.芯片为16位存储单元结构时,地址为6位,上表为16位结构。 2.芯片为8位存储单元结构时,上表地址应改为7位。,1传送起始位1的子程序 STABY:SETB P1.3 ;置片选无效 CLR P1.0 ;时钟置低 SETB P1.1 ;送起始位“1” NOP NOP CLR P1.3 ;置片选有效 NOP NOP SETB P1.0 ;时钟置高,送数据 NOP NOP CLR P1.0 ;时钟置低 RET,2写入一个字节数据子程序 入口条件:待写入的内容,置于累加器A。 WR1: MOV R4,#08H ;数据位数 W

14、R10: RLC A MOV P1.1,C ;将C值送存储器DI端 NOP NOP SETB P1.0 ;时钟置高,送数据 NOP NOP CLR P1.0 ;时钟置低 DJNZ R4,WR10 ;未完继续 RET,3. 读出一个字节数据子程序 出口条件:读出的内容,置于累加器A。 RD1: MOV R4,#08H ;数据位数 RD10: NOP NOP SETB P1.0 ;时钟置高读数据 NOP NOP CLR P1.0 ;时钟置低 MOV C,P1.2 ;数据读入C RLC A DJNZ R4,RD10 ;未完继续 RET,4写数据子程序(16位结构) 入口条件:设待写数据位于R2(高8

15、位)、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位,返回本章首页,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,续前,5读数据子程序(16位结构) 出口条件:B存要读出的单元地址,R2存读出数据的高8位、R3存读出数据的低8位。 READ: LCALL STABY ;发送起始位1 MOV A,B ;取地址 ORL A,#80H ;地址与读出合并 LCALL WR1 ;发读操作码及地址 NOP NOP LCALL RD1 ;读入高8位 MOV R2,A ;存R2 LCALL RD1 ;读入低8位 MOV R3,A ;存R3 SETB P1.3 ;置片选无效 RET,返回本章首页,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号