EM78P4475单片机指令系统

发布者:梦幻微笑最新更新时间:2018-03-20 来源: eefocus关键字:EM78P4475  单片机  指令系统 手机看文章 扫描二维码
随时随地手机看文章

   一、EM78P447S指令的执行时序
  作为时基的时钟振荡器,产生的时钟脉冲信号经内部分频电路分频后形成“指令周期(Tins)”。作为EM78P447S单片机的重要特色之一,一个指令周期既可以占用2个时钟周期,也可以占用4个时钟周期,可以由用户自主选定。因此,一个“指令周期”可以由2个时钟周期(即2个节拍Q1和Q2)或4个时钟周期(即4个节拍Q1、Q2、Q3和Q4)构成。每当Q1节拍的上升沿出现时,程序计数器PC自动加1。
  由于EM78单片机内部采用双总线结构,使得它在执行一条指令的同时,就可以提取下一条指令,从而实现“流水作业”。就是说,在同一个指令周期之内,执行指令和提取指令两种活动在同时进行。这就使每一条指令的平均执行时间为一个指令周期,、因此,就可以所成,EM78单片机指令的执行时问“单周期化”了。绝大多数指令的运行时间都仅占用一个指令周期,只有极个别的指令(即对程序计数器PC做“写”操作的指令,比如MOV PC,A)才占用两个指令周期,这一点应该引起注意。
  二、EM78P447S指令概述
  不同CPU内核的单片机,具有不同的指令系统。指令系统中的每一条指令都完成一种特定功能的简单操作,比如数据传送操作、加法操作等。将若干条实现简单操作的指令语句,按照一定的规则排列组合起来,就构成了一个可以完成复杂功能的程序。    为了便于学习和掌握,通常每一条指令都用表意性很强的英文单词或语句缩写来代表。例如,NOP指令,就是由“No Operation.”一句英文缩略而成,中文含义是“空操作”  所以,通常人们将代表一条指令的一个字符串称为“助记符”。假如按指令被使用的频繁程度划分整个指令系统,其实只有一部分指令在编写程序时经常用到,而另一部分指令却较少使用,还有一部分指令极少用到。每条指令一般都由操作码和操作数组成,也有个别指令不带操作数。操作码是指令操作功能的记述,而操作数则描述操作的对象和操作的范围。
  1.指令结构
  一条指令的指令码一般都可分解成两部分:第一部分为操作码(OPCODE),代表指令功能;第二部分为操作数(OPERAND),表示指令操作的对象,或运算时所需要的参数。操作数又可以细分为两部分:第一操作数和第二操作数。第一操作数就是目标操作数,第二操作数就是源操作数。以一条传送指令为例,源操作数就是数据的发源地,而目标操作数就是数据的目的地。    EM78P447S单片机,共有指令58条,其编码长度均为13比特(bit)其一般指令格式为:操作码第一操作数,第二操作数或操作码  目标操作数,源操作数  这种书写格式与流行的MCS-51单片机的指令系统,以及许多微机原理教科书中介绍的80X86指令系统相一致,也比较符合人们的记忆习惯。对于EM78P447S指令系统中的一条指令,操作数可以是两个、一个或一个也没有。
  2 指令描述方法
  对后面描述过程中所采用的一些符号或表示方法需作说明,见下表。

指令描述方法
  3.EM78P447S指令说明
  以下对于EM78P447S单片机整个指令系统中的每条指令,以“指令的字母为序”进行全面介绍,包括语法规则、指令编码、操作内容、影响标志和功能说明等。其中语法规则就是汇编格式,也就是汇编器工具软件认可的格式。

指令描述方法

操作数的寻址方式

4.操作数的寻址方式  

  操作数指定参与运算的数据或者数据所在的存放地址。所谓“寻址”就是寻找操作数的存放地址,也就是给操作数定位的过程。所谓寻址方式,就是寻找操作数或操作数所在地址的方法和形式。 

   在EM78P447S的指令系统中,根据操作数的来源不同,设计了5种寻址方式:立即寻址、直接寻址、隐含寻址、间接寻址和比特寻址。 

   (1)立即寻址    

在这种寻址方式中,操作数在指令码中直接获取(这种在指令码中直接携带的操作数就称为立即数)。  

  [例]ADD A,@16H;

指令执行过程

    实现的功能是,将立即数16H(前面需要带有一个标识符@)与累加器A的内容(假设为99H)相加,结果(AFH)送到A。其指令码的二进制形式为:1,1111,0001,0110;其中前5位是操作码,后8位就是立即数。指令执行过程如上所示。算术逻辑单元ALU的两个入口,送入的分别是加数16H(来自指令码)和被加数99H(来自累加器A),在ALU中完成加法操作,从ALU的唯一出口把结果AFH送回A中。

(2)直接寻址  

  采用直接寻址方式的指令,可以在指令码中直接获取一个存放着操作数的存储地址,即指令码中包含着被访问(即读写)寄存器的单元地址。 

 [例]OR A,15H; 

操作过程

   实现的功能是,将地址为15H的RAM单元的内容(假设是16H)与累加器A的内容(假设是99H)进行逻辑“或”之后,结果(9FH)送入A中。参加逻辑“或”运算的一个数据(16H)所在的单元地址(15H)可以从指令中直接得到。操作过程如上所示。(3)间接寻址在采用寄存器间接寻址方式的指令码中,6位寄存器地址必为“全0”。利用rrrrrr=000000这个“专用地址”,特指RSR (RAM选择寄存器),并且是以RSR寄存器内容为地址,所指定的工作寄存器单元中存放着被访问的数据。从表面上看,指令码中的6位0指定的是IAR(间接寻址寄存器),其实IAR仅仅是一个有名无实的寄存器单元,只不过是将它的地址编码给专用化了。这样做可大大简化指令系统。 

   为了便于理解,我们不妨换一个角度来分析,把RSR看成一个具有双地址(分别为00H和04H)的特殊的寄存器单元,而可以不再提及IAR寄存器。当用地址04H访问RSR时,就像访问普通寄存器一样,可以直接对RSR的内容进行读或写;而用地址00H访问RSR时,而它就是一个间接寻址寄存器,不是对RSR的内容进行读或写,而是把它的内容作为地址使用。假如用户所需要访问的一组寄存器有地址相邻的特点,使用间接寻址是很方便的。  

  [例]XOR A,0;  

 实现的功能是,将15H号RAM单元的内容(假设为16H)与A内容(假设为99H)相“异或”,运算结果(8FH)送回A。参加“异或”运算的一个操作数(16H)可以从指令码中间接得到。RSR、A和15H号RAM单元的内容都是预先存入的。其操作过程如下图所示。

 操作过程

 在下页的下中描述了直接寻址方式和间接寻址方式,这两种寻址过程中RAM工作寄存器地址的形成。对于直接寻址方式,体选码来自RAM选择寄存器RSR的最高2位,体内地址直接来自指令码;对于间接寻址方式,体选码也来自RAM选择寄存器RSR的最高2位,但是体内地址却来自RSR的低6位。 

直接寻址方式和间接寻址方式

   对于RAM的特殊功能寄存器空间中的各寄存器只能进行直接寻址,不能进行间接寻址。  

  (4)隐含寻址  

   采用隐含寻址方式的指令,在指令码中不必指明存放着操作数的存储地址,即指令码中并非包含着被访问(即读写)寄存器的单元地址,就可以自动地访问一个默认的寄存器。 

   [例]CONTR; 

   实现的功能是,将控制寄存器CONT的内容读取之后,经过ALU送到累加器A中(CONT寄存器没有统一的地址编码,这一点与众不同)。其操作过程如下图所示。 

直接寻址方式和间接寻址方式

 (5)比特寻址  

  可以对任一寄存器中的任一比特位直接寻址访问,也就是指令码中既包含着被访问寄存器的地址,又包含着该寄存器中的某一比特的地址。如果将RAM存储器看成一个阵列的话,那么在这个阵列中寻找某一个比特,就需要一个纵坐标和一个横坐标纵坐标就相当于单元地址,横坐标就相当于比特地址。 

   [例]BS 15H,4;  

  实现的功能是把地址为15H的寄存器单元内的比特4置为1。  

累加器

  5.以累加器A为中枢的数据传递方式    数据的逻辑运算和算术运算过程,以及控制信号的输入和输出过程,在单片机内部都可以看成是“数据传递”的过程。根据EM78P447S的硬件系统和软件系统(即指令系统和寻址方式)的规划特点,我们可以总结出在单片机内部,在各个寄存器之间进行数据传递,能够实现的几种途径和方式。不妨可以用上进行形象化地描述。该图中的每一条带箭头的线条都代表一种传递方式,在每一条带箭头的线条旁边,还同时分别给出了实现相应的那一种数据传递所用指令的一个实例。其中有一点值得注意的是,“MOV R,R”指令中的“R”实际指的是同一个工作寄存器单元,该指令的目的是影响标志位“Z”  事实上,就不存在不同工作寄存器单元之间直接传递的指令,只能以A作中转实现间接传递。

    6.“CPU内核一专用寄存器一模块或部件”三者相互关系  

  对于单片机的开发和应用,其主要任务有两项:一是软件设计,二是硬件设计。硬件没计我们暂且不提,在此只想用软件设计的观点,从不同角度剖析和理解单片机内部的组织关系。  

  软件设计实际上就是运用指令编制程序,而EM78P447S单片机的每条指令的作用范围非常集中,作用的对象也比较单纯,仅仅限制在(包含着专用寄存器和通用寄存器的)数据存储器RAM的范围之内,也就是说,指令的操作对象主要就是数据存储器中的各个寄存器单元。单片机的工作过程就是用一条条的指令“指挥”各部分硬件的动作,那么,这种“指挥”就是通过给特殊功能寄存器填写相应的参数来实现的。因此,我们不妨将EM78P447S单片机画成如下图所示的形式,其CPU内核与专用寄存器之间存在着灵活的“软件上的对应”关系,而专用寄存器与外设模块和功能部件之间存在着固定的“硬件上的映射”关系。专用寄存器在中问扮演着桥梁或者界面的角色。

EM78P447S单片机画成

  单片机与外界交换信息的方向有两个:(l)各个外设模块从外部世界(指单片机芯片的封装之外)采集的现场信息,经过硬件电路反映到与自身对应的专用寄存器内,CPU通过执行指令从该寄存器里获取相应的信息;(2)CPL通过填写与某一外设模块对应的专用寄存器单元,由该寄存器单元经过硬件电路将控制信息映射到外设模块上,再由外设模块驱动外接电路完成相应的运作,从而将CPU的命令落到实处。 

   我们在用指令编写程序时,不仅应搞清指令系统中每条指令的功能,还应弄清专用寄存器与外设模块或功能部件之问的对应关系。


关键字:EM78P4475  单片机  指令系统 引用地址:EM78P4475单片机指令系统

上一篇:基于MSP430F149单片机为核心的展馆人员登记与录入系统设计
下一篇:利用两个I/O引脚将4×3矩阵键盘连接至微控制器

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

基于51单片机的GPS公交车自动报站系统
一.硬件方案 本设计主要是制作出一款基于51单片机的GPS自动报站公交车,根据设计需求,硬件部分应该具有的功能有,GPS定位、语音播报、液晶显示、按键操作以及相应的指示灯提示,所以本次设计采用了STC89C58RC单片机作为主控芯片、GPS模块采用了VK2828U7G5LF、液晶显示部分采用了LCD12864液晶、音频播放部分采用了Miniplay模块,以及按键电路、指示灯提示电路还增加了时钟显示电路。整体硬件框图如图: 二.设计功能 (1)本设计播报主要有两种方式,其一是当到达播报站点时,司机按下对应按键进行播报;另一种是全自动语音播报方式,到达播报站点时,设计会自动进行播报。 (2)自带时钟显示,并且设有GPS自动校时
[单片机]
基于51<font color='red'>单片机</font>的GPS公交车自动报站系统
基于MSP430单片机的便携式PID参数整定仪的实现
0 引言 PID控制是最常的控制策略,在工业过程控制中90%以上的控制回路具有PID结构。PID控制之所以被广泛应用主要是因为它算法简单,在实际中容易被理解和实现,而且许多高级控制都以PID控制为基础。但是由于环境的变化,使被控对象具有时变性,参数经过一段时间以后会 出现性能欠佳、适应性变差、控制效果下降等情况。因此,寻求参数自动整定技术,以适应复杂工况及高性能指标的控制要求,是实现节能优化控制的重要手段,具有重大的工程实践意义。 1 自整定过程原理 本文主要研究了一种手持式的PID参数整定仪器,此整定仪具有整定单变量和双变量的双重功能,控制系统主要采用低能耗的MSP430微控制器,软件部分采用的软件开发平台是IAR MSP
[单片机]
基于MSP430<font color='red'>单片机</font>的便携式PID参数整定仪的实现
基于AT89c51单片机为核心的遥控报警系统设计与原理分析
1 引 言 由于经济的快速发展,人们生活水平得到较大的提高,生活节奏也越来越快,为此家电遥控和家庭安全也为人们所需要和重视。以AT89C51单片机为核心通过电话进行电器遥控和报警装置主要解决这些问题。他的主要功能有:通过电话可以遥控16路电器通断,遥控路数可以根据需要进行扩展;可以实现电器调压调速控制,有密码设定,保密安全性好;有语言提示,避免盲目操作;可以取消已输入的操作命令;当单片机接收到家中天然气泄露、温度超限和失窃信号后会自动拨打预留电话并报告家中发生的情况。 2硬件电路设计 总体电路设计思路是:电话遥控报警器与家用电话采用并联方式,当有振铃信号时单片机开始记数,前10次铃声内若有人接电话,则遥控报警器被
[单片机]
基于AT89c51<font color='red'>单片机</font>为核心的遥控报警系统设计与原理分析
单片机C语言一维数组
一维数组 在c和c++中数组的指针就是数组的起始地址(也就第一个元素的地址),而且标准文档规定数组名代表数组的地址(这是地址数值层面的数组表示)。例如: int a ; int *p; p=&a //和p=a是等价的。 因为a是数组名,所以他是该数组的地址,同时因为第一个元素为a ,那么&a 也代表了该数组的地址。但是我们是不是就说一个数组名 和该数组的第一个元素的&运算是一回事呢?在一维的时候当时是的,但是在高维的时候,我们要考虑到维数给数组带来的影响。 a 是一个数组,a是数组名,它是一个包含10个int类型的数组类型,不是一般的指针变量噢!(虽然标准文档规定在c++中从int 到 int*直接转换是可以的,在使用的
[单片机]
资深工程师:选择汽车MCU的十大考虑因素
微控制器( MCU )在从电机控制,到信息娱乐系统和车身控制等越来越宽泛的汽车应用中提供至关重要的性能。随着价格的下降和整固的增加,微控制器正变得越来越普及,这意味着MCU被越来越多地视为商品。尽管存在这种商品化趋势,汽车系统设计工程师仍然认为不同的控制器会有很大的差异,包括各种级别的集成度和功率要求。选择MCU通常可以缩减材料成本(BOM),从而有效地降低电子控制单元(ECU)本身的价格。   选择汽车MCU时,设计工程师可以考虑以下10个重要因素,实现成本压力与应用所需的特定性能特色之间的平衡。   1.低压检测   MCU工作时的故障风险之一是在临界点时电源电压或MCU内部电压可能降至所需电平以下。显然,如果工作电压无法保证
[嵌入式]
51单片机(汇编语言)实现十进制转十六进制
任务描述 DEC0 DEC1 DEC2 存放 十进制 数 eg:03 35 96 HEX0 HEX1存放十六进制数 eg:83 3C 任务原理 本质是BCD码转二进制 所谓的十进制 如“15”,对应的是 0x15H 这一个十六进制数,而0x15的十进制数为21,二进制为0001 0101(就是1 “和” 5) 所以,我们要做的是 把每一位十进制的BCD码提出来,附上相应的权重,结果本质为普通的二进制,表现为十六进制(这听起来很绕口)但是在keil里跑一下会更好理解(后面会结合代码分析) 方案Ⅰ 思路 循环— (HEX*10)+TMP 1.从高位开始 提取“十进制”的每一位数(半个byte存一位) 2.带进位的循环
[单片机]
51<font color='red'>单片机</font>(汇编语言)实现十进制转十六进制
MSP430F149单片机的flash读写程序
//基于msp430F149单片机的flash读写,记录430的运行状态, //实现在复位和掉电的情况下,恢复原始运行状态。 #include #include function.h unsigned char value1=0; // 待写入段A的值 unsigned char *data =(unsigned char *)0x4080; // 段A的头指针 void write_SegA (unsigned char value1) { char *Flash_ptr; // Flash pointer Flash_ptr = (char *) 0x4080;
[单片机]
基于单片机控制的智能化路灯节能装置的设计
0 引言 随着大中城市规模的不断扩大,城市市容的改善,照明路灯的数量越来越多,其用电量占城市的总用电量的比例不断增加。以往的路灯照明大多采用直接供电方式,人工送电人工关闭。这种方式有许多不足:供电系统在不同的时间电压是波动的,在用电高峰期,电压都低于额定值,在用电低谷期供电电压又高于额定值,当电压高时不但影响照明设备的使用寿命,而且耗电量也大幅增加(电源电压若增加 20% ,则耗电量增加 44% ),当低谷时,照明设备又不能正常工作;利用人工送电,增加人员开资,有时又不能及时开闭,即影响正常照明又浪费电能。因而有必要针对上述问题开发出一种使用方便又节能的装置,这种装置应有如下功能。 ( 1 )稳压控制:无论在用电高峰还是用
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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