义隆单片机EM78P153使用 - 图文(2)

2019-08-30 18:31

EM78P153S使用总结 ;***************************************************** END ;汇编器源程序结束

1、中断状态寄存器(RF)

中断状态寄存器(RF)地址0x0F,它反映三种中断标志情形,硬件自动置1,均需要通过软件的方式清0,以清除中断标志。RF各位的含义如表1.3所示。

表1.3 中断状态寄存器RF 地址 0x0F BIT7 — BIT6 — BIT5 — BIT4 — BIT3 — BIT2 EXIF BIT1 ICIF BIT0 TCIF 其中:Bit 2(EXIF) :外部中断标志位,/INT管脚输入下降沿时置“1”,由软件清“0”;

Bit 1(ICIF):端口6输入状态改变标志位,输入状态改变时置“1”,由软件清“0”; Bit 0(TCIF):TCC 溢出中断标志位,TCC 溢出时置“1”,由软件清“0”。

2、中断使能寄存器(IOCF)

中断使能寄存器(IOCF) 地址0x0F,与中断状态寄存器共用一个地址,它反映三种中断的开启与关闭,在程序运行每个指令周期中,硬件自身判断中断使能位,当中断使能位为1时响应相应中断,同时在中断服务程序中务必清中断状态寄存器的相应标志位为0。IOCF各位的含义如表1.4所示。

表1.4 中断使能寄存器 BIT2 BIT1 BIT0 地址 BIT7 BIT6 BIT5 BIT4 BIT3 — — — 0x0F — — EXIE ICIE TCIE 0:禁止EXIF中断 0:禁止ICIF 中断 0:禁止TCIF中断 功 能 1:使能EXIF中断 1:使能ICIF 中断 1:使能TCIF中断 其中:Bit 2 (EXIE)是外部中断EXIF使能位;Bit 1 (ICIE)是端口6输入状态改变引发中断ICIF使能位;Bit 0 (TCIE)是定时溢出中断TCIF使能位。 1.3.3 操作寄存器

1、间接寻址寄存器R0

R0 并非实际存在的寄存器,它的主要功能是作为间接寻址指针,任何以R0为指针的指令,实际上是对RAM选择寄存器R4所指向地址的数据内容进行操作。

2、定时/计数器R1

(1)TCC引脚的外部信号边沿或内部指令周期时钟触发( 由CONT寄存器的TE位设定) ,会使TCC寄存器加1;

(2)像其它寄存器一样可读/写; (3)通过复位PAB 位(CONT-3) 设定;

(4)如果PAB bit (CONT-3) 被复位,预分频器分配给TCC; (5)写入一个值到TCC寄存器后,TCC计数器的内容会被刷新。 3、程序计数器R2&堆栈

4

EM78P153S使用总结 复位时,程序计数器R2所有位均清0,它提供了程序指令代码的片内OTP_ROM地址。一个程序页为1024字长。在程序编译调试时,可以通过查看R2的值,判断程序是否跳转正常,或者通过对比某个程序的入口判断是否进入某个函数。

“JMP”指令直接加载程序计数器的低10位,因此,“JMP”允许PC跳转到一个程序页的任何位置。“CALL”指令首先加载PC的低10位,然后将PC+1推入堆栈,因此,子程序的入口地址可位于一个程序页的任何位置。

正常情况下,所有指令均是单指令周期(一个指令周期包含2个振荡周期) ,但改变程序计数器(R2寄存器)内容的指令,均为2个指令周期。

EM78P153S有五级堆栈,这就决定了在程序编写的时候,子程序的嵌套调用不能够超过5次,否则编译会出错。

4、状态寄存器R3

(程序)状态寄存器R3的地址为0x03,如表1.5所示。

