A. 独立按键与51单片机相连为什么有的需要接电源,有的则不用
一般不需接电源,将独立按键接于单片机IO管脚和地(电源负极)之间,让单片机管脚输出高电平,当有按键按下时,读得结果为低电平 如下图中 S2 S3 S4
如果想让平时读得为低电平,按键按下为高电平,需外接一下拉电阻(阻值小于10K),将单片机输出的高电平拉低,按键接于正电源和IO口之间,当按键按下时又读出高电平 如下图中S5
显然这种方法比较麻烦,并且如果程序不小心错误地让该IO口输出0,恰巧又按下按键就会损坏单片机
B. 51单片机独立式按键程序
#include<reg52.h>
unsignedcharID;
sbitk1=P3^7;//定义按键端口
voiddelay()
{
TMOD=0x10;//定时器的工作方式
TH1=0xd8;
TL1=0xf0;
TR1=1;
while(!TF1);//这里错了,是定时器1
TF1=0;
}
voidmain()
{
while(1)
{
if(k1==0)
{
delay();//去抖动
if(k1==0)//检测按键确实按下,进行按键处理
{
ID++;
if(ID==0)
{
ID=0;
}
while(!k1);//这里错了,多余的加了==0
}
}
switch(ID)
{
case0:P1=0x3f;break;
case1:P1=0x06;break;
case2:P1=0x5b;break;
case3:P1=0x4f;break;
case4:P1=0x66;break;
case5:P1=0x6d;break;
case6:P1=0x7d;break;
case7:P1=0x07;break;
case8:P1=0x7f;break;
case9:P1=0x6f;break;
default:break;
}
}
}
C. 51单片机中独立按键控制数码管时当每个键按下去之后松开又恢复原状态
只要程序和硬件没有问题,那么每一个独立按键按下,都应该显示该独立按键所对应的东东,不应该恢复到之前的显示值。
所以出现你所说的状态,一种情况是程序有问题,另一种情况是硬件有问题。具体如何要看你的代码才能确定。
D. 51单片机独立按键,怎么组合实现某个功能
配合显示器选择不同的功能。
如:
按键启动选择功能,显示器依次显示1,2,3。。。。表示功能,每个数字显示10秒,等待按键确认,进入下一个菜单。
循环显示2次,没有接收到确认按键,自动退出此模块,返回上一层菜单。
E. 51单片机独立按键中,按一下和一直按的区别
按一下松开这个LED一直亮:
if(key==0)
{
while(key==0);
led=0;
}
按一下松开就亮一下:
if(key==0)
{
led=0;
while(key==0);
led=1;
}
F. 51单片机为什么要先按独立按键才能正常工作
51(开发板)中的数码管一次只能显示一位数,属于硬件限制,不能同时显示两位。在数码管上显示多位数只能靠高频率的刷新显示,在视觉上显示多位。所以可以定义一个变量i,按键i自加,然后用循环显示,循环次数为i。
根据提供的函数,表明你的板子LED是共阳极连接的,即LED阳极接到一起,每个LED阴极接IO口,这样当IO口为低电平时灯就点亮了。所以,程序一开始是亮灯而不是灭灯。sbit BY1=P3^4是一个位定义,意思是把单片机的P3.4口定义为BY1,以后对BY1进行操作就是对P3.4进行操作。
单片机
也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。 由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。
G. 51单片机独立按键控制门禁密码
#include "reg51.h"
#include "display_7seg_4.h"
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
sbit KEY3 = P1^2;
sbit KEY4 = P1^3;
sbit KEY5 = P3^0;
sbit KEY6 = P3^1;
sbit KEY7 = P3^2;
sbit KEY8 = P3^3;
sbit KEY9 = P3^4;
sbit KEY0 = P3^5;
sbit KEYE = P3^6;
sbit LED = P1^5;
unsigned int count=0;
void main(void)
{
unsigned char keyvalue;
unsigned char i=0;
unsigned char dis[4]={10,10,10,10};
unsigned int password;
LED = 0;
while(1)
{
keyvalue = 20;
if(KEY1 == 0)
{
while(!KEY1);
keyvalue = 1;
}
if(KEY2 == 0)
{
while(!KEY2);
keyvalue = 2;
}
if(KEY3 == 0)
{
while(!KEY3);
keyvalue = 3;
}
if(KEY4 == 0)
{
while(!KEY4);
keyvalue = 4;
}
if(KEY5 == 0)
{
while(!KEY5);
keyvalue = 5;
}
if(KEY6 == 0)
{
while(!KEY6);
keyvalue = 6;
}
if(KEY7 == 0)
{
while(!KEY7);
keyvalue = 7;
}
if(KEY8 == 0)
{
while(!KEY8);
keyvalue = 8;
}
if(KEY9 == 0)
{
while(!KEY9);
keyvalue = 9;
}
if(KEY0 == 0)
{
while(!KEY0);
keyvalue = 0;
}
if(KEYE == 0)
{
while(!KEYE);
keyvalue = 10;
}
if(keyvalue != 20)
{
if(keyvalue == 10)
{
i=0;
password = dis[0]*1000+dis[1]*100+dis[2]*10+dis[3];
if(password == 1234)
{
LED = 1;
}
else
{
LED = 0;
}
dis[0] = 10;
dis[1] = 10;
dis[2] = 10;
dis[3] = 10;
}
else
{
dis[i] = keyvalue;
i++;
}
}
display_seg(dis);
}
}
H. 51单片机独立按键的程序
51单片机独立按键的程序独立按键的程序的话,这个可以从一些一些具体的方面来进行一些查看。
I. 51单片机控制数码管显示时钟,独立按键怎么弄
独立按键处理起来是非常简单的,一般都是IO口单独控制,所以只需要消抖和判断按键按下抬起状态就好。比如:
sbitkey=P1^0;
if(key==0)
{
delay(10);
if(key==0)
{
keyval=1;
while(key==0);
}
}
J. 用51单片机怎么通过独立按键实现串口通信
这个是单片机双机通讯,其实很简单,关注这个公众号吧,单片机仿真,里面有。其实大致思路就是按键按下一个单片机发送数据到串口,另外一个单片机配置串口中断,你在中断里放一个buf,让他收到一个字节自加一就可以了。