msp430单片机io口问题,急求????

[复制链接]
3786|12
 楼主| 小样王子 发表于 2014-4-7 13:00 | 显示全部楼层 |阅读模式
我用op07做个比较器,但比较器输出负电压,于是我就加了点电路,具体如下,三极管主要是用来隔离的。我将图示“单片机io口设置成输入状态,设置语句:P1DIR &=~BIT6;用 if(P1IN&BIT6)读io口状态,但是读入的状态总是跟设置成输入状态前的该io输出电压有关,读到的电压不正确。比如三极管导通,单片机io应该读入0v左右,但是只要io之前输出电压为高,三极管端的电压就变成了高电位。很是不懂为什么?我用的单片机是msp430f169单片机。








本帖子中包含更多资源

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

×
yirongfu 发表于 2014-4-7 13:27 | 显示全部楼层
内部上拉了吗?
 楼主| 小样王子 发表于 2014-4-7 13:50 | 显示全部楼层
yirongfu 发表于 2014-4-7 13:27
内部上拉了吗?

msp430单片机内部上拉怎么设置?好像没有相关的寄存器设置。。
yirongfu 发表于 2014-4-7 15:55 | 显示全部楼层
不好意思,1系列没用过,好像这个系列不带内部上拉。
你可以试试外部给三极管Q1的集电极接一个上拉电阻,上拉到单片机的电源,比如10k欧。
 楼主| 小样王子 发表于 2014-4-7 16:02 | 显示全部楼层
yirongfu 发表于 2014-4-7 15:55
不好意思,1系列没用过,好像这个系列不带内部上拉。
你可以试试外部给三极管Q1的集电极接一个上拉电阻,上 ...

三极管上接上拉电阻我也接了,还是没用,真是想不通了。。
yirongfu 发表于 2014-4-7 16:36 | 显示全部楼层
先断开D1,手动给三极管基极高低信号,看看单片机读出的数据是否正确;用万用表测试口上电压是否正确。
为何要先输出再设为输入?
检查程序是否有问题。
单片机不会有问题的,除非他坏了。
景研 发表于 2014-4-7 22:53 | 显示全部楼层
OPA作比较器不好啊 一般用作放大信号的,用LMP339试试看
i1mcu 发表于 2014-4-7 23:01 | 显示全部楼层
外部上拉电阻
i1mcu 发表于 2014-4-7 23:01 | 显示全部楼层
阻值要1000欧姆左右
lkl0305 发表于 2014-4-8 08:39 | 显示全部楼层
建议那表测试一下,结果一切都清楚了
lostadmin 发表于 2014-4-8 10:35 | 显示全部楼层
读寄存器用的是PIN  还是POUT?
pengxiangbo00 发表于 2014-4-8 14:59 | 显示全部楼层
电路有问题
youluo235 发表于 2014-4-8 16:32 | 显示全部楼层
本帖最后由 youluo235 于 2014-4-8 16:40 编辑

读寄存器用的PIN。这个没问题。直接这样三极管集电极输入单片机?这样恐怕不好。单片机没问题的。问题出在比较器输出那里!既然你说这样接比较器的输出是低的?明显这里有问题啊。同像端比反相端高当然应该是输出为5V了(430供电电压不能超过3.6,那输入呢?)。另外你的比较器供电应该用单电源供电(最好用3.3V单电源供电,如果用5V的话比较器输出串联电阻接430IO输入以此来限制IO输入电流)!这样输出才会只是0和5V.这里用的+-5V供电。万一输出低电平-5V。你让430如何检测你这个-5v的电平呢?建议由2点。第一。换单电源供电再测量比较器的输出是不是高。第二如过换了还是输出高换个真正的比较器吧。说明这个比较器有问题了。至于后面的三极管电路什么的都是多余的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

101

帖子

0

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