MC9S12单片机原理及嵌入式应用开发技术第2章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MC9S12单片机原理及嵌入式应用开发技术第2章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MC9S12 单片机 原理 嵌入式 应用 开发 技术 课件
- 资源描述:
-
1、单片机原理与应用单片机原理与应用 College of Communication Engineering, Jilin University第第2章章 S12XS单片机内部结构单片机内部结构 2College of Communication Engineering, Jilin University2.1 S12XS单片机性能单片机性能2.2 CPU的构成的构成2.3 存储器存储器2.4 并行并行I/O 第2章 S12XS单片机内部结构单片机原理与应用单片机原理与应用 College of Communication Engineering, Jilin University2.1 S12
2、XS单片机性能单片机性能4College of Communication Engineering, Jilin University2.1.1 S12XS系列单片机内部模块Internal BusSCI1PWM 8CHANECT 12K SRAMHCS12 CPUBKP INT MMI CM BDM MEBI 4K BYTESEEPROM SIM msCAN3msCAN2msCAN1SCI0SPI 2orPWMCH4-7msCAN0or BDLCmsCAN4or IICSPI 1or PWMCH 0-3SPI 0PLL PIT 256K FLASEEPROMCRGVREGPIMAD0AD12
3、.1 S12XS单片机性能单片机性能5College of Communication Engineering, Jilin University1.16位位CPU2.内部内部RAM或或ROM:3.A/D模块:模块:16路路8位、位、10位或位或12位;位;4.CAN模块:支持CAN2.0A、B两种协议,1Mbps;5.TIM模块:标准定时器,输入捕捉、输出比较6.PIT模块:模块:4通道通道24位递减计数器位递减计数器7.PWM模块:模块:8通道通道8位,或位,或4通道通道16位,占空比可编程;位,占空比可编程;8.串口模块:两个串口模块:两个SCI,支持,支持LIN协议;一个协议;一个SP
4、I;9.中断模块:最多中断模块:最多20个带位中断的外部中断引脚,中断源个带位中断的外部中断引脚,中断源 细分细分为为7级;级;10.时钟模块:可通过内部锁相环使片内总线速度提升到最高时钟模块:可通过内部锁相环使片内总线速度提升到最高40MHz。2.1.2 S12XS系列单片机主要功能模块2.1 MC9S12XS单片机的性能单片机的性能2.1 MC9S12XS单片机的性能单片机的性能2.1.3 S12XS系列单片机引脚功能时钟,复位时钟,复位电源电源调试调试系列引脚1P17 图图2-2 112LQFP封装封装单片机原理与应用单片机原理与应用 College of Communication E
5、ngineering, Jilin University2.2 CPU的构成的构成9College of Communication Engineering, Jilin University2.2 CPU的构成的构成2.2.1 算术逻辑运算单元算术逻辑运算单元2.2.2 控制单元控制单元2.2.3 核心寄存器组核心寄存器组 10College of Communication Engineering, Jilin University单片机(微控制器)基本组成nMCU StructureThe CPU Registers file (寄存器组) Instruction latch/decod
6、e/branch (指令) Stack(栈) Interrupt(中断) Clock/Reset(时钟/复位)Memoryperipheral11College of Communication Engineering, Jilin University单片机(微控制器)基本组成nMCU StructureThe CPU Registers file (寄存器组) Instruction latch/decode/branch (指令) Stack(栈) Interrupt(中断) Clock/Reset(时钟/复位) Memoryperipheral12College of Communic
7、ation Engineering, Jilin UniversityA complete CPU13College of Communication Engineering, Jilin UniversityCPU the core of microcontrollernThe CPU contains:Arithmetic Logic Unit(算术逻辑单元)Register file (寄存器组)Control Unit (控制单元)Float point process UnitCache managementMemory Management Unit 14College of Co
8、mmunication Engineering, Jilin University2.2.1 CPU的构成 算术逻辑单元ALUALU - Arithmetic Logic UnitPerforms arithmetic functions such as add, subtract, multiply, divide logic functions such as AND,OR,NOT,XOR bit functions such shift, rotation4个要素Two input data - operands(操作数)instruction - operation(运算)Status
9、 - flag(标志位)one output data - result(运算结果)Quiz: 下面几个操作中,4要素分别为?A + B = CA B ?A = 115College of Communication Engineering, Jilin UniversityFlag(标志位)在哪里?执行单元产生的标志通常放在一个专用寄存器中Condition Code Register - CCRZ: zeroN: negativeO: overflowC: carry每执行一条指令,相应的状态位都会进行更新。每条指令影响到的状态位都是不一样的,需要查看芯片手册。CCR(Condition
10、Code Register,条件码寄存器),条件码寄存器)16College of Communication Engineering, Jilin University操作数(operands)在哪里?1: Registers寄存器用于临时保存/获取操作数任何CPU都包含若干通用/专用寄存器寄存器的数目和宽度是衡量CPU的重要指标 the more and bigger the register The better the CPU. 17College of Communication Engineering, Jilin University操作数(operands)在哪里?2: Dat
11、a Memory Memory并不是CPU的组成部分,对memory的访问要比对寄存器的访问慢很多18College of Communication Engineering, Jilin University运算结果存哪里?Generally, the same as the operands1: Registers19College of Communication Engineering, Jilin University运算结果存哪里?2: Data Memory20College of Communication Engineering, Jilin University 指令解析指
12、令解析 : 分析该指令需要执行何种操作 数据流向数据流向 : 确定该指令用到的操作数来源和产生结果的去向. 寻址方式寻址方式:计算机确定操作数或下一条要执行指令的地址的方法。Low addrHigh addr2.2.2 CPU的构成 控制单元21College of Communication Engineering, Jilin University地址与存储的基本概念Instr.EInstr.DInstr.CInstr.BInstr.A0 xA3360 xA3370 xA3340 xA3350 xA332 也可能是程序代码也可能是程序代码一段存储空间一段存储空间 请回忆一下请回忆一下C语言
13、的变量和指针的概念?语言的变量和指针的概念?0 x440 x550 x440 x330 xEF0 x560 x00040 x00010 x00020 x00030 x0000 存储的是数据存储的是数据22College of Communication Engineering, Jilin University获取指令:一个完整的CPU程序由指令序列构成,保存在程序存储器中。这些指令序列“依次”进入CPU执行下一条下一条待执行的指令地址保存在PC寄存器( Program Counter,即程序计数器),即程序计数器)中指令被取出后,PC更新指向下一条下一条指令(见下页)PC:程序计数器:程序计
14、数器23College of Communication Engineering, Jilin UniversityPC more than incrementPC = addressPC = PC + offset当出现跳转或子程序调用时:The PC is loaded with a new value (PC = address) or adjust with an offset. (PC = PC + offset)当指令序列出现分支时,PC将不再是按序递增到相邻的下一条指令 Quiz: 这种情况什么时候会出现?For(;)If . Else.Case: Sub_routine();R
15、eturn();中断进入和返回Code memoryPC 变化:顺序、分支和循环变化:顺序、分支和循环24College of Communication Engineering, Jilin UniversityPC more than incrementPC = addressPC = PC + offsetCode memoryHow to do that? - stack 堆栈堆栈此处的返回地址从何而来?Putchar();.Putchar();void Putchar() return(); PC 变化:子程序调用、中断变化:子程序调用、中断25College of Communic
16、ation Engineering, Jilin University堆栈堆栈是一段连续的存储器空间,堆栈按照后入先出后入先出的方式工作(Last In First Out) 只能向/从堆栈的顶部顶部加入或取出数据堆栈能够保持数据的顺序堆栈有两种基本的操作方式:推入PUSH: 将内容加入到堆栈顶端取出PULL : 将堆栈顶端的内容取出对于大多数CPU而言,“顶端顶端”是指低位的地址空间High addrLow addrTOP0 x100 x110 x120 x130 x10 is the first pushed item 0 x13 is the last pushed item26Coll
17、ege of Communication Engineering, Jilin University堆栈的作用n CPU硬件 使用堆栈来保存返回地址和寄存器上下文(register context) 中断n 汇编程序可以使用堆栈来保存局部变量,寄存器值 n C语言编译器使用堆栈来完成参数传递和返回值传递 C语言的函数调用27College of Communication Engineering, Jilin UniversityStack Pointer堆栈指针寄存器 堆栈顶端位置通过CPU内的堆栈指针寄存器确定 (SP,Stack Pointer) 堆栈指针的初始位置由程序代码确定,指向预
18、先划定的 堆栈空间的底部 CodeWarrior自动生成的初始代码自己编写汇编引导代码 如果要自己操作堆栈,记住:Once push must pullLast In First Out28College of Communication Engineering, Jilin University堆栈溢出堆栈空间和变量空间是使用同一端存储器空间 变量空间从低地址向高地址划分(例如C语言编程时声明的全局变量) 堆栈空间从高地址向低地址增长总大小 终究是有限的High addrLow addrMemory blockVariablesoccupiedstackoccupyIf the stack
19、grows too “deep”, it may over-write some contents in the variable space. Quiz: what will affect the depth of stack? 29College of Communication Engineering, Jilin University8-Bit Accumulators A and BIndex Register XIndex Register YStack PointerProgram Counteror 16-Bit Double Accumulator D771500000001
20、5151515PCSPYXDBA70EPAGE *70RPAGE *70PPAGE *60GPAGE *Condition Codes Register CCRS X H I N Z V C700 0 0 0 0 I P L2.2.3 CPU的构成 核心寄存器组30College of Communication Engineering, Jilin University1、16位累加器D或8位累加器A和B 作用:保存操作数和运算结果作用:保存操作数和运算结果 2、16位变址(间接寻址)寄存器X和Y 作用:多种寻址方式下的地址计算作用:多种寻址方式下的地址计算8-Bit Accumulator
21、s A and Bor 16-Bit Double Accumulator D7715000DBAIndex Register XIndex Register Y001515YX2.2.3 CPU的构成 核心寄存器组31College of Communication Engineering, Jilin University3、16位堆栈指针SP 作用:数据指针,指向堆栈空间作用:数据指针,指向堆栈空间4、16位程序计数器PC 作用:作用:Stack Point015SPProgram Counter015PC2.2.3 CPU的构成 核心寄存器组32College of Communica
展开阅读全文