拨盘开关,常用于计数器中预置数字,每一片可以预置一位十进制数字,0~9,可调。
电阻接于其输出端和正电源之间,四个二极管接于四个输入端和输出端之间,阴极朝向输入端,8421码。这样形成与门电路(输入都为高电平,输出才为高电平)。电阻中的电流,比如可取10mA,R=(5-0.7)/0.01=470Ω。
以上是2009-6-3 03:06回答。
对的。当输入为低电平(0V)的时候,二极管导通,其压降约为0.7V,电阻上的电压就是5-0.7V,电阻上的电流取为0.01A,所以电阻值就是二者相除了。
BCD码盘来设定时间很简单,但占用资源较多,功能单一,没有4*4矩阵键盘功能强大。
proteus拨码盘也就是拨码开关(也叫DIP开关,拨动开关,超频开关,地址开关,拨拉开关,数码开关,指拨开关)是一款用来操作控制的地址开关,采用的是0/1的二进制编码原理。
拨码开关很多款型号,按照脚位来区分有直插式(DIP) 和贴片式(SMD)之分,按照拨动的方式来分有平拨跟侧拨之分,按照脚间距有2.54mm和1.27mm脚间距之分,按照颜色有黑色,红色,蓝色的区别。根据状态来说还有两态跟三态之分。根据位数来说正常是都是1-10位、12位等11个位数。其实细分下来,还有很多种。
用途
广泛使用于数据处理、通信、遥控和防盗自动警铃系统、风淋室等需要手动程式编制的产品上。
分类
拨码开关作为需要手动操作的一种微型开关,在通讯,安防等诸多设备产品上广泛应用。大部分拨码开关采用直插式(DIP),在两态之间变换,再根据不同的位组成2的N次方的不同状态,实现不同的功能。其实细分下来,还有很多种,下面介绍一些具体的系列。
把8421码当成开关接到PLC上吧,接X0-X3就可以了,拨码器和PLC上的COM口分别接电源的正负极
两个及两个以上的BCD拨码盘可以使用公共引脚A动态扫描的方法
所有BCD拨码盘的公共引脚A分别作为不同的扫描线连接单片机。
如果8、4、2、1数据线上拉,则A端采用低扫描;如果8、4、2、1数据线下拉,则A端采用高扫描。
这里的低扫描具有两层含义:
第一,任意时刻扫描线中只有一条为低电平,其余扫描线为高电平;
第二, 在扫描过程中,扫描线需要周期性地依次变为低电平。高扫描则与低扫描完全相反。
还要注意的就是高扫描时从8、4、2、1引脚上读到的数值即为拨码盘输入对应的BCD码,而低扫描是需要取反才得到正确的BCD码
DialChangeA=1;DialChangeB=0;//扫描个位
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
val=PINC;
val = 2;
i = val 0x0f; //按位与,i得到个位值。
DialChangeA=0;DialChangeB=1;//扫描十位
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
__no_operation();__no_operation();__no_operation();__no_operation();
val=PINC;
val = 2;
l = val 0x0f; //按位与,i得到十位值。
l *= 10; //十位值乘以10
i += l; //然后与个位值相加。
Dalay=1;
return i; //将得到的十进制数返回
用4个I/O口就可以知道拨码盘上的数字,所谓8421是4个端口接分别代表不同的值。如果拨到1,则接1的那个I/O口和地导通,I/O就能检测出。拨到2,则接2的那个I/O口和地导通,I/O就能检测出。
拨码盘显示3,则接1和2的两个I/O口和地导通。拨到4,接4的那个I/O口和地导通。拨到5.接4和接1的两个I/O和地导通。。。。依次类推
本文转载自互联网,如有侵权,联系删除