表1.5 状态寄存器R3 地址 0x03 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 RST GP1 GP0 T P Z DC C 0代表其它复位类型引发唤醒复位方式 ;1代表引脚状态改变引发控制器从休眠模式唤醒方式 通用读/ 写位 时间溢出标志位,执行“SLEP”和“WDTC”指令或上电时置“1”,WDT溢出时复位为“0” 省电标志位,上电或执行\指令时置“1”,执行“SLEP”指令时复位为“0” 零标志位,当算术或逻辑运算的结果为0时置“1” 辅助进位标志位 进位标志位 在程序编译调试时,可以通过查看R3的值,了解程序的工作过程。 5、RAM 选择寄存器R4:I/O 寄存器,仅低4位可用。 6、端口5寄存器R5:I/O 寄存器,引脚都为I/O口。

7、端口6寄存器R6:I/O 寄存器,除P63仅用作输入引脚外,其它引脚都为I/O口。 8、R10—R2F:所有这些寄存器均为8 位通用寄存器。

表1.6 控制寄存器CONT BIT7 — BIT6 INT BIT5 TS BIT4 BIT3 BIT2 BIT1 BIT0 中断使能标志位:0代表被DISI 或硬件中断屏蔽;1代表被ENI/RETI指令使能 TCC信号源选择位:0代表内部指令周期时钟,P62为双向I/O引脚;1代表TCC引脚的跳变信号 TCC信号边沿选择位:0代表TCC引脚信号由低变到高时TCC计数器加1;1代表TCC引脚信号由高变TE 到低时TCC计数器加1 PAB 预分频器分配位:0代表TCC;1代表WDT PSR2 PSR2 0 0 0 0 1 1 1 1 PSR1 0 0 1 1 0 0 1 1 PSR1 TCC/WDT预分频比选择位 PSR0 0 1 0 1 0 1 0 1 TCC预分频比 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 PSR0 WDT预分频比 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 5

EM78P153S使用总结 1.3.4 特殊功能寄存器 1、控制寄存器CONT

控制寄存器CONT各位定义如表1.6所示。

2、下拉控制寄存器IOCB、漏极开路控制寄存器IOCC、上拉控制寄存器IOCD 下拉控制寄存器IOCB各位定义如表1.7所示。

表1.7 下拉控制寄存器IOCB BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 — /PD6 /PD5 /PD4 — /PD2 /PD1 /PD0 P62 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 P61 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 P60 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 P52 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 P51 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 P50 引脚下拉功能使能控制位;0代表使能内部下拉功能 ;1代表禁止内部下拉功能 漏极开路控制寄存器IOCC各位定义如表1.8所示。 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 OD7 OD6 OD5 OD4 — OD2 OD1 OD0 表1.8 漏极开路控制寄存器IOCC P67引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P66引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P65引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P64引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P62引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P61引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 P60引脚漏极开路功能使能控制位;0代表禁止漏极开路输出;1代表使能漏极开路输出 上拉控制寄存器IOCD各位定义如表1.9所示。 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 /PH7 /PH6 /PH5 /PH4 — /PH2 /PH1 /PH0 表1.9 上拉控制寄存器IOCD P67引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P66引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P65引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P64引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P62 引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P61 引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 P60 引脚上拉功能使能控制位;0代表使能内部上拉功能;1代表禁止内部上拉功能 通过操作IOCB、IOCC、IOCD寄存器可以设置端口的输入输出方式。当某端口作为输入口使用时,只需要考虑是否上拉或者下拉;当某端口作为输出口使用时,则考虑是否开漏极输出。

端口采用内部上拉,可以减少外部对引脚电平的干扰,如果要实现检测某端口是否为低电平的功能,则必须设置为内部上拉,若该端口没有上拉功能,则需要外部加上拉电阻。

端口采用内部下拉,理论上可以减少外部对引脚电平的干扰,但是实际的测试效果不明显,和没有设置下拉的效果一样。所以如果端口设置为内部下拉,该端口只可以用于检测高电平,但是在没有输入的情况下,该引脚的电平并没有变为1V以下,不能看作真正的低电平。

6

EM78P153S使用总结 端口采用内部开漏极输出,适用于微处理器工作电压与外围器件工作电压不相同的场合,输出的高电平将达不到VDD电压值。

5、看门狗定时器控制寄存器IOCE

看门狗定时器控制寄存器IOCE各位定义如表1.10所示。

