MC9S12XS128核心板原理图
第9章_MC9S12XS128定时器模块及其应用实例

第9章 MC9S12XS128定时器模块 及其应用实例
本节内容
• 9.3 TIM模块的自由运行计数器和定时 器基本寄存器及设置
• 9.3.1 自由运行主定时器与时钟频率设置
• 9.3.2 TIM模块基本寄存器及设置
第9章 MC9S12XS128定时器模块及 其应用实例
9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置
【状态寄存器】
第9章 MC9S12XS128定时器模块及 其应用实例
9.1 TIM模块概述
9.2.4 TIM模块中断系统
【ECT模块中断源】 • • • TIM模块共有11个中断源: 1个自由运行定时器溢出中断 8个定时器通道中断
• 1个脉冲累加器输入中断
• • 1个脉冲累加器溢出中断 TIM模块只检测中断并产生中断
9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置
9.3.1 自由运行主定时器与时钟频率设置 • 定时器系统控制寄存器TSCR1中的TEN位是TIMCLK时钟的总开关。
第9章 MC9S12XS128定时器模块及 其应用实例
• 当TEN=0时,自由运行主定时器的时钟被关断,定时器停止工作,但 并不影响脉冲累加器在事件计数方式下的正常工作。 • 输出比较通道7(OC7)对自由运行主定时器具有特殊的控制功能。 • 当定时器系统控制寄存器TSCR2中的控制位TCRE=1时,如果OC7比较成 功,则定时器计数寄存器TCNT自动复位到$0000。这样可利用OC7实现 TCNT在$0000~$xxxx(<$FFFF)之间的循环计数,从而在保持较高时 钟频率(高分辨力)前提下,缩短计数周期,以满足特殊需要。
• 9.2.3 TIM模块寄存器
• 9.2.4 TIM模块中断系统
基于MC9S12XS128的电磁智能小车的硬件设计_高海沙

《微型机与应用》2016年第35卷第7期基于MC9S12XS128的电磁智能小车的硬件设计高海沙,丁晓慧(商丘学院,河南商丘476000)摘要:若要实现小车的直立行走,应该构建良好的硬件平台。
本文按照电磁车体系结构,简单介绍了智能小车的硬件设计模块,主要包括电源、核心控制、传感器、执行机构和人机接口等部分。
各部分相互协调,最终使小车能够在最短的时间内沿着规定的轨迹快速稳定地运行。
关键词:MC9S12XS128单片机;传感器;电机中图分类号:TN9文献标识码:A文章编号:1674-7720(2016)07-0028-02引用格式:高海沙,丁晓慧.基于MC9S12XS128的电磁智能小车的硬件设计[J ].微型机与应用,2016,35(7):28-29.The hardware design of the intelligent electromagnetic car based on the MC9S12XS128Gao Haisha ,Ding Xiaohui(Shangqiu University ,Shangqiu ,476000,China )Abstract :As everybody knows that it should create a good hardware platform before the car can go standly.This article introduces the hardware design modules of the intelligent car which includes the power ,the core controller ,the sensors ,the executing agency ,the HMI and so on.All of the modules should be coherent with another so that the intelligent car can go fast and stablely along the set track using the shortest time.Key words :MC9S12XS128;sensors ;electrical machine引言图1整体框架图随着电子技术的不断发展[1],能够自动进行识别轨迹的智能小车得到了广泛的应用[2]。
MC9S12XS128 PIT模块

言归正传,开始讲PIT,讲PIT,我准备先简单讲讲寄存器,之前不讲主要是基本上买的到的书都是DG128的,里面关于IO口的寄存器和PWM的寄存器都是完全可以照搬的,而这一章的东西照搬是要出问题的。
核心内容就在这张图上:相信大家都明白总线的概念,在图中可以看到6个定时器模块,Micro Timer 0、Micro Timer 1、Timer 0、Timer 1、Timer 2、Timer 3,其中前两个是8位的,后四个是16位的。
从图中可以看出PIT模块是以总线时钟(Bus Clock)为基准时钟的,总线时钟通过8位Micro Timer 0和Micro Timer 1倍频形成两个基时钟,即Micro Timer Base 0和Micro Timer Base 1,这两个基时钟通过16位Timer给PIT提供时钟(通过寄存器PITMUX设置)。
原理讲完了,其实相对于PIT模块是一个24位的定时器(51单片机最多也就16位),这个计数范围还是蛮大的。
下面是一些寄存器的解释,解释完还是看代码吧。
S12PIT24B4CV1是一个模数递减计数器。
首先给计数寄存器设定一个初值,每经过一个总线周期,计数器进行一次减一操作,当计数器自减溢出时,触发中断。
因为总线周期是已知的,即可以通过计数器自减实现定时。
在XS128PIT模块中,需要用到得是如下几个寄存器。
1)、PIT Contorl and force Lad Micro Timer Register(PITCFLMT)该寄存器用于PIT模块的使能设置和工作方式设置。
通常设置该寄存器中的PITE为即可,即PITCFLMT_PITE=1,使PIT使能。
2)、PIT Channel Enable Register(PITCE)该寄存器用于对PIT模块中的4个通道使能进行设置。
如果使用某个通道时,对对应位进行置一即可,即PITCE_PCEx=1,其中x代表通道序号,为0~3。
飞思卡尔MC9S12XS128单片机重点模块讲解

