拨盘开关,简称为拨盘,也有人称为拨码开关、编码开关、指轮开关等等,这是一种数字输入设备。
一个拨盘,它和计算机的接口是并行的四条线,可输入四位的 8421码。
它的表面,通常印的符号是十进制数字 0~9,也有印着十六进制数字的,更有特制的,印着年月日。
这种小东西,简单可靠,也没有一般的按键所具有的抖动现象。
拼接成多位的也十分方便,数字看着也直观,完全可以省下对应的显示器。
外形图如下:
它正面显示数字和背后引脚所给出信号的关系,可见下面的真值表:
做而论道已经在产品中使用它很多次了,近来才发现,在 PROTEUS 软件中,也能仿真这种器件。
看看下图,这个器件,在 PROTEUS 中是什么名称?
图片链接:http://xiangce.baidu.com/picture/detail/597059c821198c30d39d6e03bf78fa259d63b44a
在电路图中,共使用了四个拨盘开关,采用了“数据线并联”的方式,节省了不少 IO 口线。
在软件上,使用了扫描的方法,所以就可以在一个八位的接口,稳定接收它们送来的四位十进制数字。
下面的程序,即不断的扫描拨盘的输入,同时还不断的动态显示输出,能够做到输入什么,马上就显示什么。
;这个程序和电路,经过仿真试验后,证明可以正常工作。
;能够实现拨盘拨几在四位共阳数码管上显示几。
THUMB EQU 30H ;30H~33H BCD 拨盘输入数据
D_BUF EQU 34H ;34H~37H 显示缓冲区
ORG 0000H
LJMP START
ORG 0030H
START:
;-----------------------------
M_LOOP:
CALL THUMB_SW
CALL DATA_PROC
CALL DISP
JMP M_LOOP
;-----------------------------
THUMB_SW:
MOV R2, #127 ;位选, 低电平有效
MOV R0, #THUMB
MOV P1, R2
MOV A, P1
CPL A
ANL A, #15
MOV @R0, A
MOV A, R2
RR A
MOV R2, A
INC R0
CJNE R0, #THUMB + 4, $ - 12 ;4位
RET
;-----------------------------
DATA_PROC:
MOV D_BUF, THUMB
MOV D_BUF + 1, THUMB + 1
MOV D_BUF + 2, THUMB + 2
MOV D_BUF + 3, THUMB + 3
RET
;-----------------------------
DISP: ;共阳数码管, P0:段, P2:位
MOV R2, #1 ;位选, 高电平有效
MOV R0, #D_BUF
MOV A, @R0
ADD A, #(TAB - $ - 3)
MOVC A, @A + PC
MOV P2, #0
MOV P0, A
MOV P2, R2
DJNZ R7, $ ;显示1ms
DJNZ R7, $
MOV A, R2
RL A
MOV R2, A
INC R0
CJNE R0, #D_BUF + 4, $ - 19 ;显示4位
MOV P2, #0
RET ;占用时间约为4.1ms
;-----------------------
TAB: ;共阳段码
DB 0C0H, 0F9H, 0A4H, 0B0H, 099H, 092H, 082H, 0F8H;0~7
DB 080H, 090H, 088H, 083H, 0C6H, 0A1H, 086H, 08EH;8~F
;-----------------------------
END
在电路中,每个拨盘,都使用了四个二极管,使用一般的 1N4148 即可。
在拨盘的背面接线处,有 8 个小孔,就是用于安装二极管的。
但是,如果不是多组拨盘“并联”,也可以不用安装二极管,把安装孔空着就行。