‘壹’ 51单片机哪些接口可以接按键开关
51单片机所有的lO口都可以作为输入或者输出,按键作为输入可以接任何lO口
为了简单独立按键一般直接接于IO引脚和地之间,利用内部上拉电阻
如果接于IO和电源VCC之间,还要加下拉电阻,并且还要保证该引脚不要误操作,例如你让该引脚输出低电平,这时按下按键,就会有很大电流灌入单片机,损坏该IO口
‘贰’ 51单片机按键控制点灯
按键 PIN1接电阻 电阻上拉到VCC ,PIN2接地,PIN1接到51的IO口1
灯接在51的IO 口2,假设能够驱动
1:设置IO口1为输入
2:设置IO口2为输出
3:循环检测IO口1是否为低电平0
4:如果是0,则写IO口2为1,设置为高电平点灯
5:while循环空指令,根据指令周期,计算500ms要多少个指令
6:5的while循环结束后,写IO口2为0,灭灯
7:重复到步骤3
‘叁’ 51单片机程序,我想要个按键输入的,可以让蜂鸣器输出音阶1234567
计算好7个音阶的频率,换算为周期
再除以2是半个周期,再换算作为定时器的初值,制成表格,
按下不同按键,装入不同和初值,并启动定时器,让中断发生,中断程序里某一IO管脚取反,形成方波,这个方波经放大可以推动扬声器
主程序只管查询按键并 延时
‘肆’ 51单片机实现多按键输入
很简单呀!!
先说30个按键吧,如果要加芯片,用7279就轻松搞定了,它还能实现多键按下的处理,不过那种处理很简单,后键打断前键的程序,或者不打断,并不检测几个键组合的情况。如果不想加芯片,接到单片机上,可以采用交叉连接方法呀,单片机书上都有,网上一搜索一大片。
至于程序吗,也很简单,你想,交叉布局的话,当一个按键按下后,单片机的经纬线中,各有一根是通过按键导通的,当有两个按键按下时,最少会有三根线导能,等等,这就需要你列个表,计算好,算出每种按键组合后,它反应到单片机的I/O口上会是什么状态,就可以计算出单片机读到哪个数据时,就该是这个组合.
说的我都有点嫌罗嗦了,但确实很简单.有问题的话再留言说吧
‘伍’ 为51单片机设计一个上拉输入和下拉输入的按键电路并分析其工作原理
按键一般是上拉,单片机的IO通过电阻上拉高电平,按键正常高电平当按键按下短路,把IO变成低电平,单片机检测到低电平表示有按键按下,按键下拉一般是把单片机IO通电阻接到GND,按键正常是低电平,当按键按下把IO拉高,单片机检测到高电平表示有按键按下。
‘陆’ 51单片机键盘输入
用不着数组。
只要增加一个数字vlaue,再让 key 从keyscan()函数中,得到0~9,
最后如下计算到vlaue中: vlaue = vlaue * 10 + key;
以后,每得到一个按键数值(0~9),都执行一遍上面的算式,即可。