为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 第4章STC89C52单片机硬件结构

第4章STC89C52单片机硬件结构

2021-11-18 78页 ppt 2MB 41阅读

用户头像

is_808969

暂无简介

举报
第4章STC89C52单片机硬件结构TankertankerDesign第四章STC89C52单片机硬件结构 4.1STC89C52单片机的内部组织结构及特点 4.2STC89C52单片机的外部引脚及功能 4.3STC89C52单片机存储器结构 4.4STC89C52单片机I/O口 4.5STC89C52单片机的时钟与复位 4.6STC89C52单片机的省电工作模式TankertankerDesign4.1STC89C52单片机的内部组织结构及特点 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片...
第4章STC89C52单片机硬件结构
TankertankerDesign第四章STC89C52单片机硬件结构 4.1STC89C52单片机的内部组织结构及特点 4.2STC89C52单片机的外部引脚及功能 4.3STC89C52单片机存储器结构 4.4STC89C52单片机I/O口 4.5STC89C52单片机的时钟与复位 4.6STC89C52单片机的省电工作模式TankertankerDesign4.1STC89C52单片机的内部组织结构及特点 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。HD版本和90C版本内部集成MAX810专用复位电路。STC89C52RC单片机内部硬件结构框图如图4-1所示。TankertankerDesignTankertankerDesignSTC89C52RC单片机有如下功能部件和特性:1.增强型6时钟/机器周期和12时钟/机器周期任意设置。2.指令代码完全兼容传统80513.工作电压:5.5~3.4V(5V单片机)/2.0~3.8V(3V单片机)。4.工作频率:0~40MHz,相当于普通8051单片机的0~80MHz,实际工作频率可达48MHz。5.用户应用程序空间:8KB片内Flash程序存储器,擦写次数10万次以上。6.片上集成512BRAM数据存储器。TankertankerDesign7.通用I/O口(35/39个),复位后为:P1、P2、P3、P4是准双向口/弱上拉(与普通MCS-51传统I/O口功能一样);P0口是开漏输出口,作为总线扩展时用,不用加上拉电阻;P0口作为I/O口用时,需加上拉电阻。8.ISP在系统可编程/IAP在应用可编程,无需专用编程器/仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,8KB程序3s即可完成一片。9.芯片内置EEPROM功能。10.硬件看门狗(WDT)。11.内部集成MAX810专用复位电路(HD版本和90C版本才有),外部晶体20M以下时,可不需要外部复位电路。TankertankerDesign12.共3个16位定时器/计数器,兼容普通MCS-51单片机的定时器,其中定时器T0还可以当成2个8位定时器使用。13.外部中断4路,下降沿中断或低电平触发中断,掉电模式可由外部中断低电平触发中断方式唤醒。14.通用异步串行口(UART),还可用定时器软件实现多个UART。15.工作温度范围:0℃~75℃(商业级)/-40℃~+85℃(工业级)。16.封装形式有:LQFP-44、PDIP-40、PLCC-44、PQFP-44。由于LQFP-44具有体积小、扩展了P4口、外部中断2和3及定时器T2的功能。PDIP-40的封装与传统的89C52芯片兼容。TankertankerDesign除此之外,STC89C52RC单片机自身还有很多独特的优点:1.加密性强,无法解密。2.超强抗干扰。主要表现在:高抗静电(ESD保护),可以轻松抗御2KV/4KV快速脉冲干扰(EFT测试),宽电压、不怕电源抖动,宽温度范围为-40℃~+85℃,I/O口经过特殊处理,单片机内部的电源供电系统、时钟电路、复位电路及看门狗电路经过特殊处理。3.采用三大降低单片机时钟对外部电磁辐射的措施:禁止ALE输出;如选6时钟/机器周期,外部时钟频率可降一半;单片机时钟振荡器增益可设为1/2gain。4.超低功耗:掉电模式,典型电流损耗<0.1μA;空闲模式,典型电流损耗为2mA;正常工作模式,典型电流损耗4mA~7mA。TankertankerDesignSTC89C52RC单片机的工作模式有如下几种:1.掉电模式:RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止,中断返回后,继续执行原程序。典型功耗<0.1μA。2.空闲模式:CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。典型功耗2mA。3.正常工作模式:单片机正常执行程序的工作模式,典型功耗4mA~7mA。TankertankerDesign选用STC89C52系列单片机的一个主要原因:由于这种单片机可以利用全双工异步串行口(P3.0/P3.1)进行在系统编程(ISP),即无需专用编程器/仿真器,就可通过串口直接下载用户程序,因此省却了每次编程必须插拔单片机到专用编程器上的麻烦,可以直接将STC单片机固定焊接在PCB板上,进行程序的下载调试。TankertankerDesignSTC89系列单片机大部分具有在系统可编程(ISP)特性,ISP的好处就是省去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以将程序直接下载进单片机看运行结果也可以不用仿真器。STC单片机在线编程典型线路如图4-2所示。TankertankerDesign 大部分STC89系列单片机在销售给用户之前已在单片机内部固化有ISP系统引导程序,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,故无须编程器(速度比通用编程器快)。注意:不要用通用编程器编程,否则有可能将单片机内部已固化的ISP系统引导程序擦除,造成无法使用STC提供的ISP软件下载用户的程序代码。TankertankerDesign4.2STC89C52单片机的外部引脚及功能 STC89C52目前有LQFP44、PQFP44、PDIP40、PLCC44等封装形式,并且不同版本的引脚也不同,图4-3所示为各封装形式的HD版本和90C版本的引脚图。图4-3(a)PDIP40的HD版本引脚图图4-3(b)PDIP40的90C版本引脚图TankertankerDesign图4-3(c)LQFP44的HD版本引脚图图4-3(d)LQFP44的90C版本引脚图TankertankerDesign图4-3(e)PLCC44的HD版本引脚图图4-3(f)PLCC44的90C版本引脚图TankertankerDesign STC89C52RC单片机的HD版本和90C版本的区别是: HD版本有ALE引脚,无P4.6/P4.5/P4.4口。而90C版本无PSEN、EA管脚,有P4.4和P4.6引脚; 90C版本的ALE/P4.5管脚既可作I/O口P4.5使用,也可被复用作ALE引脚使用,默认是作为ALE管脚。如需作为P4.5口使用时,只能选择90C版本的单片机,且需在烧录用户程序时在STC-ISP编程器中将ALEpin选择为用作P4.5,在烧录用户程序时在STC-ISP编程器中该管脚默认作ALEpin,具体设置如图4-4所示。TankertankerDesignSTC89C52RC单片机有5个端口P0、P1、P2、P3、P4,其中P4端口在LQFP44、PQFP44、PLCC44等封装形式中才有,其它有很多引脚和控制信号共用引脚。下面就各引脚进行说明。1.P0口引脚 P0.0~P0.7:P0口即可作为输入/输出口,也可作为地址/数据复用总线使用。当P0口作为输入/输出口时,P0是一个8位准双向口,上电复位后处于开漏模式。P0口内部无上拉电阻,所以作I/O口必须外接10K~4.7K的上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线[A0-A7]和数据线[D0-D7]共用,此时无需外接上拉电阻。TankertankerDesign2.P1口引脚P1.0~P1.7:P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。其中,P1.0和P1.1还可以作为定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表4-1。 引脚号 功能特性 P1.0 T2(定时/计数器2外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器2捕获/重装触发和方向控制)TankertankerDesign3.P2口引脚P2.0~P2.7:P2口内部带上拉电阻的8位双向I/O端口。即可作为输入/输出口,也可作为高8位地址总线使用(A8-A15)。当P2口作为输入/输出口时,P2是一个8位准双向口。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容就是专用寄存器SFR区中的P2寄存器的内容,在整个访问期间不会改变。TankertankerDesign4.P3口引脚P3.0~P3.7:P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。P3口除作为一般I/O口外,还有其他一些复用功能,如表4-2所示。 引脚号 复用功能 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(外部数据存储器读选通)TankertankerDesign6.电源与时钟引脚(1)VCC:电源正极(2)Gnd:电源负极,接地(3)XTAL1:片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号。(4)XTAL2:片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。RST:复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平为有效。TankertankerDesign4.3STC89C52单片机存储器结构STC89C52RC存储器的结构特点之一是将程序存储器和数据存储器分开(哈佛结构),并有各自的访问指令。STC89C52RC系列单片机除可以访问片上Flash存储器外,还可以访问64KB的外部程序存储器。STC89C52RC系列单片机内部有512字节的数据存储器,其在物理和逻辑上都分为两个地址空间:内部RAM(256字节)和内部扩展RAM(256字节),另外还可以访问在片外扩展的64KB外部数据存储器。TankertankerDesign4.3.1STC89C52单片机程序存储器单片机程序存储器存放程序和表格之类的固定常数。片内为8KB的Flash,地址为0000H~1FFFH。16位地址线,可外扩的程序存储器空间最大为64KB,地址为0000H~FFFFH。使用时应注意以下问题:(1)分为片内和片外两部分,访问片内的还是片外的程序存储器,由EA引脚电平确定。EA=1时,CPU从片内0000H开始取指令,当PC值没有超出1FFFH时,只访问片内Flash存储器,当PC值超出1FFFH自动转向读片外程序存储器空间2000H~FFFFH内的程序。EA=0时,只能执行片外程序存储器(0000H~FFFFH)中的程序,不理会片内8KBFlash存储器。TankertankerDesign(2)程序存储器某些固定单元用于各中断源中断服务程序入口。STC89C52复位后,程序存储器地址指针PC的内容为0000H,于是程序从程序存储器的0000H开始执行,一般在这个单元存放一条跳转指令,跳向主程序的入口地址。除此之外,64KB程序存储器空间中有8个特殊单元分别对应于8个中断源的中断入口地址,见表4-3。通常这8个中断入口地址处都放一条跳转指令跳向对应的中断服务子程序,而不是直接存放中断服务子程序。因为两个中断入口间的间隔仅有8个单元,一般不够存放中断服务子程序。TankertankerDesign表4-3程序存储器空间的8个中断入口地址 中断源 中断向量地址 0003H T0 000BH 0013H T1 001BH UART 0023H T2 002BH 0033H 003BHTankertankerDesign4.3.2STC89C52单片机数据存储器STC89C52RC系列单片机内部集成了512字节RAM,可用于存放程序执行的中间结果和过程数据。内部数据存储器在物理和逻辑上都分为两个地址空间:内部RAM(256字节)和内部扩展RAM(256字节)。此外,还可以访问在片外扩展的64KB数据存储器。STC89C52RC系列单片机的存储器分布如图4-5所示。(特别说明:图中阴影部分的访问是由辅助寄存器AUXR(地址为8EH)的第EXTRAM位来设置,这部分在物理上是内部RAM,逻辑上占用外部RAM地址空间)TankertankerDesignTankertankerDesign1.片内数据存储器:传统的89C52单片机的内部RAM只有256字节的空间可供使用,在此情况下STC公司响应广大用户的呼声,在一些单片机内部增加了RAM。STC89C52RC系列单片机内部扩展了256个字节RAM。于是STC89C52RC单片机内部512字节的RAM有3个部分:(1)低128字节(00H-7FH)内部RAM;(2)高128字节(80H-FFH)内部RAM;(3)内部扩展的256字节RAM空间(00H-FFH)。下面分别作出说明:TankertankerDesign(1)低128字节(00H-7FH)的空间即可以直接寻址也可间接寻址,内部低128字节RAM又可分为:工作寄存器组0(00H--07H)8字节、工作寄存器组1(08H--0FH)8字节、工作寄存器组2(10H--17H)8字节、工作寄存器组3(18H--1FH)8字节、可位寻址区(20H--2FH)16字节、用户RAM和堆栈区(30H--7FH)80字节;(2)高128字节(80H-FFH)的空间和特殊功能寄存器区SFR的地址空间(80H-FFH)貌似共用相同的地址范围,但物理上是独立的,使用时通过不同的寻址方式加以区分:高128字节只能间接寻址,而特殊功能寄存器区SFR只能直接寻址。(3)内部扩展RAM,在物理上是内部,但逻辑上是占用外部数据存储器的部分空间,需要用MOVX来访问。内部扩展RAM是否可以被访问是由辅助寄存器AUXR(地址为8EH)的第EXTRAM位来设置。关于扩展RAM的管理将在第4.3.3节的AUXR特殊功能寄存器部分详细介绍。TankertankerDesign2.片外数据存储区当片内RAM不够用时,需外扩数据存储器,STC89C52最多可外扩64KB的RAM。注意,片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低256字节的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。另外说明下,只有在访问真正的外部数据存储器期间,WR或RD信号才有效。但当MOVX指令访问物理上在内部,逻辑上在外部的片内扩展RAM时,这些信号将被忽略。TankertankerDesign4.3.3STC89C52单片机特殊功能寄存器STC89C52中的CPU对片内各功能部件的控制是采用特殊功能寄存器集中控制方式。特殊功能寄存器SFR的单元地址映射在片内RAM的80H-FFH区域中,离散地分布在该区域,其中字节地址以0H或8H结尾的特殊功能寄存器可以进行位操作。TankertankerDesign表4-4单片机内核特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 ACC 累加器 E0H E7-E0H 00000000 2 B B寄存器 F0H F7-F0H 00000000 3 PSW 程序状态字寄存器 D0H D7-D0H 00000000 4 SP 堆栈指针 81H — 00000111 5 DP0L 数据地址指针DPTR0低8位 82H — 00000000 6 DP0H 数据地址指针DPTR0高8位 83H — 00000000 7 DP1L 数据地址指针DPTR1低8位 84H — 8 DP1H 数据地址指针DPTR1高8位 85H —TankertankerDesign表4-5单片机系统管理特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 PCON 电源控制寄存器 87H — 0xx10000 2 AUXR 辅助寄存器 8EH — xxxxxx00 3 AUXR1 辅助寄存器1 A2H — xxxx0xx0TankertankerDesign表4-6单片机中断管理特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 IE 中断允许控制寄存器 A8H AFH-A8H 00000000 2 IP 低中断优先级控制寄存器 B8H BFH-B8H xx000000 3 IPH 高中断优先级控制寄存器 B7H — 00000000 4 TCON T0、T1定时器/计数器控制寄存器 88H 8FH-88H 00000000 5 SCON 串行口控制寄存器 98H 9FH-98H 00000000 6 T2CON T2定时器/计数器控制寄存器 C8H CFH-C8H 00000000 7 XICON 扩展中断控制寄存器 C0H C7H-C0H 00000000TankertankerDesign表4-7单片机I/O口特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 P0 P0口锁存器 80H 87H-80H 11111111 2 P1 P1口锁存器 90H 97H-90H 11111111 3 P2 P2口锁存器 A0H A7H-A0H 11111111 4 P3 P3口锁存器 B0H B7H-B0H 11111111 5 P4 P4口锁存器 E8H E7H-E0H xxxx1111TankertankerDesign表4-8单片机串行口特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1* SCON 串行口控制寄存器 98H 9FH-98H 00000000 2 SBUF 串行口锁存器 99H — xxxxxxxx 3 SADEN 串行从机地址掩模寄存器 B9H — 00000000 4 SADDR 串行从机地址控制寄存器 A9H — 00000000TankertankerDesign表4-9单片机定时器特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1* TCON T0、T1定时/计数控制寄存器 88H 8FH-88H 00000000 2 TMOD T0、T1定时/计数方式控制寄存器 89H — 00000000 3 TL0 定时器/计数器0(低8位) 8AH — 00000000 4 TH0 定时器/计数器0(低8位) 8CH — 00000000 5 TL1 定时器/计数器1(高8位) 8BH — 00000000 6 TH1 定时器/计数器1(高8位) 8DH — 00000000 7* T2CON 定时器/计数器2控制寄存器 C8H 00000000 8 T2MOD 定时器/计数器2模式寄存器 C9H — xxxxxx00 9 RCAP2L 外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位 CAH — 00000000 10 RCAP2H 外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位 CBH — 00000000 11 TL2 定时器/计数器2(低8位) CCH — 00000000 12 TH2 定时器/计数器2(高8位) CDH — 00000000TankertankerDesign表4-10单片机看门狗特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 WDT_CONTR 看门狗控制寄存器 E1h — xx000000TankertankerDesign表4-11单片机ISP/IAP特殊功能寄存器 序号 符号 功能介绍 字节地址 位地址 复位值 1 ISP_DATA ISP/IAP数据寄存器 E2h — 11111111 2 ISP_ADDRH ISP/IAP地址高8位 E3h — 00000000 3 ISP_ADDRL ISP/IAP地址低8位 E4h — 00000000 4 ISP_CMD ISP/IAP命令寄存器 E5h — xxxxx000 5 ISP_TRIG ISP/IAP命令触发寄存器 E6h — xxxxxxxx 6 ISP_CONTR ISP/IAP控制寄存器 E7h — 000xx000TankertankerDesign以下介绍部分特殊功能寄存器,其它各特殊功能寄存器的功能将在相应的章节介绍。1、AUXR扩展RAM及ALE管理特殊功能寄存器(见表4-12)(1)扩展RAM的管理由AUXR特殊功能寄存器的第EXTRAM位来设置。普通89C51/89C52系列单片机的内部RAM只有128(89C51)/256(89C52)供用户使用,而STC89C52RC系列单片机内部扩展了256字节的RAM。 符号 功能介绍 字节地址 位地址 复位值 AUXR 辅助寄存器 8EH — — — — — — EXTRAM ALEOFF xxxxxx00TankertankerDesign(2)当EXTRAM=0时,内部扩展RAM可存取,此时使用MOVXA,@Ri/MOVX@Ri,A指令来固定访问00H-FFH内部扩展的RAM空间,当超过FFH的外部RAM则用MOVXA,@DPTR/MOVX@DPTR,A指令来访问;当EXTRAM=1时,禁止内部扩展RAM的使用,外部的RAM可以存取,此时MOVX@DPTR和MOVX@Ri的使用同传统的89C52。有些用户系统因为外部扩展了I/O或者用片选去选多个RAM区,有时与此内部扩展的RAM逻辑地址上有冲突,于是将此位设置为”1”,禁止访问此内部扩展的RAM就可以了。 符号 功能介绍 字节地址 位地址 复位值 AUXR 辅助寄存器 8EH — — — — — — EXTRAM ALEOFF xxxxxx00TankertankerDesign特别说明:请尽量用MOVXA,@Ri/MOVX@Ri,A指令访问内部扩展RAM,这样只能访问256字节的扩展RAM,可与很多单片机兼容,以达到完全兼容以前老产品的目的。另外,在访问内部扩展RAM之前,用户还需在烧录用户程序时在STC-ISP编程器中设置允许内部扩展AUX-RAM访问,如图4-6所示。TankertankerDesign(3)当ALEOFF=0时,在12时钟模式时ALE脚输出固定的1/6晶振频率信号,在6时钟模式时输出固定的1/3晶振频率信号。当ALEOFF=1时,ALE引脚仅在执行MOVX或MOVC指令时才输出信号,好处是降低了系统对外界的电磁干扰。 符号 功能介绍 字节地址 位地址 复位值 AUXR 辅助寄存器 8EH — — — — — — EXTRAM ALEOFF xxxxxx00TankertankerDesign2、AUXR1双数据指针控制特殊功能寄存器(见表4-13)(1)GF2通用功能用户自定义位。由用户根据需要自定义使用。(2)DPS是DPTR寄存器选择位。当DPS=0时,选择数据指针DPTR0;当DPS=1时,选择数据指针DPTR1。AUXR1特殊功能寄存器位于A2H单元,不可用位操作指令快速访问。但由于DPS位位于bit0,故对AUXR1寄存器用INC指令,DPS位便会反转,由0变成1或由1变成0,即可实现双数椐指针的快速切换。 符号 功能介绍 字节地址 位地址 复位值 AUXR1 辅助寄存器 A2H — — — — GF2 — — DPS xxxx0xx0TankertankerDesign3、堆栈指针SPSP指示堆栈顶部在内部RAM块中的位置。该微处理器的堆栈结构是向上生长型。单片机复位后,SP为07H,使得堆栈实际上从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。堆栈操作只有两种:数据压入(PUSH)堆栈和数据弹出(POP)堆栈。数据压入堆栈,SP自动加1;数据弹出堆栈,SP自动减1。堆栈是为子程序调用和中断操作而设,主要用来保护断点地址和现场状态。TankertankerDesign4、累加器A使用最频繁的寄存器,可写为Acc。A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器。累加器A的作用是ALU单元的输入数据源之一,又是ALU运算结果存放单元。数据传送大多都通过累加器A,相当于数据的中转站。5、寄存器B为执行乘法和除法而设。在不执行乘、除法操作的情况下,可把它当作一个普通寄存器来使用。执行乘法时,两乘数分别在A、B中,执行乘法指令后,乘积在BA中;执行除法时,被除数取自A,除数取自B,商存放在A中,余数存放在B中。TankertankerDesign6、程序状态字寄存器PSW(ProgramStatusWord)(见表4-14)PSW包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。PSW中各个位的功能:(1)Cy(PSW.7)进位标志位Cy可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。 符号 字节地址 位地址 复位值 PSW D0H Cy Ac F0 RS1 RS0 OV — P 00000000TankertankerDesign6、程序状态字寄存器PSW(ProgramStatusWord)(见表4-14)(3)F0(PSW.5)用户设定标志位由用户使用的一个状态标志位,可用指令来使它置1或清0,控制程序的流向。用户应充分利用它。(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区见表4-15。 符号 字节地址 位地址 复位值 PSW D0H Cy Ac F0 RS1 RS0 OV — P 00000000TankertankerDesign6、程序状态字寄存器PSW(ProgramStatusWord)(见表4-14)(5)OV(PSW.2)溢出标志位当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。(6)PSW.1位保留位(7)P(PSW.0)奇偶标志位指令执行完,累加器A中“1”的个数是奇数还是偶数。P=1,表示A中“1”的个数为奇数。P=0,表示A中“1”的个数为偶数。此标志位对串行通信有重要的意义,常用奇偶检验的方法来检验数据串行传输的可靠性。 符号 字节地址 位地址 复位值 PSW D0H Cy Ac F0 RS1 RS0 OV — P 00000000TankertankerDesign4.4STC89C52单片机I/O口STC89C52RC单片机所有I/O端口均有3种工作类型:准双向口/弱上拉(标准8051输出模式)、仅为输入(高阻)或开漏输出功能。TankertankerDesign4.4.1P0端口P0口是一个双功能的8位并行端口,字节地址为80H,位地址为80H~87H。端口的各位具有完全相同但又相互独立的电路结构。P0口上电复位后处于开漏模式,当P0管脚作I/O口时,需外加10K~4.7K的上拉电阻,当P0管脚作为地址/数据复用总线使用时,不用外加上拉电阻。TankertankerDesign 当P0口线锁存器为0时,开漏输出关闭所有上拉晶体管。当P0口作为一个逻辑输出时,这种配置方式必须有外部上拉电阻,一般通过电阻外接到Vcc。如果外部有上拉电阻,开漏的I/O口还可以读外部状态,即此时被配置为开漏模式的I/O口还可以作为输入I/O口。这种方式的下拉与准双向口相同。输出口线配置如图4-7所示,开漏端口带有一个干扰抑制电路。TankertankerDesign4.4.2P1/P2/P3/P4端口STC89C52RC系列单片机的P1/P2/P3/P4上电复位后为准双向口/弱上拉(传统8051的I/O口)模式。准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。准双向口有3个上拉晶体管适应不同的需要。即:要想获得较大的驱动能力,采用低电平输出。TankertankerDesign在3个上拉晶体管中,有1个上拉晶体管称为“弱上拉”,当口线寄存器为1且引脚本身也为1时打开。此上拉提供基本驱动电流使准双向口输出为1。如果一个引脚输出为1而由外部装置下拉到低时,弱上拉关闭而“极弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压以下。输出11弱上拉管提供电流输出00灌电流,导通TankertankerDesign第2个上拉晶体管,称为“极弱上拉”,当口线锁存为1时打开。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流将引脚上拉为高电平。第3个上拉晶体管称为“强上拉”。当口线锁存器由0到1跳变时,这个上拉用来加快准双向口由逻辑0到逻辑1转换。当发生这种情况时,强上拉打开约2个时钟以使引脚能够迅速地上拉到高电平。准双向口输出如图4-8所示。输出1悬空极弱上拉管上拉电流0到10到1TankertankerDesign如果用户向3V单片机的引脚上加5V电压,将会有电流从引脚流向Vcc,这样导致额外的功率消耗。因此,建议不要在准双向口模式中向3V单片机引脚施加5V电压,如使用的话,要加限流电阻,或用二极管做输入隔离,或用三极管做输出隔离。准双向口带有一个干扰抑制电路。准双向口读外部状态前,要先锁存为“1”,才可读到外部正确的状态。TankertankerDesign4.4.35V单片机连接3V器件STC89C52RC的5V单片机的P0口的灌电流最大为12mA,其他I/O口的灌电流最大为6mA。P0口驱动能力是其它端口的2倍。8个LSTTL输入。当STC89C52RC系列5V单片机连接3.3V器件时,为防止3.3V器件承受不了5V,可将相应的5V单片机P0口先串一个0~330Ω的限流电阻到3.3V器件I/O口,相应的3.3V器件I/O口外部加10K上拉电阻到3.3V器件的Vcc,这样高电平是3.3V,低电平是0V,输入输出一切正常。其配置见图4-9。TankertankerDesign4.5STC89C52单片机的时钟与复位4.5.1传统51单片机时序单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。时钟电路产生单片机工作时所必需的控制信号,在时钟信号的控制下,严格按时序执行指令。由于指令的字节数不同,取这些指令所需要的时间也就不同,即使是字节数相同的指令,由于执行操作有较大的差别,不同的指令执行时间也不一定相同,即所需的拍节数不同。为了便于对CPU时序进行,一般按指令的执行过程规定了几种周期,即时钟周期、机器周期和指令周期,也称为时序定时单位。TankertankerDesign1.时钟周期也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。可以这么理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us。显然,对同一种机型的单片机,时钟频率越高,单片机的工作速度就越快。但是,由于不同的单片机硬件电路和器件的不完全相同,所以其所需要的时钟频率范围也不一定相同。在单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。TankertankerDesign2.机器周期在单片机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。51系列单片机的一个机器周期由6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),51单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 TankertankerDesign由图4-10可知:1个机器周期包括12个时钟周期,分6个状态:S1~S6。每个状态又分两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2。TankertankerDesign3.指令周期指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。51单片机的指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。从指令执行时间看:单字节和双字节指令一般为单机器周期和双机器周期;三字节指令都是双机器周期;乘、除指令占用四个机器周期。TankertankerDesign4.5.2STC89C52单片机时钟电路单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控制时序进行工作。CPU发出的时序信号有两类,一类用于对片内各个功能部件控制,用户无须了解;另一类用于对片外存储器或I/O口的控制,这部分时序对于分析、硬件接口电路至关重要。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。TankertankerDesign1.内部时钟方式STC89C52内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。2.外部时钟方式此方式利用外部振荡脉冲接入XTAL1或XTAL2。对于STC89C52RC系列单片机,因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外部时钟源直接接到XTAL1端,XTAL2端悬空。用现成的外部振荡器产生脉冲信号,常用于多片单片机同时工作,以便于多片单片机之间的同步,一般采用内部时钟方式产生工作时序,如图4-11所示。TankertankerDesign时钟电路中的R、C的参数值的设置情况如表4-16所示。 晶振增益控制OSCDN=fullgain 晶振频率 4MHz 6MHz 12M-25MHz 26M-30MHz 31M-35MHz 36M-39MHz 40M-43MHz 44M-48MHz C2、C3 =100pF 47pF-100pF =47pF <=10pF <=10pF <=10pF <=10pF <=5pF R1 不用 不用 不用 6.8K 5.1K 4.7K 3.3K 3.3K 晶振增益控制OSCDN=1/2gain 晶振频率 4MHz 6MHz 12M-25MHz 26M-30MHz 31M-35MHz 36M-39MHz 40M-43MHz 44M-48MHz C2、C3 =100pF 47pF-100pF =47pF <=10pF 不用 不用 不用 不用 R1 不用 不用 不用 6.8K 5.1K 4.7K 3.3K 3.3KTankertankerDesign图4-12振荡器增益设置TankertankerDesign STC89C52RC系列单片机是真正的6T单片机,传统的8051为每个机器周期12个时钟周期,如将该单片机设为双倍速即每个机器周期为6个时钟周期,则可将单片机外部时钟频率降低一半,有效降低单片机时钟对外界的干扰。同时STC89C52RC系列兼容普通12T的单片机。STC89C52RC系列的HD版本的单片机推荐工作时钟频率如表4-17所示。 内部时钟方式:外接晶振 外部时钟方式:直接由XTAL1输入 12T模式 6T模式 12T模式 6T模式 2MHz~48MHz 2MHz~36MHz 2MHz~48MHz 2MHz~36MHzTankertankerDesign4.5.3STC89C52单片机的复位电路复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。STC89C52RC系列单片机有4种复位方式:外部RST引脚复位、软件复位、掉电复位、上电复位、看门狗复位。TankertankerDesign1)外部RST引脚复位外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位引脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态,将RST复位引脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正常工作。采用阻容复位电路时,电容C1为10uF,电阻R1为10K。电路如图4-13所示。TankertankerDesign2)软件复位用户应用程序在运行过程中,有时会有特殊需求,需要实现单片机系统软复位(热启动之一),传统的8051单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起来较麻烦。现STC新推出的增强型8051根据客户增加了ISP_CONTR特殊功能寄存器,实现了此功能。用户只需简单的控制ISP_CONTR特殊功能寄存器的其中两位SWBS/SWRST就可以系统复位了。TankertankerDesign3)掉电复位/上电复位当电源电压VCC低于上电复位/掉电复位电路的门槛电压时,所有的逻辑电路都会复位。当VCC重新恢复正常电压时,HD版本的单片机延迟2048个时钟(90版本单片机延迟32768个时钟)后,上电复位/掉电复位结束。进入掉电模式时,上电复位/掉电复位功能被关闭。TankertankerDesign4)看门狗复位在工业控制、汽车电子、航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”,通常是引进看门狗,如果MCU/CPU不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。STC89C52RC系列单片机为此功能增加了特殊功能寄存器WDT_CONTR看门狗控制寄存器。TankertankerDesign4.5.4STC89C52单片机的复位状态1.复位后各寄存器的起始状态复位时,PC初始化为0000H,程序从0000H单元开始执行。复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态见表4-18。由表4-18可看出,复位时,SP=07H,而P0~P3引脚均为高电平。在某些控制应用中,要注意考虑P0~P3引脚的高电平对接在这些引脚上的外部电路的影响。例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。TankertankerDesign 寄存器 初始状态 寄存器 初始状态 PC 0000H TMOD 00H Acc 00H TCON 00H PSW 00H TH0 00H B 00H TL0 00H SP 07H TH1 00H DPTR 0000H TL1 00H P0-P3 FFH SCON xxxxxxxxB IP xxx00000B PCON 0xxx0000B IE 0xx00000B AUXR xxxx0xx0B DP0L 00H AUXR1 xxxxxxx0B DP0H 00H WDTRST xxxxxxxxB DP1L 00H DP1H 00H TankertankerDesign2.不同复位源情况下单片机起始状态(1)对于内部看门狗复位,会使单片机直接从用户程序区0000H处开始执行用户程序。 (2)通过控制RESET脚产生的硬复位,会使系统从用户程序区0000H处开始直接执行用户程序。(3)通过对ISP_CONTR寄存器送入20H产生的软复位,会使系统从用户程序区0000H处开始直接执行用户程序。(4)通过对ISP_CONTR寄存器送入60H产生的软复位,会使系统从系统ISP监控程序区开始执行程序,检测不到合法的ISP下载命令流后,会软复位到用户程序区执行用户程序。(5)系统停电后再上电引起的硬复位,会使系统从系统ISP监控程序区开始执行程序,检测不到合法的ISP下载命令流后,会软复位到用户程序区执行用户程序。TankertankerDesign4.6STC89C52单片机的省电工作模式STC89C52系列单片机可以运行2种省电模式以降低功耗:空闲模式和掉电模式。正常工作模式下,STC89C52系列单片机的典型功耗是4mA~7mA,而掉电模式下的典型功耗<0.1uA,空闲模式下的典型功耗是2mA。空闲模式和掉电模式的进入由电源控制寄存器PCON的相应位控制。PCON(PowerControlRegister)寄存器的字节地址是87H,但不可位寻址。格式如下: D7 D6 D5 D4 D3 D2 D1 D0 PCON SMOD SMOD0 - POF GF1 GF0 PD IDLTankertankerDesign POF:上电复位标志位,单片机停电后,上电复位标志位为1,可由软件清0。在实际应用中,要判断是上电复位(冷启动),还是外部复位引脚输入复位信号产生的复位,还是内部看门狗复位,还是软件复位或者其他复位,可通过如下方法来判断:先在初始化程序中,判断POF即PCON.4位是否为1?如果POF=1就是上电复位(冷启动),则将POF清0;如果POF=0就是外部手动复位或看门狗复位或软件复位或其他复位。 D7 D6 D5 D4 D3 D2 D1 D0 PCON SMOD SMOD0 - POF GF1 GF0 PD IDLTankertankerDesign PD:该位置1时,进入PowerDown模式,可由外部中断低电平触发或下降沿触发唤醒,进入掉电模式时,内部时钟停振,由于无时钟CPU、定时器、串行口等功能部件停止工作,只有外部中断继续工作。掉电模式可由外部中断唤醒,中断返回后,继续执行原程序。掉电模式也叫停机模式,此时功耗<0.1uA。 IDL:该位置1时,进入空闲(IDLE)模式,除系统不给CPU供时钟,CPU不执行指令外,其余功能部件仍可继续工作,可由任何一个中断唤醒。 GF1,GF0:两个通用工作标志位,用户可以任意使用。 SMOD,SMOD0:与电源控制无关,与串口有关,将在第七章串行通信描述。 D7 D6 D5 D4 D3 D2 D1 D0 PCON SMOD SMOD0 - POF GF1 GF0 PD IDLTankertankerDesign
/
本文档为【第4章STC89C52单片机硬件结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索