Playboy_xixi 发表于 2012-10-26 22:09:48

IO口直接作开关(按键开关、感应开关)的疑惑

本帖最后由 Playboy_xixi 于 2012-10-26 22:09 编辑

很多人做搭棚电路的时候都喜欢直接将开关接在两个IO口上,作为一个开关。而不是将一端置地。原理大概就是检测一个IO是否出现低电平{:2_26:} 第二种置地法,好理解。那第一种呢??{:2_29:} 疑惑是:单片机都作为普通IO模式,单片机是每一个IO都默认为高低平,怎么通过按键检测到低电平呢{:mad:}
感应式开关
如图,将光敏电阻接在两个IO上,检测IO的电压变化,也可以做光感应开关。知道可以这样做,但是不怎么懂其中的原理,更别说是编程了。。{:3_45:}希望各位大虾,给我指点一下:原理,IO端口设置,编程思路(原理懂了,思路自然来了{:lol:} )
附上手册里关于IO口的说明,我是不太懂{:3_49:}

Playboy_xixi 发表于 2012-10-26 22:10:19

国际惯例,{:lol:}

xpxp 发表于 2012-10-27 14:47:35

    按照我的理解,其中任一个IO是有上拉电阻的,大约是100K左右吧(具体看手册),当该IO口置1时就相当于在VCC与IO口之间串接了一个100K的电阻。当光敏电阻受光照时,阻值应该是有明显的变化,可能从无穷大变化到数十K;IO口检测高电平是>2v,低电平是<0.8V。光敏电阻与上拉电阻的分压比决定了该IO口电平的高低(其中一个IO口要置0)。该电路应该仅能实现检测出一个开关量。
   如果在任一IO口对地接一个合适的电容,应该可以检测出光强(参见STC官网上的“I/O做ADC用RC充放电”例程)。
   

Playboy_xixi 发表于 2012-10-28 23:39:49

xpxp 发表于 2012-10-27 14:47 static/image/common/back.gif
按照我的理解,其中任一个IO是有上拉电阻的,大约是100K左右吧(具体看手册),当该IO口置1时就相当于 ...

可是两个IO都是默认为1,都具有弱上拉电阻,那个么怎么就是这个IO是低电平,另一个就是高电平了???还是与IO设置有关?、如果是一个IO设置为普通,另一个设置为强推,第一个的上拉电阻比第二个小,当两者短接,第一个电压比第二个要高,那么第二个就是0了、、、、{:tongue:} 这个是我的臆想,不确定真假,这个还得实验验证
页: [1]
查看完整版本: IO口直接作开关(按键开关、感应开关)的疑惑