youkebing 发表于 2021-3-22 09:45:44

stc手册上的(一个I/O驱动发光二极管并扫描按键)是否可以?

本帖最后由 youkebing 于 2021-3-22 11:04 编辑

结论在22楼
我看了这个图,感觉不行啊,请大家分析一下.

饭桶 发表于 2021-3-22 09:51:26

任何单片机都可以

youkebing 发表于 2021-3-22 09:58:56

饭桶 发表于 2021-3-22 09:51
任何单片机都可以

那个电路,按键按下和不按下电平没有变化啊!

饭桶 发表于 2021-3-22 10:02:29

弱上拉的时候按下按键引脚变成低电平啊!

youkebing 发表于 2021-3-22 10:10:58

饭桶 发表于 2021-3-22 10:02
弱上拉的时候按下按键引脚变成低电平啊!

因为有led发光二极管,按键按下和不按下都是低电平吧

饭桶 发表于 2021-3-22 10:12:26

不是啊,你的物理.............?

youkebing 发表于 2021-3-22 10:27:38

饭桶 发表于 2021-3-22 10:12
不是啊,你的物理.............?

我模拟了一下,我哪里错了?
按键弹起

按键按下

lb0857 发表于 2021-3-22 10:31:36

设置准双向口,高阻输入模式即可。
这个是关键参数

G.ai 发表于 2021-3-22 10:32:58

youkebing 发表于 2021-3-22 10:27
我模拟了一下,我哪里错了?
按键弹起



应该是达不到LED的导通电压,所以LED不导通

youkebing 发表于 2021-3-22 10:35:40

lb0857 发表于 2021-3-22 10:31
设置准双向口,高阻输入模式即可。
这个是关键参数

你看我仿真的结果?

youkebing 发表于 2021-3-22 10:36:52

G.ai 发表于 2021-3-22 10:32
应该是达不到LED的导通电压,所以LED不导通

我仿真的结果是不按下的时候大约是1.5?这个算高?(我用的stc是5v供电),这样保险吗?

饭桶 发表于 2021-3-22 10:42:43

按键和LED是分时控制的,你这一点没理解到精髓。

youkebing 发表于 2021-3-22 10:43:21

我找了一个led导通电压的说明

结合这些,最高的导通电压是1.8,最小的是1.2如果这个电路可靠的工作,那单片机在io口电平是>1.2的时候,就认为是高电平才行。感觉不太靠谱啊

饭桶 发表于 2021-3-22 10:43:25

另外不是检测按键电平,是单片机引脚电平。

youkebing 发表于 2021-3-22 10:45:12

饭桶 发表于 2021-3-22 10:42
按键和LED是分时控制的,你这一点没理解到精髓。

分时我是理解的啊,你觉得我仿真的哪里有问题?请指导一下,诚心的!!

youkebing 发表于 2021-3-22 10:46:51

饭桶 发表于 2021-3-22 10:02
弱上拉的时候按下按键引脚变成低电平啊!

是检测单片机引脚电平!

mtdzok 发表于 2021-3-22 10:49:54

我觉得要用导通压降3V以上的LED,这样没有按键时单片机才认为是高电平,原电路也有问题11K的电阻足以使LED点亮。

youkebing 发表于 2021-3-22 10:53:06

另外,我在修正一下,刚才搜索了一下,说各种不同颜色的发光二极管,压降是不相同的,红色的压降最小
这个电路就是利用led的压降的特性。当时感觉这样不太严谨啊,如果我找个压降大的led,电路可能会可靠的工作,我先选一个小的,可能就不能工作了。

mtdzok 发表于 2021-3-22 10:53:54

youkebing 发表于 2021-3-22 10:53
另外,我在修正一下,刚才搜索了一下,说各种不同颜色的发光二极管,压降是不相同的,红色的压降最小
这个 ...

仿真时可以用两个LED串联

youkebing 发表于 2021-3-22 10:54:38

mtdzok 发表于 2021-3-22 10:49
我觉得要用导通压降3V以上的LED,这样没有按键时单片机才认为是高电平,原电路也有问题11K的电阻足以使LED ...

也就说,用的led要有要求的,不是随便用一个普通led发光二极管就可以的!
这样的话我就理解了

youkebing 发表于 2021-3-22 11:00:06

mtdzok 发表于 2021-3-22 10:53
仿真时可以用两个LED串联

我看到这个图的时候,我感觉不太可靠,如果加个前提,选择发光二极管压降大的,那我就不会有疑问了。谢谢!

youkebing 发表于 2021-3-22 11:03:18

总结:
1,这个电路可以工作,但led发光二极管需要选择压降大的。
2.,10k的电阻其实可以不要.

mtdzok 发表于 2021-3-22 11:09:13

普亮的LED基本在1.8-2V左右,超高亮基本上是3.0-3.3V,红色一般1.8V左右

youkebing 发表于 2021-3-22 11:16:41

mtdzok 发表于 2021-3-22 11:09
普亮的LED基本在1.8-2V左右,超高亮基本上是3.0-3.3V,红色一般1.8V左右

这个问题也提升了我一下,我以前一直以为,led的压降很普通二极管一样的0.7左右,这次检索了一下,原来比普通的高一大截。{:loveliness:}

饭桶 发表于 2021-3-22 11:31:27

youkebing 发表于 2021-3-22 10:45
分时我是理解的啊,你觉得我仿真的哪里有问题?请指导一下,诚心的!! ...

点亮LED的时候,单片机引脚是输出5V的,你仿真图里注入5V了吗?

youkebing 发表于 2021-3-22 11:50:26

饭桶 发表于 2021-3-22 11:31
点亮LED的时候,单片机引脚是输出5V的,你仿真图里注入5V了吗?

点亮是理解的,是按键的问题,
如果用了导通电压高的发光二极管,那这个电路也是没有问题的

小李非刀 发表于 2021-3-22 22:14:59

没有任何问题,我常用在按键带灯的产品。

可以调整这3个电阻,只需要满足:
1、不按键时,IO设置为输入,电压2.0V以上。
2、按键时,IO设置为输入,电压0.8V以下。

楼主图中10K我用6.8K。
显示时,IO推挽输出高LED亮,输出低LED灭。
没隔10~20ms,将IO设置为高阻,延时1us,读IO,读到1就是无按键,读到0就是按键。
假设现在LED灭,读按键但无按键时,会让LED亮1us的时间,实际节本看不出LED发光(除非在伸手不见十指的漆黑环境会有非常微弱的光)。

changshs 发表于 2021-3-23 19:16:46

必须可以!~
页: [1]
查看完整版本: stc手册上的(一个I/O驱动发光二极管并扫描按键)是否可以?