89c51单片机论文英文文献翻译 联系客服

发布时间 : 星期日 文章89c51单片机论文英文文献翻译更新完毕开始阅读367ac1eb172ded630b1cb6bb

为了避免可能对端口产生以外写入,激活空闲模式的那条指令后一条指令不应该是一条对端口或外部存储器的写入指令。

空闲和掉电模式外部引脚状态 模式 空闲模式 空闲模式 掉电模式 掉电模式 掉电模式

在掉电模式下,震荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

程序存储器的加密 :AT89C51可使用对芯片上的3个加密位进行编程(P)或不编程(U)来得到如下表所示的功能:

加密位保护功能表 程序加密位 1 LU LU LU 没有程序保护功能 B1 B2 B3 保护类型 程序存储器 内部 外部 内部 外部 ALE ^PSEN PORT0 PORT1 PORT2 PORT3 1 1 0 0 1 1 0 0 数据 数据 数据 数据 浮空 数据 数据 数据 数据 数据 数据 数据 浮空 数据 数据 数据 2 3 4 P P P U P P U 禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容 U 除上表功能外,还禁止程序校验 P 除以上功能外,同时禁止外部执行 当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保持到真正复位为止。为使单片机能正常工作,被锁存的EA电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。 FLASH闪速存储器的编程:

AT89C51单片机内部有4K字节的FLASH PEROM,这个FLASH存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电平(+12V)或低电平(VCC)的允许编程信号,低电平编程模式适合于用户再线编程系统,而高电平编程模式可与通用EPROM编程器兼容。

AT89C51单片机中,有些属于低电压编程方式,而有些则是高电平编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息,见下表。

芯片顶面标识 签名字节 Vpp=12v AT89C51 xxxx yyww (030H)=1EH (031H)=51H (032H)=FFH Vpp=5v AT89C51 xxxx-5 yyww (030H)=1EH (031H)=51H (032H)=05H AT89C51的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。 编程方法:

编程前,需按表1、图3和图4所示设置好地址,数据及控制信号, AT89C51编程方法如下:

1. 在地址线上加上要编程单元的地址信号。 2. 在数据线上加上要写入的数据字节。 3. 激活相应的控制信号。

4. 在高电压编程方式时,将^EA/VPP端加上+12V编程电压。

5. 每对FLASH存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/^PROG编程脉冲,改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束。每个字节写入周期是自身定时地,通常约为1.5ms。 数据查询:AT89C51单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需要读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。

READY/^BUSY:字节编程的进度可通过“RDY/^BSY”输出信号监测,编程期间,ALE变为高电平“H”后P3.4(RDY/^BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4变为高电平表示准备就绪状态。

程序校验:如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据。加密位不可能直接变化。证实加密位的完成通过观察它们的特点和能力。

芯片擦除:利用控制信号的正确组合(表1)并保持ALE/^PROG引脚10ms的低电平脉冲宽度即可将PEROM阵列(4k字节)整片擦除,代码阵列在擦除操作中将任何非空单元写入“1”,这步骤需要再编程之前进行。

读片内签名字节:AT89C51单片机内有3个签名字节,地址为030H、031H和032H。用于声明该器件的厂商、型号和编程电压。读签名字节的过程和单元030H、031H和032H的正常校验相仿,只需将P3.6和P3.7保持低电平,返回值意义如下:

(030H)=1EH声明产品由ATMEL公司制造。 (031H)=51H声明为AT89C51单片机。 (032H)=FFH声明为12V编程电压。 (032H)=05H声明为5V编程电压。

编程接口:采用控制信号的正确组合可对FLASH闪速存储阵列中的每一代码字节进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。

表 1 FLASH存储器编程真值表 方式 携代码数据 读代码数据 RST H H ^PSEN L L H H L L H H ALE/^PROG ^EA/Vpp P2.6 P2.7 P3.6 P3.7 H/12V L H H H 写加密位 Bit-1 Bit-2 Bit-3 H H H H H L L L L L H H/12V H/12V H/12V H/12V H H H H H L H H L L L H L H L L H L L L L 片擦除 读签名字节 注:片擦除操作时要求^PSEN脉冲宽度为10ms

FLASH编程和校验特性

TA = 0°C to 70°C, VCC = 5.0 ?符号 Vpp⑴ 1/Tclcl 参数 编程电压 3 48Tclcl 48Tclcl 48Tclcl 48Tclcl 48Tclcl 10 10 1 110 48Tclcl 48Tclcl 10% 最小值 11.5 最大值 12.5 1.0 24 单位 V mA MHZ us us us Ipp⑴ 编程电流 时钟频率 Tavgl 建立地址到^PSEN变低 Tghax ^PSEN变低后地址保持不变 Tdvgl 建立数据到 ^PSEN变低 Tghdx ^PSEN变低吼数据保持不变 Tehsh P2.7(^enable)变高到Vpp Tshgl 加Vpp 到^PSEN 变低 Tghsl⑴ ^PSEN后保持Vpp Tglgh ^PSEN宽度 Tavqv 地址到数据有效 Telqv ^enable低到数据有效