基于飞思卡尔 MC9S12XS128MCU 的模块讲解及测试
安徽工业大学 自动化系 刘昌元 delay(500); if(LED==0x80) LED=0x01; } } 综合以上的两段代码看在 52 单片机和 128 单片机上编程思路基本上没大的区别,唯一的区 别就是 128 单片机有数据方向寄存器来管理 I/O 口。 � 将部分端口做输入口使用,另外一部分端口做输出口使用时:例如我们将 PORTB 的端 口 B7 用来做输入口,B0-B5 口做输出指示,测试代码如下:
�
以端口 A 和端口 B 为例讲解,以上是我截取的技术手册上的,从上来看 A 口和 B 口各 有 8 个口,且 A0-A7;B0-B7 全部作为 GPIO (通用输入输出口 )使用。此处 A 口和 B 口 使用方法是一样的,我姑且就以端口 A 来讲解。 A 口和 B 口作为通用输入输出口使用时我们只需要掌握 4 个寄存器即可。 PORTA (A 口
�
这一点和 51 单片机的 I/O 口有区别,在典型的 51 单片中 P0 口内部没有上拉电阻,但作为 I/O 口使用时需要外接排阻。其他 P1-P3 口则可以直接作为双向口使用,51 单片在上电复位 后端口被默认的置 1.在 51 单片中端口的某一位置 0 时端口作为输出口使用,置 1 时作为输 入口使用。例如如果我们想把 P1 作为输出口使用时我们可以在程序开始时写 P1=0x00; 如果 我们想把 P1 口作为输入口使用时我们可以写 P1=0xff; 这一点正好和飞思卡尔的 128 单片机 相反,另外 128 单片有专门的数据方向寄存器 DDRA 或者 DDRB 等来管理各个端口的输入 输出选择,51 单片没有。如果我们想把端口 A 作为输入口使用,我们只需写 DDRA=0x00; 即所有位都置 0,如果我们想把端口 A 作为输出口使用,我们只需要写 DDRA=0xff; 即所有 位都置 1 ,而如 果我们想要 把端口 A 的高四 位做输入口 ,低 4 位做输 出口时我们 就 写 DDRA=0x0f; 当我们需要将该端口的某一位做输出或者输入口使用时只需要将该端口对应的 方向位置 1 或者置 0 即可。例如我们想把 A3 口作输入口, A4 口作输出口使用时我们只需 要写: DDRA_DDRA3=0; DDRA_DDRA4=1; 即可。 � � 对于数据方向寄存器的使用只要记住:置 1——输出 置 0——输入 PORTA 数据寄存器也是由 8 位组成,任何时候都可以对它进行读写操作。
飞思卡尔MC9S12XS128单片机重点模块讲解

�
这一点和 51 单片机的 I/O 口有区别,在典型的 51 单片中 P0 口内部没有上拉电阻,但作为 I/O 口使用时需要外接排阻。其他 P1-P3 口则可以直接作为双向口使用,51 单片在上电复位 后端口被默认的置 1.在 51 单片中端口的某一位置 0 时端口作为输出口使用,置 1 时作为输 入口使用。例如如果我们想把 P1 作为输出口使用时我们可以在程序开始时写 P1=0x00; 如果 我们想把 P1 口作为输入口使用时我们可以写 P1=0xff; 这一点正好和飞思卡尔的 128 单片机 相反,另外 128 单片有专门的数据方向寄存器 DDRA 或者 DDRB 等来管理各个端口的输入 输出选择,51 单片没有。如果我们想把端口 A 作为输入口使用,我们只需写 DDRA=0x00; 即所有位都置 0,如果我们想把端口 A 作为输出口使用,我们只需要写 DDRA=0xff; 即所有 位都置 1 ,而如 果我们想要 把端口 A 的高四 位做输入口 ,低 4 位做输 出口时我们 就 写 DDRA=0x0f; 当我们需要将该端口的某一位做输出或者输入口使用时只需要将该端口对应的 方向位置 1 或者置 0 即可。例如我们想把 A3 口作输入口, A4 口作输出口使用时我们只需 要写: DDRA_DDRA3=0; DDRA_DDRA4=1; 即可。 � � 对于数据方向寄存器的使用只要记住:置 1——输出 置 0——输入 PORTA 数据寄存器也是由 8 位组成,任何时候都可以对它进行读写操作。
#define uchar unsigned char //数据类型宏替换 #define uint unsigned int /*------------------------延时函数--------------------------------------*/ void delay(uint a) { uint i,j; for(i=0;i<a;i++) for(j=0;j<a;j++) ; } /*--------------------------指示灯闪烁函数-------------------------------*/ void light() { while(INPUT) { PORTB=0x3f; delay(500); PORTB=0x00; delay(500); } } //6 只灯全点亮 //延时一段时间 //6 只灯全熄灭 //延时一段时间 //判断输入电平的高低
mc9s12xs128程序教程

711 次
该寄存器是 0~7 通道 PWM 输出起始极性控制位,用来设置 PWM 输出的起始 电平。
用法:PWMPOL_PPOL0=1--- 通道 0 在周期开始时输出为高电平,当计数 器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变 为低电平。
2、PWM 波形对齐寄存器 PWMCAE
该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。这 两种模式如图 10 和图 11 所示。
图 10 等待模式
图 11 冻结模式
只有当相应的通道关闭后,才能改变 这些控制字。 用法: PWMCTL_CON67=1 --- 通道6、7 级联成一个 16 位的 PWM 通道。此 时只有7 通道的控制字起作用,原通道 7 的使能位、PWM 输出极性选择位、时 钟选择控制位以及对齐方式选择位用来设置级联后的 PWM 输出特性 PWMCTL_CON67=0 --- 通道6,7 通道不级联 CON45、CON23、CON01 的用法同 CON67 相似。设置此控制字的意 义在于扩大了PWM 对外输出脉冲的频率范围。 PSWAI=1 --- MCU 一旦处于等待状态,就会停止时钟的输入。这样就不 会因时钟在空操作而费电;当它置为0,则MCU 就是处于等待状态,也允许 时钟的输入。 PFRZ=1 --- MCU 一旦处于冻结状态,就会停止计数器工作。 (责任编辑:dzsj8)
1、PWM 预分频寄存器 PWMPRCLK
PWMPRCLK 寄存器每一位如图 3 所示:
复位默认值:0000 0000B
813 次
图3 PWMPRCLK 寄存器
PWMPRCLK 寄存器包括 ClockA 预分频和 ClockB 预分频的控制位。ClockA、 ClockB 的值为总线时钟的 1/2n (0≤n≤7),具体设置参照图 4 和图 5
MC9S12单片机原理及嵌入式应用开发技术第2章 单片机内部结构

4个要素 Two input data -- operands(操作数) instruction -- operation(运算) Status -- flag(标志位) one output data -- result(运算结果)
Quiz: 下面几个操作中,4要素分别为? A+B=C A>B? A >>= 1
ms CAN 1
ms CAN 0 or BDLC
PIM
AD0
AD1
PWM 8 CHAN
College of Communication Engineering, Jilin University
4
2.1 MC9S12XS单片机的性能
2.1.2 S12XS系列单片机主要功能模块
1.16位CPU 2.内部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协议;一个SPI; 9.中断模块:最多20个带位中断的外部中断引脚,中断源 细分 为7级; 10.时钟模块:可通过内部锁相环使片内总线速度提升到最高 40MHz。
Memory peripheral
College of Communication Engineering, Jilin University
11
A complete CPU
College of Communication Engineering, Jilin University
12
CPU – the core of microcontroller
S12XS128程序--ECT模块介绍

1、简述MC9S12XS128定时器模块与MC9S12DG128 ECT部分功能完全类似,以下均以ECT模块介绍xs128定时器模块。
HC12 增强型捕捉计时器模块在HCS12标准定时器的基础上增加了一些特点,用以扩展它的应用范围,特别是在汽车 ABS 方面。
基准计时器的核心仍然是一个16 位的可编程计数器,其时钟源来自一个预分频器。
该计时器可以被应用于多个方面,包括在对输入波形进行测量的同时产生一个输出波形。
波形的脉宽可以在几微秒到数秒的范围内变化。
增强型定时器模块(ECT)的结构框图如下,ECT功能相当于高速的I/O口,由一个4位预分频器、一个16位自由运行计数器,8个16位IC/OC通道,2个16位脉冲累加器以及一个16位模数递减计数器组成。
ECT实际上是一个16位的可编程计数器,它的基本时钟频率可以通过预分频器设置,用于产生波形输出,测量输入波形,统计脉冲个数,可以作为定时中断功能和独立时钟基准。
2、运行模式停止:由于时钟停止,计时器和计数器均关闭。
冻结:计时器和计数器均保持运行,直到TSCR($06)的TSFRZ 位被置1。
等待:计数器保持运行,直到TSCR($06)的TSWAI 位被置1。
正常:计时器和计数器均保持运行,直到TSCR($06)的TEN 位和MCCTL($26)的MCEN 位被分别清0。
IC 通道组IC 通道组由四个标准的缓冲通道IC0-IC3 和四个非缓冲通道IC4-IC7 组成,两部分的基本功能都是捕捉外部事件发生的时刻,但是缓冲通道除了IC/OC 寄存器 TCn 外,还设有保持寄存器TCnH,此外还在入口设置了延迟计数器,用来提高抗干扰能力。
非缓冲通道没有保持寄存器,入口也没有延迟计数器,但每个通道入口设置了一个 2 输入端的多路器,事件触发信号可以是来自本通道的输入引脚PORTn,也可以是来自其关联通道PORT(n-4)的延迟计数器输出,使用更加灵活。
当延迟功能有效时,输入引脚检测到一个有效的边沿后,延迟计数器开始对P 时钟(模块时钟)进行计数,当到达设定的计数值后,延迟计数器在其输出端有条件地产生一个脉冲,这个条件就是延迟前后的引脚电平相反。