EM78系列单片机--中断程序的设计

发布者:science56最新更新时间:2018-01-27 来源: eefocus关键字:EM78系列  单片机  中断程序 手机看文章 扫描二维码
随时随地手机看文章

在EM78X56系列的IC中有三种中断信号,分別是: 
TCC溢位中断。 
PORT6 Change 中断。 
外部信号中断。 
在说明中断使用方式之前,用户要了解中断寄存器,及与中断息息相关的控制寄存器( Control Register),另外在芯片中預除器( Prescalar )的使用方法,用户也需要住意。 


中断信号显示寄存器0X0F各位安排如下: 
  
  BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0  
中断信号 - - - - - 外部中断标志 PORT6 Change TCC 溢位标志。  

  
寄存器0X0F使用到的有BIT0 ~ BIT2。BIT0在TCC计時器计数溢位時就会被设定,用户可以根据0X0F的BIT0被设定而判定TCC计数溢位。跟TCC配合的还有另一个寄存器---控制寄存器(Control Register,简称CONT)。控制寄存器0X0F各位安排如下: 
  
  BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0  
控制信号 - INT TS TE PAB PSR2 PSR1 PSR0  

  
各位的代表意义如下: 
□ PSR2 ~ PSR0:TCC/WDT 預除器设定。 
  
PSR2 PSR1 PSR0 TCC 比例 WDT 比例  
0 0 0 1:2 1:1  
0 0 1 1:4 1:2  
0 1 0 1:8 1:4  
0 1 1 1:16 1:8  
1 0 0 1:32 1:16  
1 0 1 1:64 1:32  
1 1 0 1:128 1:64  
1 1 1 1:256 1:128  

FIGURE3.5 PS0 ~ PS2的设定值与預除器和TCC及WDT的比例关係。 
  Bit3預除器配置:  
0:TCC 
1:WDT 
□     Bit4 TCC递增時机: 
0:外部信号,触发边沿为正沿触发。 
1:外部信号,触发边沿为負沿触发。 
□     Bit5 TCC信号来源: 
0:內部指令周期触发。 
1:外部引脚(第三脚)触发。 
□     Bit6 INT使能标志: 
0:禁止所有中断产生。 
1:使能中断信号。 
□ Bit7 无使用。 
三种中断产生都有其先前的设定值,接下来会以示例说明。 
l         例:写一个程序,將寄存器0X20当做计数器,每当TCC中断产生,就自动加1。 
  
MOV  A, @0X0     ;设定 A = 0。 
IOW 0X0E            ;关闭Watch Dog。 
ORG 6           ;设定接下来的程序位址。 
CLR 0X20            ;清除寄存器0X20。 
JMP TCC_PRO     ;跳转到TCC­_PRO。 
INT_PRO:   DISI                ;关闭各項中断功能。 
CLR 0X0F            ;清除中断寄存器。 
INC 0X20            ;计数器加1。 
  
RETI                ;返回主程序,並使能中断。 
TCC_PRO:   CLR 0X0F            ;清除中断寄存器。 
MOV  A, @0X01        ;设定 A = 1。 
IOW 0X0F            ;使能TCC溢位中断产生。 
MOV  A, 0X40     ;设定 A = 0X40。 
CONTW           ;將A的值写入控制寄存器。 
ENI             ;使能中断。 
TCC_WAIT:  NOP              ;等待TCC计数器计数溢位。 
NOP              ;等待TCC计数器计数溢位。 
JMP  TCC_WAIT        ;等待TCC计数器计数溢位。 
TCC中断产生有几个设计的重点: 
1.   关闭看门狗计時器(Watch Dog Timer)。 
2.   设定控制寄存器(包括預除器、TCC信号来源、触发時机…)。 
3.   使能中断(下ENI指令)。 
4.   使能TCC中断(设定中断控制寄存器的bit0为1)。 
5.   中断服务位址为0X08。 
6.   进入中断服务程序首先要將中断禁止,否则会产生重复中断。 
7.   中断寄存器0X0F,在进入中断服务程序時可以提供用户判断为何种中断,判断完成之后用户必須自行清除。 
8.   由中断服务程序返回主程序应使用指令RETI。 
l         例:写一个程序,將寄存器0X20当做计数器,每当PORT6 Change中断产生,就自动加1。 
  
PORT6 == 6             ;定义。 
DISI                   ;中断禁止。 
ORG    6                   ;设定下一个位址为0X06。 
CLR        0X20                ;清除计数寄存器。 
JMP        PORT6_CH            ;跳转到主程序。 
DISI 
INT_PRO:                     ;0X08为中断服务程序起始。 
NOP     
CLR        0X0F                ;清除中断标志寄存器。 
INC        0X20                ;计数器遞增。 
MOV         PORT6, PORT6        ;將PORT6的值存入正反器。 
RETI                   ;回主程序。 
PORT6_CH: 
CLR        0X0F                ;清除中断标志寄存器。 
MOV         A, @0XFF            ;设定 A = 0XFF。 
IOW        PORT6           ;將PORT6设成输入口。 
MOV         PORT6, PORT6        ;將PORT6的值存入正反器。 
  
ENI                        ;使能中断。 
MOV         A, @0X02            ;设定 A = 0X02。 
IOW        0X0F                ;使能PORT6 Change中 
WAIT_INT: 
WDTC                   ;清除Watch Dog Timer。 
NOP                        ;等待PORT6 Change。 
NOP                        ;等待PORT6 Change。 
JMP        WAIT_INT            ;循环。 
  
使用PORT6 Change中断有下列几个步骤。 
1.     关闭看门狗计時器(Watch Dog Timer),若看门狗计時器未关闭,用户要定時下WDTC的指令。 
2.     清除中断寄存器。 
3.     设定PORT6为输出口。 
4.     將PORT6的值存入触发器中(这很重要)。 
5.     使能中断(下ENI的指令)。 
6.     使能PORT6 Change中断(设定中断控制寄存器的bit1为1)。 
7.     中断服务程序的启始位址在0X08。 
8.     进入中断服务程序首先要將中断禁止,否则会产生嵌套中断。 
9.     中断寄存器0X0F,在进入中断服务程序時可以提供用户判断为何种中断,判断完成之后用户必須自行清除。 
10.  由中断服务程序返回主程序应使用指令RETI。 
  
l         例:写一个程序,將寄存器0X20当做计数器,每当外部中断产生,就自动加1。 
所謂的外部中断就是利用IC外部引脚,針对 单片机 外部的信号做为信号源来产生中断。EM78系列的外部中断引脚是第4脚,是和PORT6位0合用,所以再使用前要先设定PORT6 , BIT0是要单純用做I/O引脚,或是中断输入引脚。 
                ORG 6           ;设定启始位址为0X06。 
CLR 0X20            ;清除计数器。 
JMP EXT_PRO     ;跳转到主程序。 
INT_EXT: 
DISI                ;中断禁止。 
CLR 0X0F            ;清除中断标志。 
INC 0X20            ;递增计数寄存器。 
RETI                ;返回主程序。 
EXT_PRO: 
CLR 0X0F            ;清除中断标志。 
MOV  A, @0X04        ;A = 0X04。 
IOW 0X0F            ;使能外部中断信号产生。 
MOV  A, @0X40        ;A = 0X40。 
IOW 0X0E            ;设定PORT6, BIT0为中断输入脚 
ENI             ;返回主程序。 
EXT_WAIT: 
NOP             ;等待外部中断输入。 
NOP             ;等待外部中断输入。 
JMP EX_WAIT     ;循环。 
  
外部中断显然比較容易了解。所需注意的項目有: 
1.   禁止中断。 
2.   设定中断服务程序的地址在0X08。 
3.   清除中断标志寄存器。 
4.   使能外部中断信号产生(设定中断控制寄存器为0X04)。 
5.   將PORT6, BIT0设定成外部中断引脚(设定控制寄存器0X0E, BIT6为1)。 
6.   使能中断信号(ENI)。 
7.   用户在进入中断服务程序(0X08)時,首先要記得禁止中断(DISI)。 
8.   可以由中断标志寄存器判断中段的信号为何产生,判断完之后应自行清除中断标志。 
9.   返回主程序時用指令RETI。 
以上三支中断程序的写法都是利用无穷循环,所以用户想要看到結果只有結束程序,然后查看计数寄存器(0X20)的计数状況。 


关键字:EM78系列  单片机  中断程序 引用地址:EM78系列单片机--中断程序的设计

上一篇:EM78系列单片机--延迟子程序的编写
下一篇:EM78系列单片机--查表程序设计

推荐阅读最新更新时间:2024-03-16 15:53

51单片机设计方案TOP10(九)
基于51单片机的光功率计的设计    摘要: 通过光电传感器将待测光信号变化转变为模拟信号,对模拟信号进行AD处理分析得到光信号的参数特性并在51单片机上通过串口通讯输出。    1 背景概述   1.1 光功率定义   光功率是光在单位时间内所做的功。光功率常用单位是毫瓦(mW)和分贝(dB),其中两者关系为1mW=0dB,而小于1mW的分贝为负值。例如,在光纤收发器或交换机说明书中,有其产品的发光和接收光功率,通常发光小于0dB。   接收端所能够接收的最小光功率称为灵敏度,能接收的最大光功率减去灵敏度的值称为动态范围,发光功率减去接收灵敏度是允许光纤损耗值。    1.2 使用分贝做单位主要有两个好处   (
[模拟电子]
51<font color='red'>单片机</font>设计方案TOP10(九)
单片机开发调试应注意的问题
1、使用总线不外引的单片机 是最正统的单片机使用模式 符合小型、简单、可靠、廉价的单片机设计初衷 总线封闭的产品最可靠 2、使用单片机C语言编程 * C语言是简洁、高效、而又最贴近硬件的高级编程语言 * 90年代初单片机C语言就已成熟为专业水平的高级语言,不应再有顾虑 * 当前厂商在推出新的单片机产品时纷纷配套C语言编译器 3、使用中、高档的单片机仿真工具 * 只有中、高档仿真工具才能仿真总线封闭式的单片机 * 仿真器必须使用band-out chip或hooks chip
[工业控制]
What,航天器、导弹喜欢用单片机?为什么不是嵌入式系统?
一、前言 前几天和一个在某研究所的发小聊天,他说:现在的航空、航天和导弹等武器装备中,控制系统几乎都是用单片机,而不是嵌入式系统。 乍一听,和我们的直觉有矛盾啊:那么高大上的设备,其中的控制逻辑一定很复杂,不用嵌入式系统怎么来完成那么复杂的功能控制啊?然后仔细了解了一下,才明白答案是:安全+可控。 这篇文章我们就来聊一下关于单片机与嵌入式、操作系统与 RTOS 之间的那些事!通过这篇文章,让你操作系统的实时性有一个系统、全面的理解! 二、关于单片机与嵌入式系统之间界定 说实话,关于它俩的区分,没有人可以给出一个标准的、正确的答案。每个人理解的单片机与嵌入式系统,都是略有差别的。 抛开硬件,从应用程序开发的角度来看,
[单片机]
What,航天器、导弹喜欢用<font color='red'>单片机</font>?为什么不是嵌入式系统?
51单片机综合学习系统之 步进电机控制篇
大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了红外线遥控的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习步进电机控制的基本原理与使用方法。 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。 上图是我们将要使用的51单片机综合学习系统硬件平台,本期实验我们用到了综合系统主机、步进电机,综合系统其它功能模块原理与使用详见
[单片机]
51<font color='red'>单片机</font>综合学习系统之 步进电机控制篇
低于10美元BOM的单片机人脸识别方案
NXP宣布了其最新的NXP EdgeReady IoT解决方案,用于安全人脸识别,使OEM能够快速、轻松、廉价地添加基于视觉的无接触访问控制。NXP的交钥匙解决方案包括i.MX RT106F交叉MCU和基于AI/ML的人脸识别软件的许可证,这使得通过使用红外和RGB摄像机、Flash和SDRAM存储器进行活体检测的人脸识别成为可能,总成本低于10美元。 此解决方案可用于实现人脸识别,以验证和操作酒店、公共建筑和住宅的安全机器、设备和接入点,包括门、锁、便利设施、电梯、车库门、安全系统等。 •活体检测:红外摄像机与可见光(RGB)相机协同工作,有助于区分真实人物和照片,防止未经授权的访问,而无需昂贵的3D结构光或飞行时间(T
[单片机]
新一代Kinetis无线微控制器提升物联网设备性能和安全性
德国纽伦堡(2018年嵌入式系统展会)–2018年2月27日–当今的许多设备需要将主微控制器(Host MCU) 连接到无线网络,这会增加尺寸和复杂性,同时也会使设计、软件开发、采购、供应链和物流更加繁杂。代表了新一代Kinetis MCU的全新K32W0x无线MCU平台,作为恩智浦广泛的边缘计算产品组合的一部分,可以让设备更强大、更安全。 K32W0x平台是其前代产品的补充增强版,通过更高性能、更多功能和更高安全性,应对不断发展的物联网格局。这款新平台是首个具有双核架构和嵌入式多协议RF的单芯片器件,使物联网产品开发者能够通过单一供应商获得从硅芯片、软件、工具、支持到采购的一系列服务,因而整体降低了产品的复杂性、尺寸和成本,
[半导体设计/制造]
PIC单片机的时钟模式
任何一个单片机要工作都需要一个时钟使单片机按给定的时钟节拍一步一步的执行程序。对于这样一个时钟,在PIC单片机上有多种工作配置方式,比起传统的51系列单片机,其时钟模式得到了极大的丰富,然而这给初学者带来了一定的困难。 单片机标准时钟模式:用石英晶体或陶瓷振荡器产生工作时钟,如图1所示。 图1 PIC单片机晶体振荡原理图 与普通单片机相比,PIC晶体振荡模式的最大特点是内部振荡电路放大器的增益是可调的。如图1,Rf为增益调节电阻。主要原因是不同振荡频率的晶体,为保证其可靠振荡而所需的激励功率是完全不一样的。按常规,振荡器频率越低,其所需的激励功率越小。 如果振荡器输出给晶体的激励功率不符合晶体自身的工作特性要求,可能就会有
[单片机]
基于单片机中央空调能效管理系统
  l 引 言   中央空调系统主要由制冷机、冷却水循环系统、冷冻水循环系统,风机盘管系统和散热水塔组成。制冷机通过压缩机将制冷剂压缩成液态后送蒸发器中与冷冻水进行热交换,将冷冻水制冷,冷冻水泵将冷冻水送到各风机风口的冷却盘管中,由风机吹送冷风达到降温的目的。在系统中,冷动泵、冷却泵、水塔风扇变频器采用开环控制,由维护人员根据季节不同和负荷的变化进行调节,在每一个房间内都安装热交换器和循环风机,通过控制风机的转速来改变热交换量的大小,达到调节房间温度的目地。   常见的控制方法是按“高、中、低、关”分档模式控制,其缺点是房间的温度需要手动调节,各种环境因素的变化常常会使人感到不适。风机转速控制方案,采用变频器调速控制,有效地解
[单片机]
基于<font color='red'>单片机</font>中央空调能效管理系统
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved