1MC9S12XS128单片机简介1、HCS12X系列单片机简介Freescale公司的16位单片机主要分为HC12、HCS12、HCS12X三个系列。HC12核心是16位高速CPU12核,总线速度8MHZ;HCS12系列单片机以速度更快的CPU12内核为核心,简称S12系列,典型的S12总线速度可以达到25MHZ。HCS12X系列单片机是Freescale公司于2005年推出的HCS12系列增强型产品,基于S12CPU内核,可以达到25MHz的HCS12的2-5倍性能。总线频率最高可达40MHz。S12X系列单片机目前又有几个子系列:MC9S12XA系列、MC9S12XB系列、MC9S12XD系列、MC9S12XE系列、MC9S12XF系列、MC9S12XH系列和MC9S12XS系列。MC9S12XS128就是S12X系列中的一个成员。2、MC9S12XS128性能概述MC9S12XS128是16位单片机,由16位中央处理单元(CPU12X)、128KB程序Flash(P-lash)、8KBRAM、8KB数据Flash(D-lash)组成片内存储器。主要功能模块包括:内部存储器内部PLL锁相环模块2个异步串口通讯SCI1个串行外设接口SPIMSCAN模块1个8通道输入/输出比较定时器模块TIM周期中断定时器模块PIT16通道A/D转换模块ADC1个8通道脉冲宽度调制模块PWM输入/输出数字I/O口3、输入/输出数字I/O口MC9S12XS128有3种封装,分别为64引脚、80引脚、112引脚封装。其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。MC9S12XS系列具有丰富的输入/输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ和PORTAD共11个端口。端口引脚大多为复用口,往往具有多重功能,所有端口都具有通用I/O口功能。2PORTA、PORTB、PORTK为通用I/O口PORTE中的IRO和XIRQ引脚可作为外部中断输入PORTT集成了TIM模块功能PORTS集成了SCI和SPI模块功能PORTM集成了CAN总线模块PORTP集成了PWM模块功能PORTH、PORTJ可作为外部中断输入口PORTAD集成了ATD模块功能在MC9S12XS128单片机中有些特殊功能可定义为多个引脚,如PWM、SCI1模块。对于这些具有相同功能的引脚定义,由端口T路径寄存器PTTRR和模块路径寄存器MODRR确定。MC9S12XS128的3种封装的引脚数目不一样,所具有的通用端口的引脚和功能有一定差异,下表列出3种封装对应的引脚和引脚数目。3MC9S12XS128的80引脚封装图4、输入输出端口功能和配置通用I/O通过配置相应寄存器位,可以设置为输入/输出端口、驱动能力、内置上拉/下拉电阻使用、中断输入方式等多种功能。下面我们以80引脚的MC9S12XS128单片机讨论其各个I/O的配置和功能:1.PORTA:PORTA为通用I/O口,共8个,作为通用数字I/O口使用,未集成特殊功能.主要配置寄存器有:数据寄存器PORTA、数据方向寄存DDRA、上拉电阻控制寄存器PUCR和驱动控制寄存器RDR。a.数据寄存器PORTA通过写1/0使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值。例:PORTA_PB0=14b.数据方向寄存器DDRADDRA寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。MCU复位后,DDRA值为0x00,引脚默认为输入口。例:DDRA=0xFF//配置PORTA口为输出c.上拉电阻控制寄存器PUCRPORTA、PORTB、PORTE、PORTK端口都有内置上拉电阻,它们共用上拉电阻控制寄存器PUCR。PUCR的7、4、1、0位分别设置这4个端口。“1”对应端口上拉电阻使能;“0”上拉电阻禁止。PUCR第6位设置BKGD引脚上拉电阻,复位为1,默认使用上拉。例:PUCR_PUPAE=1//使能PORTA上拉电阻d.驱动控制寄存器RDR当PORTA、PORTB、PORTE、PORTK端口设置为输出口时,驱动控制寄存器RDR的7、4、1、0位分别设置这4个端口的输出驱动能力。“1”输出驱动能力降低;“0”正常输出驱动方式。2.PORTB:PORTB为通用数字I/O口,共8个。其使用与PORTA基本一样。主要配置寄存器有:数据寄存器PORTB、数据方向寄存DDRB。上拉电阻控制寄存器PUCR和驱动控制寄存器RDR与PORTA、PORTB、PORTE、PORTK共用。a.数据寄存器PORTB5b.数据方向寄存器DDRB3.PORTE:PORTE可作为通用数字I/O口使用,80封装也有共8个引脚。其使用与PORTA基本一样。但是PORTE中集成了外部中断输入功能,其PE0/XIRQ和PE1/IRO引脚可作为外部中断输入。并且这两位只能作为输入口使用。主要配置寄存器有:数据寄存器PORTE、数据方向寄存DDRE。a.数据寄存器PORTEb.数据方向寄存器DDRE4.PORTK:PORTK为通用数字I/O口。但从前表可以看出112封装单片机PORTK口有7个,80封装和64封装没有PORTK口。其使用与PORTA基本一样。主要配置寄存器有:数据寄存器PORTK、数据方向寄存DDRK。5.PORTH:PORTH可作为通用数字I/O口使用,也集成了外部中断输入功能。但80封装没有PORTH口,在此不作详细描述。66.PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ:此6个端口的寄存器名称和功能基本上是一样的。主要配置寄存器有:数据寄存器PTx、输入寄存器PTIx、数据方向寄存DDRx、驱动控制寄存器RDRx、上拉/下拉使能寄存器PERx和上拉/下拉选择寄存器PPSx共6个寄存器。因PORTP、PORTH、PORTJ三个端口具有外部中断功能,增加了中断使能寄存器PIEx和中断标志寄存器PIFx两个寄存器。a.数据寄存器PTx:与通用通用I/O口的数据寄存器操作和功能基本一样。只是PORTJ只能对最低两位和最高两位进行有效操作。b.输入寄存器PTIx输入寄存器是只读寄存器,对应引脚为输入时,读取PTIx返回引脚电平值。c.数据方向寄存DDRx:与通用I/O口的数据方向寄存器操作和功能基本一样。d.驱动控制寄存器RDRx与通用I/O口的驱动控制寄存器RDR操作和功能基本一样。“1”输出驱动能力为正常时的1/5;“0”正常输出驱动方式。e.上拉/下拉使能寄存器PERx“1”选择使用内部上拉/下拉电阻,“0”禁用,复位值为0。f.上拉/下拉选择寄存器PPSx“1”选择使用内部下拉电阻,“0”选择使用内部上拉电阻,复位值为0。PORTP、PORTH、PORTJ具有外部中断功能,当对应引脚使能中断时,则PPSx对应位为“1”时,中断为下降沿出发,“0”中断为上升沿出发。G.中断使能寄存器PIExPORTP、PORTH、PORTJ中断使能位,“1”允许中断,“0”禁止中断,复位为0。H.中断标志寄存器PIFx使用中断时,对应引脚的中断标志位。向对应位写“1”清除中断标志位。5、电源相关引脚MC9S12XS128单片机的电源引脚汇总参见下表:引脚名称(17)额定电压/V描述VDDR5.0外部电源,为内部电压调节器供电VSSR0VDDX2、VDDX15.0外部电源和地,为I/O口供电7VSSX2、VSSX10VDDA5.0A/D转换器工作电源和地,为内部电压调节器提供参考电源,允许单独为A/D提供工作电压VSSA0VRH5.0A/D转换器参考电源和地VRL0VDD1.8内部电源和地,由内部调节器为内核供电VSS1、VSS2、VSS30VDDF2.8内部电源和地,由内部调节器为内部NVM供电VDDPLL1.8为锁相环(PLL)提供工作电源和地,由内部电压调节器产生。允许单独为PLL提供工作电压VSSPLL06、其他引脚1.XTAL和EXTAL(35、34)振荡器引脚2.RESET(30)外部复位引脚3.BKGD/MODC(15)背景调试和模式引脚4.TEST(67)工厂内部用,需接地7、MC9S12XS128的存储器映射MC9S12XS128内置128KB程序Flash(P-lash)、8KBRAM和8KB数据Flash(D-lash)。下图列出单片机本地存储器映射和全局存储器地址映射。2KB寄存器地址:从0x0000-0x07FF是2KB寄存器地址空间8KB数据Flash(D-lash):0x0800-0x0bff1KB是数据Flash(D-lash)页面空间,可通过EPAGE寄存器将这1KB的页面区映射到数据Flash页面中。8KBD-lash分为8页,每页为1KB,每256B为1扇区,共32个扇区。8KB数据Flash其全局地址空间为0x10_0000-0x10_1FFF。本地地址映射分别为:EEPROM_000x000800TO0x000BFFEEPROM_010x010800TO0x010BFFEEPROM_020x020800TO0x020BFFEEPROM_030x030800TO0x030BFFEEPROM_040x040800TO0x040BFFEEPROM_050x050800TO0x050BFF8EEPROM_060x060800TO0x060BFFEEPROM_070x070800TO0x070BFF8KBRAM:从0x2000-0x3FFF是8KB固定RAM地址空间RAM0x2000TO0x3FFF128KB程序Flash(P-lash):从本地地址0x4000-0xFFFF共48KB是程序Flash(P-lash)存储空间,共分为3个16KB空间。第一16KB空间0x4000-0x7FFF和最后一个16KB空间0xC000-0xFFFF是固定程序空间,中间16KB空间0x8000-0xBFFF是程序Flash分页映射窗口。可通过PPAGE寄存器将这16KB的页面区映射到程序Flash页面中。128KBP-lash分为8页,两个固定页和6个映射页面空间,每页为16KB,每1KB为1扇区,共128个扇区。128KB程序Flash其全局地址空间为0x7E_0000-0x7F_FFFF。本地地址映射分别为:PAGE_F80xF88000TO0xF8BFFFPAGE_F90xF98000TO0xF9BFFFPAGE_FA0xFA8000TO0xFABFFFPAGE_FB0xFB8000TO0xFBBFFFPAGE_FC0xFC8000TO0xFCBFFFPAGE_FE0xFE8000TO0xFEBFFF9