52单片机.docx
- 文档编号:5553116
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:16
- 大小:73.46KB
52单片机.docx
《52单片机.docx》由会员分享,可在线阅读,更多相关《52单片机.docx(16页珍藏版)》请在冰豆网上搜索。
52单片机
2.5.3 AT89C52引脚及功能
AT89C52的引脚如图2.7所示。
图2.7 单片机引脚图
·P0口:
P0 口是一组8 位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻
[5]
。
·P1 口:
P1 是一个带内部上拉电阻的8 位双向I /O 口,P1 的输出缓冲级可驱动 4 个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(TTL)。
Flash 编程和程序校验期间,P1 接收低8 位地址。
·P2 口:
P2 是一个带有内部上拉电阻的8 位双向I/O口,P2 的输出缓冲级可驱动4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX
延安大学学士学位论文
12
@DPTR 指令)时,P2口送出高8 位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口线上的内容(也即特殊功能寄存器区 R2 寄存器的内容),在整个访问期间不改变。
Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。
·P3 口:
P3 口是一组带有内部上拉电阻的8 位双向I/O 口。
P3口输出缓冲级可驱动4 个TTL 逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2.3所示:
表2.3 P3口第二功能
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
外部数据存储器读选通
P3口同时为闪速编程和编程校验接收一些控制信号
·RST复位输入。
当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。
·ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的l/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE 脉冲。
对Flash 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的DO 位置位,可禁止ALE 操作。
该位置位后,只有一条MOVX 和MOVC 指令ALE 才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无 。
延安大学学士学位论文
13
·PSEN:
程序储存允许(PSEN )输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期有两次PSEN ,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有的PSEN信号不出现。
·EA /VPP 外部访问允许。
欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。
需注意的是:
如果加密位LB1 被编程,复位时内部会锁存EA 端状态。
如EA 端为高电平 (接VCC 端),CPU 则执行内部程序存储器中的指令。
Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp 。
·XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。
·XTAL2 振荡器反相放大器的输出端。
·Vcc 电源电压 ·GND 地
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
[1]
各引脚的标注,利于自制元件库
[2]
2特性
STC89C52RC单片机:
8K字节程序存储空间;
512字节数据存储空间;
内带2K字节EEPROM存储空间;
可直接使用串口下载;
AT89S52单片机:
8K字节程序存储空间;
256字节数据存储空间;
没有内带EEPROM存储空间;
3参数
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.共3个16位定时器/计数器。
即定时器T0、T1、T2
10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
11.通用异步串行口(UART),还可用定时器软件实现多个UART
12.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
13.PDIP封装
1简介
2工作原理
P0口
P1口
P2口
P3口
RST
ALE/PROG
PSEN
EA/VPP
XTAL1
XTAL2
3特殊功能
4数据存储
5片上资源
定时器2
UART串口
时钟振荡器
6中断
7低功耗
节电模式
掉电模式
8编程加密
Flash
编程方法
程序加密
数据查询
1简介
1、兼容MCS51指令系统
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
2工作原理
AT89C52为8位通用微处理器,采用工业标
PDIP封装的AT89C52引脚图
准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
P0口
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的
方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑
门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉
电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),
参见表1。
Flash编程和程序校验期间,P1接收低8位地址。
表.P1.0和P1.1的第二功能
引脚号
功能特性
P1.0
T2,时钟输出
P1.1
T2EX(定时/计数器2)
P2口
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑
门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻
辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能
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由外部程序存储器取指令(或数
据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接
地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2
振荡器反相放大器的输出端。
3特殊功能
在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFR),SFR的地址空间映象如表2所示。
并非所有的地址都被定义,从80H—FFH共128个字节只有一部分被定义,还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。
不应将数据写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
AT89C52除了有AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。
定时/计数器2的控制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAP2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。
4数据存储
AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。
当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。
如果指令是直接寻址方式则为访问特殊功能寄存器。
例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2口)地址单元。
MOV0A0H,#data
间接寻址指令访问高128字节RAM,例如,下面的间接寻址指令中,R0的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)。
MOV@R0,#data
堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可作为堆栈区使用。
·定时器0和定时器1:
AT89C52的定时器0和定时器1的工作方式与AT89C51相同。
5片上资源
定时器2
基本特性:
定时器2是一个16位定时/计数器。
它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄
存器T2CON(如表3)的C/T2位选择。
定时器2有三种工作方式:
捕获方式,自动重装载(向上或向下计数)方式和波
特率发生器方式,工作方式由T2CON的控制位来选择。
定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机
器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。
在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个
机器周期的5SP2期间,对外部输入进行采样。
若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,
则在紧跟着的下一个周期的S3P1期间寄存器加1。
由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最
高计数速率为振荡频率的1/24。
为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输
入信号至少被采样一次。
捕获方式:
在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。
如果EXEN2=0,定时器2是一个16位定时器或计数器,
计数溢出时,对T2CON的溢出标志TF2置位,同时激活中断。
如果EXEN2=1,定时器2完成相同的操作,而当T2EX引
脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。
另外,T2EX引
脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断。
捕获方式如图4所示。
自动重装方式:
当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON
(见表5)的DCEN位(允许向下计数)来选择的。
复位时,DCEN位置“0”,定时器2默认设置为向上计数。
当DCEN
置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见图5,当DCEN=0时,定时器2自动设置
为向上计数,在这种方式下,T2CON中的EXEN2控制位有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢
出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。
若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。
这个脉冲使EXF2置位,如果
中断允许,同样产生中断。
定时器2的中断入口地址是:
002BH——0032H。
当DCEN=1时,允许定时器2向上或向下计数,如图6所示。
这种方式下,T2EX引脚控制计数器方向。
T2EX引脚为逻
辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L重装
载到TH2和TL2中。
T2EX引脚为逻辑“0”时,定时器2向下计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L
中的值时,计数溢出,置位TF2,同时将0FFFFH数值重新装入定时寄存器中。
当定时/计数器2向上溢出或向下溢出时,置位EXF2位。
波特率发生器:
当T2CON(表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。
如果定时/计数器2作
表3
为发送器或
接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。
若RCLK和TCLK置位,则定时器2
工作于波特率发生器方式。
波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16
位数值重新装载,该数值由软件设置。
在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:
方式1和3的波特率=定时器的溢出率/16
定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。
定时器2作为波
特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12振荡频率)寄存器的值加1,
而作为波特率发生器使用时,在每个状态时间(1/2振荡频率)寄存器的值加1。
波特率的计算公式如下:
方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}
式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。
定时器2作为波特率发生器使用的电路如图7所示。
T2CON中的RCLK或TCLK=1时,波特率工作方式才有效。
在
波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。
但若EXEN2置位,且T2EX端产生由1至0的
负跳变,则会使EXF2置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2和TL2中。
所以,当定时器2作
为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。
需要注意的是,当定时器2工作于波特率器时,作为定
时器运行(TR2=1)时,并不能访问TH2和TL2。
因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的
数值。
然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。
在访问定时器2
或RCAP2寄存器之前,应将定时器关闭(清除TR2)。
可编程时钟输出:
定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号,如图8所示。
P1.0引脚除了是一个标准的I/O口外,
还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。
当时钟振荡频率为16MHz时,输
出时钟频率范围为61Hz—4MHz。
当设置定时/计数器2为时钟发生器时,C/T2(T2CON.1)=0,T2OE(T2MOD.1)=1,必须由TR2(T2CON.2)启
动或停止定时器。
时钟输出频率取决于振荡频率和定时器2捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:
输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}
在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。
定时器2作为波特率
发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用
RCAP2L和RCAP2L。
UART串口
AT89C52的UART工作方式与AT89C51工作方式相同。
时钟振荡器
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图10。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽
然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳
定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF。
用户也可以采用外部时钟。
采用外部时钟的电路如图10右图所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部
时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但
最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
6中断
AT89C52共有6个中断向量:
两个外中断(INT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 52 单片机