表1.10 看门狗定时器控制寄存器IOCE 地址 BIT7 BIT6 BIT5—0 WDTE EIS — 看门狗定时器使能控制位:0代表禁止WDT;1代表使能WDT 定义P60(/INT)引脚功能的控制位:0定义P60为双向I/O引脚;1定义为外部中断输入引脚/INT,在此情况下,P60 引脚的I/O 控制位(IOC6 的bit 0)必须置为“1” 1.4 数据存储器的配置

通过了解数据存储器的分布,可以在仿真时直接了解各个寄存器的状态以及程序运行情况,数据存储器的配置如表1.11所示。

表1.11 数据存储器配置

地址 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10—2F RF R0 R1 R2 R3 R4 R5 R6 R PAGE寄存器 间接寻址寄存器 定时/ 计数器 程序计数器 状态寄存器 RAM 选择寄存器 Port5 Port6 保留 保留 保留 保留 保留 保留 保留 保留 中断状态寄存器 通用寄存器 IOCB IOCC IOCD IOCE IOCF IOC5 IOC6 CONT IOC PAGE寄存器 保留 控制寄存器 保留 保留 保留 I/O 端口控制寄存器 I/O 端口控制寄存器 保留 保留 保留 保留 下拉控制寄存器 漏极开路控制寄存器 上拉控制寄存器 看门狗定时器控制寄存器 中断屏蔽寄存器 无 1.5 休眠与唤醒

EM78P152/3S微处理器可以在程序中执行SLEP指令将进入休眠模式,微处理器可以由以下事件唤醒:

(1)/RESET引脚的外部复位信号输入; (2)WDT溢出 ( 若使能); (3)Port 6输入状态改变( 若使能);

7

EM78P153S使用总结 “/RESET引脚的外部复位信号输入”以及“WDT溢出”都将使EM78P152/3S复位,可用R3寄存器的T和P标志位来判断复位源(唤醒源)。由于采用上电复位的方式,P63脚将作为输入脚使用,而不用作复位脚,所以不存在复位脚;另外若WDT的使用频率不高,可以设置为不使能(附:实际中可以不采取这两种唤醒模式)。

实际中更多考虑的则是“Port 6输入状态改变”的唤醒模式。“Port 6输入状态改变”将综合考虑后续程序的执行和全局中断(“ENI”或 “DISI”指令的执行情况) ,来决定控制器在唤醒后是否进入中断向量。如果在SLEP指令前执行了ENI指令,唤醒后将从地址为008H处开始执行。如果在SLEP指令前执行了DISI 指令,唤醒后将从SLEP 指令的下一条指令开始执行。

在SLEP指令之前Port6输入状态的改变中断要使能,即中断使能寄存器(IOCF)中ICIE位要置“1”,同时必须通过软件编程禁止WDT,但代码选项寄存器(Code Option)的WDT位仍要保持使能。代码选项寄存器将在介绍烧录程序的章节详细介绍。

休眠与管脚唤醒的使用步骤: (1)唤醒端口设置为输入口; (2)使能唤醒端口内部上拉;

(3)设置WDT分频比大于1:1,并禁止WDT; (4)清TCC;

(5)读PORT6状态,即下“MOV PORT6,PORT6”指令; (6)使能唤醒功能设置ICIE 位为“1”; (7)如需要中断则使能总中断下“ENI ”指令; (8)下“SLEP”指令; (9)加三条“NOP”指令延时; (10)下“WDTC”指令; (11)禁止WDT; (12)禁止管脚唤醒功能;

在编程的时候,要注意执行SLEP指令之前,要按照上述步骤编写,在SLEP指令后面要加上三条“NOP”指令,这个不能够缺少。在休眠模式下,若WDT已使能,WDT也将被清零,但WDT会继续保持运行状态。在唤醒后,要间隔10ms左右就要执行一次“WDTC”指令,防止WDT溢出引起复位。此处设置预分频的比例要大于1:1也是为防止WDT溢出引起复位。

8


义隆单片机EM78P153使用 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国共产党在新民主主义革命时期土地政策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: