第二章 EM78系列单片机硬件结构_第1页
第二章 EM78系列单片机硬件结构_第2页
第二章 EM78系列单片机硬件结构_第3页
第二章 EM78系列单片机硬件结构_第4页
第二章 EM78系列单片机硬件结构_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 EM78系列单片机硬件结构EM78系列单片机是采用低功耗、高速CMOS工艺制造的8位单片机,本章将以EM78X56(包括EM78156、EM78256、EM78456)为例来讲述EM78系列单片机的内部结构、存贮器、中断、I/O、看门狗、振荡器和电压检测器等特点。2.1. 主要功能特点采用8位数据总线和13位指令总线独立分离的Harvard结构设计。采用RISC指令集,共有57条单字节指令,其中99%为单周期指令(对程序计数器PC指针 进行写操作除外)。1K4KX13的程序存贮器(有OTP和掩膜二个版本)。48个通用数据寄存器可直接寻址使用。14个特殊功能寄存器。具有一个结构选择寄存器

2、用于设置振荡器的工作方式等。具有五级堆栈令程序嵌套更自由。两个双向三态I/O口,12个I/O线,可分别设置为上拉、下拉或集电极开路等。具有三个硬件中断和一个软件中断。两种工作模式:正常工作模式 2mA/5V 休眠模式 1A/5V(可由I/O唤醒)具有R-OPTION功能,即用电阻的上拉、下拉来选择内部程序的执行。一个带8位预置器的8位定时/计数器,一个看门狗定时器(WDT)。采用先进的加密方法保证用户代码不被读出。工作电压:2.55.5V 工作频率DC36MHZ、工作温度070。2.2. EM78X56型号分类、命名方法及管脚功能说明2.2.1. 型号分类(表2.1):型 号ROM(Bit)R

3、AM(Byte)I/O最短指令周期EM781561KX135612111nsEM782562KX135612111nsEM784564KX135612111ns2.2.2. 命名方法: EM 78 P 156 A P封装形式P-DIP M-SOIC S-SSOP内置电压检测功能 A-有 B-无类型名P:OTP; 没有“P”为MASK版本单片机系列号EMC公司字头 2.2.3. EM78X56管脚功能描述图2.1 EM78156管脚图(EM78256和EM78456管脚同上)管脚名称I/O功 能PIC16C54/56对应管脚名P50P53I/0P50P53为双向I/O口,P50、P51同时为R-

4、Option功能脚,P5052能通过软件设置为下拉RAORA3P60P67I/OP60P67为双向I/O口,可通过软件设置为上拉或开路输出;另外,P6063可设为下拉RBORB7INT0I/O外部中断输入脚,下降沿触发中断(P60)无OSCIIXTAL型:晶体振荡器或外部时钟输入脚 R C型 :RC振荡器输入脚OSC1OSCOI/OXTAL型:晶体振荡器输出脚或外部时钟输入脚。RC型:输出一个指令周期的时钟信号OSC2RESETI施密特触发输入脚,当该脚保持低电平时,单片机复位MCLRTCCI实时时钟/计数器输入脚,施密特触发,当该脚不用时,必须接地或VCCRTCCVDD电源VDDVSS地VS

5、S表2.2 EM78X56管脚功能描述2.3. EM78内部结构框图 EM78X56在片内集成了一个8位算术运算单元ALU和工作寄存器ACC、1K4KROM、56个RAM、12个I/O口,8位预置器(Prescaler)及8位计数器(TCC)、振荡器、看门狗、五级堆栈、中断控制器、指令寄存器、译码器和其它一些寄存器等。内部框图如图2.2所示: EM78系列单片机采用8位数据/控制总线和13位指令总线独立分离的Harvard结构,流水线指令,即当一条指令在执行中,下一条指令已被从ROM取出放在指令寄存器等待执行,如此EM78系列几乎全部为单周期指令,执行速度更快。EM78系列数据存贮器均可视为寄

6、存器来寻址编程,分工作寄存器和特殊功能寄存器二大类,2.5节将详细讲述寄存器的使用方法。图2.2 EM78X56内部功能框图2.4. 程序存储器和堆栈2.4.1. 程序存储器EM78X56内部程序存储器和堆栈示意图如下:图2.3 程序存储器结构框图PC指针(寄存器R2)和堆栈的位数依照型号EM78156、EM78256、EM78456分别是10位、11位、12位,即寻地空间分别为1K、2K和4K,一个程序页面为1K。页面选择通过设定状态寄存器R3的Bit6(PS1). Bit5 (PS0)来完成,内容下表(表2.3)所示:PS1(R3.6)PSO(R3.5)程序页面地址000页000-3FFE

7、M78X56没有PS1、PS0011页400-7FFEM78256/456112页800-BFFEM78256/456113页C00-FFFEM78456 对EM78156PS1、PS0位为通用读/写位 对EM78256PS1为通用读/写位 EM78X56可在同一页面内直接跳转(JMP)和调用子程序(CALL),即JMP时装入目标地址至PC的低10位,CALL时装入目标地址至PC的低10位,且PC+1压栈,调用同1K页面内的任何程序。 在EM78256/EM78456中,当需要跳转或调用不同页面的子程序时,则须在调用前将修改R3的PS0/PS1、PS0,执行JMP或CALL后将状态寄存器R3的

8、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,

9、堆栈3的值拷贝到堆栈2,以此类推。 要注意的是RET、RETL、RETI指令并没有改变R3中的PS0PS1位便返回到原来调用程序的页面,所以当从一次跨页的子程序调用返回时,一定要用指令恢复R3中原先的PS0、PS1值。2.5. 数据存储器RAM结构 EM78X56的数据存储器分工作寄存器、特殊功能寄存器和一般通用寄存器三大类,如图2.4所示:2.5.1. 工作寄存器1.R0间接寻址寄存器RO并非一个实际工作的寄存器,只作为间接寻址用。任何对RO进行操作的指令,实际上是存取由RAM选择寄存器R4所指定的RAM内容。2.R1(TCC)此寄存器为8位定时/计数器,可由程序进行读/写操作。它用于对外加

10、在TCC脚上的脉冲进行计数,或对内部时钟计数。3.R2(程序计数器PC)和堆栈在复位情况下,R2被清零,地址指向OOOH对R2进行写操作的指令一定需要二个指令周期,其它有关R2和堆栈的内容2.4中所述.图2.4 RAM结构图4R3状态寄存器(STATUS)如下表所示,R3包括ALU运算标志、页面标志、复位状态等76543210GPPS1PS0TPZDCCBit0(C) :进位标志Bit1(DC):辅助进位标志Bit2(Z) :零标志,当一算术或逻辑运算结果为“0”时,则置该位为“1”Bit3(P) :掉电模式位。当系统上电时或执行“WDTC”指令后,置该位为“1”;当执行“SLEP”指令后,该

11、位被置“0”。Bit4(T) :超时位,当系统上电或执行“SLEP”和“WDTC”指令时,置位为“1”;当WDT溢出时置位为“0”Bit5(PSO)页面选择低位Bit6(PS1)页面选择高位通过P、T位来判断复位产生的原因如表2.4所示:T P复位产生原因O OWDT溢出唤醒SLEEPO *P工作模式时WDT溢出1 0脚位变化唤醒SLEEP1 1系统上电*P *P工作模式复位 影响T/P的事件如下表2.5所示:文件TPWDTC指令11WDTC溢出0*PSLEP指令10脚位变化唤醒11 *P:指复位前的值 GP:一般用途的读/写位5.R4 RAM选择寄存器(RSR)在间接寻址模式里,Bit0-5

12、用来选择寄存器(地址:00-06、OF-3F)例如 MOV A,0x10 MOV R4,A MOV A, 0x11 MOV R0, A ; R10=11H其结果是将16进制的“11”值送入由R4指的“10”单元中。Bit67未使用未作间接寻址时,R4可作6位宽度的可读/写通用寄存器.6. R5R6(口5口6):分别为口5、口6的输入/输出寄存器,EM78将I/O映射为寄存器来操作,R6为8位,R5仅有低4位有效。7RF中断状态寄存器76543210EXIFICIFTCIF“1”表明有中断请求,“0”表明没有中断请求Bit0 (TCIF):TCC 计数器1溢出中断标志位;当TCC计数器1溢出时置

13、“1”,可由软件清零。Bit1 (ICIF):口6输入变化中断标志位,当口6输入变化时置“1”,可由软件清零。Bit2 (EXIF):外部中断标志位。当INT脚有下降沿触发时置“1”,可用软件清零。Bit37:未使用RF可用软件清零,但不能被置“1”IOCF为中断屏蔽寄存器,通过指令读取RF值,此时结果值为RF和IOCF相与的结果8R10R3FR10R3F为48X8位一般通用寄存器。2.5.2. 特殊功能寄存器EM78X56的特殊功能寄存器主要包括累加器控制寄存器和WDT预分频器。1累加器A内部数据传输或指令运算单元,属不可寻址单元。2控制寄存器控制寄存器是用来控制I/O的工作状态、中断控制、

14、看门狗控制等,它们的寄存器地址如图2.4,其读写只能采用指令I0R R或IOW R来完成。(1)CONT(控制寄存器)76543210INTTSTEPABPSR2PSR1PRR0Bit0(PSR0)Bit2(PSR2) TCC/WDT预分频系数位PSR2PSR1PSR0TCC分频系数WDT分频系数000 12 11001 14 12010 18 14011 116 18100 132 116101 164 132110 1128 1641111256 1128Bit3(PAB)预分频器分配位 0:分配给TCC 1:分配给WDTBit4(TE)TCC信号触发源位0:TCC脚信号低到高触发1:TC

15、C脚信号高到低触发Bit5(TS) TCC信号源 0:内部指令周期时钟 1:TCC脚输入的外部信号Bit6(INT) 中断使能标志位 0:由DISI或硬件中断产生时屏蔽中断 1:ENI或RETI指令开中断Bit7没有使用 CONT寄存器是可读/写的(2)IOC5IOC6(I/6口控制寄存器) IOC5、IOC6分别为口5、口6控制寄存器,按位将IOC5、IOC6设为“1”时表示该脚没为输入(高阻抗)、设为“0”时表示该脚为输出。 IOC5只有低四位可用。IOC5、ICO6为可读写的。(3)IOCB(下拉控制寄存器)76543210/PD7/PD6/PD5/PD4/PD2/PD1/PD0 Bit

16、0(/PD0):使能P50引脚的下拉电阻控制位 0:使能内部下拉电阻功能 1:关闭内部下拉电阻功能Bit1(/PD1):使能P51引脚的下拉电阻控制位Bit2(/PD2):使能P52引脚的下拉电阻控制位Bit3:未使用 Bit4(/PD4):使能P60引脚的下拉电阻控制位 Bit5(/PD5):使能P61引脚的下拉电阻控制位 Bit6(/PD6):使能P62引脚的下拉电阻控制位 Bit7(/PD7):使能P63引脚的下拉电阻控制位(4)IOCC(集电极开路控制寄存器)765432100D70D60D50D40D30D20D10D0Bit0(0D0) 使能P60脚集电极开路控制位 0:关闭集电极

17、开路功能 1:使能集电极开路功能Bit1 Bit7 (0D10D7):分别使能P61P67脚集电极开路功能。IOCC为可读写寄存器 (5)IOCD上拉控制寄存器 76543210/PH7/PH6/PH5/PH4/PH3/PH2/PH1/PH0Bito(PH0)使能P60脚内部上拉电阻控制位 0:允许内部上拉 1:禁止内部上拉Bit1Bit7(/PH1/PH7)分别使能P61P67脚内部上拉电阻控制器* IOCD为可读写寄存器 (6)IOCE WTD控制寄存器 76543210WDTEEISROCBit7(WDTE)使能看门狗定时器控制位 0:关闭WDT 1:使能WDT WDTE为可读写位Bit

18、6(EIS) P60脚功能选择位 0:P60为一般双向I/0口 1:P60为外部中断输入脚此时P60必须设为输入(IOC6.0=1)Bit4(ROC)使能 R-option功能位(P50P51) 0:关闭R-option功能 1:使能R-option功能当使用R-option的功能时,可在P50或P51脚对地接430K电阻,若有接电阻,则P50或P51被读成“0”,若不接电阻,则P50或P51读成“1”。ROC为读写位Bit03,5未使用。(7)IOCF(中断屏蔽寄存器) 76543210EXIEICIETCIEBit0(TCIE) TCIF中断屏蔽位(TCC溢出中断) 0:屏蔽TCIF中断

