当前位置:首页 > 单片机 > 单片机
[导读]AT89C2051单片机内部有2KB的闪速存储器阵列,一片新的AT89C2051,其存储阵列处于擦除状态(FFH),此时可对其编程,存储阵列一次编程1字节,若编程任何非空字节时,需对整个存储阵列进行片擦除。

AT89C2051单片机内部有2KB的闪速存储器阵列,一片新的AT89C2051,其存储阵列处于擦除状态(FFH),此时可对其编程,存储阵列一次编程1字节,若编程任何非空字节时,需对整个存储阵列进行片擦除。

编程时,AT89C2051利用内部存储器地址计数器提供寻址存储器的地址信号,RST上升沿将该地址计数器复位至000H,引脚XTAL1所施加的正向连续脉冲使地址计数器不断加1。RST上出现12V(编程电源VPP)高压时,预示着1字节的编程操作开始,这时P3口提供编程所需的控制与状态信号,P1口为数据通道,如图10.3所示。对这些端口或引脚按图10.4所示的时序施加正确的控制组合就可通过P1口将数据编程到内部闪速存储器中。

图10.3编程闪速存储器

图10.4闪速存储器编程和校验时序

AT89C2051根据引脚RST与P3.2~P3.7的状态组合可以产生5种编程模式,如表10.4所示。

1.编程(写代码数据)

AT89C2051编程按下述步骤进行:

(1)上电过程:VCC加电,置RST为“L”(低电平),XTAL1为“L”,其它所有引脚悬空,等待10ms以上;

(2)置RST为“H”(高电平),P3.2为“H”;

(3)在引脚P3.3、P3.4、P3.5、P3.7上施加相应的逻辑电平,选定基本编程模式;

(4)地址信号由内部地址计数器提供(初始值为000H),欲写入该地址中的数据加至引脚P1.0~P1.7上;

(5)将RST电平升至12V启动编程;

(6)给P3.2施加一负脉冲,则编程内部存储器阵列或锁定位的1个字节,字节写周期采用自定时,通常为1.2ms;

(7)若要校验已编程数据,将RST从12V降至逻辑电平“H”,并置引脚P3.3~P3.7为校验模式电平,输出数据即可在P1口读取;

(8)编程下一个地址字节,对XTAL1施加一正脉冲,内部地址计数器加1,然后在P1口上加载欲写入的新数据;

(9)重复步骤(5)~(8),改变数据,递增地址计数器直到2KB存储阵列全部编程或目标文件结束;

(10)下电过程:置XTAL1为“L”,RST为“L”,其它I/O引脚悬空,VCC下电。当前次编程未结束时,不允许开始下一次编程。

如何确定一次编程操作是否结束,AT89C2051提供了以下两种方法。

1)数据查询特性

AT89C2051具有通过数据查询来检测写周期结束的特性。在写期间,读操作将导致P1.7输出写入数据的补码,一旦写完成,所有输出将出现真实数据,这时可开始下一数据编程。利用这一特性,可以在启动某一次编程后不断地查询写入数据,直到查询的数据为真实数据时,就可判定写周期已结束。

2)准备好/忙信号

在编程期间,引脚P3.3(RDY/BSY)提供了编程状态。当引脚P3.2(PROG)电平升高后,引脚P3.1电平下降,表示BUSY,编程结束后P3.1电平抬高,表示READY(见图10.4所示时序)。利用查询该状态信息便可确定编程的结束。

2.校验(读代码数据)

进行编程校验时,AT89C2051芯片各引脚作用如图10.5所示,如果锁定位LB1和LB2未被编程,则可通过下述步骤进行校验:

(1)使RST从“L”变为“H”,地址计数器复位000H;

(2)提供适当的控制信号(见图10.4所示时序),从P1口读取数据与编程写入数据作比较;

(3)给XTAL1施加正脉冲,地址计数器加1;

(4)从P1口读1个代码数据与编程写入数据作比较;

(5)重复步骤(3)、(4),直至整个存储阵列校验完毕。

3.写锁定位

写锁定位完成对闪速存储器加密。

按前述编程模式表操作:先选择写锁定位模式,然后将RST升至12V,P3.2施加编程脉冲,即可将锁定位写入(改变模式选择P3.3、P3.4、P3.5、P3.7的输入组合来实现锁定位LB1、LB2的写入)。不能直接校验锁定位,要通过观察其特性是否被允许来完成。

4.芯片擦除

当编程模式选择为芯片擦除模式并使P3.2引脚上施加10ms的PROG脉冲后,整个闪速存储器(2KB)和2个锁定位即可被擦除。擦除后,存储器阵列全为FFH。

5.读特征字节

特征字节表示AT89C系列芯片的基本特性,由3或4字节组成,存储于程序存储区的低端。AT89C2051芯片的特征字节位于地址000H、001H、002H中,当选择读特征字节模式(P3.3=P3.4=P3.5=P3.7=“L”)并采用类似校验步骤读取数据时,即可获得AT89C2051芯片的特征字:

(000H)=1EH表示该产品由Atmel生产;

(001H)=21H表示是89C2051/89C1051;

(002H)=FFH表示12V编程

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;

关键字: 单片机 编程 电路设计

单片机编程需要使用专门的软件工具,这些工具能够帮助程序员编写、调试和烧录程序到单片机中。以下是一些常用的单片机编程软件:

关键字: 单片机 编程 软件工具

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

在编程和计算中,运算符优先级是解释和计算表达式的一个关键因素。本文旨在阐述运算符优先级的概念、规则及其在表达式中的应用,以帮助读者更好地理解和运用运算符优先级。

关键字: 表达式 运算符 编程

泰克科技组合软件总经理Rick Khulman:“激发孩子们——尤其是女孩们对STEM的兴趣,对我本人乃至广大工程界都至关重要。”

关键字: 编程 机器人 示波器

PIC单片机采用精简指令集,例如对于PIC16F716单片机,只有35条单字节指令。要用这么少的指令实现复杂的控制或计算,显然要在程序设计上多做文章,以下就程序设计需要注意的问题谈一些看法。 美国微芯公司开发的CMOS工...

关键字: 单片机 控制 编程

PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或...

关键字: plc 编程 plc编程

初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以西门子PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。

关键字: 西门子 plc 编程
关闭