打印

求关于51单片机读取8421拨码开关的程序

[复制链接]
9850|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
栩栩如生|  楼主 | 2012-10-10 19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
司徒老鹰| | 2012-10-10 19:37 | 只看该作者
楼主没有个特定的目标?这么笼统?

使用特权

评论回复
板凳
栩栩如生|  楼主 | 2012-10-10 19:41 | 只看该作者
我想用单片机读取5个8421拨码开关的数值。就是用P1口5个接拨码开关的8421口。P3口接拨码开关的5个公共端,P0口和P2再接到数码管上显示出来。5个拨码开关最大可以显示99999

使用特权

评论回复
地板
houcs| | 2012-10-10 20:08 | 只看该作者
楼主还是自己写好,遇到问题发来大家帮解决,要现成的失去了主动权啊

使用特权

评论回复
5
liuzaiy| | 2012-10-10 20:10 | 只看该作者
这个其实也挺简单的,将5个拨码开关的相同的4个引脚接在一起,要注意加二极管哦,然后将剩余的5个公共端分别杰在单片机的管教上

使用特权

评论回复
6
dousfoulexd| | 2012-10-10 20:10 | 只看该作者
:)

使用特权

评论回复
7
liuzaiy| | 2012-10-10 20:10 | 只看该作者
这样9个IO口就可以读5个拨码开关了,使用起来比较简单可行。

使用特权

评论回复
8
ousj| | 2012-10-10 20:12 | 只看该作者
哈哈,还节省IO口。

使用特权

评论回复
9
morrisk| | 2012-10-10 20:13 | 只看该作者
拨码开关是干什么的?

使用特权

评论回复
10
小小猫咪| | 2012-10-10 20:15 | 只看该作者
拨码开关是通过手动拨到“1”或“0”来实现整个开关数值的组成的

使用特权

评论回复
11
栩栩如生|  楼主 | 2012-10-10 20:16 | 只看该作者
哦,明白一二了

使用特权

评论回复
12
mentoscui| | 2012-10-10 20:36 | 只看该作者
大概学习到了

使用特权

评论回复
13
hawksabre| | 2012-10-11 18:14 | 只看该作者
补充一点拨码开关的知识点

拨码开关种类很多,目前广泛使用的主要有两种,它们都是十进制输入,但输出有别,一种是BCD码(即二——十进制)输出,另一种是十进制输出。作为人机接口使用的最方便的是十进制输入/BCD码输出的拨码盘开关。每片拨盘可代表一位十进制数,需要几位十进制数可选择几片BCD码拨盘拼接,如四片BCD拨码盘拼接可得四位十进制输入拨码组。每个BCD拨码盘后面有5个接点,其中A为输入控制线,另外4根是BCD码输出信号线。拨盘拨到不同的位置时,输入控制线A分别与4根BCD码输出线中的某根或某几根接通。其接通的BCD码输出线状态正好与拨盘指示的十进制数相一致,符合二——十进制编码关系。十进制输出的拨码开关原理比较好理解,这种拨码开关的每片拨盘也具有0—9十个位置,每个位置也有相应的数字显示,代表拨盘输入的十进制数。拨码盘后面共有11个接点,其中A为输入控制线,另外10根是输出信号线。拨盘拨到不同的位置时,输入控制线A分别与10根输出线中的某一根接通,且只能与一根接通。 拨码开关的特性和用途 ◆材料 ●盖:PBT蓝、红、黑 平拨式 ●座:PBT黑 ●滑块:POM白 ●端子:镀金磷铜 ◆产品特征 ●使用具有良耐热性和抗化学性能的工程塑料, ●标准的镀金接点确保可靠性和长寿命性。 ●开关通断时可自动清洁触点。 ●广泛使用于数据处理、通信、遥控和防盗自动警铃系统等需要手动程式编制的产品上。 ◆焊工焊接 ●手工焊接 使用30W以下电会进入内部, 造成接触不良或旋转不良等, 因此请勿整个清洗。 另外, 清洗助焊剂清洗时, 请如图1所示倾斜80°以上, 仅用浸了溶剂的刷子刷洗背面。 也可以仅用溶剂浸润反面后用刷子清洗。 ·浸焊 在涂敷助焊剂溶液的工序中浸渍时间应为2秒以下, 并且如图2所示, 请勿使助焊剂覆盖到布线基板上面。用刷子涂敷的方法比较不容易渗入。 但是如图1所示, 此时请倾斜80°以上。关于助焊剂的清洗, 与上述“自动焊接” 相同。 ·使用烙铁时 请在30W、350℃、3秒以内进行焊接。 清洗时, 同上。 锡焊时、以及其后的3分钟内, 请勿向端子施加力。否则会导致导通或动作不良。 ·请不要让焊接用助焊剂及酒精侵入开关内部。

使用特权

评论回复
14
hawksabre| | 2012-10-11 18:17 | 只看该作者
使用C语言编写拨码开关的驱动类似于键盘扫描程序   主要是不间断扫描   如果扫描拨码开关有动作   则触发中断   进入子函数调用   呵呵

使用特权

评论回复
15
hawksabre| | 2012-10-11 18:18 | 只看该作者
自己多看看例程    读取8421其实很简单。一位开关占4 位IO口,2 位占一个IO口,共8 位。方法是读低4 位时先屏蔽高4 位。   多动脑筋

使用特权

评论回复
16
clarkewayne| | 2013-8-9 20:02 | 只看该作者
學習了!!

使用特权

评论回复
17
mmbs| | 2013-8-11 10:48 | 只看该作者
18
mmbs| | 2013-8-11 10:49 | 只看该作者
19
454473587| | 2017-1-9 11:32 | 只看该作者
谢谢了

使用特权

评论回复
20
@若水| | 2017-1-10 15:34 | 只看该作者
8421拨码开关是什么样的?是四位拔码开关吗?

使用特权

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

本版积分规则

310

主题

2657

帖子

0

粉丝