版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Tankertanker Design 第四章第四章 STC89C52单片机硬件结构单片机硬件结构 4.1 STC89C52单片机的内部组织结构及特点 4.2 STC89C52单片机的外部引脚及功能 4.3 STC89C52单片机存储器结构 4.4 STC89C52单片机I/O口 4.5 STC89C52单片机的时钟与复位 4.6 STC89C52单片机的省电工作模式 Tankertanker Design 4.1 STC89C52单片机的内部组织结构及特点单片机的内部组织结构及特点 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/ 超强抗干扰的单片机,指令代码完全兼容传统805
2、1单片机 ,12时钟/机器周期和6时钟/机器周期可以任意选择。HD 版本和90C版本内部集成MAX810专用复位电路。 STC89C52RC单片机内部硬件结构框图如图4- 1所示。 Tankertanker Design Tankertanker Design STC89C52RC单片机有如下功能部件和特性: 1.增强型6时钟/机器周期和12时钟/机器周期任意设置。 2.指令代码完全兼容传统8051 3.工作电压:5.53.4V(5V单片机)/2.03.8V(3V单片机 )。 4.工作频率:040MHz,相当于普通8051单片机的0 80MHz,实际工作频率可达48MHz。 5.用户应用程序空
3、间:8KB片内Flash程序存储器,擦写次数 10万次以上。 6.片上集成512B RAM数据存储器。 Tankertanker Design 7.通用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)。
4、 11.内部集成MAX810专用复位电路(HD版本和90C版本才有 ),外部晶体20M以下时,可不需要外部复位电路。 Tankertanker Design 12.共3个16位定时器/计数器,兼容普通MCS-51单片机的定时 器,其中定时器T0还可以当成2个8位定时器使用。 13.外部中断4路,下降沿中断或低电平触发中断,掉电模式 可由外部中断低电平触发中断方式唤醒。 14.通用异步串行口(UART),还可用定时器软件实现多个 UART。 15.工作温度范围:075(商业级)/4085( 工业级)。 16.封装形式有:LQFP-44、PDIP-40、PLCC-44、PQFP-44。由 于LQF
5、P-44具有体积小、扩展了P4口、外部中断2和3及定 时器T2的功能。PDIP-40的封装与传统的89C52芯片兼容。 Tankertanker Design 除此之外,STC89C52RC单片机自身还有很多独特的优点: 1.加密性强,无法解密。 2.超强抗干扰。主要表现在:高抗静电(ESD保护),可以轻 松抗御2KV/4KV快速脉冲干扰(EFT测试),宽电压、不怕 电源抖动,宽温度范围为4085,I/O口经过特 殊处理,单片机内部的电源供电系统、时钟电路、复位电 路及看门狗电路经过特殊处理。 3.采用三大降低单片机时钟对外部电磁辐射的措施:禁止ALE 输出;如选6时钟/机器周期,外部时钟频率
6、可降一半;单 片机时钟振荡器增益可设为1/2gain。 4.超低功耗:掉电模式,典型电流损耗0.1A;空闲模式, 典型电流损耗为2mA;正常工作模式,典型电流损耗 4mA7mA。 Tankertanker Design STC89C52RC单片机的工作模式有如下几种: 1.掉电模式:RAM内容被保存,振荡器被冻结,单片机一切 工作停止,直到下一个中断或硬件复位为止,中断返回后 ,继续执行原程序。典型功耗0.1A。 2.空闲模式:CPU停止工作,允许RAM、定时器/计数器、串 口、中断继续工作。典型功耗2mA。 3.正常工作模式:单片机正常执行程序的工作模式,典型功 耗4mA7mA。 Tanke
7、rtanker Design 选用STC89C52系列单片机的一个主要原因: 由于这种单片机可以利用全双工异步串行口(P3.0/P3.1) 进行在系统编程(ISP),即无需专用编程器/仿真器,就 可通过串口直接下载用户程序,因此省却了每次编程必须 插拔单片机到专用编程器上的麻烦,可以直接将STC单片 机固定焊接在PCB板上,进行程序的下载调试。 Tankertanker Design STC89系列单片机大部分具有在系统可编程(ISP)特性, ISP的好处就是省去购买通用编程器,单片机在用户系统上 即可下载/烧录用户程序,而无须将单片机从已生产好的 产品上拆下,再用通用编程器将程序代码烧录进单
8、片机内 部。有些程序尚未定型的产品可以一边生产,一边完善, 加快了产品进入市场的速度,减小了新产品由于软件缺陷 带来的风险。由于可以将程序直接下载进单片机看运行结 果也可以不用仿真器。STC单片机在线编程典型线路如图4- 2所示。 Tankertanker Design 大部分STC89系列单片机在销售给用户之前已在单片机内部固化有ISP 系统引导程序,配合PC端的控制程序即可将用户的程序代码下载进单 片机内部,故无须编程器(速度比通用编程器快)。注意:不要用通用 编程器编程,否则有可能将单片机内部已固化的ISP系统引导程序擦除 ,造成无法使用STC提供的ISP软件下载用户的程序代码。 Tan
9、kertanker Design 4.2 STC89C52单片机的外部引脚及功能单片机的外部引脚及功能 STC89C52目前有LQFP44、PQFP44、PDIP40、PLCC44等封装 形式,并且不同版本的引脚也不同,图4- 3所示为各封装 形式的HD版本和90C版本的引脚图。 图图4- 3 3(a)PDIP40的的HD版本引脚图版本引脚图 图图4-3(b)PDIP40的的90C版本引脚版本引脚 图图 Tankertanker Design 图图4-3(c)LQFP44的的HD版本引脚图版本引脚图 图图4-3(d)LQFP44的的90C版本引脚版本引脚 图图 Tankertanker Des
10、ign 图图4-3(e)PLCC44的的HD版本引脚图版本引脚图 图图4-3(f)PLCC44的的90C版本引脚图版本引脚图 Tankertanker Design 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编程器中将ALE pin选择 为用作
11、P4.5,在烧录用户程序 时在STC-ISP编程器中该管脚默 认作ALE pin,具体设置如图4- 4 所示。 Tankertanker Design STC89C52RC单片机有5个端口P0、P1、P2、P3、P4,其中P4 端口在LQFP44、PQFP44、PLCC44等封装形式中才有,其它 有很多引脚和控制信号共用引脚。下面就各引脚进行说明 。 1. P0口引脚 P0.0P0.7:P0口即可作为输入/输出口,也可作为地址/ 数据复用总线使用。当P0口作为输入/输出口时,P0是一 个8位准双向口,上电复位后处于开漏模式。P0口内部无 上拉电阻,所以作I/O口必须外接10K4.7K的上拉电阻
12、。 当P0作为地址/数据复用总线使用时,是低8位地址线A0- A7和数据线D0-D7共用,此时无需外接上拉电阻。 Tankertanker Design 2. P1口引脚 P1.0P1.7:P1口是一个带内部上拉电阻的8位双向I/O口。 P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL 输入。对端口写入1时,通过内部的上拉电阻把端口拉到 高电位,这时可用作输入口。P1口作输入口使用时,因为 有内部上拉电阻,那些被外部拉低的引脚会输出一个电流 。 其中,P1.0和P1.1还可以作为定时器/计数器2的外部计数输 入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX) ,具体
13、参见表4- 1。 引脚号功能特性 P1.0T2(定时/计数器2外部计数输入),时钟输出 P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制) Tankertanker Design 3. P2口引脚 P2.0P2.7:P2口内部带上拉电阻的8位双向I/O端口。即可作 为输入/输出口,也可作为高8位地址总线使用(A8-A15)。 当P2口作为输入/输出口时,P2是一个8位准双向口。在访 问外部程序存储器和16位地址的外部数据存储器(如执行 “MOVX DPTR”指令)时,P2送出高8位地址。在访问8 位地址的外部数据存储器(如执行“MOVX R1”指令) 时,P2口引脚上的内容就是专用寄
14、存器SFR区中的P2寄存 器的内容,在整个访问期间不会改变。 Tankertanker Design 4. P3口引脚 P3.0P3.7:P3是一个带内部 上拉电阻的8位双向I/O端口 。P3的输出缓冲器可驱动( 吸收或输出电流方式)4个 TTL输入。对端口写入1时, 通过内部的上拉电阻把端口 拉到高电位,这时可用作输 入口。P3做输入口使用时, 因为有内部的上拉电阻,那 些被外部信号拉低的引脚会 输入一个电流。P3口除作为 一般I/O口外,还有其他一些 复用功能,如表4- 2所示。 引脚号复用功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2 INT0 (外部中断0)
15、 P3.3 INT1 (外部中断1) P3.4T0(定时器0的外部输入) P3.5T1(定时器1的外部输入) P3.6WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) Tankertanker Design 6. 电源与时钟引脚 (1) VCC:电源正极 (2) Gnd:电源负极,接地 (3) XTAL1:片内振荡器反相放大器和时钟发生器电路输入 端。用片内振荡器时,该脚接外部石英晶体和微调电容。 外接时钟源时,该脚接外部时钟振荡器的信号。 (4) XTAL2:片内振荡器反相放大器的输出端。当使用片内 振荡器,该脚连接外部石英晶体和微调电容。当使用外部 时钟源时,本脚悬空。
16、 RST:复位输入。当输入连续两个机器周期以上高电平时为 有效,用来完成单片机的复位初始化操作。看门狗计时完 成后,RST引脚输出96个晶振周期的高电平。特殊寄存器 AUXR(地址8EH)上的DISRTO位可以使此功能无效。 DISRTO默认状态下,复位高电平为有效。 Tankertanker Design 4.3 STC89C52单片机存储器结构单片机存储器结构 STC89C52RC存储器的结构特点之一是将程序存储器和数据存 储器分开(哈佛结构),并有各自的访问指令。 STC89C52RC系列单片机除可以访问片上Flash存储器外,还 可以访问64KB的外部程序存储器。STC89C52RC系
17、列单片机 内部有512字节的数据存储器,其在物理和逻辑上都分为 两个地址空间:内部RAM(256字节)和内部扩展 RAM(256字节),另外还可以访问在片外扩展的64KB外部 数据存储器。 Tankertanker Design 4.3.1 STC89C52单片机程序存储器 单片机程序存储器存放程序和表格之类的固定常数。片内为 8KB的Flash,地址为0000H1FFFH。16位地址线,可外扩 的程序存储器空间最大为64KB,地址为0000HFFFFH。使 用时应注意以下问题: (1)分为片内和片外两部分,访问片内的还是片外的程序 存储器,由 EA 引脚电平确定。 EA=1时,CPU从片内0
18、000H开始取指令,当PC值没有超出 1FFFH时,只访问片内Flash存储器,当PC值超出1FFFH自动 转向读片外程序存储器空间2000HFFFFH内的程序。 EA=0时,只能执行片外程序存储器(0000HFFFFH)中 的程序,不理会片内8KB Flash存储器。 Tankertanker Design (2)程序存储器某些固定单元用于各中断源中断服务程序入口。 STC89C52复位后,程序存储器地址指针PC的内容为0000H,于是程 序从程序存储器的0000H开始执行,一般在这个单元存放一条跳 转指令,跳向主程序的入口地址。 除此之外,64KB程序存储器空间中有8个特殊单元分别对应于8
19、个 中断源的中断入口地址,见表4- 3。通常这8个中断入口地址处 都放一条跳转指令跳向对应的中断服务子程序,而不是直接存 放中断服务子程序。因为两个中断入口间的间隔仅有8个单元, 一般不够存放中断服务子程序。 Tankertanker Design 中断源中断向量地址 0003H T0000BH 0013H T1T1001BH UARTUART0023H T2002BH 0033H 003BH 表表4- 3 程序程序 存储存储 器空器空 间的间的8 个中个中 断入断入 口地口地 址址 Tankertanker Design 4.3.2 STC89C52单片机数据存储器 STC89C52RC系列
20、单片机内部集成了512字节RAM,可用于存 放程序执行的中间结果和过程数据。内部数据存储器在物 理和逻辑上都分为两个地址空间:内部RAM(256字节) 和内部扩展RAM(256字节)。此外,还可以访问在片外 扩展的64KB数据存储器。STC89C52RC系列单片机的存储器 分布如图4- 5所示。(特别说明:图中阴影部分的访问是 由辅助寄存器AUXR(地址为8EH)的第EXTRAM位来设置 ,这部分在物理上是内部RAM,逻辑上占用外部RAM地址 空间) Tankertanker Design Tankertanker Design 1. 片内数据存储器: 传统的89C52单片机的内部RAM只有2
21、56字节的空间可供使用 ,在此情况下STC公司响应广大用户的呼声,在一些单片 机内部增加了RAM。STC89C52RC系列单片机内部扩展了 256个字节RAM。 于是STC89C52RC单片机内部512字节的RAM有3个部分:(1 )低128字节(00H-7FH)内部RAM;(2)高128字节( 80H-FFH)内部RAM;(3)内部扩展的256字节RAM空间 (00H-FFH)。 下面分别作出说明: Tankertanker Design (1)低128字节(00H-7FH)的空间即可以直接寻址也可间接寻址,内部 低128字节RAM又可分为:工作寄存器组0(00H-07H)8字节、工作 寄存
22、器组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(
23、地址为8EH)的第EXTRAM位来设置。关于扩展 RAM的管理将在第4.3.3节的AUXR特殊功能寄存器部分详细介绍。 Tankertanker Design 2.片外数据存储区 当片内RAM不够用时,需外扩数据存储器,STC89C52最多可 外扩64KB的RAM。注意,片内RAM与片外RAM两个空间是 相互独立的,片内RAM与片外RAM的低256字节的地址是 相同的,但由于使用的是不同的访问指令,所以不会发生 冲突。 另外说明下,只有在访问真正的外部数据存储器期间,WR 或RD信号才有效。但当MOVX指令访问物理上在内部,逻 辑上在外部的片内扩展RAM时,这些信号将被忽略。 Tankerta
24、nker Design 4.3.3 STC89C52单片机特殊功能寄存器 STC89C52中的CPU对片内各功能部件的控制是采用特殊功能 寄存器集中控制方式。特殊功能寄存器SFR的单元地址映 射在片内RAM的80H-FFH区域中,离散地分布在该区域, 其中字节地址以0H或8H结尾的特殊功能寄存器可以进行位 操作。 Tankertanker Design 表表4- 4 单片机内核特殊功能寄存器单片机内核特殊功能寄存器 序号符号功能介绍字节地址位地址复位值 1ACC累加器E0HE7-E0HE7-E0H0000 0000 2BB寄存器F0HF7-F0HF7-F0H0000 0000 3PSW程序状态
25、字寄存器D0HD7-D0HD7-D0H0000 0000 4SP堆栈指针81H0000 0111 5DP0L 数据地址指针DPTR0低8位82H0000 0000 6DP0H 数据地址指针DPTR0高8位83H0000 0000 7DP1L 数据地址指针DPTR1低8位84H 8DP1H 数据地址指针DPTR1高8位85H Tankertanker Design 表表4- 5 单片机系统管理特殊功能寄存器单片机系统管理特殊功能寄存器 序号符号功能介绍字节地址位地址复位值 1PCON电源控制寄存器87H0 xx1 0000 2AUXR辅助寄存器8EHxxxx xx00 3 AUXR 1 辅助寄存
26、器1A2Hxxxx 0 xx0 Tankertanker Design 表表4- 6 单片机中断管理特殊功能寄存器单片机中断管理特殊功能寄存器 序 号 符号功能介绍 字节 地址 位地址复位值 1IE中断允许控制寄存器A8HAFH-A8HAFH-A8H0000 0000 2IP低中断优先级控制寄存器B8HBFH-B8HBFH-B8Hxx00 0000 3IPH高中断优先级控制寄存器B7H0000 0000 4TCON T0、T1定时器/计数器控制寄存 器 88H8FH-88H8FH-88H0000 0000 5SCON串行口控制寄存器98H9FH-98H9FH-98H0000 0000 6T2C
27、ON T2定时器/计数器控制寄存器C8HCFH-C8HCFH-C8H0000 0000 7XICON扩展中断控制寄存器C0HC7H-C0HC7H-C0H0000 0000 Tankertanker Design 表表4- 7 单片机单片机I/O口特殊功能寄存器口特殊功能寄存器 序号符号功能介绍字节地址位地址复位值 1P0P0口锁存器80H87H-80H87H-80H1111 1111 2P1P1口锁存器90H97H-90H97H-90H1111 1111 3P2P2口锁存器A0HA7H-A0HA7H-A0H1111 1111 4P3P3口锁存器B0HB7H-B0HB7H-B0H1111 111
28、1 5P4P4口锁存器E8HE7H-E0HE7H-E0Hxxxx 1111 Tankertanker Design 表表4- 8 单片机串行口特殊功能寄存器单片机串行口特殊功能寄存器 序 号 符号功能介绍 字节 地址 位地址复位值 1*SCON串行口控制寄存器98H9FH-98H9FH-98H0000 0000 2SBUF串行口锁存器99Hxxxx xxxx 3SADEN串行从机地址掩模寄存器B9H0000 0000 4SADDR 串行从机地址控制寄存器A9H0000 0000 Tankertanker Design 表表4- 9 单片机定时器特殊功能寄存器单片机定时器特殊功能寄存器 序号符号
29、功能介绍字节地址位地址复位值 1*TCONT0、T1定时/计数控制寄存器88H8FH-88H8FH-88H0000 0000 2TMODT0、T1定时/计数方式控制寄存器89H0000 0000 3TL0定时器/计数器0(低8位)8AH0000 0000 4TH0定时器/计数器0(低8位)8CH0000 0000 5TL1定时器/计数器1(高8位)8BH0000 0000 6TH1定时器/计数器1(高8位)8DH0000 0000 7*T2CON定时器/计数器2控制寄存器C8H0000 0000 8T2MOD定时器/计数器2模式寄存器C9Hxxxx xx00 9 RCAP2 L 外部输入(P1
30、.1)计数器/自动再装 入模式时初值寄存器低八位 CAH0000 0000 10 RCAP2 H 外部输入(P1.1)计数器/自动再装 入模式时初值寄存器高八位 CBH0000 0000 11TL2定时器/计数器2(低8位)CCH0000 0000 12TH2定时器/计数器2(高8位)CDH0000 0000 Tankertanker Design 表表4- 10 单片机看门狗特殊功能寄存器单片机看门狗特殊功能寄存器 序号符号功能介绍字节地址位地址复位值 1WDT_CONTR看门狗控制寄存器E1hxx00 0000 Tankertanker Design 表表4- 11 单片机单片机ISP/I
31、AP特殊功能寄存器特殊功能寄存器 序 号 符号功能介绍字节地址位地址复位值 1ISP_DATAISP/IAP数据寄存器E2h1111 1111 2 ISP_ADDR H ISP/IAP 地址高8位E3h0000 0000 3ISP_ADDRL ISP/IAP 地址低8位E4h0000 0000 4ISP_CMDISP/IAP命令寄存器E5hxxxx x000 5ISP_TRIGISP/IAP 命令触发寄存器E6hxxxx xxxx 6ISP_CONTR ISP/IAP 控制寄存器E7h000 x x000 Tankertanker Design 以下介绍部分特殊功能寄存器,其它各特殊功能寄存器
32、的功能将在 相应的章节介绍。 1、AUXR 扩展RAM及ALE管理特殊功能寄存器(见表4- 12) (1)扩展RAM的管理由AUXR特殊功能寄存器的第EXTRAM位来设 置。 普通89C51/89C52系列单片机的内部RAM只有128(89C51)/256( 89C52)供用户使用,而STC89C52RC系列单片机内部扩展了256字 节的RAM。 符号功能介绍 字节 地址 位地址 复位 值 AUXR辅助寄存器8EH EXTR AM ALE OFF xxxx xx00 Tankertanker Design (2)当EXTRAM=0时,内部扩展RAM可存取,此时使用 MOVX A,Ri/MOVX
33、 Ri,A指令来固定访问00H-FFH内部扩 展的RAM空间,当超过FFH的外部RAM则用MOVX A,DPTR/MOVX DPTR,A指令来访问; 当EXTRAM=1时,禁止内部扩展RAM的使用,外部的RAM 可以存取,此时MOVX DPTR和MOVX Ri的使用同传统 的89C52。 有些用户系统因为外部扩展了I/O或者用片选去选多个RAM区 ,有时与此内部扩展的RAM逻辑地址上有冲突,于是将此 位设置为”1”,禁止访问此内部扩展的RAM就可以了。 符号功能介绍 字节 地址 位地址 复位 值 AUXR辅助寄存器8EH EXTR AM ALE OFF xxxx xx00 Tankertank
34、er Design 特别说明:请尽量用MOVX A,Ri/MOVX Ri,A指令访问内部 扩展RAM,这样只能访问256字节的扩展RAM,可与很多 单片机兼容,以达到完全兼容以前老产品的目的。 另外,在访问内部扩展RAM之前,用户还需在烧录用户程序 时在STC-ISP编程器中设置允许内部扩展AUX-RAM访问,如 图4- 6所示。 Tankertanker Design (3)当ALEOFF=0时,在12时钟模式时ALE脚输出固定的1/6 晶振频率信号,在6时钟模式时输出固定的1/3晶振频率信 号。 当ALEOFF=1时,ALE引脚仅在执行MOVX或MOVC指令时才 输出信号,好处是降低了系统
35、对外界的电磁干扰。 符号功能介绍 字节 地址 位地址 复位 值 AUXR辅助寄存器8EH EXTR AM ALE OFF xxxx xx00 Tankertanker Design 2、AUXR1 双数据指针控制特殊功能寄存器(见表4- 13) (1)GF2通用功能用户自定义位。由用户根据需要自定义使用。 (2)DPS是DPTR寄存器选择位。 当DPS=0时,选择数据指针DPTR0;当DPS=1时,选择数据指针 DPTR1。 AUXR1特殊功能寄存器位于A2H单元,不可用位操作指令快速访问 。但由于DPS位位于bit0,故对AUXR1寄存器用INC指令,DPS位 便会反转,由0变成1或由1变成
36、0,即可实现双数椐指针的快速 切换。 符 号 功能介绍 字节 地址 位地址 复位 值 AU XR 1 辅助寄存器A2HGF2DPS xxxx 0 xx0 Tankertanker Design 3、堆栈指针SP SP指示堆栈顶部在内部RAM块中的位置。该微处理器的堆栈 结构是向上生长型。单片机复位后,SP为07H,使得堆栈 实际上从08H单元开始,由于08H1FH单元分别是属于1 3组的工作寄存器区,最好在复位后把SP值改置为60H或 更大的值,避免堆栈与工作寄存器冲突。 堆栈操作只有两种:数据压入(PUSH)堆栈和数据弹出( POP)堆栈。数据压入堆栈,SP自动加1;数据弹出堆栈, SP自动
37、减1。 堆栈是为子程序调用和中断操作而设,主要用来保护断点地 址和现场状态。 Tankertanker Design 4、累加器A 使用最频繁的寄存器,可写为Acc。A的进位标志Cy是特殊的 ,因为它同时又是位处理机的位累加器。累加器A的作用 是ALU单元的输入数据源之一,又是ALU运算结果存放单元 。数据传送大多都通过累加器A,相当于数据的中转站。 5、寄存器B 为执行乘法和除法而设。在不执行乘、除法操作的情况下, 可把它当作一个普通寄存器来使用。执行乘法时,两乘数 分别在A、B中,执行乘法指令后,乘积在BA中;执行除法 时,被除数取自A,除数取自B,商存放在A中,余数存放 在B中。 Tan
38、kertanker Design 6、程序状态字寄存器PSW(Program Status Word)(见表4- 14) PSW包含了程序运行状态的信息,其中4位保存当前指令执行后的 状态,供程序查询和判断。PSW中各个位的功能: (1)Cy(PSW.7)进位标志位 Cy可写为C。在算术和逻辑运算时,若有进位/借位,Cy1;否则 ,Cy0。在位处理器中,它是位累加器。 (2)Ac(PSW.6)辅助进位标志位 在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或 借位时,Ac1;否则,Ac0。 符号字节地址位地址复位值 PSWD0HCyAcF0RS1RS0OVP0000 0000 Ta
39、nkertanker Design 6、程序状态字寄存器PSW(Program Status Word)(见表4- 14) (3)F0(PSW.5)用户设定标志位 由用户使用的一个状态标志位,可用指令来使它置1或清0,控制 程序的流向。用户应充分利用它。 (4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择 选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄 存区见表4- 15。 符号字节地址位地址复位值 PSWD0HCyAcF0RS1RS0OVP0000 0000 Tankertanker Design 6、程序状态字寄存器PSW(Program Status Word
40、)(见表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”的个数为偶数 。此标志位对串行通信有重要的意义,常用奇偶检验的方法来 检验数据串行传输的可靠性。 符号字节地址位地址复位值 PSWD0HCyAcF0RS1RS0OVP0000 0000 Tankertanker Design 4.4 STC89C52单片机单片机I/O口口
41、STC89C52RC单片机所有I/O端口均有3种工作类型: 准双向口/弱上拉(标准8051输出模式)、仅为输 入(高阻)或开漏输出功能。 Tankertanker Design 4.4.1 P0端口 P0口是一个双功能的8位并行端口,字节地址为80H,位地址 为80H87H。端口的各位具有完全相同但又相互独立的电 路结构。 P0口上电复位后处于开漏模式,当P0管脚作I/O口时,需外加 10K4.7K的上拉电阻,当P0管脚作为地址/数据复用总线使 用时,不用外加上拉电阻。 Tankertanker Design 当P0口线锁存器为0时,开漏输出关闭所有上拉晶体管。 当P0口作为一个逻辑输出时,这
42、种配置方式必须有外部上 拉电阻,一般通过电阻外接到Vcc。如果外部有上拉电阻 ,开漏的I/O口还可以读外部状态,即此时被配置为开漏 模式的I/O口还可以作为输入I/O口。这种方式的下拉与准 双向口相同。输出口线配置如图4- 7所示,开漏端口带有 一个干扰抑制电路。 Tankertanker Design 4.4.2 P1/P2/P3/P4端口 STC89C52RC系列单片机的P1/P2/P3/P4上电复位后为准双向口 /弱上拉(传统8051的I/O口)模式。 准双向口输出类型可用作输出和输入功能而不需重新配置口 线输出状态。这是因为当口线输出为1时驱动能力很弱, 允许外部装置将其拉低。当引脚输
43、出为低时,它的驱动能 力很强,可吸收相当大的电流。准双向口有3个上拉晶体 管适应不同的需要。 即:要想获得较大的驱动能力,采用低电平输出。 Tankertanker Design 在3个上拉晶体管中,有1个上拉晶体管称为“弱上拉”,当 口线寄存器为1且引脚本身也为1时打开。此上拉提供基本 驱动电流使准双向口输出为1。如果一个引脚输出为1而由 外部装置下拉到低时,弱上拉关闭而“极弱上拉”维持开 状态,为了把这个引脚强拉为低,外部装置必须有足够的 灌电流能力使引脚上的电压降到门槛电压以下。 输出11 弱上拉管提供电流 输出0 0 灌电流,导通 Tankertanker Design 第2个上拉晶体
44、管,称为“极弱上拉”,当口线锁存为1时打 开。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电 流将引脚上拉为高电平。 第3个上拉晶体管称为“强上拉”。当口线锁存器由0到1跳 变时,这个上拉用来加快准双向口由逻辑0到逻辑1转换。 当发生这种情况时,强上拉打开约2个时钟以使引脚能够 迅速地上拉到高电平。准双向口输出如图4- 8所示。 输出1悬空 极弱上拉管上拉电流 0到1 0到1 Tankertanker Design 如果用户向3V单片机的引脚上加5V电压,将会有电流从引脚 流向Vcc,这样导致额外的功率消耗。因此,建议不要在 准双向口模式中向3V单片机引脚施加5V电压,如使用的话 ,要加限流电
45、阻,或用二极管做输入隔离,或用三极管做 输出隔离。准双向口带有一个干扰抑制电路。准双向口读 外部状态前,要先锁存为“1”,才可读到外部正确的状 态。 Tankertanker Design 4.4.3 5V单片机连接3V器件 STC89C52RC的5V单片机的P0口的灌电流最大为12mA,其他I/O 口的灌电流最大为6mA。P0口驱动能力是其它端口的2倍。8 个LSTTL输入。 当STC89C52RC系列5V单片机连接3.3V器件时,为防止3.3V器件 承受不了5V,可将相应的5V单片机P0口先串一个0330的限 流电阻到3.3V器件I/O口,相应的3.3V器件I/O口外部加10K上 拉电阻到
46、3.3V器件的Vcc,这样高电平是3.3V,低电平是0V, 输入输出一切正常。其配置见图4- 9。 Tankertanker Design 4.5 STC89C52单片机的时钟与复位单片机的时钟与复位 4.5.1 传统51单片机时序 单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行 的。时钟电路产生单片机工作时所必需的控制信号,在时 钟信号的控制下,严格按时序执行指令。由于指令的字节 数不同,取这些指令所需要的时间也就不同,即使是字节 数相同的指令,由于执行操作有较大的差别,不同的指令 执行时间也不一定相同,即所需的拍节数不同。为了便于 对CPU时序进行分析,一般按指令的执行过程规定了几种
47、 周期,即时钟周期、机器周期和指令周期,也称为时序定 时单位。 Tankertanker Design 1. 时钟周期 也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基 本的、最小的时间单位。可以这么理解,时钟周期就是单 片机外接晶振的倒数,例如12M的晶振,它的时钟周期就 是1/12 us。 显然,对同一种机型的单片机,时钟频率越高,单片机的工 作速度就越快。但是,由于不同的单片机硬件电路和器件 的不完全相同,所以其所需要的时钟频率范围也不一定相 同。在单片机中把一个时钟周期定义为一个节拍(用P表 示),二个节拍定义为一个状态周期(用S表示)。 Tankertanker Design 2
48、. 机器周期 在单片机中,为了便于管理,常把一条指令的执行过程划分 为若干个阶段,每一阶段完成一项工作。例如,取指令、 存储器读、存储器写等,这每一项工作称为一个基本操作 。完成一个基本操作所需要的时间称为机器周期。 一般情况下,一个机器周期由若干个S周期(状态周期)组 成。51系列单片机的一个机器周期由6个S周期(状态周期 )组成。前面已说过一个时钟周期定义为一个节拍(用P 表示),二个节拍定义为一个状态周期(用S表示),51 单片机的机器周期由6个状态周期组成,也就是说一个机 器周期=6个状态周期=12个时钟周期。 Tankertanker Design 由图4- 10可知:1个机器周期包
49、括12个时钟周期,分6个状态 :S1S6。每个状态又分两拍:P1和P2。因此,一个机器 周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、 、S6P2。 Tankertanker Design 3. 指令周期 指令周期是执行一条指令所需要的时间,一般由若干个机器 周期组成。指令不同,所需的机器周期数也不同。对于一 些简单的单字节指令,在取指令周期中,指令取出到指令 寄存器后,立即译码执行,不再需要其它的机器周期。对 于一些比较复杂的指令,例如转移指令、乘法指令,则需 要两个或者两个以上的机器周期。 通常含一个机器周期的指令称为单周期指令,包含两个机器 周期的指令称为双周期指令
50、。51单片机的指令系统中,按 它们的长度可分为单字节指令、双字节指令和三字节指令 。 从指令执行时间看:单字节和双字节指令一般为单机器周期 和双机器周期;三字节指令都是双机器周期;乘、除指令 占用四个机器周期。 Tankertanker Design 4.5.2 STC89C52单片机时钟电路 单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行 的。这个脉冲是由单片机控制器中的时序电路发出的。单 片机的时序就是CPU在执行指令时所需控制信号的时间顺 序,为了保证各部件间的同步工作,单片机内部电路应在 唯一的时钟信号下严格地控制时序进行工作。 CPU发出的时序信号有两类,一类用于对片内各个功能
51、部件 控制,用户无须了解;另一类用于对片外存储器或I/O口 的控制,这部分时序对于分析、设计硬件接口电路至关重 要。 时钟频率直接影响单片机的速度,时钟电路的质量也直接影 响单片机系统的稳定性。常用的时钟电路有两种方式,一 种是内部时钟方式,另一种是外部时钟方式。 Tankertanker Design 1内部时钟方式 STC89C52内部有一个用于构成振荡器的高增益反相放大器,输入 端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石 英晶体振荡器和微调电容,构成一个稳定的自激振荡器。 2外部时钟方式 此方式利用外部振荡脉冲接入XTAL1或XTAL2。对于STC89C52RC 系
52、列单片机,因内部时钟发生器的信号取自反相器的输入端, 故采用外部时钟源时,接线方式为外部时钟源直接接到XTAL1 端,XTAL2端悬空。 用现成的外部振荡器产生脉冲信号,常用于多片单片机同时工作 ,以便于多片单片机之间的同步,一般采用内部时钟方式产生 工作时序,如图4- 11所示。 Tankertanker Design 时钟电路中的R、C的参数值的设置情况如表4- 16所示。 晶振增益控制晶振增益控制OSCDN=full gainOSCDN=full gain 晶振晶振 频率频率 4MHz4MHz6MHz6MHz12M-12M- 25MHz25MHz 26M-26M- 30MHz30MHz
53、31M-31M- 35MHz35MHz 36M-36M- 39MHz39MHz 40M-40M- 43MHz43MHz 44M-44M- 48MHz48MHz C2C2、 C3C3 =100=100 pFpF 47pF-47pF- 100pF100pF =47pF=47pF=10pF=10pF=10pF=10pF=10pF=10pF=10pF=10pF=5pF=5pF R1R1不用不用不用不用不用不用6.8K6.8K5.1K5.1K4.7K4.7K3.3K3.3K3.3K3.3K 晶振增益控制晶振增益控制OSCDN=1/2 gainOSCDN=1/2 gain 晶振晶振 频率频率 4MHz4M
54、Hz6MHz6MHz12M-12M- 25MHz25MHz 26M-26M- 30MHz30MHz 31M-31M- 35MHz35MHz 36M-36M- 39MHz39MHz 40M-40M- 43MHz43MHz 44M-44M- 48MHz48MHz C2C2、 C3C3 =100=100 pFpF 47pF-47pF- 100pF100pF =47pF=47pF=10pF=10pF不用不用不用不用不用不用不用不用 R1R1不用不用不用不用不用不用6.8K6.8K5.1K5.1K4.7K4.7K3.3K3.3K3.3K3.3K Tankertanker Design 图4- 12 振荡
55、器增益设置 Tankertanker Design STC89C52RC系列单片机是真正的6T单片机,传统的8051为 每个机器周期12个时钟周期,如将该单片机设为双倍速即 每个机器周期为6个时钟周期,则可将单片机外部时钟频 率降低一半,有效降低单片机时钟对外界的干扰。同时 STC89C52RC系列兼容普通12T的单片机。STC89C52RC系列 的HD版本的单片机推荐工作时钟频率如表4- 17所示。 内部时钟方式:外接晶振内部时钟方式:外接晶振外部时钟方式:直接由外部时钟方式:直接由XTAL1输入输入 12T模式模式6T模式模式12T模式模式6T模式模式 2MHz48MHz2MHz36MHz
56、2MHz48MHz2MHz36MHz Tankertanker Design 4.5.3 STC89C52单片机的复位电路 复位是单片机的初始化操作。单片机启运运行时,都需要先 复位,其作用是使CPU和系统中其他部件处于一个确定的 初始状态,并从这个状态开始工作。因而,复位是一个很 重要的操作方式。但单片机本身是不能自动进行复位的, 必须配合相应的外部电路才能实现。 STC89C52RC系列单片机有4种复位方式:外部RST引脚复位、 软件复位、掉电复位、上电复位、看门狗复位。 Tankertanker Design 1)外部RST引脚复位 外部RST引脚复位就是从外部向RST引 脚施加一定宽度
57、的复位脉冲,从而 实现单片机的复位。将RST复位引脚 拉高并维持至少24个时钟加10us后 ,单片机会进入复位状态,将RST复 位引脚拉回低电平后,单片机结束 复位状态并从用户程序区的0000H 处开始正常工作。采用阻容复位电 路时,电容C1为10uF,电阻R1为 10K。电路如图4- 13所示。 Tankertanker Design 2)软件复位 用户应用程序在运行过程中,有时会有特殊需求,需要实现 单片机系统软复位(热启动之一),传统的8051单片机由 于硬件上未支持此功能,用户必须用软件模拟实现,实现 起来较麻烦。现STC新推出的增强型8051根据客户要求增 加了ISP_CONTR特殊
58、功能寄存器,实现了此功能。用户只 需简单的控制ISP_CONTR特殊功能寄存器的其中两位 SWBS/SWRST就可以系统复位了。 Tankertanker Design 3)掉电复位/上电复位 当电源电压VCC低于上电复位/掉电复位电路的检测门槛电压 时,所有的逻辑电路都会复位。当VCC重新恢复正常电压 时,HD版本的单片机延迟2048个时钟(90版本单片机延迟 32768个时钟)后,上电复位/掉电复位结束。进入掉电模 式时,上电复位/掉电复位功能被关闭。 Tankertanker Design 4)看门狗复位 在工业控制、汽车电子、航空航天等需要高可靠性的系统中 ,为了防止“系统在异常情况下,受到干扰,MCU/CPU程 序跑飞,导致系统长时间异常工作”,通常是引进看门狗 ,如果MCU/CPU不在规定的时间内按要求访问看门狗,就 认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复 位,使系统重新从头开始按规律执行用户程序。 STC89C52RC系列单片机为此功能增加了特殊功能寄存器 WDT_CONTR看门狗控制寄存器。 Tankertanker Design 4.5.4 STC89C52单片机的复位状态 1. 复位后各寄存器的起始状态 复位时,PC初始化为0000H,程序从0000H单元开始执行。复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模具保养与加工协议模板
- 家庭装饰工程保修合同
- 国际劳动合同样本
- 施工单位工程保证金协议书
- 住宅小区物业管理合同
- 写字楼下停车场租赁协议
- 房屋租赁合同书2024年2
- 2024年合资企业合作协议书
- 老年人租房免责协议书
- 店铺合作经营协议书范本
- 珍爱生命主题班会
- 陈皮仓储合同模板例子
- 2024年安全生产月全国安全生产知识竞赛题库及答案(共六套)
- 2024-2025学年沪教版小学四年级上学期期中英语试卷及解答参考
- DB23T 3844-2024煤矿地区地震(矿震)监测台网技术要求
- 《阿凡达》电影赏析
- DB42-T 2286-2024 地铁冷却塔卫生管理规范
- 合作伙伴合同协议书范文5份
- 小学生主题班会《追梦奥运+做大家少年》(课件)
- 公安机关人民警察高级执法资格考题及解析
- 浙教版信息科技四年级上册全册教学设计
评论
0/150
提交评论