19、1:允许TCIF中断Bit1(ICIE) ICIF中断屏蔽位(P6口输入变化中断) 0:屏蔽ICIF中断 1:允许ICIF中断Bit2(EXIE) EXIF中断屏蔽位(外部中断P60/INT) 0:屏蔽EXIF中断 1:允许EXIF中断Bit37 未使用当将IOCF相应的控制位置“1”、则相应的中断允许,使用“ENI”指令时所有中断被开放,而使用“DISI”指令,则所有中断被关闭。IOCF为可读写寄存器。2.6 TCC/WDT及预分频器PrescalerEM78内置8位定时/计数器TCC和看门狗定时器、如下图2.5所示:图2.5 TCC和WDT功能框图TCC的时钟可以是内部指令周期时钟CLK(

20、Fosc/2或Fosc/4)或通过TCC脚输入的外部脉冲,其计数采用递增方式,从O0开始计,当不使用预分频器时,每隔一个指令周期或者有一个外部脉冲时TCC会加1(TCC响应延时时间为2个机器周期),当TCC计数至FFH(16进制)时,在下一个计数发生时,将自动清零,并置TCC计数器溢出中断位TCIF如此往复。当TCC使用预分频器时,则外部或内部信号经过预分频器分频后再输出给TCC。Tcc 输入波形图(CLKS=”0”)(见图2.7)图2.6 TCC输入信号波形图TCC和预分频器的控制主要由控制寄存器CONT(Bit05)来完成,预分频器的分频系数由PSR0PSR2决定;预分频器是分配给TCC或

21、WDT使用可由PAB位来决定,同一时间预分频器只能给TCC或WDT其中之一使用。注意二点;(1)预分频器分配给TCC使用时(PAB=0),所有写入TCC的指令都将清除预分频器(2)当预分频器分配给WDT使用时(PAB=1),WDT和预分频器可被WDTC和SLEP指令清零。看门狗定时器WDT是一片内自振荡式RC振荡器,即使外部振荡器被关闭(即工作在休眠模式),WDT也一直在计数。当WDT被使能,无论是在工作模式或休眠模式,若WDT超时,都将导致单片机复位,因此WDT主要用来防止单片机系统失控,一般WDT基本溢出周期约18ms(PAB=“0”),最大溢出周期约2.3S(PAB=“1”)。在正常情况

22、下,当WDT溢出之前,须通过WDTC指令来对WDT清零以防产生复位。WDT的工作状态由寄存器CONT中的PAB、PSR2PSRO位,IOCE的WDTE位(IOCE.7)、OTP型EM78X56的结构选择寄存器ENWDTB位来控制(烧写芯片时设定)。2.7 I/O口(port5、port6)EM78把I/O(口5、口6)作为一般工作寄存器R5、R6来操作,它们为双向、三态输入/输出口,可通过控制寄存器来设置以下功能,如表2.6所示:功 能控制寄存器I/O脚I/O输入输出方向IOC5、IOC6P50P53、P60P67内部上拉电阻IOCDP60P67内部下拉电阻IOCBP50P52、P60P63集

23、电极开路IOCCP60P67/INT输入口IOCE(EIS)P60R-optionIOCE(ROC)P50、P51休眠状态唤醒IOCF(ICIE)P60P67表2.6、I/O控制功能分类表I/O口Port5、Port6的接口电路图如下所示:图2.7 I/O口电路和I/O控制寄存器其中图中:PCRD口控制读 PDRD口数据读 PCWR口控制写 PDWR口数据写 MUX -多路选通器R-option功能图2.8图2.8 P60(INT)的I/O和控制寄存器图2.9 P61P67 I/O控制寄存器和I/O口电路图2.10 带R-Option 功能的I/O口(P70、P71)电路 当使用R-optio

