(整理)飞思卡尔寄存器整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S12的输入/输入端口(I/O口)
I/O端口功能
可设置为通用I/O口、驱动、内部上拉/下拉、中断输入等功能。

设置I/O口工作方式的寄存器有:
DDR、IO、RDR、PE、IE和PS。

DDR:设定I/O口的数据方向。

IO :设定输出电平的高低。

RDR:选择I/O口的驱动能力。

PE:选择上拉/下拉。

IE:允许或禁止端口中断。

PS:1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。

I/O端口设置
1、A口、B口、E口寄存器
(1)数据方向寄存器DDRA、DDRB、DDRE
DDRA、DDRB、DDRE均为8位寄存器,复位后其值均为0。

当DDRA=0、DDRB=0、DDRE=0 时A口、B口和E口均为输入口。

否则,A口、B口、E口为输出口。

当DDRA、DDRB、DDRE的任何一
位置1时,则该位对应的引脚被设置为输出。

例如,将A口设置为输出口,则其C语言程序的语句为:DDRA=0xff;(2)A口、B口、E口上拉控制寄存器PUCR
PUCR为8位寄存器,复位后的值为0。

当PUPAE、PUPBE、PUPEE被设置为1时,A口、B口、E口具有内部上拉功能;为0时,上拉无效。

当A口、B口、E口为地址/数据总线时,PUPAE和PUPBE无效。

(3)A口、B口、E口降功率驱动控制寄存器RDRIV
RDRIV为8位寄存器,复位后的值为0,此时,A口、B口、E口驱动保持全功率;当RDPA、RDPB、RDPE为1时,A口、B口、E口输出引脚的驱动功率下降
(4)数据寄存器PORTA、PORTB、PORTE
PORTA、PORTB、PORTE均为8位寄存器,复位后的值为0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。

由于PE0是/XIRQ、PE1是IRQ,因此,PE0和PE1只能设置为输入。

2、H口寄存器
(1)H口I/O寄存器PTH
任意时间读/写。

当某一引脚对就的数据方向位设置为1时,读操作返回的是这个端口寄存器的值;否则,读的是引脚的值。

(2)端口H输入寄存器PTIH
只可读,不可写。

读该寄存器返回的是引脚状态。

该寄存器可检测相应引脚的输出是否过载或短路。

(3)数据方向寄存器DDRH
(4)端口H降功率驱动寄存器RDRH
(5)端口H拉动装置使能寄存器PERH
任意时间读/写。

如果端口H是输入口,该寄存器将配置被激活的上拉或下拉装置。

当PERH某一位为1时,对应装备上拉或下拉使能。

当PERH某一位为0时,对应装备上拉或下拉禁止。

(6)端口H极性选择寄存器PPSH
任意时间读/写。

该寄存器有两个作用:选择激活的中断边沿的极性;选择上拉或下拉。

当PPSH某一位为1时,H口对应引脚信号上升沿将使PIFH寄存器中相应位置位;当PERH对应位置1且端口定义为输入口时,引脚和下拉装置连接。

当PPSH某一位为0时,H口对应引脚信号下降沿将使PIFH寄存器中相应位置位;当PERH对应位置1且端口定义为输入口时,引脚和上拉装置连接。

(7)H口中断使能寄存器PIEH
任意时间读/写。

PIEH寄存器可设置端口H相应引脚的外部中断边沿使能或禁止。

PIEH某一位置1时,对应引脚的中断使能。

PIEH某一位置0时,对应引脚的中断禁止。

(8)口中断标志寄存器PIFH
任意时间读/写。

当对应引脚出现活动的边沿时,PIFH相应位被置1。

是上升沿或下降沿,由PPSH寄存器相应位的状态决定。

为了清除标志位,向PIFH对应位写“1”。

写“0”无效。

3、J口寄存器
(1)J口I/O寄存器PTJ
任意时间读/写。

当数据方向寄存器对应位置1时,读PTJ将返回PTJ中的值;否则读返回对应引脚的值。

(2)J口输入寄存器PTIJ
只读不写。

读该寄存器将返回引脚的值。

该寄存器可检测相应引脚的输出是否过载或短路。

(3)J口数据方向寄存器DDRJ
(4)J口降功率驱动寄存器RDRJ
(5)J口拉动装备使能寄存器PERJ
(6)J口极性选择寄存器PPSJ
任意时间读/写。

该寄存器有两个作用:选择激活的中断边沿的极性;选择上拉或下拉。

当PPSJ某一位为1时,J口对应引脚信号上升沿将使PIFJ寄存器中相应位置位;当PERJ对应位置1且端口定义为输入口时,引脚和下拉装置连接。

当PPSJ某一位为0时,J口对应引脚信号下降沿将使PIFJ寄存器中相应位置位;当PERJ对应位置1且端口定义为输入口时,引脚和上拉装置连接。

(7)J口中断使能寄存器PIEJ
任意时间读/写。

PIEJ寄存器可设置端口J相应引脚的外部中断边沿使能或禁止。

PIEJ某一位置1时,对应引脚的中断使能。

PIEJ某一位置0时,对应引脚的中断禁止.
(8)J口中断标志寄存器PIFJ
任意时间读/写。

当对应引脚出现活动的边沿时,PIFJ相应位被置1。

是上升沿或下降沿,由PPSJ寄存器相应位的状态决定。

为了清除标志位,向PIFJ对应位写“1”。

写“0”无效。

4、M口寄存器
(1)M口I/O寄存器PTM
任意时间读/写。

当数据方向寄存器对应位置1时,读PTM将返回PTM中的值;否则读PTM将返回对应引脚的值。

(2)M口输入寄存器PTIM
只读不写。

读该寄存器将返回引脚的值。

该寄存器可检测相应引脚的输出是否过载或短路。

(3)M口数据方向寄存器DDRM
Byteflight/CAN/BDLC强制将与其输出对应的引脚置为输出状态;同时,将与其输入对应的引脚置为输入状态。

(4)M口降功率驱动寄存器RDRM
(5)M口拉动装备使能寄存器PERM
任意时间读/写。

如果端口用于输入或“线或”输出,该寄存器配置被激活的上拉或下拉装置。

当端口用于推挽输出时,相应位无效。

(6)M口极性选择寄存器PPSM
任意时间读/写。

当PPSM的某一位被置为1时,如果PERM对应位使能,并且端口用于通用或BDLC输入,则一个下拉装备被连接到M口对应引脚上。

当PPSM的某一位被清0时,如果PERM对应位使能,并且端口用于通
用、Byteflight或RXCAN输入,则一个上拉装备被连接到M口对应引脚上。

(7)M口线或模式寄存器WOMM
该寄存器配置输出引脚为线或。

如果应用于Byteflight、CAN和BDLC 输出且许多几种串行模式的多点连接,则该寄存器的某一位对于用于输入的相应引脚无影响。

当WOMM某一位置为1时,输出缓冲器工作在开漏输出状态。

当WOMM某一位清为0时,输出缓冲器工作在推挽输出状态。

5、P口寄存器
(1)P口I/O寄存器PTP
任意时间读/写。

如果PWM通道使能,则PWM功能优先于通用I/O功能。

如果相应通道使能,通道6~0只能输出;如果停机特性使能,则通道7可作为PWM输出与输入。

SPI功能也优先于通用I/O功能。

(2)P口输入寄存器PTIP
(3)P口数据方向寄存器DDRP
如果PWM对应通道或SPI模式使能,则该寄存器对引脚无效。

(4)P口降功率驱动寄存器RDRP
(5)P口拉动装置使能寄存器PERP
(6)P口极性选择寄存器PPSP
任意时间读/写。

该寄存器有两个作用:选择激活的中断边沿的极性;选择上拉或下拉。

当PPSP某一位为1时,P口对应引脚信号上升沿将使PIFP寄存器中相应位置位;当PERP对应位置1且端口定义为输入口时,引脚和下拉装置连接。

当PPSP某一位为0时,P口对应引脚信号下降沿将使PIFP寄存器中相应位置位;当PERP对应位置1且端口定义为输入口时,引脚和上拉装置连接。

(7)P口中断使能寄存器PIEP
任意时间读/写。

PIEP寄存器可设置端口P相应引脚的外部中断边沿使能或禁止。

PIEP某一位置1时,对应引脚的中断使能。

PIEP某一位置0时,对应引脚的中断禁止。

(8)P口中断标志寄存器PIFP
任意时间读/写。

当对应引脚出现活动的边沿时,PIFP相应位被置1。

是上升沿或下降沿,由PPSP寄存器相应位的状态决定。

为了清除标志位,向PIFP对应位写“1”。

写“0”无效。

6、S口寄存器
(1)S口I/O寄存器PTS
(2)S口输入寄存器PTIP
(3)S口数据方向寄存器DDRS
(4)S口降功率驱动寄存器RDRS
(5)S口拉动装置使能寄存器PERS
(6)S口极性选择寄存器PPSS
任意时间读/写。

该寄存器有两个作用:选择激活的中断边沿的极性;选择上拉或下拉。

当PPSP某一位为,PERP对应位置1且端口定义为输入口时,引脚和下拉装置连接。

当PPSP某一位为0,PERP对应位置1且端口定义为线或输出口时,引脚和上拉装置连接。

(7)S口线或模式寄存器WOMS
该寄存器配置输出引脚为线或。

如果应用于SPI和SCI输出且许多几种串行模式的多点连接,则该寄存器的某一位对于用于输入的相应引脚无影响。

当WOMM某一位置为1时,输出缓冲器工作在开漏输出状态。

当WOMM某一位清为0时,输出缓冲器工作在推挽输出状态。

