当前位置:文档之家› 第六讲MC9S12单片机IO接口和功能模块

第六讲MC9S12单片机IO接口和功能模块

逐次逼近型A/D 由一个比较器和D/A 转换器通过逐次 比较逻辑构成,从MSB 开始,顺序地对每一位将输入 电压与内置D/A 转换器输出进行比较,经n 次比较而输 出数字值。其电路规模属于中等。
9S12的A/D模块主要特性
8位/10位可选择的转换精度; 速度快,每进行一次10位的转换,仅
仅需要7nS; 采样时间可编程; 左对齐/右对齐的数据格式,有符号/
控制寄存器2—ATDCTL2
ADPU:A/D模块的电源管理。1=正常模式,0=低功耗 模式。
AFFC:标志位快速清零。1=对转换结果寄存器访问会 自动清除标志位,0=正常模式,访问结果寄存器前读状 态寄存器1可以清楚转换完成标志CCF。
AWAI:等待时进入低功耗模式。1=进入,0=正常工作。 ETRIGLE、ETRIGP:外部触发的边沿/极性控制。 ETRIGE:上两位的使能位。允许在PAD7输入外部触发
AN7/ETRIG/PAD7(58):模拟量输入通道7, 通用数字输入端口。它也可以被配置为A/D 转换 的外部触发引脚。
AN6/PAD6 - AN0/PAD0(51-57):模拟量输入 通道6-0,通用数字输入端口。不可以被用作外部 触发引脚。PAD0通过50K滑动变阻器接到VCC, 调可变电阻可以调试A/D转换。
没有PS4-PS7
PORTAD
只能输入
1、通用I/O接口
I/O口作为输入使用
设置方向寄存器(DDRx)为输入(0X00) 随时读取I/O口的数据寄存器(PORTx)
I/O口作为输出使用
设置方向寄存器(DDRx)为输出(0XFF) 设置驱动能力寄存器(非必须) 拉电阻选择(非必须) 随时写入I/O口数据寄存器(PORTx)
A/D时钟的计算公式如右图。
注意,A/D模块的时钟频率要在500KHz和2MHz之间, 所以在选择分频因子时一定要注意。
控制寄存器5—ATDCTL5
DJM:16位结果寄存器数据的对齐方式。1=右对齐,0=左对齐。 DSGN:结果寄存器中数据有无符号。1=有符号,0=无符号。 SRES8、DJM 和DSGN 三位配合起来使用,决定了结果寄存器中
置 紧急关断功能
9S12 PWM模块外部引脚
共7个外部引脚
PWM0—5(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 来选择。
注意,引脚上的电平必须和VRH或VRL匹配,否则将返回 一个不确定的值。
如果响应通道的输入缓冲区无效(IENx=0),读取操作 只返回1。
复位后,寄存器值等于$FF。 注意,PORTAD端口模拟量和数字量是可以复用的。当输
入模拟量时,会把模拟信号直接送到A/D 转换器;当输入 数字量时,会把外部数字信号送到PORTAD 寄存器以供读 取。
数据的格式,一共有8种情况。 SCAN:连续转换队列的模式。此位定义了A/D 转换是连续进行
还是只进行一次。1=连续队列转换;0=单次队列转换。 MULT:当这位为0 时,ATD 的队列控制器只从指定的输入通道
进行采样,可以使用ATDCTL5寄存器中的CC、CB 和CA 三位来 指定需要采样的模拟量输入通道。当这位为1 时,则对多个的通 道进行采样,每次采样的通道数量由S8C、S4C、S2C 和S1C 控制 位来指定,第一个采样通道由CC、CB 和CA 控制位来指定,其 它采样通道由通道选择码CC、CB 和CA 的增加来决定。 CC、CB、CA:模拟输入通道选择码。和MULT配合使用。
状态寄存器0—ATDSTAT0
SCF:队列完成标志。置位条件:当一个队列转换完毕后;如果 处在SCAN模式,则每次都置位。清零条件:对此位写一;写 ATDCTL5,开始一个新的对列;AFFC=1(标志快速清除)且读 结果寄存器。
ETORF:外部触发溢出标志。置位条件:处于边沿触发模式时, 如果第一个边沿触发的队列转换正在进行,而这时却检测到了第 二个有效的边沿。清零条件:对此位写一;写控制寄存器2、3或 4,终止当前队列;写控制寄存器5,开始一个新队列。
通道0、1、4、5可选CLOCKA或CLOCKSA; 通道2、3、6、7可选CLOCKB或CLOCKSB。
9S12 PWM模块的计数器
每个通道的计时器都有一个8 位计数器、一 个8位周期寄存器和一个8 位占空比寄存器。 输出波形的周期受周期寄存器的控制,当
计数器的计数值等于周期寄存器的值时, PWM波周期结束。PWM的波形还跟占空比 寄存器、输出极性和对齐方式有关。
PWMCAE 寄存器中的CAEx 位是输出格式的控制位。 CAEx=0,则对应通道的输出格式是左对齐的。
当使用左对齐格式输出时,8 位的计数器只使用加法 计数。当计数器加法计数到占空比寄存器中的值时, PWM 通道输出波形的电平就发生变化;当计数器加 法计数到周期寄存器中的值时,计数器复位,输出波 形电平发生变化,然后再次读取占空比和周期寄存器 中的值作为下次计数参考使用。
1、通用I/O接口
I/O口作为外部中断接收使用
开系统中断(CLI) 设置方向寄存器为输入 设置中断有效边沿(上升沿、下降沿) 使能中断 编写相关的中断服务程序 有效边沿到来时,会自动进入中断服务程序
1、通用I/O接口
例一
设计一个C语言程序,使教学板上发光二极管
显示花等效果 显示循环流水灯效果
PWMCNTx 计数寄存器在PWM 通道工作时 也可以被写入,但是暂时产生无效的波形。
9S12 PWM模块的允许控制
PWM的允许位相当于“开关”,可以允许和 禁止相应通道的PWM输出。
每个PWM 通道都对应一个允许(PWMEx), 只有PWMEx=1 时,对应的通道才输出波形。
计数器计数结束的那一刻,只要PWMEx 为高 电平,则会自—ATDSTAT1
CCFx: x通道的转换完成标志。1=完成队 列中的第x 个转换,结果存储在ATDDRx 寄 存器中;0=转换未完成。
清零条件:写控制寄存器5,开始一个新队 列;AFFC=1,对结果寄存器访问; AFFC=0,首先读状态寄存器1,然后访问 结果寄存器。
输入允许寄存器--ATDDIEN
9S12 PWM模块的极性控制
每个PWM 通道都对应一个极性设置位,决 定了PWM 波的输出首先是高电平还是低电 平。
当PPOLx 被置位时,对应的通道首先输出 高电平,直到计数器计数到占空比寄存器 的值后变为低电平;反之则首先输出低电 平,直到计数器计数到占空比寄存器的值 后变为高电平。
左对齐的输出波型
FIFOR:FIFO 溢出标志。如果转换完成标志(CCF)在没有被清 零时结果寄存器被写入新值(覆盖),则置位。清零条件:对此 位写一;写控制寄存器5,开始一个新队列。1=有FIFO溢出,0= 无FIFO溢出。
CC2、CC1、CC0:转换计数器。代表了哪个结果寄存器将要接收 当前转换的结果。非FIFO 模式(FIFO=0),这3 位的初始值为0, 计数完成后又会回到初始值。FIFO 模式(FIFO=1),转换计数 器处于循环计数状态。
无符号的转换结果; 转换完毕可产生中断; 使用PAD7外部触发控制。
9S12的A/D模块外部引脚
VRH(60)、VRL(61):A/D 转换模块的参考 高电压和参考低电压。实验板上,VRH和VRL分 别接VCC和GND。
VDDA(59)、VSSA(62):A/D 模块提供电源。 实验板上,VDDA接到VCC,VSSA接到GND。
FRZ1、FRZ0:背景调试冻结模式允许。这 两个控制位就决定了,当遇到断点时,A/D 模块怎样反应。
控制寄存器4—ATDCTL4
SRES8:转换精度选择。1=8位精度,0=10位精度。
SMP1、SMP0:采样时间选择。可选择2、4、8、16 个A/D时钟周期。
PRS4、PRS3、PRS2、PRS1、PRS0:A/D 时钟分频因 子的选择。
IENx:通道x 输入数字允许。这8个控制位 控制了从模拟量输入端口到数据寄存器的 数字输入缓冲区。1=缓冲区有效;0=无效。 当端口作为模拟量输入端口时,也可以打 开数字缓冲区,但是会增加功耗。
数字输入寄存器PORTAD
PTADx:A/D 模块的第x 个通道(ANx)的数字输入。当 对应通道的数字输入允许时,此位返回了相应引脚上的电 平逻辑值。
A/D转换结果寄存器—ATDDRx
ATDDR0—ATDDR7:0—7通道的结果寄存器。A/D转换 的结果需要从这几个寄存器中读取。每个16位寄存器可以 分成2个8位的寄存器来读取,分别为ATDDRxH和 ATDDRxL。
注意转换结果在这8个16位寄存器中的存储格式。以10位左、 右对齐为例:
左对齐10位数据
第六讲 MC9S12单片机 I/O接口和功能模块
1、通用I/O接口
MC9S12DG128B单片机I/O口
PORTA
连接按键
PORTB
连接发光二极管
PORTE
特殊功能
PORTJ
中断输入,没有PJ0-PJ5
PORTP
中断输入,没有PP6
PORTM
没有PM6-PM7
PORTT
PORTS
√ √ √ √ √√ √ √ √ √ ××××××
右对齐10位数据
××××××√ √ √ √ √ √ √ √ √ √
另外还要注意有符号数据和无符号数据的区别。
A/D转换综合举例
使用教学板上电位器调试并观察A/D转换结 果。
相关主题