单片机嵌入式系统原理及应用23课件_第1页
单片机嵌入式系统原理及应用23课件_第2页
单片机嵌入式系统原理及应用23课件_第3页
单片机嵌入式系统原理及应用23课件_第4页
单片机嵌入式系统原理及应用23课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3部分2022/7/211jiahaolai2.10 AT89S52的片内Flash操作2.11 AT89S52单片机最小系统设计第1部分第2部分2022/7/21jiahaolai22.10 AT89S52的片内Flash操作片内Flash操作包括对Flash标志字节的读出、并行编程、串行编程、程序加密等。可以利用计算机、单片机等设备实现对Flash存储器的操作。2.10.1标志字节所谓标志字节是Flash存储器的生产厂商在生产AT89S系列单片机时,写入到Flash存储器中的一组用以说明单片机的生产厂商、型号和编程电压等的特征信息。在单片机的封装外壳上,会以某种形式印刷这组信息。之所以将

2、这组信息以标志字节的形式存储在Flash存储器中,是为了在所印刷的信息被磨损后可以通过读出标志字节内容来获得这组信息,方便使用。2022/7/21jiahaolai3AT89S52的标志字节共有3B,具体在存储器中的地址和含义如表2-10所示。通用编程器即通过读标志字节识别所编程单片机的生产厂商、型号等信息,以便进行编程电压的控制。2022/7/21jiahaolai4表2-10标志字节的地址、内容和代表的含义地址内容代表的含义0001E表示生产厂商为Atmel公司10051H表示为AT89S51型单片机52H表示为AT89S52型单片机20006H-2. 10.2程序存储器的加密为了保护所存

3、储的程序的安全性,防止被非法读出,保护开发者的合法利益,需要对写入Flash存储器中的程序进行加密。AT89S系列单片机提供了较强的加密功能,可以对Flash存储器实施不同程度的封锁,以阻止对程序的非法读出,保护程序的安全。2022/7/21jiahaolai5AT89S系列单片机提供了3位加密位LB1、LB2和LB3,对每位加密位可维持原来的非编程状态(U),也可进行编程(P),根据每位加密位是否进行了编程,便可组合形成几种不同的保护模式,如表2-11所示。2022/7/21jiahaolai6 表2-11 程序加密位的保护模式2022/7/21jiahaolai7模式加密位组合加密功能LB

4、1LB2LB31UUU没有程序加密功能2PUU禁止在外部程序存储器中执行MOVC类指令读取内部程序存储器中的指令代码, 被采样并在复位时被锁存;禁止对Flash存储器再编程3PPU同模式2,并禁止内部存储器的校验4PPP同模式3,并禁止外部存储器的执行表2-11中末列出的其他组合方式未被定义。从表2-11中可以看出,当LB1被编程时,引脚上的信号(电平)被采样并在复位时被锁存。如果程序锁定位被编程后一直没有复位操作,则锁存器中的值是随机的,直到复位后起作用。对程序存储器加密需要根据所希望采取的加密保护模式对3位加密位LB1、LB2和LB3进行编程。编程按照LB1、LB2和LB3的顺序按位进行。

5、注意,在对各位加密位进行编程时,其控制信号不同,通过并行编程的方法对加密位进行编程。2022/7/21jiahaolai82. 10. 3 Flash存储器的串行编程Flash存储器的串行编程方式当RST引脚接高电平时,可通过串行接口ISP对AT89S52 Flash进行编程。串行接口ISP由引脚P1.5/MOSI,P1.6/MISO和P1.7/SCK组成,P1.5/MOSI作为串行指令的输入,引脚P1.6/MISO为串行数据的输出引脚,P1.7/SCK为串行移位脉冲的输入引脚。串行编程下载接口电路如图2-15所示。2022/7/21jiahaolai9图2-15串行编程下载接口电路2022/

