HCS12 介绍讲义1——编程模型
0赞
目的:
- 解释在典型的应用程序中如何有效地使用HCS12 CPU模块
目标:
- 描述的HCS12 CPU的编程模型。
- 识别方法,有效地访问HCS12的存储器映射。
- 说明如何有效地使用HCS12的寻址模式。
- 停止模式和等待模式描述的用途和功能。
- 确定HCS12的CPU功能,支持高层次的语言课程。
条件:
- 处理器,内存,寄存器和I / O功能的基本认识

设备概述
MC9S12DP256微控制器单元(MCU),目前在HCS12系列的许多金融衍生产品之一。该器件含有大量的片上存储器和外设I / O设备。
MC9S12DP256是一个16位的设备组成的标准片上外设,包括一个16位中央处理单元(HCS12 CPU)的,256K字节的Flash EEPROM,12K字节的RAM,4K字节的EEPROM,2个异步串行通信接口( SCI),三个串行外设接口(SPI),一个8通道IC/ OC增强型捕捉定时器,两个8通道,10位模拟 - 数字转换器(ADC),一个8通道脉冲宽度调制(PWM)数字字节数据链路控制器(BDLC),29离散的数字I / O通道(A口,B口,港口K和端口E),20个分立的数字I / O线中断和唤醒功能,五个CAN 2.0 A, B软件兼容模块(MSCAN12)及IC间总线。系统资源映射,时钟产生,中断控制和总线接口管理系统集成模块(SIM)。
MC9S12DP256有完整的16位数据路径。然而,外部总线可以工作在8位窄模式,使单一的8位宽度的存储器可用于成本较低的系统接口。一个PLL电路列入允许功耗和性能进行调整,以适应业务需求。

首先,让我们的HCS12 CPU架构概述本教程。 HCS12的CPU是相同的MC68HC12和基于MC68HC11的CPU。
MC68HC11和MC68HC12将被称为HC11和HC12分别在本教程文件。
像HC12,HCS12的CPU映射到一个单一的线性地址空间的所有寄存器和外设,提供高效的内存访问。
由于HCS12系列支持高达1兆字节的地址空间,一个寻呼计划已实施访问高达64- 16K的页面窗口很多,后来被覆盖,以满足许多应用所需的内存,提供系统设计者。
HCS12的CPU指令集扩展HC11指令的数据移动,数据处理,增强的算术运算和分支和控制逻辑。此外,HCS12的模型共十六寻址模式添加了几个新的寻址模式。
虽然,HCS12系列的成员大部分具有片上闪存和RAM和许多应用的单芯片解决方案的理想选择,系统设计人员可以配置设备访问外部额外的记忆。

HCS12,包括新的指令和寻址模式,加入到支持高级语言。
我们将研究为有效地实施在一个高层次的的语言编写的代码的HCS12 CPU中所包含的功能。

接下来,让我们在细看的HCS12 CPU架构检讨的编程模型。
CPU寄存器编程的观点。
累加器(A,B和D),用来存放操作数和算术运算或数据处理的结果。
A和B - 两个8位累加器
D - 有丰富的16位操作使用一个concatination的设置:作为一个16位累加器的乙。
索引寄存器(X和Y)用于索引寻址模式。移动数据,并在两个独立的表中的操作数在计算中涉及的情况下非常有用。
X和Y - 对于索引模式操作的一个8位的积极无符号对象代码中的偏移量是阿迪X或Y的当前内容,形成一个操作数Y型指数指示的地址是因为prebyte略小于x的高效前操作码,但它仍然是很多比成一个索引寄存器交换临时工更好。
这是常见的负载指数与内部寄存器空间(通常是$0000)的起始地址寄存器,允许索引寻址模式被用来ACCES的任何内部I/ O和控制REGS。
邮编:(程序计数器) - 16位,只是意味着在64K字节的地址范围。它认为要执行的下一条指令的地址。 PC也可提供HCS12的新的寻址模式中引用的数据空间。
CCR的条件码寄存器 - 包含5个状态指示灯,2个中断屏蔽位,一个停止禁用位。

H:半进位,N:阴性,Z:零,V:溢出,C:进位/借
H:仅用于BCD算术运算,仅由ABA,ADD和ADC的影响,它表示从第3位进。此标志允许的CPU的8位BCD此外调整的结果,所以它是正确的BCD格式。此位是用来DAA指令只,以弥补在ACC的结果。一个正确的BCD格式。
N:反映结果的最高位的状态。 2的补,该数字为负时MSB = 1,积极向上的MSB = 0时。它也可以用于执行一些测试此位,并根据结果作出决定(BMI,BGE,... ...)
Z:当结果所有位为零。比较指令做一个内部隐含减法和条件代码,包括Z,反映该减法的结果。 INX的,地塞米松,INY,和DEY影响Z位,并没有其他位。
五:用来表示2的补码溢出,如果作为一个操作的结果发生。
C:用来表示如果进行加法或减法借发生。它也作为一个乘法和除法运算的错误标志。移位和循环指令,并通过进位操作方便多字的移位操作。
条件代码会自动更新几乎所有的指示,除了推,拉,ABX,ABY和16位传输和交流。
S:停止禁用,用于允许或禁止STOP指令。 STOP指令使振荡器停止,因此,用户可以设置CCR中的S位禁止STOP指令,如果由于某种原因STOP指令时遇到了S位设置,然后它会将它作为NOP和程序的正常流动继续....
我:中断请求(IRQ)面膜(I位)是一个全球性的面具,禁止所有可屏蔽中断源。虽然我位被置位,中断可以成为等待和被遗忘,但直到我位被清零,CPU运行继续不间断。硬件复位后,我位被设置,它可以通过软件清除。
当可屏蔽中断时,条件码寄存器(CCR)是保存在堆栈中,然后I位设置来屏蔽其它中断,该中断服务期间可能发生的的。 CCR是从中断服务程序返回时恢复到它的原始值。恢复的CCR将重新启用中断。
X:XIRQ面具(X位)非屏蔽中断屏蔽:使用禁用的XIRQ引脚中断。复位后设置,并只能由软件指令清除。 XIRQ是公认的,我X和自动设置后REGS。堆叠之前,取出向量。后中断是服务,它是为I位相同。