S12微控制器中断模块
中断源:中断请求信号的来源。

S12微控制器的中断源:特殊中断源、外部中断源、端口中断源、定时中断源、通信中断源、A/D中断源等。

中断过程
①外部或内部中断源提出中断请求,如果存在中断标志位,则硬件置相应中断标志位。

②如果开放了CPU对相应中断源的中断请求的响应,CPU将暂停当前程序段的执行,I清0,即关中断,将断点地址与相关寄存器的值压入堆栈保护起来。

③跳转到中断入口地址执行指令,进而执行中断服务程序。

中断服务程序中清标志位。

④将压入堆栈的数据放回相关寄存器,断点地址放回PC。

⑤返回暂停的程序段继续执行。

1、不可屏蔽中断XIRQ
中断入口地址:$fff4、$fff5。

C语言中断号:5。

(1)中断允许位X
将CCR中的X位清0,就开放了CPU对XIRQ中断请求的响应。

C语言程序中,使用如下指令可开放XIRQ的中断:
ASM LDAA #$10;
ASM TAP;
(2)中断请求信号
低电平有效。

(3)实验
①实验要求
在main()中顺序点亮8支发光管,每次点亮1支。

在XIRQ的中断服务程序中反向点亮8支发光管,每次点亮2支。

②电路连接
发光管由A口驱动;将E口与B口连接,由PB0为XIRQ提供中断请
求信号。

2、可屏蔽中断IRQ
中断入口地址:$fff2、$fff3。

C语言中断号:6。

(1)中断允许总控制位I
将CCR中的I位清0,就开放了CPU对可屏蔽中断源的中断请求的响应。

(2)IRQ控制寄存器IRQCR
程序中,IRQCR使用符号INTCR代替。

①IRQ中断触发方式选择位IRQE
当IRQE=1时,IRQ引脚下降沿触发中断。

当IRQE=0时,IRQ引脚低电平沿触发中断。

②IRQ中断允许控制位IRQEN
当IRQEN=1时,IRQ引脚与中断逻辑连接,IRQ中断允许。

当IRQEN=0时,IRQ引脚与中断逻辑断开,IRQ中断禁止。

(3)实验
①实验要求
在main()中顺序点亮8支发光管,每次点亮1支。

在IRQ的中断服务程序中反向点亮8支发光管,每次点亮2支。

②电路连接
发光管由A口驱动;将E口与B口连接,由PB1为IRQ提供中断请求信号。

3、H口中断
中断入口地址:$ffcc、$ffcd。

C语言中断号:25。

(1)中断允许总控制位I
将CCR中的I位清0,就开放了CPU对可屏蔽中断源的中断请求的响应。

(2)相关寄存器
①H口中断触发方式选择寄存器PPSH
当PPSHx=1时,PTHx引脚信号上升沿将使PIFHx=1。

当PPSHx=0时,PTHx引脚信号下降沿将使PIFHx=1。

②H口中断允许控制寄存器PIEH
当PIEHx=1时,PTHx引脚信号的中断请求允许。

当PIEHx=0时,PTHx引脚信号的中断请求禁止。

③H口中断标志寄存器PIFH
PPSHx位的状态,决定PIFHx是上升沿或下降沿被置1。

在H口的中断服务程序中,向PIFHx位写“1”可使PIFHx=0。

写“0”无效。

(3)实验
①实验要求
在main()中顺序点亮8支发光管,每次点亮1支。

在H口的中断服务程序中反向点亮8支发光管。

当PTHx引脚中断时,点亮x+1支发光管。

②电路连接
发光管由A口驱动;将H口与B口连接,由B口相应引脚为H口相应引脚提供中断请求信号。

4、中断优先级实验
I位控制的高优先级中断寄存器HPRIO。

设置某一个由I控制的中断源的中断优先级为高优先级时,只需要向HPRIO写入该中断源的中断入口地址偶字节的低8位值。

(1)XIRQ与IRQ中断优先级实验
①实验要求
在main()中顺序点亮8支发光管,每次点亮1支。

在IRQ的中断服务程序中顺序点亮8支发光管,每次点亮2支,并产生XIRQ中断信号。

在XIRQ的中断服务程序中顺序点亮8支发光管,每次点亮4支。

②电路连接
发光管由A口驱动;将E口与B口连接,由B口相应引脚为E口相应引脚提供中断请求信号。

2)IRQ与H口中断优先级实验
①实验要求
在main()中顺序点亮8支发光管,每次点亮1支。

在IRQ的中断服务程序中顺序点亮8支发光管,每次点亮2支,并产生H口中断信号。

在H口的中断服务程序中顺序点亮8支发光管,每次点亮4支。

②电路连接
发光管由A口驱动;将E口与B口连接,由B口相应引脚为E口相应引脚提供中断请求信号;将H口与P口连接,由P口相应引脚为H口相应引脚提供中断请求信号。

相关文档
最新文档