六章节MC9S12单片机IO接口和功能模块.ppt
《六章节MC9S12单片机IO接口和功能模块.ppt》由会员分享,可在线阅读,更多相关《六章节MC9S12单片机IO接口和功能模块.ppt(96页珍藏版)》请在三一办公上搜索。
1、第六讲 MC9S12单片机I/O接口和功能模块,本讲内容简介,1、通用I/O接口模块2、模数转换A/D模块3、脉冲宽度调制PWM模块4、增强型定时器ECT模块5、同步外设接口SPI模块6、串行通信接口SCI模块,每个模块对应的技术文档,I/O口模块S12MEBIV3.PDF S12DTB128PIMV2.PDF串行通信模块S12SCIV2.PDF S12SPIV4.PDF S12IICV2.PDFECT 模块S12ECT16B8CV1.PDFA/D模块S12ATD10B8CV2.PDFPWM模块S12PWM8B8CV1.PDFMSCAN模块S12MSCANV2.PDF,1、通用I/O接口,MC
2、9S12DG128B单片机I/O口PORTA连接按键PORTB 连接发光二极管PORTE 特殊功能PORTJ 中断输入,没有PJ0-PJ5PORTP 中断输入,没有PP6PORTM没有PM6-PM7PORTTPORTS没有PS4-PS7PORTAD只能输入,1、通用I/O接口,I/O口作为输入使用设置方向寄存器(DDRx)为输入(0X00)随时读取I/O口的数据寄存器(PORTx)I/O口作为输出使用设置方向寄存器(DDRx)为输出(0XFF)设置驱动能力寄存器(非必须)拉电阻选择(非必须)随时写入I/O口数据寄存器(PORTx),1、通用I/O接口,I/O口作为外部中断接收使用开系统中断(C
3、LI)设置方向寄存器为输入设置中断有效边沿(上升沿、下降沿)使能中断编写相关的中断服务程序有效边沿到来时,会自动进入中断服务程序,1、通用I/O接口,例一设计一个C语言程序,使教学板上发光二极管显示花等效果显示循环流水灯效果见exp12,1、通用I/O接口,例二使用PORTJ中断口功能的例子,本例的原理是:设置A口为输出口,PTA的第6脚跟PTJ的第6脚硬件相连,PTB输出,用来控制8个LED灯,PTJ开中断,并且设置为上升沿触发。首先PTA初始化为0,PTB为0 xFF,此时等灭。在大循环冲设置PTA第6位为高电平,产生中断,灯低4个亮,高4个不亮。使用单步运行查看效果。见exp13。,2、
4、模数转换ATD模块,A/D转换的基本概念模数转换定义:将时间连续、幅值也连续的模拟信号转换为间离散、幅值也离散的数字信号模数转换精度模数转换精度是指二进制的位数。9S12的AD模块有两种精度可选,分别为8位精度(0255)和10位精度(01023)。逐次逼近型A/D转换器的原理逐次逼近型A/D 由一个比较器和D/A 转换器通过逐次比较逻辑构成,从MSB 开始,顺序地对每一位将输入电压与内置D/A 转换器输出进行比较,经n 次比较而输出数字值。其电路规模属于中等。,9S12的A/D模块主要特性,8位/10位可选择的转换精度;速度快,每进行一次10位的转换,仅仅需要7nS;采样时间可编程;左对齐/
5、右对齐的数据格式,有符号/无符号的转换结果;转换完毕可产生中断;使用PAD7外部触发控制。,9S12的A/D模块外部引脚,VRH(60)、VRL(61):A/D 转换模块的参考高电压和参考低电压。实验板上,VRH和VRL分别接VCC和GND。VDDA(59)、VSSA(62):A/D 模块提供电源。实验板上,VDDA接到VCC,VSSA接到GND。AN7/ETRIG/PAD7(58):模拟量输入通道7,通用数字输入端口。它也可以被配置为A/D 转换的外部触发引脚。AN6/PAD6-AN0/PAD0(51-57):模拟量输入通道6-0,通用数字输入端口。不可以被用作外部触发引脚。PAD0通过50
6、K滑动变阻器接到VCC,调可变电阻可以调试A/D转换。,控制寄存器2ATDCTL2,ADPU:A/D模块的电源管理。1=正常模式,0=低功耗模式。AFFC:标志位快速清零。1=对转换结果寄存器访问会自动清除标志位,0=正常模式,访问结果寄存器前读状态寄存器1可以清楚转换完成标志CCF。AWAI:等待时进入低功耗模式。1=进入,0=正常工作。ETRIGLE、ETRIGP:外部触发的边沿/极性控制。ETRIGE:上两位的使能位。允许在PAD7输入外部触发信号。1=允许,0=禁止。ASCIE:A/D队列转换完成中断允许。1=允许,并使标志位ASCIF=1;0=禁止。ASCIF:A/D 队列转换完成中
7、断标志。,控制寄存器3ATDCTL3,S8C、S4C、S2C、S1C:定义转换队列的长度。默认长度为4。FIFO:结果寄存器先进先出模式。1=FIFO模式,转换结果是连续存放的;0=非FIFO模式,转换结果放在对应的寄存器中。FRZ1、FRZ0:背景调试冻结模式允许。这两个控制位就决定了,当遇到断点时,A/D 模块怎样反应。,控制寄存器4ATDCTL4,SRES8:转换精度选择。1=8位精度,0=10位精度。SMP1、SMP0:采样时间选择。可选择2、4、8、16个A/D时钟周期。PRS4、PRS3、PRS2、PRS1、PRS0:A/D 时钟分频因子的选择。A/D时钟的计算公式如右图。注意,A
8、/D模块的时钟频率要在500KHz和2MHz之间,所以在选择分频因子时一定要注意。,控制寄存器5ATDCTL5,DJM:16位结果寄存器数据的对齐方式。1=右对齐,0=左对齐。DSGN:结果寄存器中数据有无符号。1=有符号,0=无符号。SRES8、DJM 和DSGN 三位配合起来使用,决定了结果寄存器中数据的格式,一共有8种情况。SCAN:连续转换队列的模式。此位定义了A/D 转换是连续进行还是只进行一次。1=连续队列转换;0=单次队列转换。MULT:当这位为0 时,ATD 的队列控制器只从指定的输入通道进行采样,可以使用ATDCTL5寄存器中的CC、CB 和CA 三位来指定需要采样的模拟量输
9、入通道。当这位为1 时,则对多个的通道进行采样,每次采样的通道数量由S8C、S4C、S2C 和S1C 控制位来指定,第一个采样通道由CC、CB 和CA 控制位来指定,其它采样通道由通道选择码CC、CB 和CA 的增加来决定。CC、CB、CA:模拟输入通道选择码。和MULT配合使用。,状态寄存器0ATDSTAT0,SCF:队列完成标志。置位条件:当一个队列转换完毕后;如果处在SCAN模式,则每次都置位。清零条件:对此位写一;写ATDCTL5,开始一个新的对列;AFFC=1(标志快速清除)且读结果寄存器。ETORF:外部触发溢出标志。置位条件:处于边沿触发模式时,如果第一个边沿触发的队列转换正在进
10、行,而这时却检测到了第二个有效的边沿。清零条件:对此位写一;写控制寄存器2、3或4,终止当前队列;写控制寄存器5,开始一个新队列。FIFOR:FIFO 溢出标志。如果转换完成标志(CCF)在没有被清零时结果寄存器被写入新值(覆盖),则置位。清零条件:对此位写一;写控制寄存器5,开始一个新队列。1=有FIFO溢出,0=无FIFO溢出。CC2、CC1、CC0:转换计数器。代表了哪个结果寄存器将要接收当前转换的结果。非FIFO 模式(FIFO=0),这3 位的初始值为0,计数完成后又会回到初始值。FIFO 模式(FIFO=1),转换计数器处于循环计数状态。,状态寄存器1ATDSTAT1,CCFx:x
11、通道的转换完成标志。1=完成队列中的第x 个转换,结果存储在ATDDRx 寄存器中;0=转换未完成。清零条件:写控制寄存器5,开始一个新队列;AFFC=1,对结果寄存器访问;AFFC=0,首先读状态寄存器1,然后访问结果寄存器。,输入允许寄存器-ATDDIEN,IENx:通道x 输入数字允许。这8个控制位控制了从模拟量输入端口到数据寄存器的数字输入缓冲区。1=缓冲区有效;0=无效。当端口作为模拟量输入端口时,也可以打开数字缓冲区,但是会增加功耗。,数字输入寄存器PORTAD,PTADx:A/D 模块的第x 个通道(ANx)的数字输入。当对应通道的数字输入允许时,此位返回了相应引脚上的电平逻辑值
12、。注意,引脚上的电平必须和VRH或VRL匹配,否则将返回一个不确定的值。如果响应通道的输入缓冲区无效(IENx=0),读取操作只返回1。复位后,寄存器值等于$FF。注意,PORTAD端口模拟量和数字量是可以复用的。当输入模拟量时,会把模拟信号直接送到A/D 转换器;当输入数字量时,会把外部数字信号送到PORTAD 寄存器以供读取。,A/D转换结果寄存器ATDDRx,ATDDR0ATDDR7:07通道的结果寄存器。A/D转换的结果需要从这几个寄存器中读取。每个16位寄存器可以分成2个8位的寄存器来读取,分别为ATDDRxH和ATDDRxL。注意转换结果在这8个16位寄存器中的存储格式。以10位左
13、、右对齐为例:左对齐10位数据右对齐10位数据另外还要注意有符号数据和无符号数据的区别。,A/D转换综合举例,使用教学板上电位器调试并观察A/D转换结果。请见exp14。,3、脉冲宽度调制PWM模块,PWM的基本概念PWM(Pulse Width Modulate)即脉宽调制,脉宽调制波是一种可用程序来控制波形占空比、周期、相位的波形。它在电动机驱动、D/A 变换等场合有着广泛的应用。周期,占空比,相位。周期指上图中的,占空比为t/,相位指高低电平。,9S12 PWM模块特性,7个周期、占空比可编程的PWM通道专用的PWM计数器PWM功能的软件使能和禁止软件选择脉冲极性PWM波形输出对齐方式分
14、为左对齐和居中对齐可以两个通道级联以获得更高的精度可选择4个时钟源,4个时钟源均为独立的分频设置紧急关断功能,9S12 PWM模块外部引脚,共7个外部引脚PWM05(4、3、2、1、80、79)PWM7(78),9S12 PWM模块的时钟,四个时钟源CLOCKA、CLOCKB、CLOCKSA、CLOCKSB。其中CLOCKA(B)可以把总线时钟进行1、2、4、8、16、32、64、128分频。Clock A 的预分频因子通过PWMPRCLK寄存器中的PCKA2、PCKA1 和PCKA0 来选择,Clock B 的预分频因子通过PWMPRCLK 寄存器中的PCKB2、PCKB1 和PCKB0 来
15、选择。,总线时钟,CLOCKA,CLOCKB,CLOCKSA,CLOCKSB,分频,分频,分频,分频,9S12 PWM模块的时钟,,CLOCKSA(SB)从CLOCKA(B)进行分频的比例因子可以为1、2、4、8、16、32、64、128、256,最大可以进行512分频。计算公式为:CLOCKSA(SB)=CLOCKA(B)/2*PRESCALER通道0、1、4、5可选CLOCKA或CLOCKSA;通道2、3、6、7可选CLOCKB或CLOCKSB。,9S12 PWM模块的计数器,每个通道的计时器都有一个8 位计数器、一个8位周期寄存器和一个8 位占空比寄存器。输出波形的周期受周期寄存器的控制
16、,当计数器的计数值等于周期寄存器的值时,PWM波周期结束。PWM的波形还跟占空比寄存器、输出极性和对齐方式有关。PWMCNTx 计数寄存器在PWM 通道工作时也可以被写入,但是暂时产生无效的波形。,9S12 PWM模块的允许控制,PWM的允许位相当于“开关”,可以允许和禁止相应通道的PWM输出。每个PWM 通道都对应一个允许(PWMEx),只有PWMEx=1 时,对应的通道才输出波形。计数器计数结束的那一刻,只要PWMEx 为高电平,则会自动开始下一个波形的输出。,9S12 PWM模块的极性控制,每个PWM 通道都对应一个极性设置位,决定了PWM 波的输出首先是高电平还是低电平。当PPOLx
17、被置位时,对应的通道首先输出高电平,直到计数器计数到占空比寄存器的值后变为低电平;反之则首先输出低电平,直到计数器计数到占空比寄存器的值后变为高电平。,左对齐的输出波型,PWMCAE 寄存器中的CAEx 位是输出格式的控制位。CAEx=0,则对应通道的输出格式是左对齐的。当使用左对齐格式输出时,8 位的计数器只使用加法计数。当计数器加法计数到占空比寄存器中的值时,PWM 通道输出波形的电平就发生变化;当计数器加法计数到周期寄存器中的值时,计数器复位,输出波形电平发生变化,然后再次读取占空比和周期寄存器中的值作为下次计数参考使用。注意,计数器是从0开始计数的,直到周期寄存器中的值-1。,左对齐的
18、输出波型,PWM波形频率和占空比的计算:PWMx 频率=Clock(A,B,SA,or SB)/PWMPERx若Polarity=0(PPOLx=0)Duty Cycle=(PWMPERx-PWMDTYx)/PWMPERx 100%若Polarity=1(PPOLx=1)Duty Cycle=PWMDTYx/PWMPERx 100%,左对齐的输出波型,下面举一个左对齐输出的例子:假设时钟源频率=10MHz(周期=100ns),PPOLx=0,PWMPERx=4,PWMDTYx=1。所以,PWMx 的频率=10MHz/4=2.5MHz,PWMx 的周期=400ns,PWMx 的占空比=3/410
19、0%=75%。,居中对齐的输出波型,CAEx=1,则对应通道的输出格式是居中对齐的。在这个模式下,计数器既进行加法计数也进行减法计数。当计数器加法计数到占空比寄存器中的值时,PWM 通道输出波形的电平就发生变化;当加法计数到周期寄存器中的值时,计数器会从加法计数改变为减法计数;当计数器再次减法计数到占空比寄存器中的值时,PWM 通道输出波形的电平再次发生变化;当计数器继续减法计数到$00 时,计数器重新变为加法计数器,然后再次读取占空比和周期寄存器中的值作为下次计数参考使用。,居中对齐的输出波型,用时钟源的频率除以周期寄存器中值的2 倍,得到的结果就是当前PWM输出波形的频率。PWMx Fre
20、quency=Clock(A,B,SA,or SB)/(2PWMPERx)若Polarity=0(PPOLx=0)Duty Cycle=(PWMPERx-PWMDTYx)/PWMPERx 100%若Polarity=1(PPOLx=1)Duty Cycle=PWMDTYx/PWMPERx 100%,居中对齐的输出波型,下面举一个居中对齐输出的例子:假设时钟源频率=10MHz(周期=10ns),PPOLx=0,PWMPERx=4,PWMDTYx=1。所以,PWMx 的频率=10MHz/4=2.5MHz,PWMx 的周期=400ns,PWMx 的占空比=3/4100%=75%。,9S12 PWM模
21、块的通道级联,如果需要PWM 输出波形的精度更高,则可以把2 个8 位PWM 通道级联起来组成1 个16 位通道。PWMCTL 寄存器中有4 个控制位,可以完成这个级联的功能。CON67、CON45、CON23 和CON01 可以把相应的两个通道级联起来。注意级联后高8位和低8位的区别,控制寄存器的区别。,允许控制寄存器-PWME,当PWMEx 被置位后,PWM 输出就会立即开始。但是直到PWM 模块时钟的下一个周期到来之时,才可以输出正确的波形,而在这之前的波形可能会是无效的。当处于级联模式时,8 个8 位PWM 通道组成4 个16 位的PWM 通道,PWME1、PWME3、PWME5 和P
22、WME7 对这4 个通道进行控制,而其它控制位处于无效状态。PWMEx:通道有效选择位。1=允许PWM输出,0=禁止。,极性寄存器-PWMPOL,PWMPOL 寄存器随时都可以进行设置。如果某PWM 通道在输出波形的过程中,波形的极性发生了改变,那么在两组波形的连接处可能会出现缩短或者拉伸了的不正常波形。PPOLx:通道x的输出极性。1=先高后低,0=先低后高。,时钟选择寄存器-PWMCLK,PCLK7:PWM 通道7 时钟源选择。1=Clock SB;0=Clock B。PCLK6:PWM 通道6 时钟源选择。1=Clock SB;0=Clock B。PCLK5:PWM 通道5 时钟源选择。
23、1=Clock SA;0=Clock A。PCLK4:PWM 通道4 时钟源选择。1=Clock SA;0=Clock A。PCLK3:PWM 通道3 时钟源选择。1=Clock SB;0=Clock B。PCLK2:PWM 通道2 时钟源选择。1=Clock SB;0=Clock B。PCLK1:PWM 通道1 时钟源选择。1=Clock SA;0=Clock A。PCLK0:PWM 通道0 时钟源选择。1=Clock SA;0=Clock A。,预分频时钟选择寄存器,此寄存器用来选择Clock A 和B 的预分频因子。PWMPRCLK 寄存器随时都可以进行设置。如果某PWM 通道在输出波形
24、的过程中,此通道的所使用时钟的频率发生了改变,那么在两组波形的连接处可能会出现缩短或者拉伸了的不正常波形。PCKB2、PCKB1、PCKB0:Clock B 预分频因子的选择PCKA2、PCKA1、PCKA0:Clock A 预分频因子的选择,居中对齐允许寄存器-PWMCAE,此寄存器控制每个PWM 通道输出波形的对齐方式,可以是左对齐或者居中对齐。如果CAEx=1,则对应通道的输出波形为居中对齐方式;如果CAEx=0,则为左对齐方式。注意只有当对应通道被禁止输出时,才可以设置此寄存器。CAEx:1=对应x通道为居中对齐模式 0=对应x通道为左对齐模式,控制寄存器-PWMCTL,此寄存器可以实
25、现把8 个8 位PWM 通道级联为4 个16 位PWM 通道。CONxy:x通道和y通道级联,以获得更高的输出精度。x通道作为高8位,y通道作为低8位。这时只有通道y的时钟选择位、极性控制位、输出允许位和对齐方式选择位才有效;通道x 的相应寄存器均无效。1=级联模式0=非级联模式PFRZ:冻结模式PWM 计数器停止。1=停止,0=继续运行。,比例因子寄存器A-PWMSCLA,此寄存器用来提供产生时钟Clock SA 的比例因子,Clock SA 是由Clock A 经过一系列运算得来的,公式:Clock SA=Clock A/(2PWMSCLA)当PWMSCLA=0 时,默认比例因子为256,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 MC9S12 单片机 IO 接口 功能模块
链接地址:https://www.31ppt.com/p-5355357.html