- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
, 使用过程中 , 常常出现程序的 IO 口设置 , 包括设置为交叉开关 , 推挽方式等。 由于对这种
设置方法不太了解,因此做一个专题。
//
// I/O 初始化程序
//
// 配置交叉开关和
GPIO
端口
void xbar_ {
init (void)
{
XBR0 =
0x07;
//
允许 I2C SPI 和 UART
XBR1 =
0x00;
//
XBR2 =
0x40;
//
允许交叉开关和弱上拉
//PRT0CF |= 0xff;
//
允许P0 口的所有输出为弱上拉
//P0MDOUT
// 让交叉开关将这些引脚配置为输入
//PRT1CF |= 0x40; // 允许 P1.6 (LED) 为弱上拉输出
}
(通过对比几个程序的 I/O初始化,发现主要是对寄存器 XBR0~2以及PRT(0~7)CF进行设置。
特将与 IO 口设置相关的寄存器做一个说明)
GPIO 口和数字外设口
C8051F020/1/2/3 MCU 是高集成度的混合信号片上系统,有按 8 位端口组织的 64 个数 字I/O引脚。低端口( P0、P1、P2和P3)既可以按位寻址也可以按字节寻址 。高端口
(P4、P5、P6和P7)只能按字节寻址。所有引脚都耐5V电压,都可以被配置为 漏极 开路或推挽输出方式和弱上拉 。
C8051F020/1/2/3器件有大量的数字资源需要通过 4个低端I/O端口 PO、P1、P2和P3 才能使用。PO、P1、P2和P3中的每个引脚既可定义为通用的端口 I/O( GPIO)引脚,又可
以分配给一个数字外设或功能(例如: UARTO或/INT1 ),这种资源分配的灵活性是通过使
用 优先权交叉开关译码器 实现的。注意,不管引脚被分配给一个数字外设或是作为通用 I/O,总是可以通过读相应的数据寄存器得到端口 I/O引脚的状态。端口 1的引脚可以用做
ADC1 的模拟输入。
优先权交叉开关译码器, 或称为“交叉开关”,按优先权顺序将端口 0 -3的引脚分配给
器件上的数字外设(UART、SMBus、PCA、定时器等)。端口引脚的分配顺序是从 P0.0开
始,可以一直分配到 P3.7。 UART0 具有最高优先权,而 CNVSTR 具有最低优先权。
交叉开关寄存器
当交叉开关配置寄存器 XBR0、XBR1和XBR2中外设的对应使能位被设置为逻辑’ 1
时,交叉开关将端口引脚分配给外设(参考 C8051F02X.PDF参考第148页)。例如,如果
UART0EN位(XBR0.2 )被设置为逻辑’1,则TX0和RX0引脚将分别被分配到 P0.0和P0.1。 因为 UART0 有最高优先权,所以当 UART0EN 位被设置为逻辑‘ 1时其引脚将总是被分配 到P0.0和P0.1。如果一个数字外设的使能位未被设置为逻辑’ 1,则其端口将不能通过器
件的端口引脚被访问。注意:当选择了串行通信外设(即 SMBus、SPI或UART )时,交叉
开关将为所有相关功能分配引脚。例如,不能为 UART0 功能只分配 TX0 引脚而不分配 RX0 引脚。被使能的外设的每种组合导致唯一的器件引脚分配。
因为交叉开关寄存器影响器件外设的引脚分配,所以它们 通常在外设被配置前由系
统的初试化代码配置。一旦配置完毕,将不再对其重新编程。 交叉开关寄存器被正确
配置后,通过将XBARE (XBR2.6)设置为逻辑‘ 1来使能交叉开关。在XBARE (XBR2.6 )被设置为逻辑’1之前,端口 0-3的输出驱动器保持禁止状态。被交叉开关分 配给输入信号(例如 RX0 )的引脚所对应的输出驱动器应被明确禁止;以保证端口数据寄存 器和PnMDOUT寄存器的值不影响这些引脚的状态。
2.3 端口引脚的输出方式
每个端口引脚的输出方式都可被配置为漏极开路( 漏级开路即高阻状态,适用于输入 /输出,其
可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部 上拉电阻或使用如LCX245等电平转换芯
片。)或推挽方式, (
电压或分走极小的电压(可忽略) ,保证输出与电源相同的高电平,推挽适用于输出而不适用于输入,因为若对
推挽(低阻)加高电平后, 匸U/R , I会很大,将造成口的烧毁 )缺省状态为漏极开路。在推挽方式,向
端口数据寄存器中的相应位写逻辑’ 0将使端口引脚被驱动到 GND,写逻辑’1将使端口
引脚被驱动到VDD。在漏极开路方式,向端口数据寄存器中的相应位写逻辑’ 0将使端口
引脚被驱动到GND,写逻辑’1将使端口引脚处于高阻状态。当系统中不同器件的端口引 脚有共享连接,即多个输出连接到同一个物理线时(例如 SMBus连接中的SDA信号),使
用漏极开路方式可以防止不同器件之间的争用。 端口 0-3引脚的输出方式由
您可能关注的文档
最近下载
- 四级检验工理论1.docx VIP
- 附件:江苏省建设工程监理现场用(第七版).docx VIP
- 钳工中级班练习(2021-10-27).docx VIP
- DB13_T1418-2011_高温闷棚土壤消毒技术规程_河北省.docx VIP
- 《牛的解剖》课件.ppt VIP
- 新收入准则下建筑业的全流程账务处理.pdf VIP
- DB11 971-2013 重点建设工程施工现场治安防范系统规范.pdf VIP
- 钳工中级班练习(2021-11-1).docx VIP
- 《医疗器械经营质量管理基本要求》DB14T 3291-2025.pdf VIP
- 2024年中考第三次模拟考试题:道德与法治(陕西卷)(解析版).docx VIP
原创力文档


文档评论(0)