版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 IO接口及增强型捕捉定时器模块 1 实验内容 实验实验4 4:掌握:掌握9S129S12单片机单片机IOIO口的基本程序调试,学会使用口的基本程序调试,学会使用BDMBDM和实际实验系统编程和实际实验系统编程 下载:下载: 事先看一下实验板原理图和事先看一下实验板原理图和CodeWarrior V5.0开发环境快速入门开发环境快速入门-工程创建工程创建 for 9S12DG128B.doc或或CodeWarrior V5.0开发环境快速入门开发环境快速入门-工程创建工程创建 for 9S12XDT512等等.doc(一部分同学的实验板是带协处理器的(一部分同学的实验板是带协处理器的9S
2、12XDT512或或 DP512等等),拿到实验板后先看一下板上单片机的型号。),拿到实验板后先看一下板上单片机的型号。 1.1.编写并实现编写并实现LEDLED排灯排灯(D2D10)(D2D10)显示程序,实现花灯显示,即显示程序,实现花灯显示,即0101010101010101和和 1010101010101010动态显示(动态显示(0 0表示灯灭,表示灯灭,1 1表示灯亮);表示灯亮); 2.2.编写并实现编写并实现LEDLED排灯排灯(D2D10)(D2D10)显示程序,分别实现从左向右逐个点亮和从显示程序,分别实现从左向右逐个点亮和从 右到左逐个点亮的流水灯显示;右到左逐个点亮的流水
3、灯显示; 3.3.编写并实现编写并实现LEDLED排灯排灯(D2D10)(D2D10)显示程序,实现按键与显示程序,实现按键与LEDLED的关联,即的关联,即4 4个按个按 键键S3S6S3S6控制控制4 4个个LEDLED灯,按键按下相应的灯亮,松开相应的灯灭。灯,按键按下相应的灯亮,松开相应的灯灭。 要求要求1. 1. 用到延时的地方需用软件延时实现。用到延时的地方需用软件延时实现。 2. 2. 有完整的程序和注释,并最后总结实现原理。有完整的程序和注释,并最后总结实现原理。 第七章 IO接口及增强型捕捉定时器模块 2 实验实验5 5:掌握:掌握9S129S12单片机单片机ECTECT模块
4、的使用方法模块的使用方法 要求要求1. 1. 描述什么是输入捕捉和输出比较,描述描述什么是输入捕捉和输出比较,描述9S129S12单片机单片机ECTECT模块模块 主要寄存器设置;主要寄存器设置; 2. 2. 用用ECTECT模块延时代替实验模块延时代替实验6 6中用到的软件延时,实现实验中用到的软件延时,实现实验6 6中中 的各种的各种LEDLED排灯排灯(D2D10)(D2D10)显示效果;显示效果; 3. 3. 要有完整的程序和注释,并最后总结实现原理。要有完整的程序和注释,并最后总结实现原理。 第七章 IO接口及增强型捕捉定时器模块 3 实验实验6 6:掌握:掌握9S129S12单片机
5、实现数码管显示单片机实现数码管显示 要求要求1. 1. 在四位数码管上循环显示共个数中的某连续四在四位数码管上循环显示共个数中的某连续四 位,如下图所示;位,如下图所示; 2. 2. 程序中需要延时的地方用软件延时实现;程序中需要延时的地方用软件延时实现; 3. 3. 要有完整的程序和注释,并最后总结实现原理。要有完整的程序和注释,并最后总结实现原理。 0 1 2 3 4 5 6 7 8 9 A B C D E 第七章 IO接口及增强型捕捉定时器模块 4 实验实验7 7:掌握:掌握9S129S12单片机实现数码管显示单片机实现数码管显示 要求要求1. 1. 在四位数码管上循环显示共个数中的某连
6、续四在四位数码管上循环显示共个数中的某连续四 位,如下图所示;位,如下图所示; 2. 2. 程序中需要延时的地方用程序中需要延时的地方用ECTECT模块延时实现;模块延时实现; 3. 3. 要有完整的程序和注释,并最后总结实现原理。要有完整的程序和注释,并最后总结实现原理。 0 1 2 3 4 5 6 7 8 9 A B C D E 第七章 IO接口及增强型捕捉定时器模块 5 实验实验8 8:掌握:掌握9S129S12单片机单片机ADAD和显示综合编程与调试和显示综合编程与调试 要求要求1.1.实验板上单片机实验板上单片机ADAD模块的模块的AN15AN15引脚接了可调电位器引脚接了可调电位器
7、RV1RV1(见(见 实验板原理图),要求实现对可调电位器上的电压进行实验板原理图),要求实现对可调电位器上的电压进行ADAD转换转换 ( 1010位精度位精度),并对采样结果进行数字滤波,即对采样多次),并对采样结果进行数字滤波,即对采样多次 (如(如1010次)的结果排序并掐头去尾求平均值,将滤波后的结果次)的结果排序并掐头去尾求平均值,将滤波后的结果 (转换成十进制)送四位数码管显示;(转换成十进制)送四位数码管显示; 2. 2. 调节可调电位器,观察数码管显示变化规律;调节可调电位器,观察数码管显示变化规律; 3. 3. 要有完整的程序和注释,画出程序流程图并最后总结实现要有完整的程序
8、和注释,画出程序流程图并最后总结实现 原理。原理。 AD采样数字滤波 第七章 IO接口及增强型捕捉定时器模块 6 第七章 IO接口及增强型捕捉定时器模块 7-1 7-1 通用通用I/OI/O接口接口 7-2 I/O7-2 I/O接口的功能及设置方法接口的功能及设置方法 7-3 7-3 增强型定时器增强型定时器ECTECT模块模块 内容提要内容提要: : 第七章 IO接口及增强型捕捉定时器模块 7 7-1 通用I/O接口 第七章 IO接口及增强型捕捉定时器模块 8 I/O 检测 控制 第七章 IO接口及增强型捕捉定时器模块 9 PORTA、PORTB、PORTE和PORTK在芯片处于扩展方式 下
9、被用作总线信号 第七章 IO接口及增强型捕捉定时器模块 10 PORTT、PORTP、PORTS、PORTM、PORTJ和PORTH被集成在 端口集成模块(PIM)内 ,与片内其他功能模块的引脚复用 第七章 IO接口及增强型捕捉定时器模块 11 并行I/O口复用模块 PORTJCAN4,I2C模块 PORTPSPI1,PWM模块 PORTMCAN0,CAN1,CAN4,SPI0模块 PORTTECT模块 PORTSSCI模块 PORTADATD模块 MC9S12DG128单片机并行单片机并行I/O的复用功能的复用功能 第七章 IO接口及增强型捕捉定时器模块 12 7-2 I/O接口的功能及设置
10、方法 通用I/O接口一般可以设置输入输出、驱动能力、内部上拉或下拉 电阻、中断输入等功能,每个I/O接口都有各自的寄存器。 数据寄存器:数据寄存器:并行I/O接口都有数据寄存器进行数据的读取和发送 并行I/O口 数据寄存器 PORTA PORTA PORTB PORTB PORTE PORTE PORTJ PTJ(Port J I/O Register:可读写), PTIJ(Port J Input Register:只读) PORTP PTP,PTIP(意义类上) PORTM PTM,PTIM(意义类上) PORTT PTT,PTIT(意义类上) PORTS PTS,PTIS(意义类上) P
11、ORTHPTH, PTIH(意义类上) PORTAD PORTAD 第七章 IO接口及增强型捕捉定时器模块 13 Port J I/O Register (PTJ) Read:Anytime. Write:Anytime. If the data direction bits of the associated I/O pins are set to 1, a read returns the value of the port register, otherwise the value at the pins is read. Port J Input Register (PTIJ) Rea
12、d:Anytime. Write:Never, writes to this register have no effect. This register always reads back the status of the associated pins. This can be used to detect overload or short circuit conditions on output pins. 第七章 IO接口及增强型捕捉定时器模块 14 方向寄存器方向寄存器 MC9S12单片机中的I/O接口除了PORTAD只可作为输入口外, 一般都是双向并行口,因此都配置了一个方向寄
13、存器“DDRx”, I/O接口每个引脚的输入输出方向由各方向寄存器的对应位来设 置。方向寄存器的某位为“0”表示相应的引脚为输入引脚;为 “1”表示相应的引脚为输出引脚。 并行I/O口 方向寄存器 特点 PORTA DDRA - PORTB DDRB - PORTE DDRE 低2位只能作输入 PORTJ DDRJ 高2位有效 PORTP DDRP - PORTM DDRM - PORTT DDRT - PORTS DDRS - PORTH DDRH - PORTAD - 只作输入口 第七章 IO接口及增强型捕捉定时器模块 15 驱动控制寄存器驱动控制寄存器 MC9S12单片机可以设置I/O接
14、口的驱动能力,当I/O接口为输出 口时此功能有效。此寄存器的相应位为“1”,则表示全额驱动 能力;为“0”,则表示缩减驱动能力,后者的驱动能力是前者 的三分之一。 并行I/O口 驱动控制寄存器 特点 PORTA RDRIV.BIT0 1bit控制整个I/O口 PORTB RDRIV.BIT1 1bit控制整个I/O口 PORTE RDRIV.BIT4 1bit控制整个I/O口 PORTJ RDRJ - PORTP RDRP - PORTM RDRM - PORTT RDRT - PORTS RDRS - PORTH RDRH - PORTAD - - 第七章 IO接口及增强型捕捉定时器模块 1
15、6 拉电阻控制寄存器拉电阻控制寄存器 MC9S12单片机的各个I/O接口内置了拉电阻,可 以通过编程来设置是否使用拉电阻。 拉电阻的主要作用是当电路驱动器关闭时给线路 (节点)一个固定电平,可以提高总线的抗电磁 干扰能力。拉电阻控制寄存器的相应位为“1”, 则使用拉电阻;为“0”,则不使用拉电阻。 另外,可以使用极性选择寄存器选择拉电阻的极 性,即选择拉电阻为上拉或者下拉,相应位为“1” 则表示下拉电阻,为“0”则表示上拉电阻。注意, PORTA、PORTB和PORTE只能使用上拉电阻,所 以并不设有极性选择寄存器。 第七章 IO接口及增强型捕捉定时器模块 17 并行I/O口 拉电阻控制寄存器
16、 极性选择寄存器 特点 PORTA PUCR.BIT0 -(只能使用上拉) 1bit控制整个I/O口 PORTB PUCR.BIT1 -(只能使用上拉) 1bit控制整个I/O口 PORTE PUCR.BIT4 -(只能使用上拉) 1bit控制整个I/O口 PORTJ PERJ -(只能使用上拉) - PORTP PERP -(只能使用上拉) - PORTM PERM PPSM - PORTT PERT PPST - PORTS PERS PPSS - PORTH PERH PPSH - PORTAD - - - 第七章 IO接口及增强型捕捉定时器模块 18 中断允许、标志寄存器中断允许、标志
17、寄存器 MC9S12单片机的I/O接口PORTJ、PORTP、PORTH。具有中断功 能,可以通过软件编程来允许或禁止。相应位为“1”表示允许中 断,“0”表示禁止中断。 具有中断能力的I/O口都有各自的中断标志寄存器。对应位为“1” 表示有中断发生,“0”表示无中断发生。 另外,还有中断边沿选择寄存器,相应位为“1”表示上升沿中断, “0”表示下降沿中断。当检测到有效中断边沿时,中断标志寄存 器PIFJ相应位被置一,产生中断并进入相应的中断服务程序。 并行I/O口 中断使能寄存器 中断标志寄存器 边沿选择寄存器 PORTJ PIEJ PIFJ PPSJ PORTP PIEP PIFP PPS
18、P PORTH PIEH PIFH PPSH 第七章 IO接口及增强型捕捉定时器模块 19 课本6.1.2 程序举例程序举例 第七章 IO接口及增强型捕捉定时器模块 20 8 缓冲器 第七章 IO接口及增强型捕捉定时器模块 21 #include #include void interrupt 24 PJI(void); /* 声明中断函数*/ void main(void) EnableInterrupts; DDRJ=0 x00;/*PORTJ作为输入*/ DDRB=0 xFF;/*PORTB作为输出*/ PORTB=0 xff;/*灯全灭*/ DDRA=0 xff;/*PORTA输出*/
19、 PORTA=0 x00;/*PORTA全为低电平*/ PPSJ=0 xff;/*上升沿中断*/ PIEJ=0 xff;/*中断使能*/ for(;)PORTA=0b11000000;/*产生中断*/ #pragma CODE_SEG NON_BANKED void interrupt 24 PJI(void)/*中断服务程序,中断向量号为24*/ PORTB=0 xf0;/*LED灯高四灭,低四亮*/ #pragma CODE_SEG DEFAULT /9S12中断程序必须定位于non- /banked 区域,必须有这两个pragma语句 第七章 IO接口及增强型捕捉定时器模块 22 课本6
20、.1.2 程序说明程序说明 使用PORTJ口的中断功能。设置PORTA口为输出口,PORTA 的第6脚和PORTJ的第6脚硬件相连,PORTB为输出口,用来 控制8个LED灯,PORTJ开中断,并且设置为上升沿触发。首 先PORTA初始化为0,PORTB为0 xff,此时LED灯全灭。在循 环中设置PORTA第6位为高电平,产生中断,在中断服务程序 中设置LED灯低4位亮,高4位不亮,表示已经进入中断。 第七章 IO接口及增强型捕捉定时器模块 23 如何得知中断向量号? 向量号0 向量号1 向量号24 依次向下数 中断向量表(书上有) 第七章 IO接口及增强型捕捉定时器模块 24 本课程实验板
21、原理图见pdf文件 另参考“实验板上所用芯片”中的文档 前面那个例程不适用本课程实验板 第七章 IO接口及增强型捕捉定时器模块 25 让实验板上的小灯(让实验板上的小灯(D10D2)循环点亮)循环点亮 #include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE mc9s12dg128b void deley(unsigned int d) int i; for(i=0;i=1; if(d=0) d=0 x80; for(;) /* wait
22、 forever */ /* please make sure that you never leave this function */ 第七章 IO接口及增强型捕捉定时器模块 26 该程序也可写成如下:该程序也可写成如下: #include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE mc9s12dg128b #define PortA *(volatile unsigned char *)0) #define DdrA *(volati
23、le unsigned char *)2) void deley(unsigned int d) int i; for(i=0;i=1; if(d=0) d=0 x80; for(;) /* wait forever */ 第七章 IO接口及增强型捕捉定时器模块 27 IC/OC的定义: Input Capture/Output Compare 输入捕捉和输出比较 IC用来监测外部的事件和输入信号。当外部事件发生或信 号发生变化时,在指定的输入捕捉引脚发生一个指定的沿跳 变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到 特定的沿跳变后,把计数寄存器当前的值锁存到通道寄存器。 ECT模块有8
24、个IC通道分别为IC0-IC7,IC0-IC3是标准的带有 保持器的缓冲通道,而IC4-IC7不带有保持器。 OC用程序的方法在规定的时刻输出需要的电平,实现对 外部电路的控制。通道为OC0-OC7。 ECT模块的外部引脚: 共有8个外部引脚,分别为IOC0IOC7,与PORTT复用。 7-3 增强型定时器ECT模块 第七章 IO接口及增强型捕捉定时器模块 28 ECT 模块结构模块结构 一个16位向上带可编程 预分频的主计数器. 一个16位的带可编程预 分频的模数向下计数器 8个独立的定时器通道, 每个通道具备输入捕捉 和输出比较功能 4个8位脉冲累加器,也 可设置成2个16位脉冲 累加器.
25、 通过对寄存器编程可以 实现不同的功能 第七章 IO接口及增强型捕捉定时器模块 29 定时器结构定时器结构 预分频选择 PR2:0 M Clock 1 2 4 8 16 32 64 128 TCNT 15.0 DATA BUS PIN RRRR 1 计数器使能 0 计数器禁止 TEN TSWAI TSFRZ TFFCA TSCR1 -定时器控制寄存器 RST: 0 0 0 0 0 0 0 0 TCNT CLK . TEN B0.B7 B8.B15 R = Reserved $0006 Address Offset $0004, 05 $FFFE $FFFF$0000 * * * *TOF 模块
26、时钟 计数器寄存器 脉冲累加器 计时器溢出时,对溢出标志位 置位,如允许中断,则向CPU 发出中断请求 第七章 IO接口及增强型捕捉定时器模块 30 定时器,预分频,计数器定时器,预分频,计数器 寄存器: 1. TCNT 16 位自由运行/模计数器 B15.B0 RST: 0.0 Address Offset $0004, $0005 1 定时器溢出中断使能 0 定时器中断禁止 $000D 3. TSCR2 RST: 0 0 0 0 0 0 0 0 1 定时器由OC7比较符合时复位 0 定时器自由运行 TCRE - 允许使用PWM功能 B7.B0 TOI 0 0 0 TCRE PR2 PR1
27、PR0 2. TFLG2 定时器溢出标志位,写 1 清零 TOF 0 0 0 0 0 0 0 B7.B0 RST: 0 0 0 0 0 0 0 0 $000F 标志寄存器 除以 1 2 4 8 16 32 64 128 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 PR2 PR1 PR0 预分频系数选择 第七章 IO接口及增强型捕捉定时器模块 31 编程步骤编程步骤 用途: 产生定时器溢出中断 初始化 1.设定预分频系数 2.定时器溢出中断使能 3.定时器使能 中断函数 1.清标志位 2.用户自己的代码 void ECT_Init(void)
28、TSCR2_PR = 7; /prescale factor is 8, bus clock/128 TSCR2_TOI = 1; /timer overflow interrupt enable TSCR1_TEN = 1; /timer enable void interrupt 16 Int_TimerOverFlow(void) TFLG2_TOF = 1; /clear timer overflow flag /用户自己的代码用户自己的代码 . 第七章 IO接口及增强型捕捉定时器模块 32 定时器溢出中断例程(可在实验板上运行)定时器溢出中断例程(可在实验板上运行) #include
29、 /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE mc9s12dg128b #pragma CODE_SEG NON_BANKED /9S12中断程序必须定位于中断程序必须定位于non-banked 区域区域 interrupt 16 void Int_TimerOverFlow(void) TFLG2_TOF = 1; /clear timer overflow flag /用户自己的代码用户自己的代码 PORTA=PORTA; #pragma
30、 CODE_SEG DEFAULT /9S12中断程序必须定位于中断程序必须定位于 /non-banked 区域,必须有这两个区域,必须有这两个pragma语句语句 第七章 IO接口及增强型捕捉定时器模块 33 void main(void) EnableInterrupts; TSCR2_PR0 = 1; TSCR2_PR1 = 1; TSCR2_PR2 = 0; /prescale factor TSCR2_TOI = 1; /timer overflow interrupt enable TFLG2_TOF = 1; TSCR1_TEN = 1; /timer enable DDRA=0
31、 xFF; PORTA=0 xFF; for(;) 第七章 IO接口及增强型捕捉定时器模块 34 输出比较功能输出比较功能 16位自由运行计数器 16位输出比较寄存器 比如设置为: 0 x5678 ,软件可以修改 引脚控制逻辑 中断请求 CxF 状态标志位置位, 当比较发生时(值相等时) CxI 中断屏蔽 (通过软件使能) 共有8个输出比较通道 每个通道有自己的向量表和控制寄存器 在特定的时刻输出一个信号 当比较寄存器的值和计数 器的值相等时,采取行动 比如:当TCNT=0 x5678 TCNT TCx Pin OCx 比较 比较器 相等 置位 OR OR 清零 翻转 第七章 IO接口及增强型
32、捕捉定时器模块 35 输出比较寄存器输出比较寄存器 C7F C6F C5F C4F C3F C2F C1F C0F OM7OL7OM6OL6OM5OL5OM4OL4 1. TC7 TC0 2. TFLG1 3. TIE 4. TCTL1 比较/捕捉标志位 写 1清除中断状态标志位 比较/捕捉屏蔽位 0 = 屏蔽中断请求 1 = 中断请求允许 OMXOLXAction on OCx 0 0 1 1 0 1 0 1 No Action OCx Toggle OCx Drive OCx LO Drive OCx HI 输出模式和输出电平 (O7OC0) B6B5B4B3B7B2B1B0 5. TCT
33、L2 B6B5B4B3B7B2B1B0 RST: 0 0 0 0 0 0 0 0 $0008 RST: 0 0 0 0 0 0 0 0 RST: 0 0 0 0 0 0 0 0 RST: 0 0 0 0 0 0 0 0 $000C $000E $0009 Address Offset $0010 - $0011 - - $001E - $001F 16 位捕捉/比较寄存器 (TC7) 16 位捕捉/比较寄存器 (TC0) - - C7I C6I C5I C4I C3I C2I C1I C0I B6B5B4B3B7B2B1B0 OM3OL3OM2OL2OM1OL1OM0OL0 B6B5B4B3B
34、7B2B1B0 FOC7 FOC6 FOC5 FOC4 FOC3 FOC2 FOC1 FOC06. CFORC B7 B6 B5 B4 B3 B2 B1 B0 RST: 0 0 0 0 0 0 0 0 $0001输出强制比较寄存器 第七章 IO接口及增强型捕捉定时器模块 36 输出比较输出比较, OC7-OC0 中断: 清除中断,对TFLG1 其中的CxF写1 不要使用位操作 使用OC7-OC0向量表 单片机复位时: 自由运行计数器(TCNT)被初始化为$0000,并 且被禁止 输出比较寄存器被初始化为$0000 捕捉/比较引脚与比较功能断开 中断被禁止 标志位被清零 强制比较位被清零 第七章
35、 IO接口及增强型捕捉定时器模块 37 输出比较输出比较, 通道通道7 OC7 (1 of 2) 用途: 1、多个输出比较引脚的控制 2、通过2个输出比较来控制1个引脚,可以输出短脉冲 在每个时钟周期内,输出比较寄存器7和自由运行的计数器进行比较 如果它们的值相等,则: 1、中断标志位被置1 2、输出引脚OC7-OC0的状态被改变 或/和 产生中断 OC7可以影响多个引脚(OC7-OC0) 当OC7和OC7-OC0某个引脚的动作有冲突时,OC7的动作将被执行 第七章 IO接口及增强型捕捉定时器模块 38 输出比较输出比较 7 (2 of 2) C7I C6F C5F C4F C3F C2F C
36、1F C0F OC7M7 OC7M6 OC7M5 OC7M4 OC7M3 OC7M2 OC7M1 OC7M0 4. TIE 定时器中断允许使能 5. OC7M - OC7MASK B7.B0 1 - TC7 -16 位比较寄存器7. RST: 0 0 0 0 0 0 0 0 RST: 0 0 0 0 0 0 0 0 $0002 $000C C7F C6F C5F C4F C3F C2F C1F C0F RST: 0 0 0 0 0 0 0 0 $000E B7.B0 2. TCNT - 16-位计数器 B15.B0 RST: 0. .0 $0004, $05 B7.B0 3. TFLG1 标志
37、位 OC7D7 OC7D6 OC7D5 OC7D4 OC7D3 OC7D2 OC7D1 OC7D0 6. OC7D - OC7DATA RST: 0 0 0 0 0 0 0 0 $0003 B7.B0 OC7MASK 根据寄存器的设置,可以 控制任意一路或全部输出比较引脚 OC7DATA 当OC7比较事件 发生时,引脚的逻辑电平 第七章 IO接口及增强型捕捉定时器模块 39 定时器溢出时电平翻转定时器溢出时电平翻转 TOV7 TOV6 TOV5 TOV4 TOV3 TOV2 TOV1 TOV0 TOVx 定时器溢出时,电平翻转 只有当通道被配置成输出比较时,才有效 Address Offset
38、 $0007 RST: 0.0 1. TTOV -定时器溢出时电平翻转寄存器 $000D 2. TSCR2 定时器系统控制寄存器 RST: 0 0 0 0 0 0 0 0 B7.B0 TOI 0 0 0 TCRE PR2 PR1 PR0 1 定时器由 OC7 比较事件发生来复位 0 定时器自由运行 第七章 IO接口及增强型捕捉定时器模块 40 输入捕捉输入捕捉, IC7-IC0 (1 of 3) 用途: 1、测量事件发生的间隔时间 2、对实时时间进行响应 输入捕捉能感应到引脚上的电平的变化 如果发现电平变化,则: 1、计数器的值被保存到到输入捕捉寄存器中,状态 标志位被置1 2、如果中断允许,
39、则向CPU发出中断请求 第七章 IO接口及增强型捕捉定时器模块 41 ABS 应用举例应用举例 PT0 PT1 PT2 SENSOR 1 SENSOR 2 SENSOR 3 SENSOR 4 PB1 PB2 PB3 PB4 BRAKE FLUID PUMP SYSTEM SIGNAL CONDITIONING LOGIC IC/PA SIGNAL CONDITIONING LOGIC SIGNAL CONDITIONING LOGIC SIGNAL CONDITIONING LOGIC PT3 左前轮 右前轮 左后轮 右后轮 H C S 1 2 TIMER 定时器输入捕捉测量车轮转速 发送命令
40、到刹车压力调节阀来调节压力 IC/PA IC/PA IC/PA 如果左右轮速脉冲周期不等 则 调节电磁阀 第七章 IO接口及增强型捕捉定时器模块 42 输入捕捉功能输入捕捉功能 比较/捕捉 单元 16位自由运行计数器 16位输入捕捉锁存器 捕捉发生时,状态位置1 向CPU发出中断请求 Edge 沿选择 检测ICx CxF CxI 上升/下降沿 可选中断屏蔽 当外部事件发生时,或外部信号输入发生变化时,记录当前时间 TCNT TCx 延时 计数器 0 0 0 0 0 0 DLY1 DLY0 Bit 7 6 5 4 3 2 1 0 DLYCT 延时计数器控制寄存器 DLY1:0 - Delay C
41、ounter Values 00 = Disabled 01 = 256 M Clocks 10 = 512 M Clocks 11 = 1024 M Clocks Address Offset $0029 注: 如果输入信号电平和跳变之前的电平相反时, 延时计数器在当前时钟计数时刻产生一个脉冲, 它用来去除噪声 OR OR 16位保持寄存器 应用: ABS 刹车. 雷达测距,发动机 引脚 共有8个输入捕捉通道 每个通道有自己的向量表和控制寄存器 第七章 IO接口及增强型捕捉定时器模块 43 输入捕捉输入捕捉, IC7-IC0 (2 of 3) B2B1B0 EDGxB 输入捕捉沿控制(IC7
42、IC0) EDGxAICx EDGE 0 1 0 1 无边沿 ICx 禁止 上升沿 下降沿 任何沿 4. TCTL3 C7F C6F C5F C4F C3F C2F C1F C0F C7I C6I C5I C4I C3I C2I C1I C0I 2. TFLG1 3. TIE 1. TC7 TC0 EDG7B EDG7A EDG6B EDG6A EDG5B EDG5A EDG4B EDG4A 5. TCTL4 EDG3B EDG3A EDG2B EDG2A EDG1B EDG1A EDG0B EDG0A B6B5B4B3B7B2B1B0 RST: 0 0 0 0 0 0 0 0 RST: 0
43、0 0 0 0 0 0 0 RST: 0 0 0 0 0 0 0 0 RST: 0 0 0 0 0 0 0 0 B6B5B4B3B7B2B1B0 B6B5B4B3B7B2B1B0 B6B5B4B3B7B2B1B0 $000E $000C $000A $000B Address Offset $0010 - $0011 - - $001E - $001F 16 位捕捉/比较寄存器 (TC7) 16 位捕捉比较寄存器 (TC0) - - 比较/捕捉标志位 写 1清除中断状态标志位 比较/捕捉屏蔽位 0 = 屏蔽中断请求 1 = 中断请求允许 0 0 1 1 第七章 IO接口及增强型捕捉定时器模块
44、44 增强型捕捉增强型捕捉 ECT比标准的比标准的TIM增强的特点增强的特点 4个输入捕捉通道有16位缓冲寄存器 4个8位 / 2个16位脉冲累加器 16位带4位预分频的模数向下计数器 4个用户选择的延时计数器用来消除噪声 主定时器预分频扩展至7位 队列和锁定模式 主定时器 输入捕捉寄存器 保持寄存器 外部事件 拷贝拷贝 拷贝 读取数据 读取数据 外部事件 第七章 IO接口及增强型捕捉定时器模块 45 输入捕捉输入捕捉/输出比较选择输出比较选择 IOS7 IOS6 IOS5 IOS4 IOS3 IOS2 IOS1 IOS0 TIOS 定时器输入捕捉/输出比较选择寄存器 IOSx = 1 输出比
45、较功能 = 0 输入捕捉功能 RST: 0 0 0 0 0 0 0 0 $0000 B6B5B4B3B7B2B1B0 TIMER 定时器使能 1 计数器使能 0 计数器禁止 TSCR1 定时器系统控制寄存器 RST: 00 $0006 TEN TSWAI TSFRZ TFFCA Reserved TSWAI 在WAIT模式时,定时器停止 0 = 不停止 1 = 停止 TSBCK 在DEBUG模式时, 定时器停止 0 = 不停止 1 = 停止 TFFCA 定时器快速标志位清除使能 0 = 定时器标志位正常清零 1 = 输入捕捉时读取寄存器, 输出比较时写寄存器,可以对相应通道标志位清零 第七章
46、IO接口及增强型捕捉定时器模块 46 脉冲累加模式脉冲累加模式 8 位计数器 PAI 脉冲累加器输入引脚 事件计数模式 引脚作为计数器时钟 软件选择以什么沿来计数 计数器溢出时,产生中断(可选) 8 位计数器 PAI 脉冲累加器输入引脚 时间累加模式 引脚作为计数器 软件选择主动电平作为门的输入 当计数器溢出时产生中断 在使能的引脚上后面的边缘时产生中断 自由运行 E/64时钟 PACNT PACNT 对事件计数模式,PEDGE 选 择哪个PAI的沿用来增加 PACNT寄存器 对门累加模式,PEDGE选择哪 个PAI 状态用来禁止计数 (比如. PEDGE = 1 - 禁止计 数 当PAI =
47、 HI). 第七章 IO接口及增强型捕捉定时器模块 47 脉冲累加结构脉冲累加结构 PIN TCx PIN Logic DIV by 64 Control Reg. + 8/16 BIT CNTR Holding Register POLARITY CONTROL PTx IRQ D A T A B U S 注 1: PTx 可以被用作脉冲累加, 输入捕捉或输出比较 这里 PTx = PT0 - PT3 SELECTED CLOCK Delay Counter Edge Detector 0 0 0 0 0 0 DLY1 DLY0 Bit 7 6 5 4 3 2 1 0 DLYCT - Del
48、ay Counter Control Register DLY1:0 - Delay Counter Values 00 = Disabled 01 = 256 M Clocks 10 = 512 M Clocks 11 = 1024 M Clocks Address Offset $0029 注: 如果输入信号电平和跳变之前的电平相反时, 延时计数器在当前时钟计数时刻产生一个脉冲, 它用来去除噪声 第七章 IO接口及增强型捕捉定时器模块 48 模向下计数器模向下计数器 二进制向下计数器. 可以完全控制计数起始值 应用于精确事件计时-用于产生周期性的标志位和中 断 主定时器单独运行。时钟来自总
49、线时钟,并经过预分 频。 可以被设置为定时中断或产生标志位。或装载初始值 后向下计数到$0000。 ParameterValueUnits Crystal Frequency16MHz Bus Frequency8MHz Bus Tick Time125.0000nS Periodic Interrupt Time191uS Bus Ticks Required1528.00Ticks Modulus Counter Prescaler4 Modulus Counter Start Value382 装载 向下计数 至0 执行动作 MCCNT:模数减法计数寄存器 第七章 IO接口及增强型捕捉定
50、时器模块 49 BIT76543210 R MCZIMODMCRDMCLMCENMCPR1MCPR0 WICLATFLMC RESET00000000 MCCTL:16位模数减法计数控制寄存器位模数减法计数控制寄存器 MCZI:模数计数器减法溢出中断允许: 0=禁止中断。1=允许中断。 MODMC:模数模式允许: 0=计数器从写入的数值计数一次到$0000。 1=允许模数模式。当计数器计到$0000时,则重新装入最新写入的计数值重新进行计数。 RDMCL:模数计数器读取选择寄存器: 0=对计数器读操作,返回当前的计数数值。 1=对计数器读操作,返回预先加载的数值。 ICLAT:输入捕捉强制锁存
51、 FLMC:强制把装载寄存器中的值送入模数计数寄存器中 MCEN:模数减法计数器允许: 0=禁止。1=允许。 MCPR1、MCPR0:模数计数器预分频因子设置 MCPR1MCPR0预分频因子 001 014 108 1116 第七章 IO接口及增强型捕捉定时器模块 50 BIT76543210 R MCZF 000POLF3POLF2POLF1POLF0 W RESET00000000 MCFLG:16位模数减法计数器标志寄存器位模数减法计数器标志寄存器 MCZF:模数计数器减法溢出标志位 当计数器减法计数到$0000时,此位被置一。对这位人工置一可以进行清 零,写零无效。当TSCR寄存器中的
52、TFFCA位被置位时,对MCCNT寄存器的任何 访问将使MCZF标志清零。 POLF3-POLF0:第一次输入捕捉极性状态位 POLF3-POLF0是只读的,对它们进行写操作无效。这四位指示了引起输 入捕捉操作的边沿极性。POLF3-POLF0分别对应了PORT3-PORT0的输入。 0=第一次输入捕捉由下降沿触发。1=第一次输入捕捉由上升沿触发。 第七章 IO接口及增强型捕捉定时器模块 51 /利用模数减法计数器进行定时利用模数减法计数器进行定时 #include /* common defines and macros */ #include /* derivative informati
53、on */ #pragma LINK_INFO DERIVATIVE mc9s12dg128b unsigned int count1=0; #pragma CODE_SEG NON_BANKED /9S12中断程序必须定位中断程序必须定位 /于于non-banked 区域区域 void interrupt 26 MDC_ISR(void) MCFLG = 0 x80; /清中断标志位清中断标志位 count1+; if(count1=20) /1s闪烁一次闪烁一次 PORTA=PORTA; count1=0; #pragma CODE_SEG DEFAULT /9S12中断程序必须定位于中断
54、程序必须定位于non- /banked 区域,必须有这两个区域,必须有这两个pragma语句语句 第七章 IO接口及增强型捕捉定时器模块 52 void SET_PLL(void) /总线时钟频率为总线时钟频率为8MHz CLKSEL=0 x00; PLLCTL=0 xe1; SYNR=3;/PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)=16MHz /实验板上实验板上OSCCLK4MHz REFDV=1; PLLCTL=0 x60; asm NOP; asm NOP; asm NOP; while(CRGFLG/时钟校正同步时钟校正同步 CLKSEL=0 x8
55、0; /选定选定PLL时钟,时钟,Bus Clock=PLLCLK/2=8MHz 第七章 IO接口及增强型捕捉定时器模块 53 void main(void) SET_PLL(); MCCTL=0 xDF; /设定模数减法计数器工作方式,中断使能,计数器使能设定模数减法计数器工作方式,中断使能,计数器使能 /分频系数为分频系数为16 MCCNT=25000;/定时器赋初值定时器赋初值 (1/8M)*16*25000= 50ms EnableInterrupts;/开中断开中断 DDRA=0 xFF; PORTA=0 xFF; for(;) 第七章 IO接口及增强型捕捉定时器模块 54 定时器低
56、功耗模式定时器低功耗模式 TSCR 定时器系统控制寄存器 RST: 00 $0006TEN TSWAI TSFRZ TFFCA Reserved TSWAI 在WAIT模式时,定时器停止 0 = 不停止 1 = 停止 TSBCK 在DEBUG模式时, 定时器停止 0 = 不停止 1 = 停止 TFFCA 定时器快速标志位清除使能 0 = 定时器标志位正常清零 1 = 输入捕捉时读取寄存器, 输出比较时写寄存器,可以对相应通道标志位清零 1 计数器使能 0 计数器禁止 第七章 IO接口及增强型捕捉定时器模块 55 三个例子三个例子 举三个例子讲述本节内容 (定时器模块寄存器太多,逐个讲解太费时间
57、,效果也不好) 流水灯显示 使用输入捕捉功能,对外来脉冲进行计数 使用输出比较功能,输出一个具有一定宽度的高 电平脉冲 第七章 IO接口及增强型捕捉定时器模块 56 void TimerOverflow(void) unsigned char i=1,j=0 x80; while(i!=0) i=1; while(TCNT!=0 x0000); /延时 while(TCNT=0 x0000); void main(void) EnableInterrupts; TSCR1=0 x80; /定时器使能 TSCR2=0 x07; /分频系数为128 DDRA=0 xff; PORTA=0 xff;
58、 for(;) TimerOverflow(); 流水灯的显示流水灯的显示 PORTA输出 调用函数 设置控制寄存器1 设置控制寄存器2 延时控制 这个可在实验板上运行 第七章 IO接口及增强型捕捉定时器模块 57 ECT控制寄存器一(控制寄存器一(TSCR1) 本例设置TSCR1=0 x80。 TEN=1:主定时器使能。0=主定时器禁止,进入低功耗状态。 TSWAI=0:等待模式时主定时器继续工作,方便调试。0=停止工 作。 TSFRZ=0:冻结模式时主定时器继续工作。0=停止工作。 TFFCA=0:自动清除标志位。1=手动清除。 必须设置TSCR1才可以使主定时器工作,需要在ECT模块初
59、始化时就设置好。 第七章 IO接口及增强型捕捉定时器模块 58 ECT控制寄存器二(控制寄存器二(TSCR2) TOI:0禁止定时器溢出中断。1=允许。 本例设置TOI=0。 TCRE:定时计数器复位允许 。0=禁止复位,计数器自由计数。 1=允许复位。 本例设置TCRE =0 。 PR2、PR1、PR0:预分频因子选择 本例设置PR2=1、PR1=1、PR0=1:分频系数=27=128。 第七章 IO接口及增强型捕捉定时器模块 59 总线时钟(Bus Clock)频率是多少? 见课件“第3章 MC9S12单片机的内核及片上 资源.ppt”第31和32页。 第七章 IO接口及增强型捕捉定时器模
60、块 60 ECT计数寄存器(计数寄存器( TCNT ) TCNT为自由计数器的计数值,本例通过读取它的 值实现延时。 这是一个16位的寄存器,最大值为65535。 while(TCNT!=0 x0000); while(TCNT=0 x0000); 这两句的含义是:TCNT开始计数后值不为0,等待直到 TCNT溢出返回0,然后再等到TCNT不为0。为什么要弄 两个while? 第七章 IO接口及增强型捕捉定时器模块 61 例二:输入捕捉例二:输入捕捉 利用输入捕捉0通道对外来的方波信号进行捕捉,采用中 断的形式。中断发生后,读取捕捉后的计数值,并通 过PORTB口使LED灯点亮以指示中断成功。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《后3G背景下移动互联网商业模式创新策略研究》
- 《外源性前列腺素E2对大鼠髌腱组织的生物学影响研究》
- 《轻质保温墙砖砌墙机器人特性分析与优化研究》
- 2024年北京客运资格证都是考什么
- 2024年晋中小型客运从业资格证理论考题
- 2024年吴忠客运考试题库
- 基于ERP系统的企业业财融合优化策略
- 基于产教融合、工学一体的“食品化学”课程教学探索
- 我国矿产资源产业链建设与运行管理研究
- 冷弯-辊压成型基础知识培训
- 心电监护并发症预防及处理
- 甲鱼宣传方案策划
- 夜班人员的补贴和福利政策
- 河北省石家庄市长安区2023-2024学年五年级上学期期末语文试卷
- 直播运营团队组织架构与各岗位职责研究
- 慢病管理及远程医疗的应用
- 学校个性化课程管理制度
- 肺炎支原体性肺炎护理课件
- 黑色素瘤护理的课件
- 水性可剥离涂料的制备
- 小程序会员协议书
评论
0/150
提交评论