单片机智能温度计设计 第4页
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。
(b).P1端口(P1.0~ P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在对Flash编程和程序验证时,P1接收低8位地址。
(c).P2端口(P2.0~P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX @DPIR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。
在对Flash编程和程序验证期间,P2也接收高位地址和一些控制信号。
(d).P3端口(P3.0~P3.7) P3 是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在AT89C51中,P3端口还用于一些专门功能,这些兼用功能见表1
表 1—1
端口引脚
兼 用 功 能
P3.0
RXD (串行输入口)
P3.1
TXD (串行输出口)
P3.2
/INT0 (外部中断0)
P3.3
/INT1 (外部中断1)
P3.4
T0 ( 定时器0的外部输入)
P3.5
T1 (定时器1的外部输入)
P3.6
/WR (外部数据存储器写选通)
P3.7
/RD (外部数据存储器读选通)
在对Flash编程和程序验证时,P3还接收一些控制信号。
2.2.5 Flash存储器的编程和程序校验:
AT89C51单片机内部有一个4K字节的Flash PEROM。这个Flash存储阵列通常是处于已
擦除状态(既存储单元的内容为FFH),随时可对它进行编程。编程接口可接收高电压(12V)或低电压(Vcc)的允许编程信号。低电压编程方式可很方便地对AT89C51内的用户系统进行编程;而高电压编程方式则可与通用的EPROM编程器兼容。
AT89C51的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的PEROM程序存储器写入任何一个非空字节,都必须用片擦除方式将整个存储器的内容清除。
2.2.6 对Flash存储器编程
编程前,必须按照表2和图5建立好地址、数据和相应的控制信号。编程单元的地址加在P1端口和P2端口的P2.0~P2.3(11位地址为0000H~0FFFH),数据从P0端口输入。引脚P2.6、P2.7和P3.6、P3.7的电平选择见表2。/PSEN应保持低电平,而RST应保持高电平。/EA/VPP是编程电源的输入端,按要求加入编程电压。ALE//PROG端输入编程脉冲(应为负脉冲信号)。编程时,采用4~20 MHz的振荡器。对AT89C51编程的步骤如下:
(a)在地址线上输入要编程单元的地址。
(b)在数据线上输入要写入的数据字节。
(c)激活相应的控制信号。
(d)在采用高电压编程方式时,将/EA/VPP端的电压加到12V。
(e)每对Flash存储阵列写入一个字节或每写入一个程序加密位,加一个ALE//PROG编程脉冲。
改变编程单元的地址和要写入的数据,重复步骤a~e,直到全部文件编程完毕。
每个字节写入周期是自动定时的,通常不大于1.5ms。
表 1—2 Flash编程方式若图片无法显示请联系站长QQ752018766
2.2.7 数据查询方式
AT89C51单片机用数据查询方式来检测一个写周期是否结束。在一个写周期期间,如果想读出最后写入的哪个字,则读出数据的最高位(P0.7)是原来写入字节最高位的反码。写周期一旦完成后,有效的数据就会出现在所有输出端上,这时可开始下一个写周期。一个写周期开始后,可在任何时间开始进行数据查询。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页