1.扳键开关与单片机的接口<?XML:NAMESPACE PREFIX = O />
扳键开关(或钮子开关类器件)可将高电平或低电平经单片机的I/O引脚置入单片机,以实现操作分档、参数设定等人机联系的功能。
图1与后面的程序是扳键类开关应用的示例:根据8个开关中哪一个开关闭合并使相应口线为低电平而转去执行相应的个工作程序。各开关通过扩展输入口74LS244与80C51的P0口连接,开关合上时将向P0口的相应引脚送低电平;反之,开关打开时送高电平。
图1 扳键开关与单片机的接口
读扳键开关状态程序段:
2.拨盘开关与单片机的接口
(1)拨盘开关
拨盘开关有很多种,常见的是BCD码拨盘开关,如图2所示。拨动正面的拨盘,可制定一个十进制数(在开关正面有该数的数码指示),并转换成BCD码(呈现在背面8、4、2、1引脚上)而输入计算机。拨盘开关用于参数设定,非常直观方便。
若引脚A接高电平,当置定某十进制数时,拨动拨盘会使引脚A与8、4、2、1四个引脚有一定的接通关系,与引脚A接通的将输出高电平,不与引脚A接通的输出低电平,从而转换成与该十进制数相当的BCD码(8421码)。例如,拨置数字5时,8、4、2、1脚输出数字编码0101,其他类推。
当然也可反过来,即引脚A接低电平,这时得到的是与十进制数相当的BCD码的反码。将所得的码取反后可以获得相应的BCD码。这种接法也比较多见。
如要将n位十进制数置入计算机,就需要使用n片拨盘开关并列在一起,组合成一个拨盘开关组。
图2 两片拨盘开关与80C51的接口
(2)拨盘开关接口示例
图2是两片拨盘开关接口示例:通过拨盘开关将2位十进制数置入单片机,其十位数与个位数读入后将分别暂存于片内RAM的21H、20H单元。
接口程序如下: