打印
[PIC®/AVR®/dsPIC®产品]

PIC16F1933的port口功能和优先级

[复制链接]
521|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 永远不停 于 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电压错误吗

使用特权

评论回复
5
lcczg| | 2021-2-1 15:09 | 只看该作者
永远不停 发表于 2021-1-29 17:45
那这样不是导致ADC电压错误吗

正常采样的话,肯定不会数字输出使能了。

使用特权

评论回复
6
systemchip| | 2021-2-1 15:21 | 只看该作者
如果设置为模拟功能口,你是不能做输出功能的

使用特权

评论回复
7
永远不停|  楼主 | 2021-2-1 19:54 | 只看该作者
systemchip 发表于 2021-2-1 15:21
如果设置为模拟功能口,你是不能做输出功能的

手册上是这样写的:“优先级列表中未显示模拟输入功能 (例如 ADC、比较器和电容触摸传感输入)。使用 ANSELx 寄存器将 I/O引脚设置为模拟模式时,这些输入是有效的。当引脚处于模拟模式并具有表12-2所示的优先级时,数字输出功能可以控制该引脚

使用特权

评论回复
8
systemchip| | 2021-2-2 10:12 | 只看该作者
你更本不需要关心这些,你要做输入的时候,方向寄存器就设为输入,做输出的时候,就设置为输出

使用特权

评论回复
9
永远不停|  楼主 | 2021-2-2 17:40 | 只看该作者
systemchip 发表于 2021-2-2 10:12
你更本不需要关心这些,你要做输入的时候,方向寄存器就设为输入,做输出的时候,就设置为输出 ...

做了测试,应该这样理解:它的端口有输入和输出,数字和模拟之分,如果将端口配置为模拟功能,而没有配置为输入,那么此时该端口仍然可以通过软件控制输出,测量外部端口为控制的高低电平,接入的模拟量无效。

使用特权

评论回复
10
systemchip| | 2021-2-3 11:41 | 只看该作者
所以你只需要搞清楚你是需要模拟还是数字功能,输入还是输出,然后进行相应正确配置即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

59

帖子

0

粉丝