6、7/21jiahaolai10在RST被置成高电平之后、执行串行编程操作之前,必须先执行串行编程允许指令,这样才可以实现串行编程。如果是对Flash重新编程,则必须先执行片擦除操作,擦除后,Flash存储器芯片除标志字节外其他存储单元的内容均为FFH。2022/7/21jiahaolai11在串行编程工作模式下时钟振荡器有外部时钟信号和芯片内时钟发生电路两种方式。采用外部时钟信号方式时,外部时钟信号由XTAL1引脚输入,XTAL2引脚悬空;采用芯片内时钟发生电路方式时,在XTAL1和XTAL2引脚之间跨接晶振和微调电容。 无论采用哪一种时钟方式,串行移位脉冲SCK均应低于晶振频率的1/16。如

7、晶振频率为33 MHz,则SCK的最高频率应该是2 MHz。2022/7/21jiahaolai12对RST、VCC和GND引脚加电,加电次序如下:在VCC和GND引脚之间加电源电压;将RST设置为高电平(若采用外部时钟信号,则必须延时10 mS后方可)。在P1. 5/MOSI引脚输入编程允许指令。2022/7/21jiahaolai132. 按照下列步骤对Flash实现串行编程c. 在P1. 5/MOSI引脚输入写程序存储器指令AT89S52的串行编程指令中包含了编程单元地址和代码数据,向P1. 5/MOSI引脚输入写程序存储器指令时,便确定了可编程的字节地址和指令数据。写入周期采用内部自动

8、定时的方式,在Vcc=5V时其典型值不大于1 mS。编程可按字节模式或页模式写入。在采用字节编程模式时,编程的地址单元和代码数据包含在指令的第2、3、4字节中。2022/7/21jiahaolai14d.读指令。使用读指令,在P1. 6/MISO引脚上读出芯片内Flash程序存储器任意存储单元中的内容,用于编程校验。e.编程结束后将RST引脚置低电平,系统恢复到正常操作状态。如果需要,可按照下面的步骤实施断电:将XTAL1引脚置成低电平(若使用外部时钟);将RST引脚置低电平;关断电源VCC。2022/7/21jiahaolai153. AT89S52的串行编程指令从图2-15可以看到,AT8

9、9S52单片机串行编程的接口电路较并行编程的接口电路要简单许多,只需要Pl.5/MOSI作为串行指令的输入引脚,P1. 6/MISO作为串行数据的输出引脚,P1.7/SCK作为编程时钟的输入引脚即可,编程的控制功能主要靠软件来实现,输入不同的编程指令便可实现不同的编程操作。 AT89S52单片机串行编程指令为4B格式,表2-12给出了AT89S52单片机串行编程指令的格式构成和各指令的编码。2022/7/21jiahaolai16表2-12 AT89552单片机串行编程指令集2022/7/21jiahaolai17在输入串行编程允许指令的同时,RST引脚置成高电平。以字节模式读写程序存储器的指

10、令中,第2、3字节的内容为存储单元的地址,第4字节为代码数据。以页模式读写程序存储器的指令中,第2字节的内容为页地址,第3字节为字节代码的字节0,第4字节为字节代码的字节1,连续输入输出字节代码,直到字节代码的字节为255。256字节为1页。在写模式下,字节代码或页代码输入一结束,便立刻进入写周期的内部自动定时。在写程序加密位时,数位B1和B2的值与保护模式的关系如表2-13所示。2022/7/21jiahaolai18表2-13 B1和B2的值与保护模式的关系2022/7/21jiahaolai19B1B2保护模式说明001无程序加密012LB1有效103LB2有效114LB3有效在读出程序

11、加密位时,加密位LB3、LB2和LB1顺序出现在串行数据输出口P1. 6/MISO的D4、D3和D2位上。4.串行编程模式下的数据查询AT89S52在串行编程模式下也具有数据查询功能。在写周期内,读出最后写入的字节时,则在串行数据输出口P1.6/MISO引脚上出现写入字节数据最高位的反码。图2.8.4为串行编程模式下的时序图,表2. 8. 6为时序参数。2022/7/21jiahaolai20图2-16串行编程模式下的时序图2022/7/21jiahaolai21表2-14 时序参数2022/7/21jiahaolai222.11 AT89S52单片机最小系统设计89S52内部有8KB闪存,芯片本身就是一个最小系统。在能满足系统的性能要求的情况下,可优先考虑采用此种方案。用这种芯片构成的最小系统简单、可靠。用89S52单片机构成最小应用系统时,只要将单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论