基于单片机的环境温湿度检测系统_毕业论文 下载本文

@RI 指令)时,P2口输出P2 锁存器的内容。

Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。 P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.2所示:

表3.2 引脚P3口的第二功能

端口引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

第二功能 RXD(串行输入口) TXD(串行输出口) /INTO(外中断0) /INT1(外中断1) T0(定时/计数器0) T1(定时/计数器1) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) 此外,P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 ·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

·ALE/PROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52

word文档 可自由复制编辑

由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。此期间,当访问外部数据存储器,将跳过两次PSEN信号。

·EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。

·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 ·XTAL2:振荡器反相放大器的输出端[4]。 3.2.4 STC89C51的存储器 ·中断寄存器:

STC89C51有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。 ·数据存储器:

STC89C51有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。

例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2 口)地址单元。 MOV 0A0H,#data

间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中,R0 的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)。

MOV @R0,#data

堆栈操作也是间接寻址方式,所以,高128 位数据RAM 亦可作为堆栈区使用。 ·定时器0和定时器1:

STC89C51的定时器0和定时器1的工作方式与STC89C51的相同。 ·定时器2:

定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2 位选择。定时器2 有三种

word文档 可自由复制编辑

工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。

·波特率发生器:

当T2CON中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能。若RCLK 和TCLK 置位,则定时器2工作于波特率发生器方式。 波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16位数值重新装载,该数值由软件设置。

·中断:

STC89C51 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志[5]。

·STC89C51的直流参数有一定的温度适用范围,见表3.3:

表3.3 T=-40℃~+85℃ 和 Vcc=5.0V±20%下的直流参数

符号 参数 VL 条件 最小值 最大值 单位 输入低电压 输入低电压 输入高电压 (Except EA) -0.5 (Except XTAL1,RST) -0.5 0.2VCC-0.1 V 0.2VCC-0.3 V V VL1 VH 0.2VCC+0.9 VCC+0.5 VH1 输入高电压 输出低电压(P1,2,3) (XTAL,RST) I=1.6mA I=32mA 0.7VCC VCC+0.5 0.45 0.45 V V V VOL VOL1 输出低电压(P0,ALE/PSEN) word文档 可自由复制编辑

VOH 输出高电压 I=-25uA I=-300uA 0.75VCC 0.75VCC 50 -50 -650 300 V V uA uA K pF VOH1 输出高电压 IIL ITL RST 逻辑0输入电流(P1,2,3) V=0.45V 逻辑1到0转换电流(P1,2,3) V=2V 复位下拉电阻 引脚电容 1MHz, CIO ICC 消耗电流 Active Mode,12MHz ·Flash存储器的编程:STC89C51单片机内部有4k字节的Flash PEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。STC89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息,见表3.4。

表3.4 顶面标记及签名字节

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

word文档 可自由复制编辑