24、n功能时,往往地P051定义为输出脚使用,这样在读取R-option功能时先把P50、P51设为输入并使能R-option功能,读取后,再关闭R-option功能,并把P50、P51设回输出,并不影响P50、P51的I/O使用。若外部电阻连接到P50(P51)作为R-option功能,将消耗一些电流,请特别注意。2.8 EM87X56复位2.8.1. 产生复位原因EM78X56的复位由以下情况产生: 电源上电复位或电压检测器复位(若有电压检测器) RESET脚输入低电平 WDT溢出(当WDT使用时)2.8.2. 复位状态当单片机检测到复位信号后会持续18ms的复位状态。一旦复位产生,芯片将处于

25、下列状态:振荡器继续动作或起动 程序计数器PC(R2)被清零,转向复位地址000H 所有I/O口脚均被设置为输入模式(高阻态) 看门狗定时器和预置分频器被清零 当上电时,状态寄存器的高三位被清零(RAM选BANKO) 除Bit6(INT中断使能标志位)外,CONT寄存器全设为“1” 下拉控制寄存器IOCB全设为“1”(下拉功能禁止) 集电极开路控寄存器IOCC全设为“0”(开路功能禁止) 上拉控制寄存器IOCD全设为“1”(上拉功能禁止) WDT控制寄存器IOCE Bit7设为“1”,Bit1和Bit4设为“0”,即开WDT,置P60为I/O口,取消R-option功能 中断标志寄存器RF中的

26、标志位全部清零(Bit02) 中断屏幕寄存器IOCF的中断屏幕位清零(Bit02) 寄存器初始化值汇总表如下:AddressNameReset TypeBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0N/AIOC5Bit NameXXXXC53C52C51C50Power-On00001111/RESET and WDT00001111Wake-Up from Pin Change00001111N/AIOC6Bit NameC67C66C65C64C63C62C61C60Power-On11111111/PESET and WDT11111111Wake-Up from pi

27、n Change111111110x05P5Bit NameXXXXP53P52P51P50Power-On11111111/RESET and WDTPPPPPPPPWake-Up from Pin ChangePPPPPPPP0x06P6Bit NameP67P66P65P64P63P62P61P60Power-On11111111/RESET and WDTPPPPPPPPWake-Up from Pin ChangePPPPPPPPN/ACONTBit NameXINTTSTEPABPSR2PSR1PSR0Power-On10111111/RESET and WDT10111111Wa

28、ke-Up from Pin Change101111110x00R0(IAR)Bit Name-Power-OnUUUUUUUU/RESET and WDTPPPPPPPPWake-Up from Pin ChangePPPPPPPP0x01R1(TCC)Bit Name-PowerOn00000000/RESET and WDT00000000Wake-Up from Pin Change000000000x02R2(PC)Bit Name-Power-On00000000/RESET and WDT00000000Wake-Up from Pin Change000000000x03R3

29、(SR)Bit NameGPPS1PS0TPZDCCPower-On00011UUU/RESET and WDTPPPttPPPWake-Up from Pin ChangePPPttPPP0x04R4(RSR)Bit NameXX-Power-On00UUUUUU/RESET and WDT00PPPPPPWake-Up from Pin Change00PPPPPP0x05R5(P5)Bit NameXXXXP53P52P51P50Power-On0000UUUU/RESET and WDT0000PPPPWake-Up from Pin Change0000PPPP0x0FRF(ISR)

30、Bit NameXXXXXEXIFICIFTCIFPower-On00000000/RESET and WDT00000000Wake-Up from Pin Change000000000x0BIOCBBit Name/PD7/PD6/PD5/PD4X/PD2/PD1/PD0Power-On11111111/RESET and WDT11111111Wake-Up from Pin Change111111110x0CIOCCBit NameOD7OD6OD5OD4OD3OD2OD1OD0Power-On00000000/RESET and WDT11111111Wake-Up from P

31、in ChangePPPPPPPP0x0DIOCDBit Name/PH7/PH6/PH4/PH3/PH3/PH2/PH1/PH0Power-On11111111/RESET and WDT11111111Wake-Up from Pin Change111111110x0EIOCEBit NameWDTCEISXROCXXXXPower-On10101111/RESET and WDT10101111Wake-Up from Pin Change101011110x0FIOCFBit NameXXXXXEXIEICEITCIEPower-On11111000/RESET and WDT111

