89C52单片机.docx
- 文档编号:16557497
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:14
- 大小:354.45KB
89C52单片机.docx
《89C52单片机.docx》由会员分享,可在线阅读,更多相关《89C52单片机.docx(14页珍藏版)》请在冰点文库上搜索。
89C52单片机
3.2STC89C52系列单片机系统结构特点
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[2]。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
其引脚电路如图3-2所示,STC89C52主要性能有以下几点:
(1)与MCS-51单片机产品兼容
(2)8K字节在系统可编程Flash存储器
(3)1000次擦写周期
(4)全静态操作:
0Hz~33Hz
(5)三级加密程序存储器
(6)32个可编程I/O口线
(7)三个16位定时器/计数器
(8)八个中断源全双工UART串行通道
(9)低功耗空闲和掉电模式
(10)掉电后中断可唤醒
(11)看门狗定时器
(12)双数据指针
(13)掉电标识符
图3-2STC89C52引脚图
3.2.2 单片机STC89C52的介绍
为了设计此系统,我们采用了STC89C52单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。
它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为计算机能识别的数字信号,再送入计算机系统的相应端口。
介绍 8 位STC89C52 CHMOS 工艺单片机被设计用于处理高速计算和快速输入/输出。
MCS51 单片机典型的应用是高速事件控制系统。
商业应用包括调制解调器,电动机控制系统,打印机,影印机,空调控制系统,磁盘驱动器和医疗设备。
汽车工业把MCS51 单片机用于发动机控制系统,悬挂系统和反锁制动系统。
STC89C52 尤其很好适用于得益于它的处理速度和增强型片上外围功能集,诸如:
汽车动力控制,车辆动态悬挂,反锁制动和稳定性控制应用。
由于这些决定性应用,市场需要一种可靠的具有低干扰潜伏响应的费用-效能控制器,服务大量时间和事件驱动的在实时应用需要的集成外围的能力,具有在单一程序包中高出平均处理功率的中央处理器。
拥有操作不可预测的设备的经济和法律风险是很高的。
一旦进入市场,尤其任务决定性应用诸如自动驾驶仪或反锁制动系统,错误将是财力上所禁止的。
重新设计的费用可以高达500K 美元,如果产品族享有同样内核或外围设计缺陷的话,费用会更高。
另外,部件的替代品领域是极其昂贵的,因为设备要用来把模块典型地焊接成一个总体的价值比各个部件高几倍。
为了缓和这些问题,在最坏的环境和电压条件下对这些单片机进行无论在部件级别还是系统级别上的综合测试是必需的。
Intel Chandler 平台工程组提供了各种单片机和处理器的系统验证。
这种系统的验证处理可以被分解为三个主要部分。
系统的类型和应用需求决定了能够在设备上执行的测试类型,如图3-15所示。
图3-15 STC89C52引脚图
3.2.3 工作方式
它的工作方式可以分做复位,掉电和低功耗方式等。
一、复位方式
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位电路如图 (3-18a)中左图所示。
图中电容C1和电阻R1对电源十5V来说构成微分电路。
上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图 (3-19a)中所示。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
常用的上电或开关复位电路如图 (3-19b)所示。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。
图(3-18a)中:
Cl=10-30uF,R1=1kO 图(3-18b)中:
C:
=1uF,Rl=lkO,R2=10kO 二、掉电和低功耗方式
人们往往在程序运行中系统发生掉电的故障,使RAM和寄存器中的数据内容丢失,使人们丢失珍贵的数据而束手无策,AT89C51有掉电保护,是先把有用的数据保存,再用备用电源进行供电。
3.2.4 数据存储器的掉电保护
单片机系统内的RAM数据是非常容易丢失的,特别是一些珍贵的科研数据,一旦丢失后果不堪设想,因此掉电保护是必须要做的,一旦电源发生掉电现象,在掉电的瞬间系统能自动保护RAM中的数据和系统的运行状态,当电源恢复正常供电后能恢复到掉电前的工作状态。
3.2.5 系统时钟的设计
时钟电路是用来产生STC89C52单片机工作时所必须的时钟信号,STC89C52本身就是一个复杂的同步时序电路,为保证工作方式的实现,STC89C52在唯一的时钟信号的控制下严格的按时序执行指令进行工作 ,时钟的频率影响单片机的速度和稳定性。
通常时钟由于两种形式:
内部时钟和外部时钟。
我们系统采用内部时钟方式来为系统提供时钟信号,如图3-16。
STC89C52内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器
电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。
晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。
为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。
图3-16 系统时钟
3.2.2 单片机AT89C51的介绍
为了设计此系统,我们采用了AT89C51单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。
它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为计算机能识别的数字信号,再送入计算机系统的相应端口。
一、介绍
8 位AT89C51 CHMOS 工艺单片机被设计用于处理高速计算和快速输入/输出。
MCS51 单片机典型的应用是高速事件控制系统。
商业应用包括调制解调器,电动机控制系统,打印机,影印机,空调控制系统,磁盘驱动器和医疗设备。
汽车工业把MCS51 单片机用于发动机控制系统,悬挂系统和反锁制动系统。
AT89C51 尤其很好适用于得益于它的处理速度和增强型片上外围功能集,诸如:
汽车动力控制,车辆动态悬挂,反锁制动和稳定性控制应用。
由于这些决定性应用,市场需要一种可靠的具有低干扰潜伏响应的费用-效能控制器,服务大量时间和事件驱动的在实时应用需要的集成外围的能力,具有在单一程序包中高出平均处理功率的中央处理器。
拥有操作不可预测的设备的经济和法律风险是很高的。
一旦进入市场,尤其任务决定性应用诸如自动驾驶仪或反锁制动系统,错误将是财力上所禁止的。
重新设计的费用可以高达500K 美元,如果产品族享有同样内核或外围设计缺陷的话,费用会更高。
另外,部件的替代品领域是极其昂贵的,因为设备要用来把模块典型地焊接成一个总体的价值比各个部件高几倍。
为了缓和这些问题,在最坏的环境和电压条件下对这些单片机进行无论在部件级别还是系统级别上的综合测试是必需的。
Intel Chandler 平台工程组提供了各种单片机和处理器的系统验证。
这种系统的验证处理可以被分解为三个主要部分。
系统的类型和应用需求决定了能够在设备上执行的测试类型。
二、AT89C51提供以下标准功能:
4k 字节FLASH 闪速存储器,128 字节内部RAM,32 个I/O 口线,2 个16 位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51 降至0Hz 的静态逻辑操作,并支持两种可选的节电工作模式。
空闲方式体制CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位,如图3-15。
图3-15 AT89C51 方框图
引脚功能说明(如图3-16) ·
Vcc:
电源电压 ·
GND:
地
·P0 口:
P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用。
作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
图3-16 AT89C51引脚图
·P1 口:
P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash 编程和程序校验期间,P1 接受低8 位地址。
·P2 口:
P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16 位四肢的外部数据存储器(例如执行MOVX @DPTR指令)时,P2 口送出高8 位地址数据,在访问8 位地址的外部数据存储器(例如执行MOVX @ RI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中R2 寄存器的内容),在整个访问期间不改变。
Flash 编程和程序校验时,P2 也接收高位地址和其他控制信号。
·P3 口:
P3 是一个带有内部上拉电阻的8 位双向I/O 口,P3 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P3 口还接收一些用于Flash 闪速
存储器编程和程序校验的控制信号。
·RST:
复位输入。
当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。
·ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。
即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是,每当访问外部数据存储器时将跳过一个ALE 脉冲。
对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元D0 位置位,可禁止ALE 操作。
该位置位后,只有一条MOVX 和MOVC 指令ALE 才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无效。
·PSEN:
程序存储允许输出是外部程序存储器的读选通型号,当89C51 由外部存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现。
·EA/VPP:
外部访问允许。
欲使CPU 仅访问外部程序存储器(地址为
0000H—FFFFH),EA 端必须保持低电平(接地)。
需注意的是:
如果加密位LB1 被编程,复位时内部会锁存EA 端状态。
如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。
Flash 存储器编程时,该引脚加上+12v 的编程允许电源Vpp,当然这必须是该器件使用12v 编程电压Vpp。
·XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
·XTAL2:
振荡器反相放大器的输出端。
89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图5。
外接石英晶体或陶瓷谐振器及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。
对电容C1、C2 虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30Pf±10 Pf,而如使用陶瓷谐振器建议选择40Pf±10Pf。
用户也可以采用外部时钟。
这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端XTAL2 则悬空。
·掉电模式:
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。
推出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM 中的内容,在Vcc 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
89C51 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字符,要对整个芯片的EPROM 程序存储器写入一个非空字节,必须使用片擦除的方法将整个存储器的内容清楚。
三、编程方法
编程前,设置好地址、数据及控制信号,编程单元的地址加在P1 口和P2 口的P2.0—P2.3(11 位地址范围为0000H——0FFFH),数据从P0口输入,引脚P2.6、P2.7 和P3.6、P3.7 的电平设置见表6,PSEB 为低电平,RST保持高电平,EA/Vpp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)。
编程时,可采用4—20MHz 的时钟振荡器,89C51 编程方法如下:
在地址线上加上要编程单元的地址信号在数据线上加上要写入的数据字节。
激活相应的控制信号。
在高电压编程方式时,将EA/Vpp 端加上+12v 编程电压。
每对Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG 编程脉冲。
改变编程单元的地址和写入的数据,重复1—5 步骤,知道全部文件编程结束。
每个字节写入周期是自身定时的,通常约为1.5ms。
·数据查询89C51 单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需要读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节的最高位的反码。
写周期开始后,可在任意时刻进行数据查询。
1、Ready/Busy:
字节编程的进度可通过Ready/Busy 输出信号检测,编程期间,ALE 变为高电平“H”后P3.4(Ready/Busy)端被拉低,表示正在编程状态(忙状态)。
编程完成后,P3.4 变为高电平表示准备就绪状态。
程序校验:
如果加密位LB、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用下图的电路,程序存储器的地址由P1 口和P2 口的P2.0—P2.3 输入,数据由P0 口读出,PSEN 保持低电平,ALE、EA 和RST 保持高电平。
校验时,P0 口必须接上10k 左右的上拉电阻。
2、芯片擦除:
利用控制信号的正确组合并保持ALE/PROG 引脚10ms 的低电平脉冲宽度即可将EPROM 阵列(4k 字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入”1”,这步骤需在编程之前进行。
3、读片内签名字节:
89C51 单片机内有3 个签名字节,地址为030H、031H 和032H。
于声明该器件的厂商、号和编程电压。
读签名字节的过程和单元030H、031H 和032H的正常校验相仿,只需要将P3.6 和P3.7 保持低电平,返回值意义如下:
(030H) = 1EH 声明产品由ATMEL 公司制造。
(031H) = 51H 声明为89C51 单片机。
(032H) = FFH 声明为12V 编程电压。
(032H) = 05H 声明为5 编程电压。
4、编程接口:
采用控制信号的正确组合可对Flash 闪速存储阵列中的每一代码字节进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。
微机接口实现两种信息形式的交换。
在计算机之外,由电子系统所处理的信息以一种物理信号形式存在,但在程序中,它是用数字表示的。
任一接口的功能都可分为以某种形式进行数据库变换的一些操作,所以外部和内部形式的转换是由许多步骤完成的。
模拟-数字转换器(ADC)用来将连续变化信号变成相应的数字量,这数字量可是可能性的二进制数值中的一固定值。
如果传感器输出不是连续变化的,就不需模拟-数字转换。
这种情况下,信号调理单元必须将输入信号变换成为另一信号,也可直接与接口的下一部分,即微计算机本身的输入输出单元相连接。
输出接口采用相似的形式,明显的差别在于信息流的方向相反;是从程序到外部世界。
这种情况下,程序可称为输出程序,它监督接口的操作并完成数字-模拟转换器(DAC)所需数字的标定。
该子程序依次送出信息给输出器件,产生相应的电信号,由DAC 转换成模拟形式。
最后,信号经调理(通常是放大)以形成适应于执行器操作的形式。
在微机电路中使用的信号几乎总是太小而不能被直接地连到“外部世界”,因而必须用某种形式将其转换成更适宜的形式。
接口电路部分的设计是使用微机的工程师所面临最重要的任务之一。
我们已经了解到微机中,信号以离散的位形式表示。
当微机要与只有打开或关闭操作的设备相连时,这种数字形式是最有用的,这里每一位都可表示一开关或执行器的状态。
为了解决实际问题,一个单片机不仅包括CPU,程序和数据存储器,另外,它必须含有通过CPU 访问外部信息的硬件。
一旦CPU 收集到数据信息和流程,它必须能够改变外部领域的一部分,这些硬件设备称作外围设备,它们是CPU 通往外部的窗口。
单片机可利用外围设备中最基本的用于一般用途的I/O 接口,每个I/O 接口既可作
为输入端又可作为输出端,每个I/O 接口的功能取决与程序初始化阶段对数据方位寄存器相应位进行置一和清零操作,通过CPU 指令对数据寄存器相应位进行置一和清零来置一和清零输出端口,同样输入端口逻辑位也可以通过CPU 指令访问。
一些类型的串行口单元允许CPU 与外部设备进行串口通信,用串口位代替平行位进行通信需要少许的I/O 口,这样使通信费用降低但速度也相对慢些。
串口传送可以同步也可以异步。
3.2.3 工作方式
它的工作方式可以分做复位,掉电和低功耗方式等。
一、复位方式
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位电路如图 (3-18a)中左图所示。
图中电容C1和电阻R1对电源十5V来说构成微分电路。
上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图 (3-19a)中所示。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
常用的上电或开关复位电路如图 (3-19b)所示。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。
图(3-18a)中:
Cl=10-30uF,R1=1kO 图(3-18b)中:
C:
=1uF,Rl=lkO,R2=10kO 二、掉电和低功耗方式
人们往往在程序运行中系统发生掉电的故障,使RAM和寄存器中的数据内容丢失,使人们丢失珍贵的数据而束手无策,AT89C51有掉电保护,是先把有用的数据保存,再用备用电源进行供电。
3.2.4 数据存储器的掉电保护
单片机系统内的RAM数据是非常容易丢失的,特别是一些珍贵的科研数据,一旦丢失后果不堪设想,因此掉电保护是必须要做的,一旦电源发生掉电现象,在掉电的瞬间系统能自动保护RAM中的数据和系统的运行状态,当电源恢复正常供电后能恢复到掉电前的工作状态。
3.2.5 系统时钟的设计
时钟电路是用来产生AT89C51单片机工作时所必须的时钟信号,AT89C51本身就是一个复杂的同步时序电路,为保证工作方式的实现,AT89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作 ,时钟的频率影响单片机的速度和稳定性。
通常时钟由于两种形式:
内部时钟和外部时钟。
我们系统采用内部时钟方式来为系统提供时钟信号,如图3-20。
AT89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器
电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。
晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。
为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。
图3-20 系统时钟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 89 C52 单片机