第5章 MC9S12XS输入输出端口模块及其应用实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《MC9S12XS单片机原理及嵌入式系统开发》《MC9S12XS单片机原理及嵌入式系统开发》MC9S12XS单片机原理及嵌入式系统开发合肥工业大学张阳,吴晔,滕勤Email:yzhang0615@163.com,wuye@ialab.hfut.edu.cn,tengqin7348@126.comTEL:13966717615,13505612773《MC9S12XS单片机原理及嵌入式系统开发》第5章MC9S12XS输入/输出端口模块及其应用实例输入/输出端口简介输入/输出端口寄存器及设置输入/输出端口应用实例智能车系统中输入/输出端口的应用《MC9S12XS单片机原理及嵌入式系统开发》5.1输入/输出端口简介MC9S12XS系列内部有非常丰富的输入/输出端口资源,同时也集成了多种功能模块,其输入/输出引脚大多为复用引脚。MC9S12XS128通用I/O口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ以及PORTAD。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置通用I/O口通过配置相应寄存器位,可以设置输入/输出端口、驱动能力、内置上拉/下拉电阻使用、中断输入方式等多种功能。通过对DDR、I/O、RDR、PE、PS和IE等寄存器的设置,用户可以获得通用I/O口的不同工作方式。其中,DDR(数据方向寄存器)设定I/O口为输入/输出端口。数据寄存器(I/O寄存器)用于设定I/O口的高低电平。RDR(驱动控制寄存器)用于设定I/O口的输出驱动能力。PE(上拉/下拉使能寄存器)用于当I/O口为输入口时使能内置上拉电阻或下拉电阻的使用。PS(上拉/下拉选择寄存器)当中断允许位置位时,用于选择上升沿触发或下降沿触发中断;当使能内置上拉/下拉电阻时,用于选择使用上拉电阻或下拉电阻。IE(中断使能寄存器)用于使能I/O口的中断功能。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.1PORTA、PORTB、PORTE和PORTK1.数据寄存器(Px)数据寄存器Px中的8位对应每个端口中的相应引脚,如果某端口的引脚被定义为输出时,写入数据寄存器Px中的数值,则从对应引脚输出;如果某端口的引脚被定义为输入时,可以读取数据寄存器Px对应引脚的电平值。需要注意PORTE端口是一个特例,它的最低两位只能为输入口,所以PORTE端口的数据寄存器最低两位是只读位。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.1PORTA、PORTB、PORTE和PORTK2.数据方向寄存器(DDRx)DDRx决定对应引脚配置为输出口还是输入口,如果某位为“0”,则对应引脚设定为输入口;如果某位为“1”,则对应引脚设定为输出口。MCU复位后,DDRx值为0x00,引脚默认为输入口。需要注意的是,PORTE端口是一个特例,它的最低两位只能为输入口,所以PORTE端口的数据方向寄存器最低两位是只读位,读取这两位始终返回“0”。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.1PORTA、PORTB、PORTE和PORTK3.上拉电阻控制寄存器(PUCR)PORTA、PORTB、PORTE和PORTK端口都有内置上拉电阻,PUCR有4位分别配置4个端口选择使用内置上拉电阻,即第7、4、1和0位分别设置K、E、B和A端口。当控制位为“1”时,设定对应端口使用上拉电阻;当控制位为“0”时,禁止对应端口使用上拉电阻。MCU复位后,设定PORTK和PORTE端口使用上拉电阻,PORTB和PORTA端口禁用上拉电阻。PUCR第6位设置BKGD引脚使用上拉电阻。当该位为“1”时,设定该端口使用上拉电阻;当控制位为“0”时,禁止该端口使用上拉电阻。MCU复位后,该位为“1”,引脚默认为使用内置上拉电阻。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.1PORTA、PORTB、PORTE和PORTK4.驱动控制寄存器(RDR)如果PORTA、PORTB、PORTE和PORTK端口为输出口时,每个端口都可以设置其输出驱动能力,RDR有4位分别设定4个端口输出驱动能力,即第7、4、1和0位分别设置K、E、B和A端口。如果某个控制位为“1”时,设定对应端口输出驱动能力降低;如果某个控制位为“0”时,设定对应端口为正常驱动输出方式。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ1.数据寄存器(PTx)如果数据方向寄存器DDRx的对应位为“0”,即对应引脚定义为输入时,读取数据寄存器PTx的对应位,则为对应引脚的输入电平值;如果DDRx的对应位为“1”,即对应引脚定义为输出时,写入PTx寄存器的对应位,则为对应引脚的输出电平值。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ2.输入寄存器(PTIx)输入寄存器PTIx是一个只读寄存器,如果DDRx的对应位为“0”,即对应引脚定义为输入时,读取PTIx总是返回引脚电平值;如果DDRx的对应位为“1”,即对应引脚定义为输出时,利用PTIx可以监视对应引脚是否过载或短路。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ3.数据方向寄存器(DDRx)DDRx决定对应引脚配置为输出口还是输入口,如果某位为“0”,则对应引脚设定为输入;如果某位为“1”,则对应引脚设定为输出。复位后,DDRx值为0x00,即MCU复位后引脚默认为输入口。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ4.驱动控制寄存器(RDRx)如果端口为输出口时,RDRx可以设置端口对应引脚的输出驱动能力。如果RDRx某位为“1”,则对应引脚的输出驱动能力为正常时的1/5;如果某位为“0”,则对应引脚输出为正常驱动能力。复位后,驱动控制寄存器值为0x00,即MCU复位后引脚默认为满功率驱动输出。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ5.上拉/下拉使能寄存器(PERx)如果端口为输入口或者“线或”模式时,可以通过上拉/下拉使能寄存器PERx使能选择使用内置上拉/下拉电阻。如果PERx某位为“1”时,则对应引脚允许使用内置上拉/下拉电阻;如果某位为“0”时,则对应引脚禁用内置上拉/下拉电阻。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ6.上拉/下拉选择寄存器(PPSx)当某引脚被定义为输入且使能内置上拉/下拉电阻时,上拉/下拉选择寄存器PPSx用于选择使用内置上拉或者下拉电阻。如果PPSx某位为“0”,则对应引脚使用上拉电阻;如果某位为“1”,则对应引脚使用下拉电阻。PORTP、PORTH和PORTJ三个端口都具有中断功能,当某端口允许中断时,PPSx还具有第二个作用,用于选择该端口中的引脚中断为上升沿触发或下降沿触发。当端口某引脚使能中断时,当PPSx对应位为“0”时,则该引脚中断为下降沿触发;当PPSx对应位为“1”,则该引脚中断为上升沿触发。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ7.中断使能寄存器(PIEx)PORTP、PORTH和PORTJ三个端口具有中断功能,且都有中断使能寄存器PIEx,PIEx允许或者禁止相应端口的中断请求。如果PIEx某位为“1”,则对应引脚允许中断;如果某位为“0”,则对应引脚禁止中断。复位后,中断使能寄存器值为0x00,MCU复位后关闭所有端口中断请求。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ8.中断标志寄存器(PIFx)PORTP、PORTH和PORTJ三个端口具有中断功能,且都有中断标志寄存器PIFx。基于PPSx寄存器设置的边沿触发中断方式,当端口相应引脚发生中断,并产生有效电平时,则PIFx中的中断引脚对应位被置位。为了清除PIFx中的中断标志位,需要向该位进行写“1”操作。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.2PORTT、PORTS、PORTM、PORTP、PORTH和PORTJPORTP、PORTH和PORTJ三个端口的中断向量地址及相关标志位、控制位如表5-2所示。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.3PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ1.AD0数据寄存器0(PT0AD0)当不使用AD功能时,如果AD0端口数据方向寄存器0DDR0AD0的对应位为“0”,即对应引脚定义为输入时,读取PT0AD0的对应位,则为对应引脚的输入电平值;如果DDR0AD0的对应位为“1”,即对应引脚定义为输出时,写入PT0AD0寄存器的对应位,则为对应引脚的输出电平值。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.3PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ2.AD0数据寄存器1(PT1AD0)当不使用AD功能时,如果AD0端口数据方向寄存器1DDR1AD0的对应位为“0”,即对应引脚定义为输入时,读取PT1AD0的对应位,则为对应引脚的输入电平值;如果DDR1AD0的对应位为“1”,即对应引脚定义为输出时,写入PT1AD0寄存器的对应位,则为对应引脚的输出电平值。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.3PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ3.AD0数据方向寄存器0(DDR0AD0)DDR0AD0决定AN00~AN07对应引脚为输出口还是输入口,如果某位为“0”,则对应引脚设定为输入口;如果某位为“1”,则对应引脚设定为输出口。如果希望设置AD0端口为通用I/O口功能,ATD0DIEN(数字输入使能)寄存器必须设置为“1”,关于ATD0DIEN寄存器的详细介绍,请参阅第8章。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.3PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ4.AD0数据方向寄存器1(DDR1AD0)DDR1AD0决定AN08~AN15对应引脚为输出口还是输入口,如果某位为“0”,则对应引脚设定为输入口;如果某位为“1”,则对应引脚设定为输出口。如果希望设置AD0端口为通用I/O口功能,ATD0DIEN寄存器必须设置为“1”,关于ATD0DIEN寄存器的详细介绍,请参阅第8章。《MC9S12XS单片机原理及嵌入式系统开发》5.2输入/输出端口寄存器及设置5.2.3PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ5.AD0驱动控制寄存器0(RDR0AD0)如果端口为输出口时,RDR0AD0可以设置端口对应引脚的输出驱动能力。如果RDR0AD0某位为“1”,则对应引脚的输出驱动能力为正常时的1/5;如果某位为“0”,则对应引脚输出

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功