32、11000Wake-Up from Pin Change111110000x100x3FR10R3FBit Name-Power-On00000000/RESET and WDTPPPPPPPPWake-Up from Pin ChangePPPPPPPP X:未使用 U:未知 P:复位之前值 t:参见表2.4、2.5表2.7 寄存器初始化值表2.8.3. 内部上电复位电路和电压检测器 1.内部上电复位电路EM78X56系列内置一上电复位电路POR(POWUER RESET)如图2.11所示,上电后自动产生复位。图2.11 复位控制方框图所以一般情况下可不用在RESET端接复位电路,仅将Res

33、et端接VDD即可2.电压检测器对EM78X56系列MASK版和EM78P156A型均内置-2.2V电压检测器,分别为可选用式和固定式两种,即对MASK版,可通过CODE OPTION的位/POVD来选择使能或关闭,而OTP型EM78P156A型,则不能通过CODE OPTION来选择,电压检测器功能已固化在内(电压检测器有15A电流消耗),EM78P156B型则没有电压检测器功能。 电压检测器电气特性如下表(TA=25)ParameterSymbolConditionMin.Typ.Max.UnitDetect voltageVdetVDD =5V2.02.22.4VRelease volt

34、ageVrelVDD =5VVdet x1.05VCurrent consumptionIssVDD =5V20AOperating voltageVop0.7*5.5VTemperatureCharacteristic of VdetVdet/TA0T70-2mv/ *当VDD=0.7VVdet之间时,电压检测器输出为低。2.8.4. 外部复位电路通常有下列几种情况需要加外部复位中路。1. 当电源上升时间比较长时,通过RC电路来保证VDD达到最小工作电压时RESET脚保持复位状态 图2.12 外电源上电复位电位 其中器件功能及值选择原则: R40K(由于RESET吸入电流约50A,为保证RE

35、SET端电压不大于0.2V) 二极管D将使电容C在VDD掉电时能快速彻底放电 R1取1001K,为限流电阻,用来限制大的放电电流或静电ESD对RESET的冲击 2残存电压保护电路(二种) 有些应用中,例如供电电池在几秒钟内松动后又恢复,此时将可能会在复位脚出现一个小于Vdd最小值又不为0的残存电压,因而便复位不正常,以下两种电路将解决此问题,当VDD掉至VZ+0.7V时单片机复位(VZ为稳压管稳压值) 图2.13残余电压保护电路1 当VDD掉至下述值时三级管Q1截止、单片机复位VDD =0.7V, (R3为限流电阻,可选100K)图2.1残余电压保护电路2单片机复位时序图如图2.15所示:图2

36、.15 单片机复位时序图, (R3为限流电阻,可选100K) 图2.1残余电压保护电路2单片机复位时序图如图2.15所示:图2.15 单片机复位时序图2.9. 休眠状态和唤醒 EM78X56单片机除了正常工作状态外,还有一种休眠状态(或为掉电模式)。通过执行“SLEP”指令,即可进入休眠模式。单片机的休眠模式可被下列情况唤醒: 由RESET产生的复位信号 WDT超时溢出复位(若WDT启动) Port6输入变化(若使能Port6变化中断) 前两种情况会产生单片机复位,状态寄存器R3的P和T标志可以用来判别是何种复位唤醒。第三种情况要考虑总的中断开启与否(执行ENI或DISI指令)决定单片机在唤醒

37、之后是否跳到中断向量,若在执行“SLEP”指令之前: a.若开中断(ENI),则唤醒后程序跳到中断向量OO8H位置 b.若关中断(DISI)则唤醒后程序从“SLEP”指令的下一条指令执行。 同时进入休眠模式之前,只有两种之一可由软件使能。如果:(a)Port6输入变化中断在“SLEP”指令之前使能,则WDT必须关闭。因此单片机只能在情况下唤醒(b)WDT在“SLEP”指令之前使能,Port6输入变化中断必须关闭,因此单片机只能在或的情况下唤醒。 在上述a种情况下,用Port6输入变化中断来唤醒单片机,则下述指令必须在“SLEP”之前执行: MOV A , XXb ;选择内部TCC时钟 CONT

