内容发布更新时间 : 2024/11/13 9:01:00星期一 下面是文章的全部内容请认真阅读。
第二章 EM78系列单片机硬件结构 武汉威帆 (027)87644346
第二章 EM78系列单片机硬件结构
EM78系列单片机是采用低功耗、高速CMOS工艺制造的8位单片机,本章将以EM78X56(包括EM78156、EM78256、EM78456)为例来讲述EM78系列单片机的内部结构、存贮器、中断、I/O、看门狗、振荡器和电压检测器等特点。
2.1. 主要功能特点
·采用8位数据总线和13位指令总线独立分离的Harvard结构设计。
·采用RISC指令集,共有57条单字节指令,其中99%为单周期指令(对程序计数器PC指针 进行写操作除外)。
·1K~4KX13的程序存贮器(有OTP和掩膜二个版本)。 ·48个通用数据寄存器可直接寻址使用。 ·14个特殊功能寄存器。
·具有一个结构选择寄存器用于设置振荡器的工作方式等。 ·具有五级堆栈令程序嵌套更自由。
·两个双向三态I/O口,12个I/O线,可分别设置为上拉、下拉或集电极开路等。 ·具有三个硬件中断和一个软件中断。 ·两种工作模式:正常工作模式 2mA/5V
休眠模式 1μA/5V(可由I/O唤醒)
·具有R-OPTION功能,即用电阻的上拉、下拉来选择内部程序的执行。 ·一个带8位预置器的8位定时/计数器,一个看门狗定时器(WDT)。 ·采用先进的加密方法保证用户代码不被读出。
·工作电压:2.5~5.5V 工作频率DC~36MHZ、工作温度0℃~70℃。
2.2. EM78X56型号分类、命名方法及管脚功能说明
2.2.1. 型号分类(表2.1):
型 号 EM78156 EM78256 EM78456 ROM(Bit) 1KX13 2KX13 4KX13 RAM(Byte) 56 56 56 I/O 12 12 12 最短指令周期 111ns 111ns 111ns 2.2.2. 命名方法:
EM 78 P 156 A P
封装形式P-DIP M-SOIC S-SSOP
内置电压检测功能 A-有 B-无 类型名 P:OTP; 没有“P”为MASK版本 单片机系列号
第 3 页
EMC公司字头
第二章 EM78系列单片机硬件结构 武汉威帆 (027)87644346
2.2.3. EM78X56管脚功能描述
图2.1 EM78156管脚图(EM78256和EM78456管脚同上)
管脚名称 P50~P53 I/O I/0 功 能 PIC16C54/56 对应管脚名 RAO~RA3 P60~P67 I/O INT0 OSCI OSCO I/O I I/O RESET TCC VDD VSS I I —— —— P50~P53为双向I/O口,P50、P51同时为R-Option功能脚,P50~52能通过软件设置为下拉 P60~P67为双向I/O口,可通过软件设置为RBO~RB7 上拉或开路输出;另外,P60~63可设为下拉 外部中断输入脚,下降沿触发中断(P60) 无 XTAL型:晶体振荡器或外部时钟输入脚 OSC1 R C型 :RC振荡器输入脚 XTAL型:晶体振荡器输出脚或外部时钟输入OSC2 脚。 RC型:输出一个指令周期的时钟信号 施密特触发输入脚,当该脚保持低电平时,MCLR 单片机复位 实时时钟/计数器输入脚,施密特触发,当RTCC 该脚不用时,必须接地或VCC 电源 VDD 地 VSS 表2.2 EM78X56管脚功能描述
2.3. EM78内部结构框图
EM78X56在片内集成了一个8位算术运算单元ALU和工作寄存器ACC、1K~4KROM、56个RAM、12个I/O口,8位预置器(Prescaler)及8位计数器(TCC)、振荡器、看门狗、五级堆栈、中断控制器、指令寄存器、译码器和其它一些寄存器等。内部框图如图2.2所示: EM78系列单片机采用8位数据/控制总线和13位指令总线独立分离的Harvard结构,流水线指令,即当一条指令在执行中,下一条指令已被从ROM取出放在指令寄存器等待执行,如此EM78系列几乎全部为单周期指令,执行速度更快。
EM78系列数据存贮器均可视为寄存器来寻址编程,分工作寄存器和特殊功能寄存器二大类,2.5节将详细讲述寄存器的使用方法。
第 4 页
第二章 EM78系列单片机硬件结构 武汉威帆 (027)87644346
图2.2 EM78X56内部功能框图
2.4. 程序存储器和堆栈
2.4.1. 程序存储器
EM78X56内部程序存储器和堆栈示意图如下:
EM78456 8Bit EM78256/456 A11 A10 A9 A8 A7~A0 堆栈1 CALL、RET 堆栈2 RETL 堆栈3 RETI 堆栈4 椎栈5 000:复位地址 000 001:软件中断向量地址 pageo 008:硬件中断向量地址 3FF
EM78156
400 page1 7FF EM78256 800 page2
BFF EM78456 C00 page3 FFF EM78456 图2.3 程序存储器结构框图
第 5 页
MOV R2,A A9=A8=0 ADD R2,A A9=A8 =0
第二章 EM78系列单片机硬件结构
武汉威帆 (027)87644346
PC指针(寄存器R2)和堆栈的位数依照型号EM78156、EM78256、EM78456分别是10位、11位、12位,即寻地空间分别为1K、2K和4K,一个程序页面为1K。页面选择通过设定状态寄存器R3的Bit6(PS1). Bit5 (PS0)来完成,内容下表(表2.3)所示:
PS1(R3.6) 0 0 1 1 PSO(R3.5) 程序页面地址 0 1 1 1 0页[000-3FF]EM78X56没有PS1、PS0 1页[400-7FF]EM78256/456 2页[800-BFF]EM78256/456 3页[C00-FFF]EM78456 ·对EM78156μPS1、PS0位为通用读/写位 ·对EM78256μPS1为通用读/写位
EM78X56可在同一页面内直接跳转(JMP)和调用子程序(CALL),即JMP时装入目标地址至PC的低10位,CALL时装入目标地址至PC的低10位,且PC+1压栈,调用同1K页面内的任何程序。
在EM78256/EM78456中,当需要跳转或调用不同页面的子程序时,则须在调用前将修改R3的PS0/PS1、PS0,执行JMP或CALL后将状态寄存器R3的PS0/PS1、PS0载入PC的A10/A11、A10。
有一情况需特别注意:对PC(R2)进行直接操作指令如“MOV R2、A”、“ADD R2、A”、“BC R2,0”都将导致PC之第9及第10位(A9、A8)被清零,因此此类情况产生的任何跳转都限定在同一页面的前256个地址(查表指令的使用均在此限制内)
2.4.2. 堆栈
EM78X56有五级堆栈,遵循后入先出的原则实现程序多至五级嵌套调用.通常堆栈使用如下:
当CALL和中断响应时PC+1压栈;
当子程序或中断返回,执行RET、RETL(带参数返回)、RETI(中断返回),将栈顶值(栈1)弹回程序计数器PC、同时将堆栈2的值拷贝到堆栈1,堆栈3的值拷贝到堆栈2,以此类推。 要注意的是RET、RETL、RETI指令并没有改变R3中的PS0~PS1位便返回到原来调用程序的页面,所以当从一次跨页的子程序调用返回时,一定要用指令恢复R3中原先的PS0、PS1值。
2.5. 数据存储器RAM结构
EM78X56的数据存储器分工作寄存器、特殊功能寄存器和一般通用寄存器三大类,如图2.4所示:
2.5.1. 工作寄存器
1.R0间接寻址寄存器
RO并非一个实际工作的寄存器,只作为间接寻址用。任何对RO进行操作的指令,实际上是存取由RAM选择寄存器R4所指定的RAM内容。
2.R1(TCC)
第 6 页
第二章 EM78系列单片机硬件结构 武汉威帆 (027)87644346
此寄存器为8位定时/计数器,可由程序进行读/写操作。它用于对外加在TCC脚上的脉冲进行计数,或对内部时钟计数。
3.R2(程序计数器PC)和堆栈
·在复位情况下,R2被清零,地址指向OOOH
·对R2进行写操作的指令一定需要二个指令周期,其它有关R2和堆栈的内容§2.4中所述. R0 00
R1(TCC 01 CONT
02 03 04 05 06 0B 0C 0D 0E 0F 10 11 . . . 3F
R2(PC) R3(Status) R4(RSR) R5(Port5) R6(Port6) 堆栈 (5 级) IOC5 IOC6 IOCB IOCC IOCD IOCE
RF IOCF R10 . . . . 48X8 通用 寄存器 R3F 图2.4 RAM结构图
4.R3状态寄存器(STATUS)
如下表所示,R3包括ALU运算标志、页面标志、复位状态等 7 6 5 4 3 2 1 0 GP PS1 PS0 T P Z DC C
Bit0(C) :进位标志 Bit1(DC):辅助进位标志
Bit2(Z) :零标志,当一算术或逻辑运算结果为“0”时,则置该位为“1” Bit3(P) :掉电模式位。当系统上电时或执行“WDTC”指令后,置该位为“1”;当执行
第 7 页