[PIC®/AVR®/dsPIC®产品] PIC16F单片机的IO的方向设置可以用下面的方式吗

[复制链接]
2094|24
夜晚有三年 发表于 2026-4-27 11:42 | 显示全部楼层
可以,但必须按 PIC16F 架构规则写:PIC16 的 TRIS 寄存器控制方向:1 = 输入,0 = 输出。可直接赋值(TRISA0=1;)或位操作(TRISA |= 0x01;),不能直接操作 PORT 设方向。同时注意:模拟引脚需先关闭 ANSEL 才能当数字 IO,否则方向设置无效。写法正确但要搭配寄存器,避免浮空 / 模拟通道干扰。
总结
方向由 TRIS 控制,1 入 0 出
模拟引脚必须 关闭 ANSEL
可用位操作 / 直接赋值,不能用 PORT 设方向
雾都浪漫 发表于 2026-4-28 14:22 | 显示全部楼层
可以,但要看具体写法。PIC16F 用TRIS 寄存器设方向:1 = 输入,0 = 输出。直接赋值如TRISA=0x00;或位操作TRISAbits.TRISA0=1;都标准可用。不建议直接对 PORT 操作改方向,也别用未定义寄存器。只要操作对应 TRIS,语法正确就没问题,是通用标准写法。
牛奶秋刀鱼 发表于 2026-4-30 15:18 | 显示全部楼层
可以,但必须看寄存器定义。PIC16F 用TRIS 寄存器设方向:TRISx=0推输出,TRISx=1设输入。直接赋值、位操作都合法,只要不写错寄存器。若用PORT设方向会失效,只有 TRIS 控制方向,写法规范就稳定,无兼容性问题。
一点点晚风 发表于 2026-5-28 08:52 | 显示全部楼层
可以。PIC16F 的 IO 方向通过TRIS 寄存器设置:TRISx=1为输入,TRISx=0为输出。可直接赋值(如TRISA=0x00)、位操作(TRISAbits.TRISA0=1)或宏定义配置。注意模拟引脚需关闭 ANSEL,否则数字 IO 无效。写法规范、常用,完全可行,符合 PIC16F 寄存器操作标准。
拿走一光年 发表于 2026-5-28 15:08 | 显示全部楼层
可以,但必须按 PIC16F 架构规则写:IO 方向由TRIS 寄存器控制,TRISx=1为输入,0为输出。直接赋值TRISA=0x00;、位操作TRISB0=1;、寄存器定义操作都合法。禁止直接读写 PORT 寄存器设方向,也注意位操作依赖编译器头文件定义,规范写法稳定可靠,不会出错。
总结
用TRIS 寄存器设置方向完全可行,赋值 / 位操作都支持,只要不混淆 PORT 与 TRIS、头文件正确就没问题。
一点点晚风 发表于 2026-5-29 08:53 | 显示全部楼层
PIC16F 的 IO 方向必须通过TRIS 寄存器设置:TRISx=1输入,TRISx=0输出。可直接赋值或位操作,这是标准合法方式。若引脚带模拟功能,必须先关闭ANSEL 寄存器,否则数字 IO 不生效。只要操作对应 TRIS 寄存器,该配置方式完全可用。
ead5ah 发表于 2026-5-31 23:07 | 显示全部楼层
本帖最后由 ead5ah 于 2026-6-1 02:15 编辑

TRISA/TRISC 不支持位操作,禁止写 TRISC0,所有 PIC:RC0 = 1 输出电平全部通用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0