38、W CLR R1 ;清除TCC和预分频器 MOV A, XXXX1110b ;选择WDT预分频系数 CONTW WDTC ;清WDT MOV A,OXXXXXXXb ;关WDT IOW RE MOV R6,R6 ;读取Port6 MOV A,00000X1Xb ;使能Port6输入中断 IOW RF ENT (或 DISI) ;使能(或关闭)总中断 SLEP NOP ; 在使能Port6输入变化中断之前,必须先读取Port6(MOVR6,R6),因为输入的变化是通过目前的输入和原来R6中的内容比较而得出(如上例)。Port6除了被设为输出状态的引脚外,都有因电平改变而中断的特性。特别注意:从休

39、眠模式唤醒后,WDT将被使能,因此,唤醒后的WDT工作情况要重新设定。图2.16 port6输入中断与唤醒电路图2.10 中断功能2.10.1. 硬件中断 EM78X56系列有下列三种下降沿触发的硬件中断 TCC定时器溢出中断 Port6输入变化中断 外部中断(P60/INT引脚) 中断的控制通过中断屏蔽寄存器IOC、总中断开启指令ENI和关闭指令DISI来控制。当有中断产生时,程序指针将指向中断向量地址008H,并将当前PC压栈,进入中断服务程序,可由RF寄存器来查询是何中断源,在离开中断服务程序及使能中断之前,必须清除RF中的中断标志位以免重复中断。同时,中断服务程序中应保护原程序的环境(

40、如:A内容、标志位等),返回中断时也应恢复原环境的内容,并开启中断。除了RF的ICIF位外,RF中的其它位当有中断时标志位都置“1”,而不管中断屏蔽寄存器IOCF中相关的屏蔽位状态和ENI指令是否执行。注意:读RF结果是RF与IOCF相与的结果。如图2.17所示,为中断产生电路。“RETI”指令是从中断返回并开中断(等于执行ENI指令) 图2.17 中断产生电路2.10.2. 软件中断执行“INT”指令,将产生一个软中断,其中断向量为001H(地址002H007H预留,必须为NOP)如下: ORG 0OOH JMP RESET ;复位地址(000H) JMP INT1 ;软中断入口地址(001

41、H) NOP NOP NOP NOP NOP NOPJMP INT2硬件中断入口地址(008H)2.11. 振荡器 EM78X56可以工作在RC振荡、晶振低频、晶振高频下,通过寄存器CODE OPTION中的(MS、HLF、HLP)来选择:1.MS=0、HLF=0为RC振荡形式,振荡频率内外按Rext、Cext值所确定,它属于低成本、但频率精度要求不高的场合适用,RC振荡电路和RC对应值如下图2.18所示。图2.18 RC振荡电路CextRextAverageFosc5V,25Average Fosc3V,2520pF3.3k5.1k10k100k3.20MHz2.22MHz1.28MHz15

42、0KHz2.47MHz1.83MHz1.14MHz143KHz100pF3.3k5.1k10k100k1.13MHz758KHz409KHz 51KHz974KHz675KHz376KHz43.7KHz300pF3.3k5.1k10k100k472KHz310KHz165KHz17.5KHz420KHz283KHz153KHz17.0KHz 表2.8 RC振荡电路中R、选值参考表 2.MS=1、HLF=0、HLP=0为低频晶振方式,这种方式振荡器处于低频,低电压工作条件下,最大频率不超过4MHZ,单片机工件在低功能下。 3.MS=1,HLF=1,HLP=1为高频晶振方式,振荡器处在高速工作条件

43、下,所以最小振荡频率不小于1MHZ,在这种模式下,功耗将大于低频振荡方式。图2.19 为晶振振荡电路.图2.19 晶振振荡电路图 晶振和陶瓷谐振器匹配的电容选值表如下:Oscillator TypeFrequecy ModeFrequencyC1(pF)C2(pF)Ceramic ResonatorsHXT455kHz101501001502.0MHz204020404.0MHz10301030Crystal OscillatorLXT32.768kHz2515100KHz2525200KHz2525455KHz204020150HXT1.0MHz153015302.0MHz15154.0MHz1515表2.9 晶振容电路电容选值参考表 晶振典型工作速度列表如下:ConditionsVDD(V)Fxt max.(M)One cycles with two clocks2.53.58

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论