用单片机的一个普通IO口实现按键和指示灯的控制

[复制链接]
17027|48
 楼主| tanpinwu 发表于 2013-8-18 16:11 | 显示全部楼层 |阅读模式
想用单片机的一个普通IO口实现:当按键按下时,led亮,再次按下时,led灭,如此循环~~哪位大侠知道程序怎么编啊,小弟在此先谢过了。

本帖子中包含更多资源

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

×
ningling_21 发表于 2013-8-18 16:13 | 显示全部楼层
IO口不够用吗?
 楼主| tanpinwu 发表于 2013-8-18 16:23 | 显示全部楼层
ningling_21 发表于 2013-8-18 16:13
IO口不够用吗?

是的,而且按键和指示灯是一个模块,单片机是另外一个模块,可以分开的。灯灭时我想给单片机口一个方波(通过调节占空比来设置灯的亮度,即微亮状态,而不是完全灭掉)
crazy2012 发表于 2013-8-18 16:31 | 显示全部楼层
tanpinwu 发表于 2013-8-18 16:23
是的,而且按键和指示灯是一个模块,单片机是另外一个模块,可以分开的。灯灭时我想给单片机口一个方波( ...

可以复用。
 楼主| tanpinwu 发表于 2013-8-18 16:35 | 显示全部楼层
不明白,不知道怎么编程序,请师傅指点
ningling_21 发表于 2013-8-18 16:39 | 显示全部楼层
if(key==0)
{
   if(x==0)
   {
      x=1;
    }
   else
   {
      x=0;
    }
}

if(x==0)
{
   led=0;
}
else
{
   led=1;
}
 楼主| tanpinwu 发表于 2013-8-18 16:56 | 显示全部楼层
key,x,led之间有什么关系吗,还有就是IO口只有一个,设置io口时又是怎么设置呢?
ningling_21 发表于 2013-8-18 17:49 | 显示全部楼层
tanpinwu 发表于 2013-8-18 16:56
key,x,led之间有什么关系吗,还有就是IO口只有一个,设置io口时又是怎么设置呢? ...

x是一个变量
led 和key 都是一个IO口。
草民 发表于 2013-8-18 17:52 | 显示全部楼层
ningling_21 发表于 2013-8-18 16:39
if(key==0)
{
   if(x==0)

没有消抖哦。。。
huangxz 发表于 2013-8-18 18:13 | 显示全部楼层
不能这样用吧。
njchenmin 发表于 2013-8-18 19:06 | 显示全部楼层
这个电路不能实现这个功能吧,只要口设置为输入,LED就会亮
ZG11211 发表于 2013-8-18 20:39 | 显示全部楼层
可以复用,按键扫描的时间设短一点,不影响LED的显示,市面上那个遥控电风扇其实显示LED和按键就是共用的。
 楼主| tanpinwu 发表于 2013-8-18 21:59 | 显示全部楼层
ningling_21 发表于 2013-8-18 17:49
x是一个变量
led 和key 都是一个IO口。

能再详细点吗,好像不行哦
ayb_ice 发表于 2013-8-19 08:12 | 显示全部楼层
按键通过10K电阻接地,LED通过470欧电阻接VCC,分时控制
zhangliming420 发表于 2013-8-19 08:29 | 显示全部楼层
输入和输出可以复用。
ningling_21 发表于 2013-8-19 08:44 | 显示全部楼层
tanpinwu 发表于 2013-8-18 21:59
能再详细点吗,好像不行哦

电路要改一下,按14楼那样...
gx_huang 发表于 2013-8-19 08:45 | 显示全部楼层
错误的原理图,永远无法实现。
tong1991海深 发表于 2013-8-19 09:37 | 显示全部楼层
这样子灯会亮吗?电流够吗?只是仿真吗
w522930954 发表于 2013-8-19 09:43 | 显示全部楼层
把按键改成开关吧,楼主这样明显是冲突的逻辑。说不通的
coody 发表于 2013-8-19 10:16 | 显示全部楼层
LZ的按下键,LED就会灭掉。我用STC倒是做过,键与LED不会有明显干涉。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

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