基于STC12C5410AD单片机的温湿度检测仪 联系客服

发布时间 : 星期六 文章基于STC12C5410AD单片机的温湿度检测仪更新完毕开始阅读

VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。

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

模式 闲散模式 闲散模式 掉电模式 掉电模式 程序存储器的加密:

AT89C51可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如下表所示的功能:

程序加密位 1 2 3 4 U P P P U U P P U U 的内容 U P 除上表功能外,还禁止程序校验 除以上功能外,同时禁止外部执行 保护类型 没有程序保护功能 禁止从外部程序存储器中执行MOVC指令读取内部程序存储器程序存储器 内部 内部 外部 外部 ALE 1 1 0 PSEN P0 数据 浮空 数据 数据 P1 数据 数据 数据 数据 P2 数据 地址 数据 数据 P3 数据 数据 数据 数据 1 1 0 0 0 当LB1被编程时,在复位期间,EA端的电平被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正复位位置。为了使单片机正常工作,被锁存的EA电平与这个引脚当前辑电平一致。加密位只能通过整片擦除的方法清除。 Flash闪速存储器的编程:

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

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

46

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

编程前,须按Flash编程模式表设置好地址、数据及控制信号,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变为高电平,表示准备就绪状态。 程序校验:

47