![第5章S12输入_输出端口模块及其应用实例_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/b35b7bec-0529-46f6-a00b-aef9da0f3ae9/b35b7bec-0529-46f6-a00b-aef9da0f3ae91.gif)
![第5章S12输入_输出端口模块及其应用实例_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/b35b7bec-0529-46f6-a00b-aef9da0f3ae9/b35b7bec-0529-46f6-a00b-aef9da0f3ae92.gif)
![第5章S12输入_输出端口模块及其应用实例_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/b35b7bec-0529-46f6-a00b-aef9da0f3ae9/b35b7bec-0529-46f6-a00b-aef9da0f3ae93.gif)
![第5章S12输入_输出端口模块及其应用实例_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/b35b7bec-0529-46f6-a00b-aef9da0f3ae9/b35b7bec-0529-46f6-a00b-aef9da0f3ae94.gif)
![第5章S12输入_输出端口模块及其应用实例_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/b35b7bec-0529-46f6-a00b-aef9da0f3ae9/b35b7bec-0529-46f6-a00b-aef9da0f3ae95.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应输出端口模块及其应用实例用实例合肥工业大学合肥工业大学机械与汽车工程学院机械与汽车工程学院滕滕 勤勤2014.42014.4基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例本章内容本章内容p 5.1 5.1 并行并行I/OI/O接口简介接口简介p 5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置p 5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例基于HCS12的嵌入式系统设计第第5 5章章 S12S
2、12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介p【I/OI/O接口接口(Input/Output Interface)(Input/Output Interface)】MCUMCU与外界进行交互与外界进行交互的重要通道。的重要通道。p【常见【常见I/OI/O接口接口】人机交互接口,如开关、键盘、指示灯、显人机交互接口,如开关、键盘、指示灯、显示器示器(LED(LED、LCD)LCD)等,或者外接其它输入、输出设备。等,或者外接其它输入、输出设备。pI/OI/O接口电路的主要作用:接口电路的主要作用:(1 1)协调高速)协调
3、高速CPUCPU与低速外设之间的速度匹配与低速外设之间的速度匹配(2 2)提供输入、输出过程中的状态信号)提供输入、输出过程中的状态信号基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介【并行【并行I/OI/O接口组成接口组成】p【端口【端口】接口电路中用以完成信息传送、并可通过地址读接口电路中用以完成信息传送、并可通过地址读/ /写写的寄存器。的寄存器。p【并行【并行I/OI/O接口接口】由若干个端口(由若干个端口(PortPort)组成:一个接口在物)组成:一个接口在物
4、理上有若干个端口,与不同的寄存器相对应,规定这些端口理上有若干个端口,与不同的寄存器相对应,规定这些端口分别是分别是数据口数据口、状态口状态口和和命令口命令口。 p一个接口分配有若干个地址,即每一个端口分配一个地址。一个接口分配有若干个地址,即每一个端口分配一个地址。CPUCPU将不同的信息写到不同的端口地址,也从不同的端口地址将不同的信息写到不同的端口地址,也从不同的端口地址读取不同的信息。读取不同的信息。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介pMC9S12D
5、G128MC9S12DG128单片机的单片机的I/OI/O接口包括接口包括PORTAPORTA、PORTBPORTB、PORTEPORTE、PORTKPORTK、PORTTPORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH、PORTJPORTJ以及以及PORTADPORTAD端口模块端口模块。pPORTAPORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK属于属于复用扩展总线接口复用扩展总线接口( (MEBIMEBI) ),当,当MC9S12DG128MC9S12DG128在扩展方式下工作时,作为总线信号;在单片模式下工
6、作时,在扩展方式下工作时,作为总线信号;在单片模式下工作时,PORTAPORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK可用作通用可用作通用I/OI/O口。口。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介pPORTTPORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ属于属于端口集成模块端口集成模块PIMPIM,与片内,与片内其他功能模块的引脚复用。其他功能模块的引脚复用
7、。p每个功能模块按照优先级的每个功能模块按照优先级的高低使用引脚。高低使用引脚。 基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介p 【GPIOGPIO简化功能逻辑图简化功能逻辑图】仅考虑两个寄存器:仅考虑两个寄存器:数据寄存器数据寄存器PORTPORT和和数据方数据方向寄存器向寄存器DDRDDR。p RD_DDRRD_DDR和和WR_DDRWR_DDR分别控制各自的三态双向门闩电路,该电路具有双向传分别控制各自的三态双向门闩电路,该电路具有双向传输和高阻三态功能(图中只
8、给出了单向传输和门控功能),可分别读取输和高阻三态功能(图中只给出了单向传输和门控功能),可分别读取PORTPORT引脚状态、数据锁存器状态和方向寄存器引脚状态、数据锁存器状态和方向寄存器DDRDDR的状态。的状态。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1 5.1 并行并行I/OI/O接口简介接口简介p9S129S12单片机的每个单片机的每个I/OI/O接口引脚均内置拉电阻,可以通过编程设置是否使用上拉、接口引脚均内置拉电阻,可以通过编程设置是否使用上拉、下拉功能及其极性。下拉功能及其极性。p【拉电阻的主要作
9、用【拉电阻的主要作用】当电路驱动器关闭时,保持线路(节点)为固定电平,提当电路驱动器关闭时,保持线路(节点)为固定电平,提高抗干扰能力。高抗干扰能力。标准端口的最小特性:标准端口的最小特性:输入输入/ /输出选择输出选择两个可选择驱动强度的两个可选择驱动强度的5V5V输出驱动输出驱动5V5V数字或模拟输入数字或模拟输入可选择上拉或下拉器件的输入可选择上拉或下拉器件的输入选择特性:选择特性:线或连接的开漏输出线或连接的开漏输出虚假信号滤波的中断输入虚假信号滤波的中断输入基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.1
10、5.1 并行并行I/OI/O接口简介接口简介p通用通用I/OI/O口可以设置输入口可以设置输入/ /输出、驱动能力、内部上拉输出、驱动能力、内部上拉/ /下拉电阻、中断输入等功能。下拉电阻、中断输入等功能。用户可以通过设置用户可以通过设置DDRDDR、I/OI/O、RDRRDR、PERPER、PPSPPS和和IEIE等寄存器,选择等寄存器,选择I/OI/O口的工作方口的工作方式。其中:式。其中: 方向寄存器方向寄存器DDR DDR 用于设定用于设定I/OI/O口的数据方向。口的数据方向。 I/OI/O寄存器寄存器 用于设定端口输出电平的高低。用于设定端口输出电平的高低。 驱动控制驱动控制寄存器
11、寄存器RDR RDR 用于选择用于选择I/OI/O的输出驱动能力。的输出驱动能力。 上拉上拉/ /下拉使能下拉使能寄存器寄存器PER PER 当当I/OI/O口为输入时,用于选择内部上拉或下拉功能。口为输入时,用于选择内部上拉或下拉功能。 上拉上拉/ /下拉选择下拉选择寄存器寄存器PPSPPS有两个用途:有两个用途:(1 1)当中断允许位置位时,用于选择上升沿触发或下降沿触发中断。)当中断允许位置位时,用于选择上升沿触发或下降沿触发中断。(2 2)当使能内部上拉)当使能内部上拉/ /下拉器件时,用于选择上拉或下拉。下拉器件时,用于选择上拉或下拉。 中断使能中断使能寄存器寄存器IE IE 用于允
12、许或禁止用于允许或禁止I/OI/O口上的中断。口上的中断。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例p引脚配置汇总引脚配置汇总 基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ基于HCS12的嵌入式系统设计第第5 5章章 S
13、12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例
14、输出端口模块及其应用实例5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ1 1数据方向寄存器数据方向寄存器DDRxDDRxp 【作用【作用】决定对应的引脚为输出还是输入,任何时候可读写。决定对应的引脚为输出还是输入,任何时候可读写。v DDRx7:0 DDRx7:0 端口端口x x数据方向位数据方向位 1 = 1 = 对应引脚设置为输出。对应引脚设置为输出。 0 = 0 = 对应引脚设置为输入。对应引脚设置为输入。p
15、复位后,数据方向寄存器值为复位后,数据方向寄存器值为0 x000 x00,引脚默认为输入。,引脚默认为输入。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ1数据方向寄存器数据方向寄存器DDRxDDRxp 如果外设模块控制引脚,数据方向寄存器的内容被忽略。如果外设模块控制引脚,数据方向寄存器的内容被忽
16、略。基于HCS12的嵌入式系统设计第第5章章 S12输入输入/输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ2I/OI/O寄存器寄存器PTxPTxp 任何时候可读写。任何时候可读写。p 如果数据方向寄存器如果数据方向寄存器DDRxDDRx对应位的数值为对应位的数值为“1”(1”(输出输出) )时,时,I/OI/O寄存器的值与引脚寄存器的值与引脚电平一致:电平一致: PTxPTx =1 =1,对应的引脚输出为高电平。,对应的引脚输出为高电平
17、。 PTxPTx =0 =0,对应的引脚输出为低电平。,对应的引脚输出为低电平。 读取该寄存器返回读取该寄存器返回I/OI/O寄存器的内容。寄存器的内容。p 如果数据方向寄存器如果数据方向寄存器DDRxDDRx对应位的数值为对应位的数值为“0”0”,即将对应引脚定义为,即将对应引脚定义为输入输入时:时: 读取该寄存器返回引脚值。读取该寄存器返回引脚值。 写该寄存器不改变引脚状态,但当写该寄存器不改变引脚状态,但当DDRxDDRx对应位的数值变为对应位的数值变为“1”1”时,寄存器中的时,寄存器中的数值将反映在引脚上。数值将反映在引脚上。基于HCS12的嵌入式系统设计第第5 5章章 S12S12
18、输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ3输入寄存器输入寄存器PTIxPTIxp 输入寄存器是一个输入寄存器是一个只读只读寄存器。任何时候可读,写无效。寄存器。任何时候可读,写无效。p 如果数据方向寄存器如果数据方向寄存器DDRxDDRx对应位的数值为对应位的数值为“0”0”,即将对应引脚定义为,即将对应引脚定义为输入输入时,时,读取该寄存器总是返回引脚值。读取该寄存器总是返回引脚值。 读出的值为读出的值为“0”0”,
19、表示对应引脚上为低电平;,表示对应引脚上为低电平; 读出的值为读出的值为“1”1”,表示对应引脚上为高电平。,表示对应引脚上为高电平。p 如果数据方向寄存器如果数据方向寄存器DDRxDDRx对应位的数值为对应位的数值为“1”1”,即将对应引脚定义为,即将对应引脚定义为输出输出时,时,利用读该寄存器可以监视对应引脚是否过载或短路。如果过载或短路,则该寄存利用读该寄存器可以监视对应引脚是否过载或短路。如果过载或短路,则该寄存器对应位为器对应位为1 1,否则,为,否则,为0 0。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5
20、.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ4 4驱动控制寄存器驱动控制寄存器RDRxRDRxp 【作用【作用】定义每个输出端口引脚的驱动能力,任何时候可读写。定义每个输出端口引脚的驱动能力,任何时候可读写。v RDRx7:0 RDRx7:0 端口端口x x降功率驱动控制位降功率驱动控制位 1 = 1 = 对应引脚输出驱动能力为正常值的对应引脚输出驱动能力为正常值的1/61/6。 0 = 0 = 对应引脚为输出全功率
21、驱动。对应引脚为输出全功率驱动。p 如果端口用作输入,该位被忽略。如果端口用作输入,该位被忽略。p 复位后,复位后,RDRxRDRx寄存器值为寄存器值为$00$00,引脚默认以满功率驱动输出。,引脚默认以满功率驱动输出。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ5 5上拉上拉/ /下拉使能寄存器下拉使能寄存器PERxPERx p 【作用【作用】如果端口用作输入或为
22、如果端口用作输入或为“线或线或”模式时,该寄存器设置是否激活模式时,该寄存器设置是否激活内置上拉内置上拉/ /下拉器件。任何时候可读写。下拉器件。任何时候可读写。v PERx7:0 PERx7:0 端口上拉端口上拉/ /下拉器件使能位下拉器件使能位 1 = 1 = 对应引脚允许内置上拉或下拉器件。对应引脚允许内置上拉或下拉器件。 0 = 0 = 对应引脚禁用内置上拉对应引脚禁用内置上拉/ /下拉器件。下拉器件。p 如果端口用作输出,该位无效。如果端口用作输出,该位无效。p 复位后,复位后,PERxPERx=$00=$00,禁止上拉,禁止上拉/ /下拉功能。下拉功能。基于HCS12的嵌入式系统设
23、计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ【补充【补充】上上/ /下拉电阻的作用下拉电阻的作用p 当当TTLTTL电路驱动电路驱动COMSCOMS电路时,由于电路时,由于TTLTTL电路输出的高电平低于电路输出的高电平低于COMSCOMS电路的电路的高电平阈值,需要在高电平阈值,需要在TTLTTL的输出端接上拉电阻,以提高输出高电平的值。的输出端接上拉电阻,以提高输出高电平的值。p OCOC
24、(集电极开路)或(集电极开路)或ODOD(漏极开路)门电路必须加上拉电阻,才能使用。(漏极开路)门电路必须加上拉电阻,才能使用。p 为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。p 管脚悬空容易受外界的电磁干扰。不用的管脚不能悬空,一般接上拉电管脚悬空容易受外界的电磁干扰。不用的管脚不能悬空,一般接上拉电阻,提高总线的抗电磁干扰能力,防止静电造成阻,提高总线的抗电磁干扰能力,防止静电造成COMSCOMS芯片损坏。芯片损坏。p 芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声芯片的管脚加上拉电阻来提高输出电平
25、,从而提高芯片输入信号的噪声容限,增强抗干扰能力。容限,增强抗干扰能力。p 长线传输中,电阻不匹配容易引起反射波干扰,加下拉电阻进行电阻匹长线传输中,电阻不匹配容易引起反射波干扰,加下拉电阻进行电阻匹配,有效抑制反射波干扰。配,有效抑制反射波干扰。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ6 6上拉上拉/ /下拉选择寄存器下拉选择寄存器PPSxPPSx p 【作用
26、【作用】选择上拉或下拉器件是否与引脚相连。选择上拉或下拉器件是否与引脚相连。p 任何时候可读写。任何时候可读写。v PPSx7:0 PPSx7:0 端口上拉端口上拉/ /下拉选择位下拉选择位 1 = 1 = 如果端口用作输入、且如果端口用作输入、且PERxPERx寄存器相关位设置为允许时,对应的端寄存器相关位设置为允许时,对应的端口引脚与下拉器件相连。口引脚与下拉器件相连。 0 = 0 = 如果端口用作输入、且如果端口用作输入、且PERxPERx寄存器相关位设置为允许时,对应的端寄存器相关位设置为允许时,对应的端口引脚与上拉器件相连。口引脚与上拉器件相连。基于HCS12的嵌入式系统设计第第5
27、5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ6 6上拉上拉/ /下拉选择寄存器下拉选择寄存器PPSxPPSxp 【注意【注意】PORTPPORTP、PORTHPORTH和和PORTJPORTJ三个端口具有中断功能,当这三个端口允三个端口具有中断功能,当这三个端口允许中断时,上拉许中断时,上拉/ /下拉选择寄存器还具有下拉选择寄存器还具
28、有第二个作用第二个作用,用于选择引脚上触,用于选择引脚上触发中断的形式。发中断的形式。v PPSx7:0 PPSx7:0 触发中断选择位触发中断选择位 1 = 1 = 当某个引脚使能中断时,上升沿触发中断。当某个引脚使能中断时,上升沿触发中断。 0 = 0 = 当某个引脚使能中断时,下降沿触发中断。当某个引脚使能中断时,下降沿触发中断。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和POR
29、TJPORTJ7. 7. 端口线或模式寄存器端口线或模式寄存器WOMxWOMxp 端口端口M M和端口和端口S S各具有一个线或模式寄存器,用来将输出引脚设置成各具有一个线或模式寄存器,用来将输出引脚设置成“线线或或”方式。任何时候可读写。方式。任何时候可读写。p 如果使能,输出驱动仅仅低电平有效,如果使能,输出驱动仅仅低电平有效,逻辑逻辑“1”1”电平不驱动。也适用于电平不驱动。也适用于SPISPI和和SCISCI输出,允许几个串行模块的多点连接。该位对用作输入的引脚输出,允许几个串行模块的多点连接。该位对用作输入的引脚没有影响。没有影响。WOMx7:0 WOMx7:0 线或模式选择位线或模
30、式选择位v1 = 1 = 输出缓冲器工作在开漏输出输出缓冲器工作在开漏输出(open-drain output)(open-drain output)状态。状态。v0 = 0 = 输出缓冲器工作在推挽输出输出缓冲器工作在推挽输出(push-pull output)(push-pull output)状态。状态。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例【复习【复习】单片机开漏输出和推挽输出的区别单片机开漏输出和推挽输出的区别p 驱动能力不同驱动能力不同p 推挽输出推挽输出(1 1)两个参数相同的)两个参数相同的MOS
31、FETMOSFET分别受两互补信号的控制,一个管子导通时另一个截止。分别受两互补信号的控制,一个管子导通时另一个截止。(2 2)输出电阻小,导通损耗小,效率高,能够驱动大的负载。单片机管脚可以直接)输出电阻小,导通损耗小,效率高,能够驱动大的负载。单片机管脚可以直接驱动发光二极管、蜂鸣器、甚至更小阻抗的负载。驱动发光二极管、蜂鸣器、甚至更小阻抗的负载。(3 3)可以输出高、低电平,连接数字器件。输出既可以向负载灌电流,也可以从负)可以输出高、低电平,连接数字器件。输出既可以向负载灌电流,也可以从负载抽取电流。载抽取电流。p 开漏输出开漏输出(1 1)漏极开路,只能输出低电平,需接上拉电阻才能得
32、到高电平状态。)漏极开路,只能输出低电平,需接上拉电阻才能得到高电平状态。(2 2)适合于吸收型弱电流驱动,接上拉电阻后吸收电流的能力比输出电流的能力强。)适合于吸收型弱电流驱动,接上拉电阻后吸收电流的能力比输出电流的能力强。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ8 8中断使能寄存器中断使能寄存器PIExPIExp PORTPPORTP、PORTHPORTH和
33、和PORTJPORTJ三个端口具有中断功能,且各有一个中断使能寄存三个端口具有中断功能,且各有一个中断使能寄存器,允许或禁止相应端口对有效边沿的中断。任何时候可读写。器,允许或禁止相应端口对有效边沿的中断。任何时候可读写。v PIEx7:0 PIEx7:0 中断使能位中断使能位 1 = 1 = 允许中断。允许中断。 0 = 0 = 禁止中断禁止中断 ( (中断被屏蔽中断被屏蔽) )。p 复位后,中断使能寄存器值为复位后,中断使能寄存器值为$00$00,所有端口中断关闭。,所有端口中断关闭。 基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口
34、模块及其应用实例5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJ9 9中断标志寄存器中断标志寄存器PIFxPIFx p PORTPPORTP、PORTHPORTH和和PORTJPORTJ三个端口各有一个中断标志寄存器三个端口各有一个中断标志寄存器PIFx(x=PPIFx(x=P、H H、J)J)。基于。基于PPSxPPSx寄存器设置的有效边沿,当相应引脚上出现上升沿或下降寄存器设置的有效边沿,当相应引脚上出现上升沿或下降沿时,中断标志寄存器中的对应位被置位。沿时,中断标志寄存器中的对应位
35、被置位。p 任何时候可读写任何时候可读写PIFxPIFx寄存器。为了清除中断标志,需要向该寄存器中的寄存器。为了清除中断标志,需要向该寄存器中的相应位写相应位写“1”1”。写。写“0”0”无效。无效。v PIFx7:0 PIFx7:0 中断标志位中断标志位 1 = 1 = 相应引脚上出现有效边沿相应引脚上出现有效边沿( (如果相应的使能位置位,将产生中断如果相应的使能位置位,将产生中断) )。 0 = 0 = 相应引脚上未出现有效边沿。相应引脚上未出现有效边沿。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2 5.2
36、 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.1 PORTT5.2.1 PORTT、PORTSPORTS、PORTMPORTM、PORTPPORTP、PORTHPORTH和和PORTJPORTJpPORTPPORTP、PORTHPORTH和和PORTJPORTJ三个端口的中断向量地址及相三个端口的中断向量地址及相关标志位、控制位。关标志位、控制位。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2 5.2 输入输入/ /输出端口寄存器及设置输出端口寄存器及设置5.2.2 PORTA5.2.2 PORT
37、A、PORTBPORTB、PORTEPORTE和和PORTKPORTK基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK1 1数据方向寄存器数据方向寄存器DDRxDDRxp 【作用【作用】决定端口引脚为输出还是输入。决定端口引脚为输出还是输入。v DDRx7-0 DDRx7-0 数据方向位数据方向位 1 = 1 = 设置相应的设置相应的I/OI/O引脚为输出。引脚为输出。 0 = 0 = 设置相应的设置相应的I/O
38、I/O引脚为输入。引脚为输入。v DDRxDDRx各位的数值影响相应各位的数值影响相应PORTxPORTx寄存器读取的寄存器读取的数据源数据源。如果如果DDRxDDRx寄存器某位为寄存器某位为“0”0”(输入),读取的是缓冲的引脚输入状态;(输入),读取的是缓冲的引脚输入状态;如果如果DDRxDDRx寄存器某位为寄存器某位为“1”1”(输出),读取的是相应端口数据寄存器对应位的状态。(输出),读取的是相应端口数据寄存器对应位的状态。p 复位后,数据方向寄存器的值为复位后,数据方向寄存器的值为0 x000 x00,引脚默认为输入。,引脚默认为输入。p 【注意【注意】端口端口E E是一个特例,其是
39、一个特例,其最低两位只能为输入口,最低两位只能为输入口,端口端口E E的数据方向寄存器的数据方向寄存器DDREDDRE最低两位是只读位,读这两位始终返回最低两位是只读位,读这两位始终返回“0”0”。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK2 2I/O I/O 寄存器寄存器PORTxPORTx p I/OI/O寄存器中寄存器中8 8位对应每个端口中的相应引脚,当位对应每个端口中的相应引脚,当PORTxPOR
40、Tx寄存器处于内存分配表中时,寄存器处于内存分配表中时,任何时候可读写。任何时候可读写。 如果某端口的引脚被定义为输出,写入如果某端口的引脚被定义为输出,写入I/OI/O寄存器中的数值会从对应引脚输出;寄存器中的数值会从对应引脚输出; 如果某端口的引脚被定义为输入,读取如果某端口的引脚被定义为输入,读取I/OI/O寄存器获得对应的引脚电平。寄存器获得对应的引脚电平。p 为了确保读到为了确保读到PORTxPORTx引脚的当前值,写引脚的当前值,写DDRxDDRx寄存器后至少等待一个周期,再读寄存器后至少等待一个周期,再读PORTxPORTx寄存器。寄存器。p 【注意【注意】端口端口E E是一个特
41、例,其是一个特例,其最低两位只能为输入最低两位只能为输入,端口,端口E E的的I/OI/O寄存器寄存器PORTEPORTE最最低两位是只读位。低两位是只读位。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK3 3上拉电阻控制寄存器上拉电阻控制寄存器PUCR PUCR p PORTAPORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK都有内置上拉电阻,都有内置上拉电阻,共用一个控制寄存器共
42、用一个控制寄存器PUCRPUCR。p 【作用【作用】选择端口引脚的上拉电阻,第选择端口引脚的上拉电阻,第7 7、4 4、1 1和和0 0位分别对应端口位分别对应端口K K、E E、B B和和A A。p 当当PUCRPUCR寄存器处于内存分配表中时,任何时候可读写。寄存器处于内存分配表中时,任何时候可读写。 p 上拉根据每个端口来分配,适用于当前配置为输入的相应端口的任何引上拉根据每个端口来分配,适用于当前配置为输入的相应端口的任何引脚。当相应引脚为输出时,这些位无效脚。当相应引脚为输出时,这些位无效( (上拉设置不起作用上拉设置不起作用) )。p 单片机复位后,端口单片机复位后,端口K K和端
43、口和端口E E的上拉电阻使能,端口的上拉电阻使能,端口B B和端口和端口A A的上拉电的上拉电阻禁止。阻禁止。p 在扩展和外设模式下,在扩展和外设模式下,PUCRPUCR寄存器不在片内寄存器映射区内。寄存器不在片内寄存器映射区内。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK3 3上拉电阻控制寄存器上拉电阻控制寄存器PUCRPUCRPUPKE PUPKE 端口端口K K上拉使能位上拉使能位1 = 1 = 端口端
44、口K K输入引脚上拉允许。输入引脚上拉允许。0 = 0 = 端口端口K K输入引脚上拉禁止。输入引脚上拉禁止。PUPEE PUPEE 端口端口E E上拉使能位上拉使能位1 = 1 = 端口端口E E输入引脚输入引脚7, 4-07, 4-0上拉允许。上拉允许。0 = 0 = 端口端口E E输入引脚输入引脚7, 4-07, 4-0上拉禁止。上拉禁止。PUPBE PUPBE 端口端口B B上拉使能位上拉使能位1 = 1 = 端口端口B B所有输入引脚上拉允许。所有输入引脚上拉允许。0 = 0 = 端口端口B B上拉禁止。上拉禁止。PUPAE PUPAE 端口端口A A上拉使能位上拉使能位1 = 1
45、= 端口端口A A所有输入引脚上拉允许。所有输入引脚上拉允许。0 = 0 = 端口端口A A上拉禁止。上拉禁止。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK4 4驱动控制寄存器驱动控制寄存器RDRIVRDRIVp PORTAPORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK都可以设置端口输出驱动能力,都可以设置端口输出驱动能力,共用一个控制寄存共用一个控制寄存器器RDRIVRDRI
46、V。p 【作用【作用】选择相关端口引脚的降功率驱动,选择相关端口引脚的降功率驱动,第第7 7、4 4、1 1和和0 0位分别对应端口位分别对应端口K K、E E、B B和和A A。p 当当RDRIVRDRIV寄存器处于内存分配表中时,任何时候可读写。寄存器处于内存分配表中时,任何时候可读写。 如果某个控制位为如果某个控制位为“1”1”,对应端口输出驱动能力降低;,对应端口输出驱动能力降低; 如果某个控制位为如果某个控制位为“0”0”,对应端口为正常驱动输出方式。,对应端口为正常驱动输出方式。p 在扩展和外设模式下,在扩展和外设模式下,RDRIVRDRIV寄存器不在片内映射区内。寄存器不在片内映
47、射区内。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.2.2 PORTA5.2.2 PORTA、PORTBPORTB、PORTEPORTE和和PORTKPORTK4 4驱动控制寄存器驱动控制寄存器RDRIVRDRIVRDPK - RDPK - 端口端口K K降功率驱动控制位降功率驱动控制位1 = 1 = 允许所有端口允许所有端口K K输出引脚低功耗驱动。输出引脚低功耗驱动。0 = 0 = 允许所有端口允许所有端口K K输出引脚全功率驱动。输出引脚全功率驱动。RDPE - RDPE - 端口端口E E降功率驱动控制位降
48、功率驱动控制位1 = 1 = 允许所有端口允许所有端口E E输出引脚低功耗驱动。输出引脚低功耗驱动。0 = 0 = 允许所有端口允许所有端口E E输出引脚全功率驱动。输出引脚全功率驱动。RDPB - RDPB - 端口端口B B降功率驱动控制位降功率驱动控制位1 = 1 = 允许所有端口允许所有端口B B输出引脚低功耗驱动。输出引脚低功耗驱动。0 = 0 = 允许所有端口允许所有端口B B输出引脚全功率驱动。输出引脚全功率驱动。RDPA - RDPA - 端口端口A A降功率驱动控制位降功率驱动控制位1 = 1 = 允许所有端口允许所有端口A A输出引脚低功耗驱动。输出引脚低功耗驱动。0 =
49、0 = 允许所有端口允许所有端口A A输出引脚全功率驱动。输出引脚全功率驱动。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例 5.3.1 5.3.1 输出设备输出设备LEDLED控制实例控制实例pPORTBPORTB连接连接8 8只只LEDLED,编程实现,编程实现明灯流水明灯流水操作。操作。p点亮点亮LEDLED灯,并使蜂鸣器发声。灯,并使蜂鸣器发声。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块
50、及其应用实例5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例 5.3.2 5.3.2 输入设备拨码开关读取实例输入设备拨码开关读取实例p使用使用PORTAPORTA读取读取8 8位拨码开关状态。位拨码开关状态。p根据拨位开关的状态,点亮或熄灭对应的根据拨位开关的状态,点亮或熄灭对应的LEDLED灯。灯。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实输出端口模块及其应用实例例5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例 5.3.3 5.3.3 键盘接口设计键盘接口设计p 键盘多由多个按键组成,排列成阵列键盘多由多个按
51、键组成,排列成阵列。p 当当无无键按下时,行和列线之间不相连,若第键按下时,行和列线之间不相连,若第N N行第行第M M列列的键被按下,的键被按下,则则第第N N行与第行与第M M列的线被接通。列的线被接通。p 如果在列线上加上信号,如果在列线上加上信号,根据行线的状态,便可根据行线的状态,便可得知是否有键按下。得知是否有键按下。p 如果如果逐列逐列加上信号加上信号(扫(扫描列线)描列线),读取读取行线行线状状态态,便便可判断按键的位可判断按键的位置。置。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.3 5.3.
52、3 键盘接口设计键盘接口设计p用用PORTAPORTA扩展的扩展的4 44 4键盘:键盘:低低4 4位作为行线,高位作为行线,高4 4位作为列线。位作为列线。p将端口将端口A A的低的低4 4位设置为输入、高位设置为输入、高4 4位设置为输出(即位设置为输出(即DDRA=0 xF0DDRA=0 xF0)。)。p使使PORTAPORTA的高的高4 4位逐列输出低电平,并读取位逐列输出低电平,并读取PORTAPORTA的低的低4 4位,将高位,将高4 4位的输出位的输出状态与读取到的低状态与读取到的低4 4位状态相位状态相“与与”,然后查询,然后查询RAMRAM中的表格便可判断被按中的表格便可判断
53、被按下键的位置。下键的位置。【键盘扫描方法【键盘扫描方法】逐行逐行/ /逐列扫描法逐列扫描法反转法反转法【去抖动方法【去抖动方法】硬件法硬件法采用斯密特触采用斯密特触发器发器软件法软件法利用软件延时利用软件延时基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.3 5.3.3 键盘接口设计键盘接口设计p【硬件去抖动处理【硬件去抖动处理】利用两级带利用两级带斯密特触发电路的反相器。斯密特触发电路的反相器。p【软件去抖动处理【软件去抖动处理】当判断有键按下后,软件延时当判断有键按下后,软件延时20ms20ms,再次扫描确认
54、。,再次扫描确认。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例5.3.3 5.3.3 键盘接口设计键盘接口设计基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.3 5.3.3 键盘接口设计键盘接口设计p 采用数码管显示驱动及键盘扫描管理芯片采用数码管显示驱动及键盘扫描管理芯片ZLG7289BZLG7289B扩展扩展4 44 4键盘。键盘。 【芯片特点【芯片特点】p 可直接驱动可直接
55、驱动8 8位共阴式数码管(或位共阴式数码管(或6464只独立只独立LEDLED)。)。p 可扫描管理多达可扫描管理多达6464只按键。只按键。p 内部含有译码器,可直接接收内部含有译码器,可直接接收BCDBCD码或码或1616进制码,进制码,并具有两种译码方式。并具有两种译码方式。p 具有多种控制指令,如消隐、闪烁、左移、右移、具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。段寻址等。p 采用采用SPISPI串行总线与微控制器接口。串行总线与微控制器接口。p 利用片选信号,利用片选信号,ZLG7289BZLG7289B可以并接在一起使用,实可以并接在一起使用,实现多于现多于8 8位的显示
56、或多于位的显示或多于6464只按键的应用。只按键的应用。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.3 5.3.3 键盘接口设计键盘接口设计p通过通过IRQIRQ中断来检测是否有按键被按下。中断来检测是否有按键被按下。基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.4 LED5.3.4 LED显示接口设计显示接口设计p 【LEDLED ( (Light Emitting Diode) )】数码管】数码管,用发光二极管显示字段的显示器
57、,用发光二极管显示字段的显示器。p 【LEDLED显示器类型显示器类型】共阴极、共阳极。共阴极、共阳极。p 共阴极共阴极将将8 8个发光二极管阴极连在一起作为公共端。个发光二极管阴极连在一起作为公共端。p 共阳极共阳极将将8 8个发光二极管的阳极连在一起作为公共端。个发光二极管的阳极连在一起作为公共端。 (a) 外形结构与引脚外形结构与引脚(共阴共阴) (b) 共阴极共阴极 (C) 共阳极共阳极基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及其应用实例5.3.4 LED5.3.4 LED显示接口设计显示接口设计p数码管的公共端相当于
58、一个位选数码管的公共端相当于一个位选开关,一般称为开关,一般称为位码开关位码开关。当该。当该位处于高电平时,数码管全灭;位处于高电平时,数码管全灭;当该位处于低电平时,根据二极当该位处于低电平时,根据二极管阳极(一般称为管阳极(一般称为段码段码或字形码)或字形码)的电平状态,确定段码是否点亮。的电平状态,确定段码是否点亮。 段码高电平时,该段码亮;段码高电平时,该段码亮; 段码低电平时,该段码不亮。段码低电平时,该段码不亮。p输出相应的段码值得到输出相应的段码值得到LEDLED显示器显示器的字形。的字形。 基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其
59、应用实例输出端口模块及其应用实例5.3 5.3 输入输入/ /输出端口应用实例输出端口应用实例 5.3.4 LED5.3.4 LED显示接口设计显示接口设计p 【LEDLED显示驱动方式显示驱动方式】静态驱动,动态扫描。静态驱动,动态扫描。 静态驱动方式静态驱动方式每个每个LEDLED显示器用一个显示器用一个I/OI/O端口驱动。端口驱动。【特点【特点】亮度较高,功耗也较大,占用亮度较高,功耗也较大,占用I/OI/O端口多,适合显示位数少的场合。端口多,适合显示位数少的场合。 动态扫描驱动方式动态扫描驱动方式将多个显示器的段码将多个显示器的段码同名端同名端连接在一起(并联),连接在一起(并联)
60、,由位码分别控制各显示器,利用眼睛的余辉暂留效应实现显示。只要保由位码分别控制各显示器,利用眼睛的余辉暂留效应实现显示。只要保证一定的显示刷新频率,其显示效果与静态显示相当。证一定的显示刷新频率,其显示效果与静态显示相当。l 用一个用一个I/OI/O端口驱动段码,用一个端口驱动段码,用一个I/OI/O端口实现位码控制。端口实现位码控制。【特点【特点】占用占用I/OI/O端口少,功耗也小,电路简化,成本降低,适合显示位数端口少,功耗也小,电路简化,成本降低,适合显示位数的场合。的场合。 基于HCS12的嵌入式系统设计第第5 5章章 S12S12输入输入/ /输出端口模块及其应用实例输出端口模块及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论