[PIC®/AVR®/dsPIC®产品] PIC16F1933的port口功能和优先级

[复制链接]
777|9
 楼主| 永远不停 发表于 2021-1-28 11:49 | 显示全部楼层 |阅读模式
本帖最后由 永远不停 于 2021-1-28 11:51 编辑

     如题,在学习这块芯片时,发现一个有意思的地方,一般I/O都有多个复用功能。然后手册里说每个端口的外设功能是有优先级的,见下表:
  

      手册里说,当使能了多个输出时,会按优先级控制,这个可以理解。
      这里的PORTA是有模拟输入功能的,做ADC的输入通道,手册上说,当引脚处于模拟模式时,数字输出功能也可以控制该引脚,那这样数字输出的电平会影响外部输入的电压,导致ADC采样的结果错误。数字和模拟怎么能同时用呢?还是我理解有问题?有没有哪位大佬可以解释一下这个功能是什么意思。小弟万分感谢!







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 永远不停 发表于 2021-1-29 11:23 | 显示全部楼层
大家都没有遇到过这个疑惑吗?模拟跟数字同时使用确实是搞晕了,不能理解
lcczg 发表于 2021-1-29 16:30 | 显示全部楼层
比如ADC,模拟是输入,如果置数字输出为1,则ADC相当于采样高电平VCC吧。个人理解
 楼主| 永远不停 发表于 2021-1-29 17:45 | 显示全部楼层
lcczg 发表于 2021-1-29 16:30
比如ADC,模拟是输入,如果置数字输出为1,则ADC相当于采样高电平VCC吧。个人理解 ...

那这样不是导致ADC电压错误吗
lcczg 发表于 2021-2-1 15:09 | 显示全部楼层
永远不停 发表于 2021-1-29 17:45
那这样不是导致ADC电压错误吗

正常采样的话,肯定不会数字输出使能了。
systemchip 发表于 2021-2-1 15:21 | 显示全部楼层
如果设置为模拟功能口,你是不能做输出功能的
 楼主| 永远不停 发表于 2021-2-1 19:54 | 显示全部楼层
systemchip 发表于 2021-2-1 15:21
如果设置为模拟功能口,你是不能做输出功能的

手册上是这样写的:“优先级列表中未显示模拟输入功能 (例如 ADC、比较器和电容触摸传感输入)。使用 ANSELx 寄存器将 I/O引脚设置为模拟模式时,这些输入是有效的。当引脚处于模拟模式并具有表12-2所示的优先级时,数字输出功能可以控制该引脚
systemchip 发表于 2021-2-2 10:12 | 显示全部楼层
你更本不需要关心这些,你要做输入的时候,方向寄存器就设为输入,做输出的时候,就设置为输出
 楼主| 永远不停 发表于 2021-2-2 17:40 | 显示全部楼层
systemchip 发表于 2021-2-2 10:12
你更本不需要关心这些,你要做输入的时候,方向寄存器就设为输入,做输出的时候,就设置为输出 ...

做了测试,应该这样理解:它的端口有输入和输出,数字和模拟之分,如果将端口配置为模拟功能,而没有配置为输入,那么此时该端口仍然可以通过软件控制输出,测量外部端口为控制的高低电平,接入的模拟量无效。
systemchip 发表于 2021-2-3 11:41 | 显示全部楼层
所以你只需要搞清楚你是需要模拟还是数字功能,输入还是输出,然后进行相应正确配置即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

59

帖子

0

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